Modding:JSON/Variables/Objects
From Starbounder - Starbound Wiki
< Modding:JSON | Variables

Work In Progress!

This article or section is currently in the process of an expansion or major restructuring.
You are welcome to assist in its construction by editing it as well.
Last edited by INVADA on 2025-03-22 16:09:53.
These variables are defined in an object's .object file, found in the assets/object folder. Default parameters are defined in defaultcategories.config and defaultparameters.config.
This table is a list of all parameters found in in-game object files. Modders can add parameters to a .object file, but be aware that overwriting one of these parameters may cause problems.
Parameter Name | Variable Type | Description |
---|---|---|
objectName | string | Internal name of the object. Used by 'spawnItem' as well as other commands, also used to reference the object in other json files, such as recipes. |
objectType | string | Includes: container, loungeable, wire, farmable, teleporter, physics Defaults to 'object' |
category | string | The Object's category. Default categories are: decorative, trap, storage, other, door, light, furniture, wire, crafting, spawner, pot, tools, farmable, --todo--, teleporter, sapling Defaults to '--todo--'. |
description | string | Long description of the object. Used both for the tooltip and as the default scan inspection dialog if a race does not have a custom one. |
orientations | list | Parameters for displaying the object. These include: direction, anchors, image, imagePosition, spaces, flipImages, spaceScan, frames, animationCycle, projectileDirection, animationPosition, projectilePosition, animationParts, imageLayers, bgAnchors, lightPosition, collisionSpaces, detectArea, collision, dualImage, fgAnchors, fullbright, touchDamage, sitPosition, sitCoverImage, beamAngle, leftImage, rightImage, particleEmitter, requireTilledAnchors, directions, platformMoveTime, platformEnd, platformStart, requireSoilAnchors, mouthPosition, baseOffset |
printable | bool | If set to true when scanned this object can be printed at the Pixel Printer. |
price | int | Price of the object when sold, printed, bought, etc. |
rarity | string | Includes: Common, Uncommon, Rare, Legendary |
inventoryIcon | string | Image shown when the object is in the player's inventory. |
shortdescription | string | Name shown for the object in pop up windows and dialog |
speciesDescription | string | Gives the specified race dialog for scanning this object. Valid format uses the species's "kind" value before "Description". For example, apexDescription Is valid while ApexDescription is not. |
race | string | Specifies which races are able to see the recipes for this object i.e. 'hylotl', Defaults to 'none'. 'generic' recipes are potentially available to any character. |
fireTimeVariance | float | How much time to +/- to the fireTime. |
animation | string | Path to the JSON .animation file. |
scriptDelta | int | Frequency of calls to update(dt) function in the appropriate lua, 60 is one second. |
soundEffect | string | Plays a sound continuously. Use with caution, as every object of that type will play it. |
projectile | string | The projectile name. |
fireTime | float | The firing rate, lower is faster. |
autoCloseCooldown | int | How long to wait before closing a GUI if the player is out of bounds. |
tooltipKind | string | The kind of tooltip that pops up when the object is hovered over in the inventory. |
frameCooldown | int | description |
slotCount | int | used in containers to define the number of item slots. This variable is required if "objectType" is set to "container" |
smashOnBreak | bool | The object creates particles when smashed. Uses smashParticles |
interactAction | string | Available interaction responses include: "OpenTeleportDialog", "OpenCockpitInterface", "SitDown", "OpenCraftingInterface", "OpenCookingInterface", "OpenTechInterface", "Teleport", "OpenStreamingVideoInterface", "PlayCinematic", "OpenSongbookInterface", "OpenNpcInterface", "OpenNpcCraftingInterface", "OpenTech3DPrinterDialog", "ShowPopup", "ScriptConsole", "ScriptPane", "OpenMerchantInterface", "OpenNpcBountyInterface", "OpenAiInterface"
custom ScriptCanvases use "ScriptConsole" | custom Widget Panes use "ScriptPane" |
interactData | string/dict | All the data necessary for an object to function properly when someone interacts with it. This is really only necessary for those who use ScriptCanvases, or are modifying an internal Pane (ex: merchant pane). Use a string to provide a filepath to a scriptcanvas .config directory, use a table to provide overrides to internal panes. For custom widget panes, use "uiConfig". |
uiConfig | string | Path to the JSON .config file describing the UI of a widget pane. This is only used if the object is a container, or has the "interactAction" variable set to "ScriptPane" without adding script to the object itself ("scripts" is undefined). |
interactive | bool | No longer used as a general object parameter. To make an object interactive, either set 'interactAction' or call 'object.setInteractive(true)' in the lua code. Some specific scripts like 'door.lua' and 'light.lua' still uses this. |
flickerPeriod | float | The base time required for flickering to go through an entire cycle. |
flickerPeriodVariance | float | The amount by which the flicker period can deviate from the base value in either direction. |
flickerMinIntensity | float | Minimum flicker intensity. |
flickerIntensityVariance | float | How much intensity to +/- to the flicker. |
flickerMaxIntensity | int | Maximum flicker intensity |
maximumLiquidLevel | float | The highest water level allowed (measured in tiles) before the object automatically breaks. |
vanishTime | int | The time (in seconds) that must elapse before this object despawns. |
health | int | The amount of damage the object can take before it is destroyed. |
returnDoor | bool | Used only by challenge room return doors. |
sitFlipDirection | bool | If true, sitting characters can have their orientation flipped depending on the orientation of the object. (?) |
fullbright | bool | If true the object's sprite ignores lighting, always appearing as though it is fully illuminated. |
sitAngle | int | The angle to rotate the use of an object while interacting with it. |
sitOrientation | string | Currently only accepts "lay", used for beds. |
sitEmote | string | Defines the emote used by the Player and NPCs when interacting with the object. |
pointLight | bool | Whether the object acts as a point source of light. |
beamAmbience | float | 0 - 1. Amount of light emmited outside the beam of light on a pointLight object. With 0, the beam is the only source of light, with 1 the light emited to the ambience is the same as the light of the beam. |
pointBeam | float | Aperture of the light beam. The bigger the number, the narrower beam is. |
recipeGroup | string | Determines what item recipies will appear when opening a crafting window. |
openFrameIndex | int | The frame number the object opens from. |
sitCoverImage | string | Filepath of the .png file the object uses when the Player or a NPC sits on it. Often used by bed type objects to look like the character is under the sheets when sleeping. |
spawnCooldownTime | float | The cooldown time between spawns. |
closeTime | float | Time in frames to close the object. |
spawnTime | float | Time in frames for the object to spawn. |
rotationPauseTime | float | The time between consecutive rotations. |
maxLaserLength | int | Length in tiles of the laser. Used by Apex turrets and security cameras. |
rotationTime | float | The time taken for rotation to complete. |
targetHoldTime | int | description |
fireCooldown | float | The time that the object must wait before it can fire again. |
smashDropPool | string | What Treasurepool the object will draw drops from when smashed. |
smashable | bool | If true the object can be broken with weapon attacks. |
breakDropPool | string | Treasure pool for when the object breaks rather than being smashed. |
genericDescription | string | Description when inspected by a race with no "speciesDescription" for the object. Redundant with "description". |
detectDuration | float | Determines the duration of the signal of a pressure plate, proximity sensor, etc. |
soundEffectRadius | int | Radius in which a sound effect can be heard. |
minimumLiquidLevel | float | The lowest allowable water level (in tiles) before the object automatically breaks. |
detectThresholdHigh | int | The upper threshold of detection. |
detectThresholdLow | int | The lower threshold of detection. |
largeImage | string | The large image which shows up in the tooltip when the object is hovered over in inventory. (?) |
subtitle | string | Used in GUI panes for crafting stations. This is the subtitle. |
maxImmersion | float | The maximum depth of water the object allows. |
hasObjectItem | bool | Whether the object has an item associated with it. |
minImmersion | float | The minimum depth of water the object allows. |
consumeSoilMoisture | bool | Whether the object can convert wet tilled soil to dry tilled soil. |
explosionProjectile | string | The type of projectile created when the object explodes (explosions are a special type of projectile). |
explodeOnSmash | bool | Whether the object creates an explosion on being smashed. |
unbreakable | bool | Whether the object is impossible to break. |
frameCount | int | The number of frames that the object's animation uses. |
activationTime | int | How long before the object reactivates. |
retainObjectParametersInItem | bool | Whether the object's parameters are retained after the object is picked up after being placed down. (side-note: This cannot be overwritten by spawnItem commands, not sure about placeObject) |
monsterType | string | The type of monster. Only monster file names are valid arguments. |
alarmSoundDuration | int | The length of time during which the alarm sounds. |
maxSpawnedRobots | int | Only used by the disabled Robot Factory. |
defaultSwitchState | bool | The switch's default state. |
interval | int | The time between consecutive events. |
flickerDistance | float | description |
flickerTiming | int | description |
flickerStrength | float | description |
projectilePower | int | The base damage that a projectile deals to targets. |
projectileType | string | The type of projectile being spawned. Only projectile file names are valid arguments. |
signBacking | string | description |
isWired | bool | Whether the object has input and/or output ports to which wires can be attached in Wire Mode. (?) |
isContainer | bool | Whether the object is a container and can store objects. |
chipRepairFactor | float | The proportion of max health which can be restored when an Auto Chip is consumed at Rob Repairo. |
containerCallback | string | Default: "containerCallback". See Modding:Lua/Hooks/Object for more information. |
hasWindowIcon | bool | description |
shipPetType | string | The type of ship pet associated with the object. |
detectRadius | int | description |
timer | int | description |
firstProjectile | string | description |
secondProjectile | string | description |
gates | int | description |
duration | int | description |
delay | float | description |
alwaysLit | bool | description |
minTargetRange | float | The minimum distance that the object must be from its target in order to successfully acquire the target. |
targetCooldown | float | The time that this object must wait before they can acquire a new target or adjust their aim on an existing target. |
targetAngleRange | int | The maximum angle above or below the horizontal within which this object can acquire or re-acquire a target |
targetRange | int | The maximum distance in tiles within which this object can acquire or re-acquire a target. |
maxTrackingYVel | float | The maximum vertical velocity which the target can have before this object can no longer track its target normally. |
objectWidth | int | description |
letGoCooldown | float | description |
colonyTags | list | List of tags for determining what tenant will spawn when the object is in a valid room. ex : ["avian","commerce","temple"]. See Tag |
inactiveLightColor | list | description |
projectileConfig | dict | The parameters of a projectile being spawned in by the object. |
inputNodes | list | list of the positions of inbound nodes (i.e. nodes that activate the object when triggered). ex: [[0,0],[2,3],[1,1]] |
scripts | list | A list of Lua scripts associated with the object. |
animationCustom | dict | description |
activeLightColor | list | description |
closeSounds | list | The sound(s) played when a container object's UI is closed. |
openSounds | list | The sound(s) played when this container is opened. |
smashParticles | list | The particles emitted when an object is smashed. |
smashSounds | list | The sound(s) played when an object is smashed. |
lightColor | list | The color of the light the object emits in RGB values. |
animationParts | dict | description |
animationPosition | list | description |
outputNodes | list | list of the positions of outbound nodes (i.e. nodes that are triggered when the object is activated). ex: {[0,0],[2,3],[1,1]} |
closedLight | list | description |
statusEffects | list | The status effect(s) inflicted on targets by a projectile, weapon, etc. |
particleEmitter | dict | description |
sitEffectEmitters | list | description |
sitStatusEffects | list | The status effect(s) given on interaction with the object. (examples include beds and chairs). |
npcToy | dict | Parameters for NPCs to interact with the object. |
sounds | list | List of sound files for this object. |
spawnOffset | list | The coordinates of an object's spawn location relative to the center of the parent object. |
tipOffset | list | description |
rotationRange | list | description |
baseOffset | list | description |
fireOffsets | list | description |
detectEntityTypes | list | description |
lightPosition | list | description |
sitPosition | list | description |
breakDropOptions | list | This determines what items will drop when destroyed.
Format: [[[ <itemName>, <chance>, <unknown> ], [ <itemName>, <chance>, <unknown> ]]] ex. this will drop one coalore 100% of the time and two coalore 50% of the time { "breakDropOptions": [[ [ "coalore", 1.0, { } ], [ "coalore", 0.5, { } ] ]] } |
smashDropOptions | list | description |
learnBlueprintsOnPickup | list | A list of blueprints the Player learns when this object is picked up. |
itemTags | list | The tags associated with a particular item. |
deed | dict | Required for those who want to use the colony deed script onto other objects as it provides initial parameters. |
stages | list | description |
pickupQuestTemplates | list | The templates for quests which can be started at this object. |
state | dict | description |
detectArea | list | description |
explosionOffset | list | description |
projectileOptions | list | description |
winningItem | list | description |
particleEmitters | list | description |
lightColors | dict | description |
physicsCollisions | dict | description |
repairbotSpawnOffset | list | only used by the disabled Robot Factory |
serpentdroidSpawnOffset | list | only used by the disabled Robot Factory |
cleaningbotSpawnOffset | list | only used by the disabled Robot Factory |
turnInQuests | list | The quests which are turned in to this object for completion. |
damageTeam | dict | The "allegiance" of an object for the purposes of determining whether it takes damage from a certain damage source. |
projectileOffset | list | The offset of a spawned projectile. |
touchDamage | dict | The base damage dealt to targets touched by the object. |
teleporterFootPosition | list | The position of a teleporting object's feet when it arrives relative to the center of the teleporter. |
autofillContents | list | description |
frameColors | list | description |
storeInventory | dict | The list of items sold at a particular merchant as well as their prices. |
mouthPosition | list | The position relative to the center of the object of an object's "mouth". If this point enters a region with no air and does not benefit from breath protection, the object will begin to suffocate/drown after a time. |
questIndicatorPosition | list | The position of the quest indicator icon relative to the center of the quest-giving object. |
chatOptions | list | description |
offeredQuests | list | A list of quests that are offered by this object. |
engineOnOrientations | list | description |
spawner | dict | Required if you want to use the retired spawner script on other objects as it provides the script with spawn parameters. |
physicsForces | dict | description |
truthtable | list | description |
energy | dict | Data relating to the energy possessed by this object. Energy is consumed by some weapons, certain techs, and the Deadly Chill status effect. |
targetOffset | list | description |