district.sceneModule
Banana City's Peel Kabuki market street: road, sidewalks, building walls, the elevated highway, neon signs and light spill, the gold banana megatowers with Bananasaka Tower, the night sky, moonlight, ambient haze and the post-process stack. Placed once by `scenes/main.scene/build…
game.city.district
Banana City's Peel Kabuki market street: road, sidewalks, building walls, the elevated highway, neon signs and light spill, the gold banana megatowers with Bananasaka Tower, the night sky, moonlight, ambient haze and the post-process stack. Placed once by scenes/main.scene/build.luau under mount_city; reads its layout from game.rules. Owned by the city slice.
The right-hand frontage at x 9..29, z 69..83 is left open as the club lot: game.club.venue builds The Banana Split there, from the bounds in game.club.layout.
Interface
What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.
conforms to
zero/source-extract/v2game.city.district — Banana City: the Peel Kabuki night market street, the plaza arena at its far end, and the gold banana skyline beyond it. OWNED BY THE CITY SLICE. Placed once by scenes/main.scene/build.luau under `mount_city`. The layout agrees with game.rules (`R.layout`): road |x|<5, sidewalks 5<|x|<9, the elevated highway over the left side at x=-5.5, the plaza round (0,125), Bananasaka Tower at (0,210). The civilian lanes at x=+-7 are kept free of colliders. Static geometry is batched per material key and written as one mesh per key (split at 60k vertices), so the whole street draws in a few dozen calls. Everything that moves (rain, splashes, hover cars, holograms, searchlights) is spawned under `life` with a unique `city_*` name and driven by the game.city.CityLife component attached to the district root. The game.city.LightBudget component beside it keeps the lights nearest the camera on under the renderer's 64-light cap.
rr(a: number, b: number) → number return a
| arg | type | description |
|---|---|---|
| a | number | |
| b | number |
pick(t: { any }) → any return t
| arg | type | description |
|---|---|---|
| t | { any } |
getMat(key: string) → any
| arg | type | description |
|---|---|---|
| key | string |
add(key: string, g: any) → void
| arg | type | description |
|---|---|---|
| key | string | |
| g | any |
box(key: string, x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, tu: number?, tv: number?, skip: any?) → void
| arg | type | description |
|---|---|---|
| key | string | |
| x0 | number | |
| y0 | number | |
| z0 | number | |
| x1 | number | |
| y1 | number | |
| z1 | number | |
| tu | number? | |
| tv | number? | |
| skip | any? |
collider(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number) → void
| arg | type | description |
|---|---|---|
| x0 | number | |
| y0 | number | |
| z0 | number | |
| x1 | number | |
| y1 | number | |
| z1 | number |
light(x: number, y: number, z: number, c: { number }, intensity: number, radius: number) → void
| arg | type | description |
|---|---|---|
| x | number | |
| y | number | |
| z | number | |
| c | { number } | |
| intensity | number | |
| radius | number |
flatRing(key: string, cx: number, y: number, cz: number, r0: number, r1: number, n: number) → void
| arg | type | description |
|---|---|---|
| key | string | |
| cx | number | |
| y | number | |
| cz | number | |
| r0 | number | |
| r1 | number | |
| n | number |
inClubLot(fx: number, z: number, margin: number) → boolean
| arg | type | description |
|---|---|---|
| fx | number | |
| z | number | |
| margin | number |
inGap(fx: number, z: number, margin: number) → boolean
| arg | type | description |
|---|---|---|
| fx | number | |
| z | number | |
| margin | number |
runsOf(fx: number, zA: number, zB: number) → void
the runs of zA..zB a row stands on, between its gaps
| arg | type | description |
|---|---|---|
| fx | number | |
| zA | number | |
| zB | number |
addSegs(s: number, fx: number, back: number, zA: number, zB: number, hMin: number, hMax: number) → void
| arg | type | description |
|---|---|---|
| s | number | |
| fx | number | |
| back | number | |
| zA | number | |
| zB | number | |
| hMin | number | |
| hMax | number |
segsAt(fx: number, zA: number, zB: number) → void
| arg | type | description |
|---|---|---|
| fx | number | |
| zA | number | |
| zB | number |
ensureH(fx: number, z: number, w: number, top: number) → void
| arg | type | description |
|---|---|---|
| fx | number | |
| z | number | |
| w | number | |
| top | number |
heightAt(fx: number, z: number) → number
| arg | type | description |
|---|---|---|
| fx | number | |
| z | number |
buildSeg(sg: any) → void
| arg | type | description |
|---|---|---|
| sg | any |
wallSign(fx: number, s: number, name: string, z: number, y: number, w: number, h: number, uv: { number }?, col: string?) → void
signs
| arg | type | description |
|---|---|---|
| fx | number | |
| s | number | |
| name | string | |
| z | number | |
| y | number | |
| w | number | |
| h | number | |
| uv | { number }? | |
| col | string? |
projSign(fx: number, s: number, name: string, z: number, y0: number, y1: number, w: number, uv: { number }?, col: string?) → void
| arg | type | description |
|---|---|---|
| fx | number | |
| s | number | |
| name | string | |
| z | number | |
| y0 | number | |
| y1 | number | |
| w | number | |
| uv | { number }? | |
| col | string? |
kanji(fx: number, s: number, which: string, z: number, y: number, w: number) → void
| arg | type | description |
|---|---|---|
| fx | number | |
| s | number | |
| which | string | |
| z | number | |
| y | number | |
| w | number |
holo(name: string, mesh: any, mat: string, x: number, y: number, z: number) → void
| arg | type | description |
|---|---|---|
| name | string | |
| mesh | any | |
| mat | string | |
| x | number | |
| y | number | |
| z | number |
fruitPile(key: string, x0: number, x1: number, y: number, z0: number, z1: number, r: number) → void
| arg | type | description |
|---|---|---|
| key | string | |
| x0 | number | |
| x1 | number | |
| y | number | |
| z0 | number | |
| z1 | number | |
| r | number |
bananaBunch(x: number, y: number, z: number, yaw: number) → void
| arg | type | description |
|---|---|---|
| x | number | |
| y | number | |
| z | number | |
| yaw | number |
lanternString(a: { number }, b: { number }, sag: number, step: number) → void
lantern strings and overhead cables
| arg | type | description |
|---|---|---|
| a | { number } | |
| b | { number } | |
| sag | number | |
| step | number |
streetLamp(s: number, z: number, accent: string, px: number?, base: number?) → void
| arg | type | description |
|---|---|---|
| s | number | |
| z | number | |
| accent | string | |
| px | number? | |
| base | number? |
torusGeo(R0: number, r: number, rows: number, cols: number) → any
street furniture: manholes and steam grates, curb drains, road works, parked bikes, beer crates, utility cabinets
| arg | type | description |
|---|---|---|
| R0 | number | |
| r | number | |
| rows | number | |
| cols | number |
cone(x: number, z: number) → void
| arg | type | description |
|---|---|---|
| x | number | |
| z | number |
barrier(x0: number, x1: number, z: number) → void
| arg | type | description |
|---|---|---|
| x0 | number | |
| x1 | number | |
| z | number |
bike(x: number, z: number, s: number, yaw: number, frame: string, rim: string) → void
| arg | type | description |
|---|---|---|
| x | number | |
| z | number | |
| s | number | |
| yaw | number | |
| frame | string | |
| rim | string |
put(key: string, g: any) → void
| arg | type | description |
|---|---|---|
| key | string | |
| g | any |
crates(x: number, z: number, n: number, key: string) → void
stacked beer crates outside the izakayas, the top layer still full of bottles
| arg | type | description |
|---|---|---|
| x | number | |
| z | number | |
| n | number | |
| key | string |
plazaStall(x0: number, x1: number, z0: number, z1: number, cloth: string) → void
| arg | type | description |
|---|---|---|
| x0 | number | |
| x1 | number | |
| z0 | number | |
| z1 | number | |
| cloth | string |
part(name: string, parent: any, mesh: any, key: string) → any
| arg | type | description |
|---|---|---|
| name | string | |
| parent | any | |
| mesh | any | |
| key | string |
Sub-parts
Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.
Showing the 199 items nearest this part. It holds more than this page lists.
Problems
Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.
agent_score is exposed.+ quality × 0.35
+ performance × 0.25
± compat factor
Usability ratings
Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".
Scoped to this part · feeds back into the world's score.