Skip to content

Waste disposal#

Waste disposal drafts have the type of waste disposal and belong to the $cat_wastedisposal00 category by default.

Attributes#

active#

Type: boolean

Whether the draft is active and should be loaded by the game.

add price#

Type: string array

Array of draft IDs.

alias#

Type: string

aliases#

Type: string array

Same as alias, but for multiple IDs.

alignable#

Type: boolean

If true the building will align with neighbouring buildings.

By default will inherit the value of the frame alignment attribute.

allocate road flags#

Type: string or string array

Allocates a custom car flag.

Note that there is a max limit of 32 custom flags.

animated#

Type: boolean

If set and the building has multiple frames, then these frames will be used for animation. Normally multiple frames will be used for different variants of a building and or rotation awareness.

By default, the value will be false.

Deprecated

This attribute is a relict from a time when separate animation objects were not a thing yet. Use the more powerful animation attribute instead.

animation#

Type: Animation array

animation fg#

Type: Animation array

aspect body disposal capacity#

Type: integer

aspect education high capacity#

Type: integer

aspect education low capacity#

Type: integer

aspect health care capacity#

Type: integer

aspect waste disposal capacity#

Type: integer

author#

Type: string

The name of the author behind the draft.

auto build#

Type: boolean

For RCI buildings only.

Determines whether the building can be built automatically by the game on corresponding zones and given demand.

auto build factor#

Type: float

The auto build factor can be used to tweak the auto spawn rate of the building.

Higher values will cause the building to be built more likely.

biomes#

Type: Biome spawner

Used for spawning draft objects on the map during generation.

budget item#

Type: string

ID of the draft that has the "budget item" meta tag defined.

Monthly income or expenses show up under the budget item.

build height#

Type: integer

The height of the building in 8px units. Used for auto build time calculation, collision checks, clipping during drawing, helicopters and much more.

build time#

Type: integer

The build time of the building in days.

build time factor#

Type: float

build zone#

Type: boolean

bulldoze price#

Type: integer

The price to bulldoze the building.

Negative values require privileges.

burnable#

Type: boolean

Whether the building can be set on fire.

By default will inherit the value of the destroyable attribute.

capacity#

Type: integer

Capacity for passenger related calculations.

By default, the value will be 0.

car spawner#

Type: CarSpawner

category#

Type: string

ID of the category the draft should be contained in.

category from#

Type: string

Draft ID to grab category from and use for the draft.

composition#

Type: Composition array

Composition buildings must be rotation aware.

conductive#

Type: boolean

Whether the building will connect to normal power lines.

deco frames#

Type: Frame array

deco frames winter#

Type: Frame array

density#

Type: float

Used for attribute calculations as more dense buildings usually have higher expectations.

By default, if the value is -1, the game will calculate it on its own by diving the number of people in the building by the building's area.

destroyable#

Type: boolean

Whether the building is destroyable by disasters.

By default, the value will be true.

destroyable by fun#

Type: boolean

Whether the building is destroyable by fun actions.

By default, the value will be true.

destruction#

Type: string

The ID of a building that will be used to replace the destructed building.

Must be either 1x1 in which case it will fill up the area of the destructed building, or match the size of the destructed building.

dev#

Type: boolean

diamond price#

Type: integer

The diamond price to build this building. Will be ignored in case the building was unlocked by a feature.

On premium platforms, the value will be 0.

disaster#

Type: boolean

Whether the existence of the building should be considered as a disaster.

When city is in a disaster state, game may play disaster music, the city growth will halt.

By default, the value will be false.

draw ground#

Type: boolean

If true the ground below the building will be drawn. Useful when the building has transparent parts in the ground.

By default, the value will be false.

draw water borders#

Type: boolean

draw water ground#

Type: boolean or string

Whether water will be drawn under the building even if there's ground. Useful for semi transparent buildings that use this feature to incorporate water into their visuals.

If a string is provided, ground draft by the specified ID will be used for drawing.

draw zone#

Type: boolean

easy remove#

Type: boolean

explodes#

Type: boolean

Whether building will explode upon being burnt down (that is, after a while of burning).

By default, the value will be false.

explosion radius#

Type: integer

For exploding buildings only, the radius of the explosion.

By default, the value will be 16.

ext rotation aware#

