Modding:Json Block Behaviors: Difference between revisions

From Vintage Story Wiki
→‎All Block Behaviors: Update HorizontalOrientable link
(→‎All Block Behaviors: Update HorizontalOrientable link)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Adding behaviors to your block ==
== Adding behaviors to your block ==
Block behaviors are an array of objects with properties attached to your block. They are added through the <code>behaviours</code> field at the top level (same level as the <code>code</code> field) of a block json file.
Block behaviors are an array of objects with properties attached to your block. They are added through the <code>behaviors</code> field at the top level (same level as the <code>code</code> field) of a block json file.
Below is an example of two behaviors, one with properties and one without properties.
Below is an example of two behaviors, one with properties and one without properties.
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
Line 16: Line 16:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Behavior Name !! Additional Properties !! Used by Blocks !! Detail link
! Behavior Name
! style="width: 25em" | Properties
! Used by Blocks
|-
|-
| BlockEntityInteract || none || door || [[Json_block_behaviors_BlockEntityInteract| Block Entity Interact]]
| [[Json_block_behaviors_BlockEntityInteract|BlockEntityInteract]] || - || door
|-
|-
| BreakIfFloating || none || termitemound, crackedrock, meteorite, ore, ore, ore, rock, rottenlog || [[Json_block_behaviors_BreakIfFloating| Break if Floating]]
| [[Json_block_behaviors_BreakIfFloating|BreakIfFloating]] || - || termitemound, crackedrock, meteorite, ore, ore, ore, rock, rottenlog
|-
|-
| BreakSnowFirst || none || tallgrass, stonepath || [[Json_block_behaviors_BreakSnowFirst| Break Snow First]]
| [[Json_block_behaviors_BreakSnowFirst|BreakSnowFirst]] || - || tallgrass, stonepath
|-
|-
| CanAttach || sides || drystonefence, woodenfence, roughhewnfence || [[Json_block_behaviors_CanAttach|Can Attach]]
| [[Json_block_behaviors_CanAttach|CanAttach]]
|
* sides
| drystonefence, woodenfence, roughhewnfence
|-
|-
| CanIgnite || none || torch || [[Json_block_behaviors_CanIgnite|Can Ignite]]
| [[Json_block_behaviors_CanIgnite|CanIgnite]] || - || torch
|-
|-
| CollectFrom || none || henbox || [[Json_block_behaviors_CollectFromThis|Collect From]]
| [[Json_block_behaviors_CollectFromThis|CollectFrom]] || - || henbox
|-
|-
| Container || none || storagevessel, stove, hopper, quern, crate, labeledchest, trunk, chest, firepit, stationarybasket || [[Json_block_behaviors_Container|Container]]
| [[Json_block_behaviors_Container|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
| [[Json_block_behaviors_Decor|Decor]]
|| [[Json_block_behaviors_Decor|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 || none || door || [[Json_block_behaviors_Door|Door]]
| [[Json_block_behaviors_Door|Door]] || - || door
|-
|-
| DropNotSnowCovered || none || fern, flower || [[Json_block_behaviors_DropNotSnowCovered|Drop not Snow Covered]]
| [[Json_block_behaviors_DropNotSnowCovered|DropNotSnowCovered]] || - || fern, flower
|-
|-
| ExchangeOnInteract || exchangeStates (string array of block states) <br> sounds (path from sounds folder) <br> actionLangCode (language key from the lang file) || trapdoor || [[Json_block_behaviors_ExchangeOnInteract|Exchange On Interact]]
| [[Json_block_behaviors_ExchangeOnInteract|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) <br> sourceReplacementCode (block code) <br> flowingReplacementCode (block code) <br> collidesWith (other liquid) <br> spreadDelay (int, default: 0) || boilingwater, water, lava, saltwater || [[Json_block_behaviors_FiniteSpreadingLiquid| Finite Spreading Liquid]]
| [[Json_block_behaviors_FiniteSpreadingLiquid|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) <br> harvestedStack (BlockDropItemStack) <br> harvestingSound (path from sounds folder) <br> harvestedBlockCode (block code) || bigberrybush, saguarocactus, smallberrybush, log-resin ||[[Json_block_behaviors_Harvestable|Harvestable]]
| [[Json_block_behaviors_Harvestable|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 || [[Json_block_behaviors_HeatSource|Heat Source]]
| [[Json_block_behaviors_HeatSource|HeatSource]]
|
* heatStrength (float)
| boilingwater, lava, forge, firepit, pitkiln, coalpile, ember, fire
|-
|-
| HorizontalAttachable || handleDrops (bool, default: true) <br> dropBlockFace (Compass Direction, default: "north") <br> dropBlock (block name) <br> attachmentAreas (side -> cuboid) <br> attachmentArea (cuboid) || tapestry, torchholder, mushroom, canvas, moldrack, painting, shelf, toolrack || [[Json_block_behaviors_horizontalattachable|Horizontal Attachable]]
| [[Json_block_behaviors_horizontalattachable|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") <br> drop (block 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 || [[Json_block_behaviors_horizontalorientable|Horizontal Orientable]]
| [[Modding:HorizontalOrientable_behavior|HorizontalOrientable]]
|
* dropBlockFace (Compass Direction, default: "North")
* drop (block 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 || none || - || [[Json_block_behaviors_HorizontalUpDownOrientable| Horizontal Up/Down Orientable]]
| [[Json_block_behaviors_HorizontalUpDownOrientable|HorizontalUpDownOrientable]] || - || -
|-
|-
| Ignitable || none || charcoalpit, clayoven, firepit || [[Json_block_behaviors_ignitable|Ignitable]]
| [[Json_block_behaviors_ignitable|Ignitable]] || - || charcoalpit, clayoven, firepit
|-
|-
| JonasBoilerDoor || none || jonas || [[Json_block_behaviors_JonasBoilerDoor|Jonas Boiler Door]]
| [[Json_block_behaviors_JonasBoilerDoor|JonasBoilerDoor]] || - || jonas
|-
|-
| JonasGasifier || none || jonas || [[Json_block_behaviors_JonasGasifier|Jonas Gasifier]]
| [[Json_block_behaviors_JonasGasifier|JonasGasifier]] || - || jonas
|-
|-
| JonasHydraulicPump || none || jonas || [[Json_block_behaviors_JonasHydraulicPump|Jonas Hydraulic Pump]]
| [[Json_block_behaviors_JonasHydraulicPump|JonasHydraulicPump]] || - || jonas
|-
|-
| Ladder || dropBlockFace (face direction, Default: north) <br> isFlexible (bool, default: false) || ladder || [[Json_block_behaviors_Ladder|Ladder]]
| [[Json_block_behaviors_Ladder|Ladder]]
|
* dropBlockFace (face direction, Default: north)
* isFlexible (bool, default: false)
| ladder
|-
|-
| Lockable|| none || archimedesscrew, chest, chute, cokeovendoor, crate, door, hopper, irondoor, labeledchest, roughhewnfencegate, stationarybasket, storagevessel, trapdoor, trunk, woodenfencegate || [[Json_block_behaviors_Lockable|Lockable]]
| [[Json_block_behaviors_Lockable|Lockable]] || - || archimedesscrew, chest, chute, cokeovendoor, crate, door, hopper, irondoor, labeledchest, roughhewnfencegate, stationarybasket, storagevessel, trapdoor, trunk, woodenfencegate
|-
|-
| MilkingContainer || none || woodbucket || [[Json_block_behaviors_MilkingContainer|Milking Container]]
| [[Json_block_behaviors_MilkingContainer|MilkingContainer]] || - || woodbucket
|-
|-
| Multiblock|| sizex, sizey, sizez, type, cposition || jonas, riftward, verticalboiler, banner, trunk, painting
| [[Json_block_behaviors_Multiblock|Multiblock]]
|| [[Json_block_behaviors_Multiblock|Multiblock]]
|
* sizex
* sizey
* sizez
* type
* cposition
| jonas, riftward, verticalboiler, banner, trunk, painting
|-
|-
| MyceliumHost || none || creativegrass, forestfloor, log, soil || [[Json_block_behaviors_MyceliumHost|Mycelium Host]]
| [[Json_block_behaviors_MyceliumHost|MyceliumHost]] || - || creativegrass, forestfloor, log, soil
|-
|-
| NoParticles || none || claybrickchimney || [[Json_block_behaviors_NoParticles|No Particles]]
| [[Json_block_behaviors_NoParticles|NoParticles]] || - || claybrickchimney
|-
|-
| NWOrientable || none || bookshelves (legacy), claybrickchimney, fruitpress, fruitpresstop, mannequin, slantedroofingridge, transmission, trough, woodenpath, woodentoggle || [[Json_block_behaviors_NWOrientable|North/West Orientable]]
| [[Json_block_behaviors_NWOrientable|NWOrientable]] || - || bookshelves (legacy), claybrickchimney, fruitpress, fruitpresstop, mannequin, slantedroofingridge, transmission, trough, woodenpath, woodentoggle
|-
|-
| OmniAttachable || facingCode (string, default: orientation) <br> attachmentAreas (side -> cuboid) || crystal, lantern || [[Json_block_behaviors_OmniAttachable|Omni-Attachable]]
| [[Json_block_behaviors_OmniAttachable|OmniAttachable]]
|
* facingCode (string, default: orientation)
* attachmentAreas (side -> RotatableCube)
| crystal, lantern
|-
|-
| OmniRotatable || rotateH (bool, default: false) <br> rotateV (bool, default: false) <br> rotateV4 (bool, default: false) <br> rotateSides (bool, default: false) <br> facing (string, "block" or "player", default: "player") <br> dropChance(float, default: 1) || brickslabs, clayshinglelabs, cobblestoneslab, glassslab, mudbrickslab, plankslab, polishedrockslab, quartzslab, stonebrickslab, trapdoor || [[Json_block_behaviors_OmniRotatable|Omni-Rotatable]]
| [[Json_block_behaviors_OmniRotatable|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 || [[Json_block_behaviors_pillar|Pillar]]
| [[Json_block_behaviors_pillar|Pillar]]
|
* invertedPlacement (bool, default: false)
| carvedlog, debarkedlog, hay, log, lognarrow, planks, plaster, quartzpillar, stackedbamboo, woodenaxle
|-
|-
| Pumpkin || vineGrowthStage(int), vineGrowthQuantity(NatFloat) || crop || [[Json_block_behaviors_Pumpkin|Pumpkin]]
| [[Json_block_behaviors_Pumpkin|Pumpkin]]
|
* vineGrowthStage(int)
* vineGrowthQuantity(NatFloat)
| crop
|-
|-
| PushEventOnBlockBroken || eventName (string) || bamboo, bambooleaves, leaves, leavesbranchy, leavesnarrow, log, lognarrow, logsection ||[[Json_block_behaviors_PushEventOnBlockBroken|Push Event on Block Broken]]
| [[Json_block_behaviors_PushEventOnBlockBroken|PushEventOnBlockBroken]]
|
* eventName (string)
| bamboo, bambooleaves, leaves, leavesbranchy, leavesnarrow, log, lognarrow, logsection
|-
|-
| RainDrip || none || - ||  [[Json_block_behaviors_RainDrip|RainDrip]]
| [[Json_block_behaviors_RainDrip|RainDrip]] || - || -
|-
|-
| Reinforcable || none || - ||  [[Json_block_behaviors_Reinforcable|Reinforcable]]
| [[Json_block_behaviors_Reinforcable|Reinforcable]] || - || -
|-
|-
| RightClickPickup || dropsPickupMode (bool, default: false) <br> sound (path from sounds folder) <br> 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 ||  [[Json_block_behaviors_RightClickPickup|Right Click Pickup]]
| [[Json_block_behaviors_RightClickPickup|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 || none || roughhewnfence, woodenfence ||  [[Json_block_behaviors_RopeTieable|Rope Tieable]]
| [[Json_block_behaviors_RopeTieable|RopeTieable]] || - || roughhewnfence, woodenfence
|-
|-
| Slab || none || - || [[Json_block_behaviors_slab|Slab]]
| [[Json_block_behaviors_slab|Slab]] || - || -
|-
|-
| Steaming || none || boilingwater || [[Json_block_behaviors_Steaming|Steaming]]
| [[Json_block_behaviors_Steaming|Steaming]] || - || boilingwater
|-
|-
| SneakPlacing || none || pan, pie, wateringcan ||[[Json_block_behaviors_SneakPlacing|Sneak Placing]]
| [[Json_block_behaviors_SneakPlacing|SneakPlacing]] || - || pan, pie, wateringcan
|-
|-
| Unplaceable || none || bloomerychimney, bowl, bowl-meal, clayplanter, claypot, crock, crucible, flowerpot, ingotmold, jug, metal, pineapple, pumpkin, storagevessel, toolmold, wateringcan || [[Json_block_behaviors_Unplaceable|Unplaceable]]
| [[Json_block_behaviors_Unplaceable|Unplaceable]] || - || bloomerychimney, bowl, bowl-meal, clayplanter, claypot, crock, crucible, flowerpot, ingotmold, jug, metal, pineapple, pumpkin, storagevessel, toolmold, wateringcan
|-
|-
| Unstable || attachedToFaces (default: down) <br> attachmentAreas (side -> cuboid) || bunchocandles, crop, deadcrop, firepit, oreblastingbomb, silvertorchcactus, verticalboiler, wildbeehive, woodenpath, woodenrails || [[Json_block_behaviors_Unstable|Unstable]]
| [[Json_block_behaviors_Unstable|Unstable]]
|
* attachedToFaces (default: down)
* attachmentAreas (side -> RotatableCube)
| bunchocandles, crop, deadcrop, firepit, oreblastingbomb, silvertorchcactus, verticalboiler, wildbeehive, woodenpath, woodenrails
|-
|-
| UnstableFalling || attachableFaces (string array) <br> attachmentAreas (cuboid) <br> attachmentAreas (side -> cuboid) <br> ignorePlaceTest (bool, default: false) <br> exceptions (block code array) <br> fallSideways (bool, default: false) <br> dustIntensity (float, default: 0) <br> fallSidewaysChance (float, default: 0.3) <br> fallSound (path from sounds folder) <br> 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 || [[Json_block_behaviors_UnstableFalling| Unstable Falling]]
| [[Json_block_behaviors_UnstableFalling|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 || [[Json_block_behaviors_WrenchOrientable|Wrench Orientable]]
| [[Json_block_behaviors_WrenchOrientable|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 || none || - || [[Json_block_behaviors_WorldEditFixGhostBlockPlace|World Edit Fix Ghost Block Place]]
| [[Json_block_behaviors_WorldEditFixGhostBlockPlace|WorldEditFixGhostBlockPlace]] || - || -
|}
|}


{{Navbox/modding|Vintage Story}}
{{Navbox/modding|Vintage Story}}
Confirmedusers
261

edits