Block

9/3/2025, 8:50:36 AM

Block

Block

extends UnlockableContent

field

type

default

notes

hasItems

boolean

false

If true, buildings have an ItemModule.

hasLiquids

boolean

false

If true, buildings have a LiquidModule.

hasPower

boolean

false

If true, buildings have a PowerModule.

outputsLiquid

boolean

false

Flag for determining whether this block outputs liquid somewhere; used for connections.

consumesPower

boolean

true

Used by certain power blocks (nodes) to flag as non-consuming of power. True by default, even if this block has no power.

outputsPower

boolean

false

If true, this block is a generator that can produce power.

connectedPower

boolean

true

If false, power nodes cannot connect to this block.

conductivePower

boolean

false

If true, this block can conduct power like a cable.

outputsPayload

boolean

false

If true, this block can output payloads; affects blending.

acceptsUnitPayloads

boolean

false

If true, this block can input payloads; affects unit payload enter behavior.

acceptsPayload

boolean

false

If true, payloads will attempt to move into this block.

acceptsItems

boolean

false

Visual flag use for blending of certain transportation blocks.

separateItemCapacity

boolean

false

If true, all item capacities of this block are separate instead of pooled as one number.

itemCapacity

int

10

maximum items this block can carry (usually, this is per-type of item)

liquidCapacity

float

10.0

maximum total liquids this block can carry if hasLiquids = true

liquidPressure

float

1.0

higher numbers increase liquid output speed; TODO remove and replace with better liquids system

outputFacing

boolean

true

If true, this block outputs to its facing direction, when applicable. Used for blending calculations.

noSideBlend

boolean

false

if true, this block does not accept input from the sides (used for armored conveyors)

displayFlow

boolean

true

whether to display flow rate

inEditor

boolean

true

whether this block is visible in the editor

editorConfigurable

boolean

false

