Skip to main content

Attributes

This chapter lists supported attributes for characters and items in Eldiron.

Attributes can be applied to characters, items, or both. Author initial values through Entity Nodes; this page is a reference to the runtime keys. Code examples below show the underlying values, rather than an editor input format.

This page covers individual attributes such as tile_id, radius, or timeout. Gameplay rules such as weapon damage, spell cooldowns, intent ranges, class permissions, armor categories, and progression belong in the effective ruleset: the official ruleset plus Game / Rules project overrides.

Player key bindings are configured through the Input Binding node. See Input Mapping for command meanings.


Attributes​

active​

Item-only attribute.

Represents the active state of an item (on or off). When it changes, Eldiron automatically selects on_tile_id or off_tile_id when the matching mapping exists. Each mapping accepts a tile UUID, tile alias, or palette index. If the requested mapping is absent, the current world source remains unchanged. Creator also uses a mapped state tile as that state's default icon. Painting the icon stores an independent item override; Load Default reads the tile mapping again.

An active event is also sent to the item for additional state-dependent behavior such as enabling a light. No additional node is needed to switch the tile when these mappings are defined.

active = true
off_tile_id = "torch off"
on_tile_id = "torch on"

autodamage​

Character-only attribute.

If set to true, incoming damage is applied directly by the server before any damaged reaction. Surviving targets still receive damaged, so their graphs can retaliate or otherwise react. Lethal damage does not queue this reaction; the character receives death. On lethal damage, the server also applies death state automatically (mode = "dead"); visibility is independent of life state.

autodamage = true

autodrop​

Character-only attribute.

If set to true, the character automatically drops all inventory and equipped items to the floor on death. With the official ruleset active, death loot is placed into a lootable corpse container instead. Empty corpse containers despawn by default. Non-empty corpses use the ruleset corpse lifetime, and NPC corpses disappear shortly before their owner respawns.

NPCs automatically respawn through the official ruleset unless disabled. The default NPC respawn restores health to full, restores startup loadout and behavior state, and removes that NPC's corpse. Add respawn_seconds = 120 to an NPC instance to change the timer, or respawn = false to opt out. Player death is controlled by behavior nodes.

autodrop = true

blocking​

Item-only attribute.

If set to true, the item blocks movement based on its radius.

blocking = true

class​

Character-only attribute.

Optional gameplay role or archetype for a character.

The class name selects a class definition from the effective ruleset. Class rules, progression, abilities, equipment permissions, and cooldowns should be defined in the ruleset, not repeated on the character.

class = "Warrior"

When LEVEL is set on a character, Eldiron applies the class progression rules for that level during spawn/load. Ruleset-managed values such as maximum HP/MP, primary attributes, abilities, and spells are derived from the class definition; explicit character attributes remain overrides.


color​

Item-only attribute.

Hex color code that overrides geometry color when item is equipped.

color = "#ff0000"

color_targets​

Item-only attribute.

List of geometry node names whose color should be overridden when the item is equipped.

color_targets = ["left_leg", "right_leg"]

facing​

Character-only attribute.

Initial facing direction on spawn.
Supported values: "front", "back", "left", "right"
(also accepts "north", "south", "west", "east").

facing = "right"

geo_targets​

Item-only attribute.

List of linedef names to attach this item's geometry to when equipped.
Used only when automatic matching by slot is insufficient.

geo_targets = ["left_shoulder", "right_shoulder"]

hold_speed​

Character-only attribute.

Sustained movement speed used for held grid movement input after the first tile. This applies to grid-based player movement such as 2d_grid and firstp_grid. If omitted, it falls back to speed.

hold_speed = 3.0

Example:

speed = 8.0
hold_speed = 3.0

This gives a fast first tile while keeping held movement smooth and continuous.


inventory_slots​

Character-only attribute.

Number of inventory slots the character has. If not specified, defaults to 0.

inventory_slots = 8

party_index​