Type: boolean

If true the building will use 16 frames per variant to model joining with nearby buildings.

By default, the value will be true, if the draft is rotation aware and has frame alignment or frame alignment area attributes set to true.

final#

Type: boolean

If set to true, the draft can no longer be overridden.

frame alignment#

Type: boolean

If true the building will be built using a line tool unless frame alignment area is true.

By default will inherit the value of the frame alignment area attribute.

frame alignment area#

Type: boolean

If true the building will be built using an area tool.

By default, the value will be false.

frame animation fg indices#

Type: integer 2D array

frame animation indices#

Type: integer 2D array

frames#

Type: Frame array

Required unless you are using a composition.

frames winter#

Type: Frame array

free build time skip#

Type: boolean

Whether the build time can be skipped for free in freemium versions.

fun#

Type: Fun

ground frames#

Type: Frame array

ground frames winter#

Type: Frame array

ground tiles#

Type: string array

Array of Viewport draft IDs.

habitants#

Type: integer

For residential buildings: The amount of inhabitants.

height#

Type: integer

Must be of equal value to the width attribute unless it's a composition.

helicopter spawner#

Type: HelicopterSpawner

hidden#

Type: boolean

Whether the draft shows up in the toolbar. If set to true, the draft will not be available in the toolbar.

hidden on click#

Type: boolean

By default, the value will be false.

hide id#

Type: boolean

Whether to hide the draft ID even when the debug mode is enabled. This will automatically be set to true if final is set to true or if your draft is part of an encrypted plugin file.

high voltage only#

Type: boolean

Whether the building will connect to high voltage lines.

icon frames#

Type: Frame array

icon frames winter#

Type: Frame array

id#

Type: string

Unique identifier of the draft.

idle build time#

Type: boolean

Whether the building can get build progress through idle time.

By default, the value will be true.

index#

Type: boolean

Whether to allow the draft to be indexed by Lua methods.

By default, the value will be true unless the draft is scenario draft.

infer requirements#

Type: boolean

Whether the draft should infer requirements from drafts in the composition.

May only be used with a composition attribute.

By default, the value will be true.

influence body disposal#

Type: integer

influence commercial#

Type: integer

influence culture#

Type: integer

influence density#

Type: integer

influence education high#

Type: integer

influence education low#

Type: integer

influence fire department#

Type: integer

influence health#

Type: integer

influence industrial#

Type: integer

influence level0#

Type: integer

influence level1#

Type: integer

influence level2#

Type: integer

influence management#

Type: integer

influence nature#

Type: integer

influence noise#

Type: integer

influence park#

Type: integer

influence passenger bus#

Type: integer

influence passenger train#

Type: integer

influence police#

Type: integer

influence pollution#

Type: integer

influence preview#

Type: boolean

Whether a preview of the building's influences should be rendered.

By default, the value will be true.

influence radioactive#

Type: integer

influence religion#

Type: integer

influence residential#

Type: integer

influence sport#

Type: integer

influence traffic#

Type: integer

influence waste disposal#

Type: integer

inherit#

Type: boolean

Whether to modify a draft of the same ID by inheriting values.

level#

Type: integer

Represents wealth level of the building. Level ranges from 1 to 3.

Only supported by RCI buildings.

By default, the value will be 1.

liquid#

Type: boolean

Whether the building will conduct water like a pipe.

map color#

Type: Color

max count#

Type: integer

The maximum permitted occurrences of the building within the city.

By default, the value will be -1 which indicates no limit.

max version#

Type: integer

The maximum game version that will run the draft.

meta#

Type: Meta

min version#

Type: integer

The minimum game version required to run the draft.

min water tiles#

Type: integer

If the value is >= 0 then the building can only be built if the building area below it consists of at least this amount of water tiles.

By default, the value will be -1.

monthly price#

Type: integer

The monthly costs of this building. Negative values mean income and require privileges.

moveable#

Type: boolean

Whether the building can be moved by move building tool.

mute#

Type: boolean

Whether to suppress any errors that have occurred while loading the draft.

mute lua#

Type: boolean

needs land#

Type: boolean

If true there must be at least one land tile under the building.

If false and needs water is true then there must be no land tiles under the building.

By default, the value will be true.

needs road#

Type: boolean

