Table of Contents

Namespace Vintagestory.GameContent

Classes

AlloyRecipe

This is used to define what metals can be mixed together to create another type of metal inside of a crucible. Open in GitHub

AttributeAttachableToEntity

A set of properties that make a collectible attachable to an entity Open in GitHub

BarrelOutputStack

Defines an output for use in a BarrelRecipe. This object takes most of its properties from the JsonItemStack class. Open in GitHub

BarrelRecipe

Creates a recipe for use inside a barrel. Primarily used to craft with liquids. Open in GitHub

BarrelRecipeIngredient

Defines an ingredient for use in a BarrelRecipe. Open in GitHub

BEBehaviorAnimatable

Makes block animatable. This behavior has no properties. Defined with the "Animatable" code. Open in GitHub

BEBehaviorAttractsLightning

Redirects nearby lightning strikes to this block if it is exposed to the sky and is higher than nearby blocks. Defined with the "AttractsLightning" code. Open in GitHub

BEBehaviorAttractsLightning.ConfigurationProperties

Properties of block that redirects lightning strikes. Used by BEBehaviorAttractsLightning.

BEBehaviorBurning

Makes this block a source of fire that can ignite nearby blocks and entities. This behavior has no properties. Defined with the "Burning" code. Open in GitHub

BEBehaviorDoor

A block entity behavior for a door. Requires BlockBehaviorDoor on a block to work. Defined with the "Door" code. Open in GitHub

BEBehaviorDoorBarLock

A block entity behavior for a locked door. Requires BlockBehaviorDoor on a block to work. Defined with the "DoorBarLock" code. Open in GitHub

BEBehaviorElevatorControl

Used in combination with the BlockBehaviorElevatorControl to create an elevator. Defined with the "ElevatorControl" code, and has no properties. Open in GitHub

BEBehaviorFirepitAmbient

Makes this block play ambient firepit sounds or music depending on specific conditions. Defined with the "FirepitAmbient" code, and has no properties. Open in GitHub

BEBehaviorTemperatureSensitive

For block entities that need to react to external influences that affect temperature or burn characteristics/ Defined with the "TemperatureSensitive" code, and has no properties. Open in GitHub

BEBehaviorTrapDoor

A block entity behavior for a trapdoor. Requires BlockBehaviorTrapDoor on a block to work. Defined with the "TrapDoor" code. Open in GitHub

BlockBehaviorBreakIfFloating

Forces the Block to drop as an item when surrounded by air blocks. It will override drops returned by the Block when this happens. Uses the code "BreakIfFloating". This behavior doesn't use any properties. Open in GitHub

BlockBehaviorBreakSnowFirst

A simple block behavior that breaks a snow cover first, before breaking the block. Uses the code "BreakSnowFirst". This behavior has no properties. Open in GitHub

BlockBehaviorCanAttach

Allows some other blocks, such as torches, to be attached onto specific sides of this block. Uses the code "CanAttach". Open in GitHub

BlockBehaviorCanIgnite

Used if the attached block can ignite other blocks with Shift + Right Click. This behavior uses the code "CanIgnite", and has no properties. Open in GitHub

BlockBehaviorChimney

If this block is placed directly above a smoke emitter (such as a firepit or pit kiln), smoke particles will be emitted. Uses the code "chimney" and has no properties. Open in GitHub

BlockBehaviorContainer

Specifies that this block works as a container. Note that it requires a block entity class which implements BlockEntityOpenableContainer. Used with the code "Container". This behavior does not use any properties. Open in GitHub

BlockBehaviorCreatureContainer

Allows a creature to be contained inside of this block, as well as catching and releasing the entity. Note that this behavior is built around use with the reed chest, and may have unexpected results with other blocks. This behavior uses the code "CreatureContainer", and has no properties. Open in GitHub

BlockBehaviorDecor

Allows this block to be placed on the side of another block, as a decorational shape/texture. Uses the code "decor". Open in GitHub

BlockBehaviorDoor

A block behavior for a door. Also requires the "door" block entity behavior type on a block to work. Defined with the "Door" code. Open in GitHub

BlockBehaviorDropNotSnowCovered

Drops the non-snow-covered block, when the snow covered version one is destroyed. This behavior uses the "DropNotSnowCovered" code, and has no properties. Open in GitHub

BlockBehaviorElevatorControl

