# Actor
One-paragraph description of what this component does and what it
attaches to. Mention any required sibling components (e.g. Model,
Transform).
## Public fields
- `exampleNumber: number` — what it controls, units, valid range.
- `exampleString: string` — what it controls.
- `exampleBool: boolean` — what it controls.
## Methods
- `:methodName(arg)` — what it does and when to call it.
## Lifecycle
- `awake()` — same-frame attach hook. What initial state this component
sets up.
- `start()` — first-frame-after-awake hook. Cross-component setup that
needs the other components on the entity to have finished `awake`.
- `update(dt)` — per-frame while the gameplay clock runs. What this
component does each tick.
- `onDestroy()` — cleanup performed on detach / entity despawn.
See `man components` for the full hook list (`onEnable`, `fixedUpdate`,
`onPropertyChanged`, etc.) and the timing details.
## Usage
```luau
entity(id).component.add("Actor", { exampleNumber = 1.0 })
entity(id).component.get("Actor"):methodName("foo")
```
# GTA VI — PS1 Demake
Startup scene for the compact fan-made Vice City mission. build.luau owns the world foundation, sunset lighting, direct City.sceneModule instantiation (baked into 112 scene records) and per-user PlayerPrototype with its own camera and audio listener. The scene entrypoint starts/stops Presentation and ticks its UI/audio updates. Driver on each prototype body owns gameplay, input and visuals.
The source is composed under game/city, game/play and game/presentation, with common constants in game/shared. Rebuild preserves entity identities. No parallel camera or global shared input is authored.
# Reveal soundtrack
Options > REVEAL selects TRAILER PS1 (default) or DEMAKE. Return to the main menu and choose WATCH REVEAL. This preference lasts through scene changes for this session. Gameplay music retains its own setting.
TRAILER PS1 uses the audio supplied by the user in Grand_Theft_Auto_VI_Trailer_1_Australian_Community_Media.soundClip. The separate processed asset is game.reveal.audio.TrailerPS1; the imported source stays untouched.
Processing is baked: stereo 22,050 Hz, two low-pass stages at 6 kHz before resampling, mild soft saturation, ten effective bits with quiet triangular dither, and short edge fades. PCM storage preserves the baked quantization. Duration is 87.405669 seconds, unchanged apart from rounding to the output sample grid. The 90-second film retains a silent end-card tail. No time stretching is applied.
Run require("game.reveal.AudioBake").bake() in edit mode to rebuild.
The trailer mix replaces the demake music and extra siren. Its temporary audio source is local to the viewer and does not loop. The film corrects to the mixer's clock when drift exceeds 60 ms. Transport wrappers pause, resume, change rate, seek, and stop the audio with the cutscene. Native AudioSource has no seek field, so explicit seeks rebind a PCM tail by sample index. These byte-only voices deliberately omit clip identity to avoid the native full-clip cache.
Validation: clicked the menu toggle both ways and launched both modes. Trailer mode had exactly one audible source; demake mode restored its music and siren. Seek to 71.9 s played a 15.505 s tail; seek to 85 s played a 2.405 s tail. Paused seeks remained silent and resumed. Twelve playback samples over six seconds measured at most 18.42 ms of audio/film clock difference. Natural completion returned to main and removed the trailer source. UI validation and world error checks passed.
Verification covers rendered UI, PCM statistics and live mixer data. Perceived crunch and dialogue alignment against the supplied media have not been verified by listening.
# PS1Post
320×240 display rasterization and 15-bit ordered dithering, adapted from the installed PS1 surface shader. The main Presentation registers it over all layers so widgets, text and the game share the display raster.
The optional signal uniform adds horizontal colour bleed, stable alternating scanlines and stronger ordered dithering. Main gameplay uses 0.75 for the composite option; RGB uses 0. The default is 0, preserving the existing reveal's rendering. This is a stylistic composite approximation, not a complete analogue signal simulation.
# menu
Generated original mellow electro funk title/exploration music for the GTA VI PS1 fan demake. Presentation plays this from the local player's mission state. Music, engine and siren loop; cash, door and crash are event-triggered one-shots.
# Film
One-paragraph description of what this module provides and who consumes
it.
## Exports
- `M.exampleFn(arg) -> result` — what it does and when to call it.
- `M.exampleValue: type` — what value it carries.
## Usage
Replace `<identity>` with the string `asset.create` returned — this
module's source path with `/` written as `.` and each segment's type
suffix dropped, the way a module at `/source/lib/thing.module` is
`lib.thing` and one at `/source/kit.package/thing.module` is
`kit.thing`.
```luau
local M = require("<identity>")
M.exampleFn("foo")
```
## Notes
- Anything callers need to know about THIS module: required runtime
ordering, state ownership, side effects.
# siren
Generated original siren game sound effect for the GTA VI PS1 fan demake. Presentation plays this from the local player's mission state. Music, engine and siren loop; cash, door and crash are event-triggered one-shots.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.