Modding:Json Block Behaviors

From Vintage Story Wiki
Revision as of 15:47, 3 November 2024 by Bluelightning32 (talk | contribs) (→‎Adding behaviors to your block: Link to behavior traversal)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Adding behaviors to your block

A block behavior encapsulates a modular, reusable feature that can be added to blocks. They are added through the behaviors field at the top level (same level as the code field) of a block json file. Below is an example of two behaviors, one with properties and one without properties.

{
  ...
  code: "exampleblock",
  ...
  behaviors: [{name: "behavior1", properties: {myProperty1: "myValue1", myProperty2: "myValue2"}},{name: "behavior2"}],
  ...
}

Additionally, block entity behaviors can be added in the entityBehaviors field, although they are used less often.

All Block Behaviors

Here is a table containing all properties of the base game as of 1.18.14. Collectible behaviors can also be added to blocks; they are listed separately.

Behavior Name Properties Used by Blocks
BlockEntityInteract - door
BreakIfFloating - termitemound, crackedrock, meteorite, ore, ore, ore, rock, rottenlog
BreakSnowFirst - tallgrass, stonepath
CanAttach
  • sides
drystonefence, woodenfence, roughhewnfence
CanIgnite - torch
CollectFrom - henbox
Container - storagevessel, stove, hopper, quern, crate, labeledchest, trunk, chest, firepit, stationarybasket
Decor
  • sides
  • sidedVariants
  • nwOrientable
  • drawIfCulled
  • alternateZOffset
  • notFullFace
  • removable
  • thickness
linen, mediumcarpet, rushmat, smallcarpet, wallpaper, wool, hotspringbacteriasmooth, hotspringbacteria, attachingplant, overlay, overlay, oxidation, transition, fallenleaves, caveart
Door - door
DropNotSnowCovered - fern, flower
ExchangeOnInteract
  • exchangeStates (string array of block states)
  • sounds (path from sounds folder)
  • actionLangCode (language key from the lang file)
trapdoor
FiniteSpreadingLiquid
  • liquidCollisionSound (path from sounds folder)
  • sourceReplacementCode (block code)
  • flowingReplacementCode (block code)
  • collidesWith (other liquid)
  • spreadDelay (int, default: 0)
boilingwater, water, lava, saltwater
Harvestable
  • harvestTime (float, seconds, default: 0)
  • harvestedStack (BlockDropItemStack)
  • harvestingSound (path from sounds folder)
  • harvestedBlockCode (block code)
bigberrybush, saguarocactus, smallberrybush, log-resin
HeatSource
  • heatStrength (float)
boilingwater, lava, forge, firepit, pitkiln, coalpile, ember, fire
HorizontalAttachable
  • handleDrops (bool, default: true)
  • dropBlockFace (Compass Direction, default: "north")
  • dropBlock (block name)
  • attachmentAreas (side -> RotatableCube)
  • attachmentArea (cuboid)
tapestry, torchholder, mushroom, canvas, moldrack, painting, shelf, toolrack
HorizontalOrientable
  • dropBlockFace (Compass Direction, default: "North")
  • drop (block or item name)
agedwallpaperplanks, altar, bellows, bloomerybase, brake, cage, churn, clayoven, clutch, cokeovendoor, condenser, crank, creativerotor, helvehammerbase, jonas, labeledchest, metalpartpile, palisadestakes, palisadewall, pulverizerframe, resonator, skep, slantedroofing, slantedroofingcornerinner, slantedroofingcornerouter, statictranslocator, stationarybasket, stonecoffinsection, stove, trunk, verticalboiler, wagonwheels, windmillrotor, workbench
HorizontalUpDownOrientable - -
Ignitable - charcoalpit, clayoven, firepit
JonasBoilerDoor - jonas
JonasGasifier - jonas
JonasHydraulicPump - jonas
Ladder
  • dropBlockFace (face direction, Default: north)
  • isFlexible (bool, default: false)
ladder
Lockable - archimedesscrew, chest, chute, cokeovendoor, crate, door, hopper, irondoor, labeledchest, roughhewnfencegate, stationarybasket, storagevessel, trapdoor, trunk, woodenfencegate
MilkingContainer - woodbucket
Multiblock
  • sizex
  • sizey
  • sizez
  • type
  • cposition
jonas, riftward, verticalboiler, banner, trunk, painting
MyceliumHost - creativegrass, forestfloor, log, soil
NoParticles - claybrickchimney
NWOrientable - bookshelves (legacy), claybrickchimney, fruitpress, fruitpresstop, mannequin, slantedroofingridge, transmission, trough, woodenpath, woodentoggle
OmniAttachable
  • facingCode (string, default: orientation)
  • attachmentAreas (side -> RotatableCube)