Used in combination with the "BEBehaviorElevatorControl" to create an elevator. Uses the code "ElevatorControl", and has no properties. Open in GitHub

BlockBehaviorExchangeOnInteract

Allows a block to swap between a set of states on activation. Note that this behavior has some small hardcoding for legacy trapdoors. This behavior is used with the code "ExchangeOnInteract". Open in GitHub

BlockBehaviorFiniteSpreadingLiquid

Used to create a liquid which distrubutes itself over an area, and has interaction with other liquids. Uses the "FiniteSpreadingLiquid" code. Open in GitHub

BlockBehaviorGiveItemPerPlayer

Passes functions through to the Vintagestory.GameContent.BEBehaviorGiveItemPerPlayer block entity behavior. Therefore, requires that. Uses the "GiveItemPerPlayer" code. Open in GitHub

BlockBehaviorGroundUnplaceable

Disallows standard placement for this block on up faces only. If a previous listed behavior allows a special placement method (see Vintagestory.GameContent.CollectibleBehaviorGroundStorable), then that method will be allowed. Uses the "unplaceable" code. This behavior has no properties. Open in GitHub

BlockBehaviorHarvestable

Allows a block to be harvested with the right mouse button for set items. Uses the code "harvestable". Open in GitHub

BlockBehaviorHeatSource

Allows this block to work as a heat source for entities. BlockEntities for a block with this behavior may also define their own custom heat strength. Uses the code "HeatSource". Open in GitHub

BlockBehaviorHorizontalAttachable

Forces a block to only allow placement on the side of another block. Requires use of the "horizontalorientation" variant group. Uses the code "HorizontalAttachable". Open in GitHub

BlockBehaviorHorizontalOrientable

Allows a block to automatically rotate between the four horizontal directions based on placement angle. Requires use of the "horizontalorientation" variant group. Uses the "HorizontalOrientable" code. Open in GitHub

BlockBehaviorJonasBoilerDoor

Provides interaction for the JonasBoilerDoor block entity behavior. Uses the "JonasBoilerDoor" code. This behavior has no properties. Open in GitHub

BlockBehaviorJonasGasifier

Passes functions to the Vintagestory.GameContent.BEBehaviorJonasGasifier block entity behavior, and therefore requires that. Uses the code "JonasGasifier". This behavior has no properties. Open in GitHub

BlockBehaviorJonasHydraulicPump

Passes functions to the Vintagestory.GameContent.BEBehaviorJonasHydraulicPump block entity behavior, and therefore requires that. Uses the code "JonasHydraulicPump". This behavior has no properties. Open in GitHub

BlockBehaviorLadder

Used to control ladder behavior, including horizontal orientation, placement, collection. Note that this does not control how entities react to ladders (see "climbable" in blocktype). Requires use of the 'horizontalorientation' variants. Uses the code "Ladder". Open in GitHub

BlockBehaviorLockable

Allows a block to be locked by a player with a padlock, preventing any interaction from any other players. Uses the "lockable" code. This behavior has no properties. Open in GitHub

BlockBehaviorMilkingContainer

Allows a block to be used as a container for milking an entity. Must be on a block that has the "BlockLiquidContainerBase" class. Uses the code "MilkingContainer", and has no properties. Open in GitHub

BlockBehaviorMultiblock

Turns this block into a multiblock, allowing it to be larger than a single block. By default, all blocks will have the same properties. If you need different properties or functionality for each block section, you will need to use a new block class. Uses the code "Multiblock". Open in GitHub

BlockBehaviorMyceliumHost

Allows a block to have mushrooms naturally spawn on it. Uses the code "MyceliumHost", and has no properties. Open in GitHub

BlockBehaviorNWOrientable

Automatically swaps between 'North/South' and 'West/East' variants based on placement rotation. Requires an "orientation" or "side" variant with the codes "ns" and "we". Uses the code "NWOrientable", and has no properties. Open in GitHub

BlockBehaviorOmniAttachable

Allows a block to be attached to any face, including vertical faces. Requires states from "abstract/horizontalorientation", as well as additional "up" and "down" states. Uses the code "OmniAttachable". Open in GitHub

BlockBehaviorPillar

Used to rotate a block that has a 'top' face, such as a wooden log. Requires a "rotation" variant group with "ud", "ns", "we" states. Uses the "pillar" code. Open in GitHub

BlockBehaviorPushEventOnBlockBroken

