# coastal grass
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# Worker
Hardhat and high-visibility vest civilian. Rig and mesh inverse binds normalized to metres.
Generated for this fan demake. Instantiated through game.play.Visual. PSX materials use generated albedo textures with clip-space snapping and affine UVs. See design/polish-pass.md for validation and limitations.
# road yellow
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# cracked asphalt
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# PalmCrown
Low-polygon radial palm fronds assembled from double-sided triangular leaflets. Thirty crowns share this mesh. Produced durably by the parent City.sceneModule init.luau; change its source to regenerate. Gameplay colliders are separate exact-footprint entities.
# palm bark
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# 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")
```
# Hatchback
White compact traffic car, approximately 4.45 metres long. Forward is +Z.
Generated for this fan demake. Instantiated through game.play.Visual. PSX materials use generated albedo textures with clip-space snapping and affine UVs. See design/polish-pass.md for validation and limitations.
# sunbleached stucco
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# Sedan
Yellow four-door taxi, approximately 4.45 metres long. Forward is +Z.
Generated for this fan demake. Instantiated through game.play.Visual. PSX materials use generated albedo textures with clip-space snapping and affine UVs. See design/polish-pass.md for validation and limitations.
# Unified city surfaces
City and Districts submit their solid boxes to one shared builder. Ground surfaces extend to a common bed, so the union removes covered terrain beneath roads, water, sand, parking and buildings across district boundaries. A spatial index clips buried faces; exposed rectangles subdivide at 8m for affine UVs and vertex fog. Materials produce one batch each. Main scene calls begin(), adds both districts, then finish(build, parent). This replaces the earlier independent geometry batches that left broad ground overlap.
# iron trim
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# faded teal
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# rose sidewalk
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# sign red
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# Tourist
Orange Hawaiian-shirt tourist civilian. Rig and mesh inverse binds normalized to metres.
Generated for this fan demake. Instantiated through game.play.Visual. PSX materials use generated albedo textures with clip-space snapping and affine UVs. See design/polish-pass.md for validation and limitations.
# Runner
Teal-shirt runner civilian. Rig and mesh inverse binds normalized to metres for Visual component retargeting.
Generated for this fan demake. Instantiated through game.play.Visual. PSX materials use generated albedo textures with clip-space snapping and affine UVs. See design/polish-pass.md for validation and limitations.
# 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.
# dark window
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# Pickup
Teal pickup with open bed, approximately 4.45 metres long. Forward is +Z.
Generated for this fan demake. Instantiated through game.play.Visual. PSX materials use generated albedo textures with clip-space snapping and affine UVs. See design/polish-pass.md for validation and limitations.
# neon blue
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# cream plaster
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# palm fronds
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# OfficerBody
Uniformed patrol officer for foot pursuit, aiming and arrest encounters. Metre-scale rig.
Generated for this fan demake. Instantiated through game.play.Visual. PSX materials use generated albedo textures with clip-space snapping and affine UVs. See design/polish-pass.md for validation and limitations.
# coral stucco
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# paint white
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# beach sand
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# Vice City coastal slice
A static Art Deco Vice City district for the GTA VI PS1 demake, consuming game.shared building footprints. Instantiate this sceneModule directly inside main.scene content() so its complete geometry is baked into scene.json. A SceneModule component placement in the current engine may mark rebuilt children temporary; root uses direct instantiation to preserve the scene.
The rectangular avenue ring has 14m streets at x=0 and -54 and z=±78. The west store door at x17.2 is open across z[-1.6,1.6], with a counter at x24 and clear shared interaction position x21. Motel marker(-31,82) sits outside front z86.5. A highway sign points toward Port Gellhorn; this compact map remains Vice City.
Geometry is emitted as exterior-only material batches. Each axis-aligned box face is clipped against all other solids, removing buried wall faces beneath windows/signs and pavement beneath road paint. The foundation belongs to this union; the root ground entity keeps its BoxCollider but must have no Model. Palm crowns use separated radial leaflets. All textures are deterministic nearest-filtered 64px grunge textures.
No camera, lighting, gameplay state or input is owned here. Root owns scene save/reload, gameplay verification and publishing. Evidence captures live under game/city/evidence. 55 generated mesh/material/texture assets have descriptive READMEs.
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Mesh
Mesh asset. `data.zmsh` is the engine-native geometry payload (`renderer.mesh.encode`); consumers reference the asset's guid.
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).
# Texture
Managed texture asset. `data.ztex` is the encoded payload the renderer uploads; compression settings live in the `.metadata` `settings` block (edit to re-encode).