Read a build back and hold it against its city source: every building present, no hollow or inverted mass, far layer complete. Exits 1 below 99% or on any problem.
helix city buildings check [options] <source-dir> <out-dir>
Argument
Required
Description
source-dir
yes
the city-source folder the build was made from
out-dir
yes
the build output folder
Option
Description
--min-pct <n>
least share of buildings that must be present (default "99")
Complete the collision of a published city Scene: collider cells for elevated decks, ramps and rails, and a collider-only child Scene of building boxes
Read a published city root from a data prefix (https origin or folder) and write the new objects (resealed root, deck-collider cells, building-box child Scene) to --out
helix city colliders apply [options]
Option
Description
--source <prefix>
data prefix holding scene/<root>/ (https origin or folder) (required)
--root <name>
the root Scene folder under scene/ to complete (required)
--new-root <name>
the folder name the completed root is written as (required)
--out <dir>
output folder (mirrors the prefix layout) (required)
--road-cell <m>
road render/collider cell size in metres (default "1024")
--no-decks
skip the elevated-deck collider cells
--no-lips
skip the bevels on kerbs and deck edges (3-35 cm steps a wheel cannot roll up)
--no-buildings
skip the building-box child Scene
--stream-radius <m>
physics radius of the building colliders in metres (default "120")
--per-block <n>
buildings per collider set (default "60")
--inline
write the building collision sets into the root document instead of a mounted child Scene (a document within 32 MiB of its memory cap cannot afford the mount)
A Cities: Skylines II source-v2 bundle to desktop and phone World roots with every shared optimization applied, collision completed, both tiers perf-gated, and a receipt that proves which ran
World slug and scene root name (lowercase letters, digits, dashes) (required)
--out <dir>
folder to write everything into (default ./convert-<name>)
--title <title>
the World title (default: the name, capitalised)
--description <text>
the World description
--config <file>
a helix.city-convert/1 file: spawn and the few knobs a map may need; every field has a default
--spawn <x,z>
open the World here (metres); default: a clear street-level point beside the densest downtown
--yaw <deg>
spawn heading in degrees (with --spawn); default along the street
--tiers <list>
desktop, mobile or desktop,mobile (default both)
--bounds <minX,minZ,maxX,maxZ>
convert only this window of the CS2 world, in scene metres
--masses
draw buildings as procedural masses even when the bundle has prefab meshes
--jobs <n>
parallel prototype shards (default 4)
--from <stage>
rerun this stage and everything after it
--stop-after <stage>
stop after this stage
--force
ignore the receipt and run every stage
--unlisted
the publish plan says unlisted (the default)
--public
the publish plan says public
--private
the publish plan says private
--publish
after the conversion, upload the data to the World's CDN prefix and publish the shell World (needs --world and --engine; rclone and helix logins are used as configured)
--world <id>
with --publish: the World id whose scene-data folder receives the data
--tag <tag>
with --publish: the data prefix under scene-data/ (default <name>-<hash of the roots>)
--remote <rclone path>
with --publish: rclone path up to the World folders (default R2:instant-worlds-dev/instant-worlds)
--cdn-base <url>
with --publish: the public https base of the same folder
--engine <path>
with --publish: a helix-web-engine-new checkout (its granit-city publish-preview.mjs builds the shell)
--thumbnail <file>
with --publish: the World card cover image
--content-rating <rating>
with --publish: the creator-attested rating (everyone, teen, mature or adult); required unless --private
--list-stages
print the stages and the optimizations each applies, then exit
Build the 1 km road cells of a helix.city-source/1 folder: one meshopt GLB per cell (asphalt, kerb and sidewalk, markings), a collider, and the conformed terrain
Bake the game's own road geometry from a CS2 capture (road compositions and the meshes they deform) and restyle it onto the engine city materials: the roads of scene create city --plan roads.baked
helix city roads bake-cs2 [options] <bundleRoot>
Argument
Required
Description
bundleRoot
yes
CS2 bundle holding roads/, road-pieces/, terrain/ and water/ (road-materials/ is optional)
Option
Description
--out <dir>
folder to write: roads/ (restyled render, markings-a, collider, mesh-cells.json) and bake.json (required)
--collider-max-triangles <n>
collider triangle budget per cell (default "60000")
--cell-max-triangles <n>
triangles above which a render cell is split into quarters, down to 128 m (default 250000; a phone root commits its heaviest road cell to memory, so city convert cs2 asks for 120000)
--structure-error <m>
simplify the concrete structure (bridge girders, walls) of each render cell within this many metres (default off; city convert cs2 asks for 0.05)
--surface-error <m>
simplify the asphalt, sidewalk, kerb and gravel of each render cell within this many metres (default off; city convert cs2 asks for 0.03)
--sea-level <m>
CS2 absolute sea level the roads are cut against (default: resolved from water.json and the water field, as the importer does)
--keep-bake
keep the raw baked cells (bake/) beside the restyled ones
Rewrite baked CS2 road cells onto the engine city materials: procedural asphalt, kerb and sidewalk, the game's paint ribbons, cells clipped at 1,024 m, colliders welded to 60k triangles
folder to write: roads/ (render, collider, markings-a, mesh-cells.json) and, with --scene, the patched document (required)
--scene <file>
a sealed Scene v2 document whose roads.* elements are replaced by the restyled cells (and the city material library added)
--terrain <dir>
terrain source folder to carve under the roads at every stride the engine draws it at (default: the folder beside --scene when it holds terrain.json); written to <out>/terrain
--no-carve
leave the terrain as it is
--placements <dir>
placements bake (placements.json + objects/) to re-seat on the carved terrain (default: placements/ beside --scene); written to <out>/placements
--no-snap-placements
leave the placements at the heights they were baked at (trees at the cut rims will float or sink)
--engine-asphalt
keep the engine's own asphalt textures (calibrated to the engine goldens' lighting) instead of the CS2 calibration for the Granit shell's lighting
--library <dir>
city material library pack (default: the CLI's own assets/city-materials/v1)
--collider-max-triangles <n>
collider triangle budget per cell (default "60000")
--no-far
skip the far road layer (roads-lod/: simplified driving surface merged into 2,048 m cells, eager, so roads read from altitude)
Write a Continuum publication descriptor (and the GLBs beside it) per prop: public asset Package, LOD variants, a public Vault Listing with the search tags