Publishes the BlockPos when a Block is broken with the given event name. Likely used in tandem with code mods. Uses the "PushEventOnBlockBroken" code. Open in GitHub

BlockBehaviorRainDrip

Makes a block emit rain particles during or after rainy weather. Uses the "RainDrip" code. This behavior has no properties. Open in GitHub

BlockBehaviorReinforcable

Allows a block to be reinforced, which protects against it being broken as quickly. Appropriate blocks are automatically given this behavior. This behavior is not added through the normal property, but instead a custom attribute. This behavior has no properties. You can add the "reinforcable" attribute to force an object to be reinforcable. Open in GitHub

BlockBehaviorReparable

Blocks which can be repaired using glue. If not repaired, they will shatter (dropping nothing) when broken. Requires use of the ShapeFromAttributes block entity behavior. Uses the code "Reparable". Open in GitHub

BlockBehaviorRightClickPickup

Allows a block to be picked up with a right click. Uses the code "RightClickPickup". Open in GitHub

BlockBehaviorRopeTieable

Allows rope to be tied to this block. This behavior does not have any specific JSON properties. This block behavior uses the code "RopeTieable". Open in GitHub

BlockBehaviorSlab

Unused block behavior for slab placement. Consider using BlockBehaviorOmniRotatable instead. Uses the "slab" code. This behavior has no properties. Open in GitHub

BlockBehaviorSneakPlacing

Forces a block to only allow to be placed when the player is sneaking. Uses the code "SneakPlacing". This behavior has no properties. Open in GitHub

BlockBehaviorSnowballable

Allows a block to have snowballs taken from it. Many blocks automatically receive this behavior if they have a snow layer or the SnowballableDecrementedBlockCode attribute. Uses the code 'Snowballable'. Open in GitHub

BlockBehaviorSteaming

Makes a block emit steam particles, and also marks some water blocks as 'boiling'. Uses the code "Steaming". This behavior has no properties. Open in GitHub

BlockBehaviorTransformBreak

When a block with this behavior is broken. it will turn into another specified block instead of air. This block behavior uses the code "TransformBreak". Open in GitHub

BlockBehaviorTrapDoor

Marks a block as an animated trapdoor. Requires the use of the BEBehaviorTrapDoor block entity behavior. Uses the "TrapDoor" code. Open in GitHub

BlockBehaviorUnplaceable

Disallows standard placement for this block. If a previous listed behavior allows a special placement method (see Vintagestory.GameContent.CollectibleBehaviorGroundStorable), then that method will be allowed. Uses the "unplaceable" code. This behavior has no properties. Open in GitHub

BlockBehaviorUnstable

Only allows a block to exist if it is attached to another block. Uses the code "unstable". Open in GitHub

BlockBehaviorUnstableFalling

Spawns an EntityBlockFalling when the user places a block that has air underneath it or if a neighbor block is removed and causes air to be underneath it. Also has optional functionality to prevent a block being placed if it is unstable. Uses the code "UnstableFalling". Open in GitHub

BlockBehaviorUnstableRock

Makes a block potentially unstable, but can be held up using support beams. This behavior will only function if the "caveIns" world config is set to true. Uses the code "UnstableRock". Open in GitHub

BlockBehaviorWrenchOrientable

Allows a block to cycle through variants when using a wrench. Uses the code "WrenchOrientable". Open in GitHub

BlockEntityBehaviorCoverable

Allows this block to be covered by cubic blocks or blocks with specific attributes. This behavior has no properties. Requires BlockBehaviorCoverable. Defined with the "Coverable" code. Open in GitHub

ClayFormingRecipe

Creates a recipe that can be created using clay. This class takes all of its properties from the LayeredVoxelRecipe<T> class. Open in GitHub

CookingRecipe

Defines a recipe to be made using a cooking pot. Creating a new recipe for a cooking pot will automatically register the new meal item, unless using CooksInto. Open in GitHub

CookingRecipeIngredient

An ingredient for a CookingRecipe. Note that each ingredient can have multiple valid itemstacks that satisfy the ingredient. Open in GitHub

CookingRecipeStack

An itemstack specific for a CookingRecipeIngredient. Most properties are extended from JsonItemStack. Open in GitHub

EntityBehaviorAimingAccuracy

Affects accuracy of ranged weapon that entity is currently using. This class has no further properties.
Uses the "aimingaccuracy" code Open in GitHub