If true the building will complain if there is no road connection available.

To determine road connection the road flags of nearby roads will be examined.

By default, the value will be true.

needs water#

Type: boolean

If true there must be at least one water tile under the building.

If false and needs land is true then there must be no water tiles under the building.

By default, the value will be false.

night light probability#

Type: float

not implemented#

Type: boolean

Whether the draft has to be inherited to be considered implemented. Will cause an error otherwise.

nuclear#

Type: boolean

Whether the explosion of the building will be nuclear.

By default, the value will be false.

on built fun#

Type: Fun

on click fun#

Type: Fun

on destroy fun#

Type: Fun

on event fun#

Type: Fun

once#

Type: boolean

Whether the draft should be loaded once.

What this means is that if another draft is encountered with the same ID, the game will ignore loading it rather than failing with an error message.

ordinal#

Type: integer

Position of the draft in a category. Lower ordinal value will list the draft higher. Negative values are allowed.

ordinal from#

Type: string

ID of the draft to grab ordinal from. Must be used in combination with the ordinal attribute.

override#

Type: boolean

Whether to modify a draft of the same ID by replacing values.

Rather than replacing the values, you may want to add or only change specific values of the draft. For that, refer to the inherit attribute.

pedestrian#

Type: string

ID of a pedestrian draft.

pedestrian count#

Type: integer

By default, the value will be 0.

people#

Type: integer

Unified type that provides habitants or workers depending on the RCI type.

performance#

Type: boolean

Whether the performance of the building can be adjusted. Performance impacts influences, aspects, costs and income.

By default, the value will be false.

pickable#

Type: boolean

Whether the building can be picked by picking tool.

By default, the value will be true.

power#

Type: integer

Positive values produce and negative values consume the resource.

Maximum possible value is determined by $ ext{width} imes ext{height} imes 10000$, unless you're using privileges.

power radius#

Type: integer

The maximum value is 10 unless privileged.

By default, the value will be 5.

premium#

Type: boolean

Whether the draft is premium. A premium draft will not be active in non premium versions of the game.

premium requirement#

Type: Nested requirement

Requirements that need to be fulfilled for the draft on premium platforms.

If platform is premium, this attribute will be loaded over the regular requirement attribute. On non-premium platforms, this attribute will be ignored.

premium requirements#

Type: Requirement array

Requirements that need to be fulfilled for the draft on premium platforms.

If platform is premium, this attribute will be loaded over the regular requirement attribute. On non-premium platforms, this attribute will be ignored.

preview frames#

Type: Frame array

Frames that will be used for preview in the toolbar instead of regular frames.

preview frames winter#

Type: Frame array

Frames that will be used for preview in the toolbar instead of regular frames during winter.

price#

Type: integer

The price to construct the building. If the building costs diamonds the price won't be charged.

Negative values require privileges.

price factor#

Type: float

Factor by which subsequent building prices will be multiplied by.

privileged#

Type: string

Privileged key for your draft. Allows the use of special features, which are restricted to trusted plugin creators only.

Deprecated

Due to a change in how the privilege system works, you are now recommended to use require privileges or require super privileges.

provide aspect body disposal#

Type: integer

provide aspect education high#

Type: integer

provide aspect education low#

Type: integer

provide aspect health care#

Type: integer

provide aspect waste disposal#

Type: integer

random frame#

Type: boolean

By default, the value will be true.

random fun#

Type: Fun

randomize animation#

Type: boolean

By default, the value will be false.

randomize lights#

Type: boolean

By default, the value will be true.

rci cars#

Type: integer

rebuild#

Type: boolean

removable#

Type: boolean

Whether the draft can be removed from the city by player build tools.

By default, the value will be true.

renameable#

Type: boolean

Whether the building can be renamed by the player.

By default, the value will be true.

require privileges#

Type: boolean

Whether the draft requires features such as monthly income, frame placement, etc.

Added in version 1.11.73

require scenario#

Type: string or string array

Array of scenario IDs in which this draft can be used. It will be unloaded when entering a city that is not one of these scenarios.

Privileged context is required to use this attribute as it could be used to cheat inside a scenario.

Added in version 1.12.12

require super privileges#

Type: boolean

Whether the draft requires features that are restricted to official game content such as DSA.