crystal, lantern
OmniRotatable
  • rotateH (bool, default: false)
  • rotateV (bool, default: false)
  • rotateV4 (bool, default: false)
  • rotateSides (bool, default: false)
  • facing (string, "block" or "player", default: "player")
  • dropChance(float, default: 1)
brickslabs, clayshinglelabs, cobblestoneslab, glassslab, mudbrickslab, plankslab, polishedrockslab, quartzslab, stonebrickslab, trapdoor
Pillar
  • invertedPlacement (bool, default: false)
carvedlog, debarkedlog, hay, log, lognarrow, planks, plaster, quartzpillar, stackedbamboo, woodenaxle
Pumpkin
  • vineGrowthStage(int)
  • vineGrowthQuantity(NatFloat)
crop
PushEventOnBlockBroken
  • eventName (string)
bamboo, bambooleaves, leaves, leavesbranchy, leavesnarrow, log, lognarrow, logsection
RainDrip - -
Reinforcable - -
RightClickPickup
  • dropsPickupMode (bool, default: false)
  • sound (path from sounds folder)
  • placeSound (path from sounds folder)
basereturnteleporter, bowl, bowl-meal, clayplanter, claypot, crock, crucible, egg, flowerpot, ingotmold, jug, lantern, looseflints, looseores, loosestick, loosestones, metal, oillamp, pan, pie, pineapple, pumpkin, seashell, storagevessel, toolmold, wateringcan, woodbucket
RopeTieable - roughhewnfence, woodenfence
Slab - -
Steaming - boilingwater
SneakPlacing - pan, pie, wateringcan
Unplaceable - bloomerychimney, bowl, bowl-meal, clayplanter, claypot, crock, crucible, flowerpot, ingotmold, jug, metal, pineapple, pumpkin, storagevessel, toolmold, wateringcan
Unstable
  • attachedToFaces (default: down)
  • attachmentAreas (side -> RotatableCube)
bunchocandles, crop, deadcrop, firepit, oreblastingbomb, silvertorchcactus, verticalboiler, wildbeehive, woodenpath, woodenrails
UnstableFalling
  • attachableFaces (string array)
  • attachmentArea (cuboid)
  • attachmentAreas (side -> RotatableCube)
  • ignorePlaceTest (bool, default: false)
  • exceptions (block code array)
  • fallSideways (bool, default: false)
  • dustIntensity (float, default: 0)
  • fallSidewaysChance (float, default: 0.3)
  • fallSound (path from sounds folder)
  • impactDamageMul (float, default 1)
anvil, anvilpart, barrel, barrelcactus, bloomerychimney, bonyremains, bonysoil, carcass, chair, chandelier, cheese, churn, clayplanter, coalpile, dirtygravel, displaycase, drycarcass, egg, flowerpot, gravel, groundstorage, ingotmold, knappingsurface, lightningrod, looseboulders, looseflints, loosegears, looseores, loosestick, loosestones, lootvessel, metal, metalpartpile, muddygravel, oillamp, omoktabletop, pan, pie, quern, sand, seashell, sieve, sludgygravel, snowlayer, stonecoffinlid, storagevessel, table, talldisplaycase, toolmold, wateringcan, woodbucket
WrenchOrientable
  • hideInteractionHelpInSurvival (bool, default: false)
  • baseCode (string)
banner, brickslabs, brickstairs, carvedlog, chute, clayshinglelabs, clayshinglestairs, clutter, cobblestoneslab, cobblestonestairs, debarkedlog, glassslab, jonas, log, mudbrickslab, planks, plankslab, plankstairs, plaster, polishedrockslab, quartzpillar, quartzslab, quartzstairs, stonebrickslab, stonebrickstairs, stonepathstairs
WorldEditFixGhostBlockPlace - -
 

Wondering where some links have gone?
The modding navbox is going through some changes! Check out Navigation Box Updates for more info and help finding specific pages.

Modding
Modding Introduction Getting Started Theme Pack
Content Modding Content Mods Developing a Content Mod Basic Tutorials Intermediate Tutorials Advanced Tutorials Content Mod Concepts
Code Modding Code Mods Setting up your Development Environment
Property Overview ItemEntityEntity BehaviorsBlockBlock BehaviorsBlock ClassesBlock EntitiesBlock Entity BehaviorsCollectible BehaviorsWorld properties
Workflows & Infrastructure Modding Efficiency TipsMod-engine compatibilityMod ExtensibilityVS Engine
Additional Resources Community Resources Modding API Updates Programming Languages List of server commandsList of client commandsClient startup parametersServer startup parameters
Example ModsAPI DocsGitHub Repository