EntityBehaviorAntlerGrowth

Grow antlers on entity and drop them seasonally.
Uses the "antlergrowth" code Open in GitHub

EntityBehaviorAttachable

Allows to attach specific items to entity.
Requires EntityBehaviorSelectionBoxes
Uses the "attachable" code Open in GitHub

EntityBehaviorBodyTemperature

Makes entity gradually receive frost damage when outside temperature is below its body temperature.
Uses the "bodytemperature" code Open in GitHub

EntityBehaviorBoss

Stores some properties of boss for use in other behaviors.
Uses the "boss" code Open in GitHub

EntityBehaviorBreathe

Makes entity receive damage from suffocation upon depleting its oxygen.
Uses the "breathe" code Open in GitHub

EntityBehaviorCollectEntities

Allows entity to pick dropped items up. This class has no further properties.
Uses the "collectitems" code Open in GitHub

EntityBehaviorCommandable

Allows the entity to be commanded by its owner to sit or follow them. This class has no further properties.
Uses the "commandable" code Open in GitHub

EntityBehaviorContainer

A type of entity behavior that can be used to hold an inventory. This is not a usable entity behavior, but other entity behaviors may used this. Open in GitHub

EntityBehaviorControlledPhysics

Controlled physics system for entities.
Uses the "controlledphysics" code Open in GitHub

EntityBehaviorDeadDecay

Decomposes dead entity.
Uses the "deaddecay" code Open in GitHub

EntityBehaviorDespawn

Despawns entity on certain conditions
Uses the "despawn" code. Open in GitHub

EntityBehaviorDrunkTyping

Turns text written by intoxicated player(s) into a gibberish. This class has no further properties.
Uses the "drunktyping" code Open in GitHub

EntityBehaviorEllipsoidalRepulseAgents

Allows the entity to be pushed by or push other entities using an ellipsoidal repulsion area.
Uses the "ellipsoidalrepulseagents" code Open in GitHub

EntityBehaviorEntityStateTags

Updates dynamically assigned entity tags that have 'state-' prefix.
Uses the "entitystatetags" code Open in GitHub

EntityBehaviorExtraSkinnable

Used by the player entity to determine its customization options.
Requires EntityBehaviorTexturedClothing.
Uses the "extraskinnable" code Open in GitHub

EntityBehaviorFloatUpWhenStuck

Makes entity float way up to the surface if it is stuck in blocks. Requires shape element named "Center" to work correctly.
Uses the "floatupwhenstuck" code Open in GitHub

EntityBehaviorGait

Allows to define gaits of an entity.
Uses the "gait" code Open in GitHub

EntityBehaviorGrow

Makes entity grow to the adult version.
Uses the "grow" code Open in GitHub

EntityBehaviorHarvestable

Makes entity harvestable upon its death.
Uses the "harvestable" code Open in GitHub

EntityBehaviorHealth

Adds health calculations to entity so that it can receive damage, die, get revived and get healed.
Uses the "health" code Open in GitHub

EntityBehaviorHideWaterSurface

Hides water surface within shape. Useful for boats.
Uses the "hidewatersurface" code Open in GitHub

EntityBehaviorHunger

Adds hunger to entity. Allows it to eat and die from starvation.
Uses the "hunger" code Open in GitHub

EntityBehaviorIdleAnimations

Plays random animation from predefined list of idle animations when entity isn't moving or mounted on another entity.
Uses the "idleanimations" code Open in GitHub

EntityBehaviorMilkable

Makes entity produce milk and so that it can be milked with liquid container. Requires the use of the EntityBehaviorMultiply, Vintagestory.GameContent.EntityBehaviorEmotionStates and Vintagestory.GameContent.EntityBehaviorTaskAI entity behaviors.
Uses the "milkable" code Open in GitHub

EntityBehaviorMortallyWoundable

Allows entity to enter mortally wounded state upon depleting a set portion of its health. Makes creature immobile and unable to regenerate health. Can be recovered when healed by a player.
Uses the "mortallywoundable" code Open in GitHub

EntityBehaviorMouthInventory

Adds one-slot inventory and displays the stored item on the entity.
Uses the "mouthinventory" code Open in GitHub

EntityBehaviorMultiply

Allows an entity to get pregnant and give birth.
Uses the "multiply" code Open in GitHub

EntityBehaviorMultiplyBase