Character-only attribute.

Optional UI/runtime party order for party-bound screen widgets. Lower numbers come first, so 0 is typically the leader.

party_index = 0

party_role​

Character-only attribute.

Optional named role used by party-bound screen widgets. This is useful for stable bindings such as "leader", "tank", or "healer".

party_role = "leader"

hide_when_joined​

Character-only attribute.

When true, joining the party hides the character's world avatar after adding them to the party. The character remains an active ruleset entity and is still available to party widgets, graphs, actions, inventory, and combat systems. Leave it unset or false for games with visible or following companions.

hide_when_joined = true

portrait_tile_id​

Character-only attribute.

Static portrait tile used by screen button widgets with portrait = true. This is separate from runtime avatar rendering and is intended for classic portrait/head UI graphics.

You can store it the same way other tile-based attributes are authored: as a tile UUID, a tile alias, or a palette index.

portrait_tile_id = "01234567-89ab-cdef-0123-456789abcdef"
portrait_tile_id = "hero_portrait"
portrait_tile_id = "2"

start_items​

Character-only attribute.

List of item template names to add to the character inventory on spawn (not equipped). When omitted, the active ruleset class can provide its default inventory.

start_items = ["Sword", "Potion"]

start_equipped_items​

Character-only attribute.

List of item template names to add and auto-equip on spawn.
Items must define a valid slot attribute. When omitted, the active ruleset class can provide its default equipped weapons, armor, and clothing.

start_equipped_items = ["Shield", "Helmet"]

start_active_items​

Character-only attribute.

List of item template names that should start with their active attribute set to true. Each named item must also appear in start_items or start_equipped_items. The item receives its normal active event after it is created, so ruleset behavior such as a torch enabling its light remains owned by the item graph.

start_items = ["Torch"]
start_active_items = ["Torch"]

mode​

Character-only attribute.

The current mode of the entity. On startup of characters this is set to "active". When the ruleset health attribute drops to zero or below, the server changes it to "dead" automatically. Dead characters do not receive events. Healers can set the mode attribute to "active" again. If health is still zero, set_attr("mode", "active") restores it to 1.

set_attr("mode", "active")

Spell Attributes​

Spell gameplay is ruleset data.

Define spell mode, costs, cooldowns, target rules, range, damage or healing, visuals, audio, reagents, and messages in the effective ruleset. Use Game / Rules when this project needs to change the official spell rules. Project item data should only carry concrete asset/state information for a materialized spell item.


monetary​

Item-only attribute.

If true, the item is considered money. It is not picked up normally, but its worth is added to the wallet. The official ruleset defines the currency table. In v1, all monetary worth values are base copper units and are displayed as copper, silver, and gold by the UI.

monetary = true
currency = "gold"
amount = 1

on_look​

General attribute (applies to both characters and items).

Shortcut for the look intent.

If set and the player uses look on the character or item, this text is sent as a system message directly, without a behavior branch.

on_look = "You see a sword."

on_pickup​

Item-only attribute.

Shortcut for pickup/take behavior on items. on_take is supported as an alias.

If set and the player uses pickup/take on the item:

  • "pickup" (or "take") performs default pickup logic (same as calling take).
  • Any other text is sent as a system message.
on_pickup = "pickup"
# alias:
# on_take = "pickup"
# or:
# on_pickup = "It's stuck in the stone."

on_use​

Item-only attribute.

Shortcut for the use intent on items.

If set and the player uses use on the item, this text is sent as a system message directly, without an item behavior branch.

on_use = "You cannot use that."

on_drop​

Item-only attribute.

Shortcut for the drop intent on items.

If set and the player uses drop on the item (including inventory/equipped item clicks):

  • If empty or "drop", default drop logic runs (drops item to the ground).
  • "You cannot drop that" sends that message and prevents dropping.
  • Any other text sends the message and still drops the item.
on_drop = "You dropped a sword."
# or:
# on_drop = "You cannot drop that."