Added in version 1.11.73

requirement#

Type: Nested requirement

Requirements that need to be fulfilled for the draft.

requirements#

Type: Requirement array

Requirements that need to be fulfilled for the draft.

road flags airport#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags all#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags bus#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags emergency#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags high speed#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags lkw#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags maglev#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags military#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags monorail#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags native pedestrian#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags none#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags normal#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags pedestrian#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags pkw#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags snow plow#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags subway#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags tractor#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags train#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags tram#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user0#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user1#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user2#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user3#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user4#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user5#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user6#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user7#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

road flags user8#

Type: boolean

For buildings that need road these flags will be used to determine whether a given neighbouring road counts as a connection.

At least one of the given flags must match with the flags of the neighbouring road.

rotation aware#

Type: boolean

If true the building will dedicate frames for use in rotation.

By default, the value will be true, if the draft is alignable and has at least 4 frames or it is a composition building.

script#

Type: string

Used to attach a script to the current draft.

Supported modes of operation#

  • Loading the script from file:

    {
      "script": "script.lua"
    }
    

  • Declaring the script inline:

    {
      "script": "function script:lateInit() Debug.toast('Late init called') end"
    }
    

  • Using a helper script #LuaWrapper for Real time script editing:

    {
      "script": "#LuaWrapper",
      "meta": {
        "luawrapper": {
          "script": "script.lua",
          "dev": true
        }
      }
    }
    

scripts#

Type: string array

Like script, but for multiple scripts.

searchable#

Type: boolean

Whether the draft can be searched in the toolbar.

selectable frames#

Type: boolean

Whether the user can manually select a frame upon building.

By default, the value will be true, if frame alignment attribute is false.

separator#

Type: boolean

Whether to separate the draft from others in a category.

service car tags#

Type: string array

Array of tags.

service cars#

Type: integer

ship count#

Type: integer

By default, the value will be equal to building's width.

ship radius#

Type: integer

By default, the value will be 128.

ships#

Type: string array

Array of ship draft IDs.

show new marker#

Type: boolean

Whether the draft will show a new marker in the toolbar.

smoke#

Type: Smoke array

sound click#

Type: obj

This sound will be played when clicked on the draft in default mode.

Example#

One may refer to a file locally:

{
  "sound click": {
    "file": "path to file.mp3"
  }
}

Or a game resource:

{
  "sound click": {
    "res": "SOUND_CHRISTMAS_HOHOO"
  }
}

spawn#

Type: Legacy spawner

Used for spawning draft objects on the map during generation.

Deprecated

Following the biome update this method of building spawning is considered obsolete. Use the new biomes attribute instead.

strict lua#

Type: boolean

super conductive#

Type: boolean

Whether the building will connect to normal power lines and high voltage ones.

supports shoreline#

Type: boolean

supports slope#

Type: boolean

supports terrain#

Type: boolean

template#

Type: string

ID of the template draft to inherit the implementation from.

template prefix#

Type: string

Has effect only when using templates.

templates#

Type: string array

Like template, but accepts multiple IDs.

text#

Type: string

Description, usually of the building.

text id#

Type: string

title#

Type: string

Title, usually of the building.

title id#

Type: string

type#

Type: string

A special attribute that determines what kind of attributes and abilities a draft has.

upgrades#

Type: Upgrade array

use fence#

Type: string array

Array of fence draft IDs. A random fence will be chosen to be placed around a building.

By default, the behaviour is disabled.

use fire frames#

Type: boolean

Whether the building will draw the usual fire when burning.

Can be disabled to draw a custom fire animation.

By default, the value will be true.

volatile#

Type: boolean

Not in use.

By default, the value will be false.

water#

Type: integer

Positive values produce and negative values consume the resource.

Maximum possible value is determined by $ ext{width} imes ext{height} imes 10000$, unless you're using privileges.

water border frames#

Type: Frame array

water border frames winter#

Type: Frame array

water waste#

Type: float

Positive values indicate that the building causes water pollution. Negative values reduce water pollution.

width#

Type: integer

Must be of equal value to the height attribute unless it's a composition.

workers#

Type: integer

For commercial and industrial buildings: The amount of workers.

zone#

Type: string

ID of the zone draft to use.