Common code for egg-laying and live births: this is all connected with food saturation and cooldowns.
This behavior will not make entities have offspring. You will want to use a behavior that extends from this (See EntityBehaviorMultiply).
Uses the "multiplybase" code Open in GitHub

EntityBehaviorNameTag

Displays name above entity.
Uses the "nametag" code Open in GitHub

EntityBehaviorOpenableContainer

Adds inventory to entity that is opened upon interacting with it.
Uses the "openablecontainer" code Open in GitHub

EntityBehaviorPettable

Allows entity to be petted.
Uses the "pettable" code Open in GitHub

EntityBehaviorPlaceBlock

Allows an entity to randomly place blocks nearby over time.
Uses the "placeblock" code
Currently not used. Open in GitHub

EntityBehaviorPlayerInventory

Implements the inventory of player and rendering of the clothing and armor the player is currently wearing.
Also handles dropping items/armor on death.
Uses the "playerinventory" code Open in GitHub

EntityBehaviorPlayerPhysics

Client-side player physics. This class has no further properties.
Uses the "playerphysics" code Open in GitHub

EntityBehaviorPlayerRevivable

Allows a player to be revived for a short period (30 in-game minutes by default) after their health is fully depleted, when another player interacts with them using a collectible that has the BehaviorHealingItem behavior.
Uses the "playerrevivable" code Open in GitHub

EntityBehaviorRepulseAgents

Allows the entity to be pushed by or push other entities using a spherical/cylindrical repulsion area.
Uses the "repulseagents" code Open in GitHub

EntityBehaviorReviveOnDeath

Revives the entity a period of time after its death.
Uses the "reviveondeath" code Open in GitHub

EntityBehaviorRideable

Allows to ride an entity.
Requires EntityBehaviorSelectionBoxes, EntityBehaviorGait, Vintagestory.GameContent.EntityBehaviorTaskAI and optionally EntityBehaviorAttachable.
Uses the "rideable" code Open in GitHub

EntityBehaviorRideableAccessories

Allows to attach specific items to entity.
Requires EntityBehaviorSelectionBoxes
If EntityBehaviorRideable is present, requires two attached items with isSaddle and isBridle attributes for entity to be ridden.
Uses the "rideableaccessories" code Open in GitHub

EntityBehaviorRipHarvestable

Allows an entity to be harvested by attacking it with weapon that has "ripHarvest" attribute. Requires EntityBehaviorHarvestable. This class has no further properties.
Uses the "ripharvestable" code Open in GitHub

EntityBehaviorRopeTieable

Allows entity to be tied with a rope.
Uses the "ropetieable" code Open in GitHub

EntityBehaviorSelectionBoxes

Allows to define interactable hitboxes directly from entity shape elements.
Uses the "selectionboxes" code Open in GitHub

EntityBehaviorSemiTamed

Causes an entity to not flee by default when near a player. Open in GitHub

EntityBehaviorTexturedClothing

This allows an entity to have a clothing inventory that renders on top of the entity. Open in GitHub

EntityBehaviorTiredness

Allows entity to rest.
Uses the "tiredness" code Open in GitHub

EntityBehaviorWritingSurface

Adds writeable surface to entity.
Uses the "writingsurface" code Open in GitHub

GaitMeta

Controls how a gait should be used. Also uses properties from AnimationMetaData Open in GitHub

KnappingRecipe

Defines a stone/flint knapping recipe. Uses all properties from LayeredVoxelRecipe<T>, however always uses a single layer. Open in GitHub

MetalAlloyIngredient

Defines an ingredient for a AlloyRecipe recipe. Open in GitHub

SkinnablePart

A part that is applied to player's shape, voice or textures during customization Open in GitHub

SkinnablePartVariant

A variant of skin part Open in GitHub

SmithingRecipe

Defines a smithing recipe, to be created on an anvil. Uses a total of 6 layers, and gets its properties from LayeredVoxelRecipe<T>. Open in GitHub

StepParentElementTo

Specifies a parent shape element to attach model to.
Optionally, you can also define a custom transform that is applied relative to the parent element Open in GitHub

TextAreaConfig

Font settings for signs and other writeable surfaces Open in GitHub

WearableSlotConfig

An entity can provide seats and slots
A slot however if filled with a chair can also provide a seat
Or a slot can also be configured to be usable as a seat if empty Open in GitHub

Enums

EnumSkinnableType

A type of player skin part Open in GitHub