name​

General attribute (applies to both characters and items).

Name of the character or item. Can override the template name.

name = "Golden Key"

race​

Character-only attribute.

Optional race/species identity for a character.

The race name selects a race definition from the effective ruleset. Race relations, reputation defaults, progression, bonuses, and visual defaults should be defined in the ruleset.

race = "Orc"

player​

Character-only attribute.

Marks the character as a player-controlled character.

player = true

input​

Player character key bindings, configured through an Input Binding node in Entity Nodes.

Maps keys to player actions/intents. See Input Mapping for supported commands.

player = true

[input]
w = "control.forward"
a = "control.left"
s = "control.backward"
d = "control.right"
u = "intent.use"
t = "rules.basic_attack"

size​

Character-only attribute.

Billboard height/width scale for characters rendered as billboards in 3D views.
Default is 2.0 if no size attribute is set.

size = 2.0

size_2d​

Character-only attribute.

2D avatar scale for characters rendered from an avatar in 2D views.
Default is 1.0 if no size_2d attribute is set.

Unlike size, this only affects 2D avatar rendering. It does not change gameplay position, grid alignment, collision, or pathing.

size_2d = 1.25

speed​

Character-only attribute.

Movement speed multiplier used by server-driven character movement such as goto(), random_walk(), patrol(), and grid tile traversal. Higher values make each tile or movement step complete faster. Default: 1.0.

speed = 1.0

Example:

speed = 8.0

billboard_alignment​

Item-only attribute.

Controls how item sprites are aligned in 3D when rendered as billboards.

Supported values:

  • "upright" (default): camera-facing upright billboard
  • "floor": ground-aligned billboard (lies flat on the floor)

Aliases accepted for floor alignment: "ground", "flat".

billboard_alignment = "floor"

radius​

General attribute (applies to both characters and items).

Collision radius of the character or item. Default is 0.5.

radius = 0.3

slot​

Item-only attribute.

Slot name the item occupies when equipped (e.g. "legs", "head").

slot = "legs"

static​

Item-only attribute.

If true, the item is static and cannot be picked up (e.g. doors, campfires).

static = true

tile_id​

General attribute (applies to both characters and items).

Tile ID for the visual representation. In Entity Nodes, add Set Tile and click its thumbnail control to select a tile visually.

Accepted forms:

  • tile UUID
  • tile alias
  • palette index

Examples:

tile_id = "03160f57-90e3-4455-a16e-f0b8edfaa415"
tile_id = "player_tile"
tile_id = 2
tile_id = "2"

visible​

General attribute (applies to both characters and items).

Whether the character or item is visible in the world.

visible = false

wealth​

Character-only attribute.

Initial wallet balance for the character, measured in the ruleset economy's base unit. In the official v1 ruleset, this is copper. For example, 125 displays as 1g 2s 5c. Player characters use the ruleset player starting wealth when this attribute is not present.

wealth = 50

worth​

Item-only attribute.

Trade value of the item in the ruleset economy's base unit. In the official v1 ruleset, this is copper.

worth = 2

Emitting Light​

Both entities and items can emit light by configuring the light group in their data tool.

Use the Set Emit Light node to follow activation or force emission on/off.

[light]
color = "#ffffff" # Light Color
strength = 5.0 # Strength of the Light
range = 3.0 # Range of the light
flicker = 0.4 # Amount of light flickering
lift = 1.0 # Optional vertical offset from the entity or item origin

Billboard Gate/Door Animation​

Item-only attributes; only valid for items linked to Gate/Door sectors that use billboard sprites.

animation​

Billboard animation type applied when the sector opens/closes. Valid values: "fade", "up", "down", "left", "right".

animation = "fade"

animation_duration​

Duration of the animation in seconds.

animation_duration = 1.0

animation_clock​

Timing mode for the animation: "smooth" (time-based) or "tick" (game-tick based).

animation_clock = "smooth"