Skip to main content

building.construct_wall

Overview

  • [Build Mode Only] Builds a SINGLE wall segment between two site-relative points on the given floor. To build a whole rectangular room use building.construct_room instead - it is one undo step and it is the ONLY reliable way above floor_level 0, because the engine resets the elevation of a room that is not closed yet and the sides you add later then fail to attach. COORDINATES are in centimetres with the origin (0,0) at the site's MINIMUM CORNER, and the usable range is 0..site_size - call build.get_site_info and read 'coord_space' first. Do NOT use 'site_half_extent' as the full size; it is half, and using it confines the build to one quadrant. Endpoints snap to a 25cm grid. Goes through the build undo/redo stack (revert with building.undo). Wall construction is NOT charged to the household wallet - walls are free by game policy, unlike objects placed with building.place_object. Set is_delete=true to remove the segment instead. HEIGHTS: the storey elevation for floor_level above 0 lives in 'floor_height', NOT 'base_height' - the engine resets base_height to 0 on any room that is not closed yet, so anything you put there is thrown away and the wall lands at ground level. Omit floor_height and it is derived from the top of the floor below. When the new segment touches an existing wall, all three heights are inherited from that wall's graph instead, exactly as the in-game ghost wall does. The values actually used come back as applied_base_height / applied_floor_height / applied_wall_height, and wall_height defaults to 300cm (3.0m). SUCCESS IS VERIFIED against the wall graph after the fact: 'wall_created' and 'segment_wall_count' report whether a wall really exists in the requested span, so a rejected wall fails loudly instead of returning committed=true with nothing built. Requires phase == 'ready' (see build.get_mode_state). Partial failure of nested sub-commands is not detectable; verify the result with build.scan_walls.

Metadata

FieldValue
DisplayConstruct Wall
Categorybuilding
AccessScriptCheat
ScopeB1Standalone
TagsExperimental
Aliases—

Parameters

NameTypeRequiredDefaultDescription
start_xfloatyes—Start X in cm from the site min corner (0..site_size.x; see build.get_site_info coord_space)
start_yfloatyes—Start Y in cm from the site min corner (0..site_size.y; see build.get_site_info coord_space)
end_xfloatyes—End X in cm from the site min corner (0..site_size.x)
end_yfloatyes—End Y in cm from the site min corner (0..site_size.y)
floor_levelintno0Floor level (from build.scan_floors). 0 is the ground floor. Above 0 the storey elevation goes into floor_height, which is derived from the floor below when you omit it.
wall_heightfloatno—Wall height in CENTIMETRES. Default 300 (3.0m, the in-game default). In-game presets are 285/300/375/390/465/480/555/570; build.get_site_info lists them. Inherited when this segment joins an existing wall.
base_heightfloatno—Ground-floor FOUNDATION height in cm (default 0). Do NOT use this for a storey elevation: the engine resets base_height to 0 on any room that is not closed yet, so an upper floor set this way ends up at ground level. Use floor_height.
floor_heightfloatno—STOREY ELEVATION in cm - the Z the walls stand on, and the field that actually carries height for floor_level above 0. Omit it and it is taken from the top of the floor below ('top_height' in build.scan_floors), or inherited from a wall this segment joins.
is_halfboolnofalseBuild a half-height wall
is_railingboolnofalseBuild a railing instead of a wall
is_deleteboolnofalseDelete the wall segment instead of building it
wall_deconamenoNoneWall decoration row id

Usage

await inzoi.cli.execute('building.construct_wall', {
start_x: 0.0,
start_y: 0.0,
end_x: 0.0,
end_y: 0.0,
floor_level: 0, // optional
wall_height: 0.0, // optional
base_height: 0.0, // optional
floor_height: 0.0, // optional
is_half: false, // optional
is_railing: false, // optional
is_delete: false, // optional
wall_deco: 'None', // optional
});