Skip to main content

Homesign

Based on game build 7140014 | Last updated: 2026-03-05

Overview​

homesign is a prefab that defines a wooden signpost structure. It functions as a placeable in-world object with writeable text, structural resilience, and damage-based interactions. It integrates with multiple core systems: it is workable via the hammer action (which extinguishes fire and drops loot), supports burning via burnable/propagator, and persists its burnt state across saves using onsave/onload callbacks. It is typically used as a landmark or customizable marker in the world.

Usage example​

-- Internally used by the game to create the sign prefab
return Prefab("homesign", fn, assets, prefabs),
MakePlacer("homesign_placer", "sign_home", "sign_home", "idle")

No direct modder usage is required; modders may spawn instances via SpawnPrefab("homesign") or extend the definition in custom prefabs.

Dependencies & tags​

Components used: burnable, lootdropper, workable, inspectable, writeable, propagator, fueled, hauntable Tags added: structure, sign, _writeable (temporary, removed on master sim) Tags checked: burnt, burnable, debris

Properties​

No public properties exposed by this prefab itself. Component properties (e.g., workable.workleft, burnable.burning) are managed internally via component APIs.

Main functions​

The functions below are callbacks used during the sign’s lifecycle, not methods called directly by modders.

onhammered(inst, worker)​

  • Description: Callback fired when the sign is fully hammered (e.g., broken). Extinguishes fire (if burning), drops loot, spawns a collapse_small FX, and removes the entity.
  • Parameters: inst (Entity), worker (Entity or nil) — the entity performing the hammer action.
  • Returns: Nothing.
  • Error states: Safe to call even if burnable component is missing; only extinguishes if present and burning.

onhit(inst, worker)​

  • Description: Callback fired during partial hammering (before completion). Triggers a hit animation (if not burnt).
  • Parameters: inst (Entity), worker (Entity or nil).
  • Returns: Nothing.
  • Error states: No effect if burnt tag is present; plays only a single-frame "hit" animation before returning to idle.

onsave(inst, data)​

  • Description: Saves the sign’s burnt state into the save data table.
  • Parameters: inst (Entity), data (table) — the save data object to mutate.
  • Returns: Nothing. Sets data.burnt = true if the sign is currently burnt or burning.

onload(inst, data)​

  • Description: Restores burnt state on world load. Invokes onburnt callback if data.burnt is true.
  • Parameters: inst (Entity), data (table or nil) — loaded save data.
  • Returns: Nothing.
  • Error states: Safely handles data == nil or missing data.burnt.

onbuilt(inst)​

  • Description: Event callback triggered when the sign is first built (placed). Plays the "dontstarve/common/sign_craft" sound.
  • Parameters: inst (Entity).
  • Returns: Nothing.

Events & listeners​

  • Listens to: onbuilt — fires onbuilt callback to play build sound.
  • Pushes: None directly (relies on components for events like onburnt, onextinguish).

<!-- Note: Entity-level events like onburnt or onextinguish are triggered by attached components and are not defined in this file, so they are omitted. -->