if true, {@link #buildEditorConfig(Table)} will be called for configuring this block in the editor.

lastConfig

Object

null

the last configuration value applied to this block.

saveConfig

boolean

false

whether to save the last config and apply it to newly placed blocks

copyConfig

boolean

true

whether to allow copying the config through middle click

clearOnDoubleTap

boolean

false

if true, double-tapping this configurable block clears configuration.

update

boolean

false

whether this block has a tile entity that updates

destructible

boolean

false

whether this block has health and can be destroyed

unloadable

boolean

true

whether unloaders work on this block

isDuct

boolean

false

if true, this block acts a duct and will connect to armored ducts from the side.

allowResupply

boolean

false

whether units can resupply by taking items from this block

solid

boolean

false

whether this is solid

solidifes

boolean

false

whether this block CAN be solid.

teamPassable

boolean

false

if true, this counts as a non-solid block to this team.

underBullets

boolean

false

if true, this block cannot be hit by bullets unless explicitly targeted.

rotate

boolean

false

whether this is rotatable

rotateDraw

boolean

true

if rotate is true and this is false, the region won't rotate when drawing

lockRotation

boolean

true

if rotate = false and this is true, rotation will be locked at 0 when placing (default); advanced use only

invertFlip

boolean

false

if true, schematic flips with this block are inverted.

variants

int

0

number of different variant regions to use

drawArrow

boolean

true

whether to draw a rotation arrow - this does not apply to lines of blocks

drawTeamOverlay

boolean

true

whether to draw the team corner by default

saveData

boolean

false

for static blocks only: if true, tile data() is saved in world data.

breakable

boolean

false

whether you can break this with rightclick

unitMoveBreakable

boolean

false

if true, this block will be broken by certain units stepping/moving over it

rebuildable

boolean

true

whether to add this block to brokenblocks

privileged

boolean

false

if true, this logic-related block can only be used with privileged processors (or is one itself)

requiresWater

boolean

false

whether this block can only be placed on water

placeableLiquid

boolean

false

whether this block can be placed on any liquids, anywhere

placeablePlayer

boolean

true

whether this block can be placed directly by the player via PlacementFragment

placeableOn

boolean

true

whether this floor can be placed on.

insulated

boolean

false

whether this block has insulating properties.

squareSprite

boolean

true

whether the sprite is a full square.

absorbLasers

boolean

false

whether this block absorbs laser attacks.

enableDrawStatus

boolean

true

if false, the status is never drawn

drawDisabled

boolean

true

whether to draw disabled status

autoResetEnabled

boolean

true

whether to automatically reset enabled status after a logic block has not interacted for a while.

noUpdateDisabled

boolean

false

if true, the block stops updating when disabled

updateInUnits

boolean

true

if true, this block updates when it's a payload in a unit.

alwaysUpdateInUnits

boolean

false

if true, this block updates in payloads in units regardless of the experimental game rule

canPickup

boolean

true

if true, this block can be picked up in payloads

deconstructDropAllLiquid

boolean

false

if false, only incinerable liquids are dropped when deconstructing; otherwise, all liquids are dropped.

useColor

boolean

true

Whether to use this block's color in the minimap. Only used for overlays.

itemDrop

Item

null

item that drops from this block, used for drills

playerUnmineable

boolean

false

if true, this block cannot be mined by players. useful for annoying things like sand.

attributes

Attributes

new Attributes()

Array of affinities to certain things.

scaledHealth

float

-1.0

Health per square tile that this block occupies; essentially, this is multiplied by size * size. Overridden if health is > 0. If <0, the default is 40.

health

int

-1

building health; -1 to use scaledHealth

armor

float

0.0

damage absorption, similar to unit armor

baseExplosiveness

float

0.0

base block explosiveness

explosivenessScale

float

1.0

scaling of explosiveness based on items/liquids

flammabilityScale

float

1.0

scaling of explosion flammability based on items/liquids

baseShake

float

3.0

base value for screen shake upon destruction

destroyBullet

BulletType

null

bullet that this block spawns when destroyed

destroyBulletSameTeam

boolean

false

if true, destroyBullet is spawned on the block's team instead of Derelict team

lightLiquid

Liquid

null

liquid used for lighting

drawCracks

boolean

true

whether cracks are drawn when this block is damaged

createRubble

boolean

true

whether rubble is created when this block is destroyed

floating

boolean

false

whether this block can be placed on edges of liquids.

size

int

1

multiblock size

offset

float

0.0

multiblock offset

sizeOffset

int

0

offset for iteration (internal use only)

clipSize

float

-1.0

Clipping size of this block. Should be as large as the block will draw.

lightClipSize

float

0.0

Clipping size for lights only.

placeOverlapRange

float

50.0

When placeRangeCheck is enabled, this is the range checked for enemy blocks.

crushDamageMultiplier

float

1.0

Multiplier of damage dealt to this block by tanks. Does not apply to crawlers.

timers

int

1

Max of timers used.

cacheLayer

CacheLayer

normal

Cache layer. Only used for 'cached' rendering.

fillsTile

boolean

true

Special flag; if false, floor will be drawn under this block even if it is cached.

forceDark

boolean

false

If true, this block can be covered by darkness / fog even if synthetic.

alwaysReplace

boolean

false

whether this block can be replaced in all cases

replaceable

boolean

true

if false, this block can never be replaced.

group

BlockGroup

none

The block group. Unless {@link #canReplace} is overridden, blocks in the same group can replace each other.

flags

EnumSet

of()

List of block flags. Used for AI indexing.

priority

float

0.0

Targeting priority of this block, as seen by enemies.

unitCapModifier

int

0

How much this block affects the unit cap by. The block flags must contain unitModifier in order for this to work.

configurable

boolean

false

Whether the block can be tapped and selected to configure.

ignoreResizeConfig

boolean

false

If true, this block does not have pointConfig with a transform called on map resize.

commandable

boolean

false

If true, this building can be selected like a unit when commanding.

allowConfigInventory

boolean

true

If true, the building inventory can be shown with the config.

selectionRows

int

5

Defines how large selection menus, such as that of sorters, should be.

selectionColumns

int

4

Defines how large selection menus, such as that of sorters, should be.

logicConfigurable

boolean

false

If true, this block can be configured by logic.

consumesTap

boolean

false

Whether this block consumes touchDown events when tapped.

drawLiquidLight

boolean

true

Whether to draw the glow of the liquid for this block, if it has one.

envRequired

int

0

Environmental flags that are all required for this block to function. 0 = any environment

envEnabled

int

1

The environment flags that this block can function in. If the env matches any of these, it will be enabled.

envDisabled

int

0

The environment flags that this block cannot function in. If the env matches any of these, it will be disabled.

sync

boolean

false

Whether to periodically sync this block across the network.

conveyorPlacement

boolean

false

Whether this block uses conveyor-type placement mode.

allowDiagonal

boolean

true

If false, diagonal placement (ctrl) for this block is not allowed.

swapDiagonalPlacement

boolean

false

Whether to swap the diagonal placement modes.

allowRectanglePlacement

boolean

false

Whether to allow rectangular placement, as opposed to a line.

schematicPriority

int

0

Build queue priority in schematics.

mapColor

Color

000000ff

The color of this block when displayed on the minimap or map preview. Do not set manually! This is overridden when loading for most blocks.

hasColor

boolean

false

Whether this block has a minimap color.

targetable

boolean

true

Whether units target this block.

attacks

boolean

false

If true, this block attacks and is considered a turret in the indexer. Building must implement Ranged.

suppressable

boolean

false

If true, this block is mending-related and can be suppressed with special units/missiles.

canOverdrive

boolean

true

Whether the overdrive core has any effect on this block.

outlineColor

Color

404049ff

Outlined icon color.

outlineIcon

boolean

false

Whether any icon region has an outline added.

outlineRadius

int

4

Outline icon radius.

outlinedIcon

int

-1

Which of the icon regions gets the outline added. Uses last icon if <= 0.

hasShadow

boolean

true

Whether this block has a shadow under it.

customShadow

boolean

false

If true, a custom shadow (name-shadow) is drawn under this block.

placePitchChange

boolean

true

Should the sound made when this block is built change in pitch.

breakPitchChange

boolean

true

Should the sound made when this block is deconstructed change in pitch.

placeSound

Sound

place

Sound made when this block is built.

breakSound

Sound

breaks

Sound made when this block is deconstructed.

destroySound

Sound

boom

Sounds made when this block is destroyed.

destroyPitchMin

float

1.0

Range of destroy sound.

destroyPitchMax

float

1.0

Range of destroy sound.

albedo

float

0.0

How reflective this block is.

lightColor

Color

ffffffff

Environmental passive light color.

emitLight

boolean

false

If true, drawLight() will be called for this block.

lightRadius

float

60.0

Radius of the light emitted by this block.

fogRadius

int

-1

How much fog this block uncovers, in tiles. Cannot be dynamic. <= 0 to disable.

ambientSound

Sound

none

The sound that this block makes while idle. Uses one sound loop for all blocks.

ambientSoundVolume

float

0.05

Idle sound base volume.

requirements

ItemStack[]

[]

Cost of constructing this block.

category

Category

distribution

Category in place menu.

buildTime

float

-1.0

Time to build this block in ticks. If this value is <0, it is calculated dynamically.

buildVisibility

BuildVisibility

hidden

Whether this block is visible and can currently be built.

buildCostMultiplier

float

1.0

Multiplier for speed of building this block.

deconstructThreshold

float

0.0

Build completion at which deconstruction finishes.

instantDeconstruct

boolean

false

If true, this block deconstructs immediately. Instant deconstruction implies no resource refund.

instantBuild

boolean

false

If true, this block constructs immediately. This implies no resource requirement, and ignores configs - do not use, this is for performance only!

ignoreBuildDarkness

boolean

false

If true, this block can be placed even in "dark" areas. Only used for editor static walls.

placeEffect

Effect

placeBlock

Effect for placing the block. Passes size as rotation.

breakEffect

Effect

breakBlock

Effect for breaking the block. Passes size as rotation.

destroyEffect

Effect

dynamicExplosion

Effect for destroying the block.

researchCostMultiplier

float

1.0

Multiplier for cost of research in tech tree.

researchCostMultipliers

ObjectFloatMap

new ObjectFloatMap<>()

Cost multipliers per-item.

researchCost

ItemStack[]

null

Override for research cost. Uses multipliers above and building requirements if not set.

forceTeam

Team

null

If set, all blocks will be forced to be this team.

instantTransfer

boolean

false

Whether this block has instant transfer.

quickRotate

boolean

true

Whether you can rotate this block after it is placed.

allowDerelictRepair

boolean

true

If true, this derelict block can be repair by clicking it.

subclass

Class<?>

class mindustry.world.Block

Main subclass. Non-anonymous.

selectScroll

float

0.0

Scroll position for certain blocks.

buildType

Prov

null

Building that is created for this block. Initialized in init() via reflection. Set manually if modded.

configurations

ObjectMap<Class<?>,Cons2>

new ObjectMap<>()

Configuration handlers by type.

itemFilter

boolean[]

[]

Consumption filters.

liquidFilter

boolean[]

[]

Consumption filters.

consumers

Consume[]

[]

Array of consumers used by this block. Only populated after init().

optionalConsumers

Consume[]

[]

Array of consumers used by this block. Only populated after init().

nonOptionalConsumers

Consume[]

[]

Array of consumers used by this block. Only populated after init().

updateConsumers

Consume[]

[]

Array of consumers used by this block. Only populated after init().

hasConsumers

boolean

false

Set to true if this block has any consumers in its array.

consPower

ConsumePower

null

The single power consumer, if applicable.

regionRotated1

int

-1

Regions indexes from icons() that are rotated. If either of these is not -1, other regions won't be rotated in ConstructBlocks.

regionRotated2

int

-1

Regions indexes from icons() that are rotated. If either of these is not -1, other regions won't be rotated in ConstructBlocks.

region

TextureRegion

null

customShadowRegion

TextureRegion

null

teamRegion

TextureRegion

null

teamRegions

TextureRegion[]

null

variantRegions

TextureRegion[]

null

variantShadowRegions

TextureRegion[]

null

dumpTime

int

5

How often to try dumping items in ticks, e.g. 5 = 12 times/sec