Skip to main content

Tallbirdegg

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

Overview

Tallbirdegg is a prefab definition responsible for creating the tallbird egg entity and its variants (tallbirdegg, tallbirdegg_cracked, tallbirdegg_cooked). It implements logic for temperature-sensitive hatching (via the hatchable component), perishability (for cooked variants), looting (based on temperature exposure), and inventory interaction. The egg can hatch into a smallbird, crack (transitioning to tallbirdegg_cracked), or perish and drop loot (e.g., cookedsmallmeat if too hot, wetgoop if too cold). It integrates with multiple systems: inventoryitem, edible, floater, hatchable, perishable, lootdropper, and playerprox.

Usage example

-- Create a pristine tallbird egg and configure its hatching behavior
local egg = SpawnPrefab("tallbirdegg")
egg.Transform:SetPosition(x, y, z)
-- The egg automatically starts hatching logic updates via hatchable component

-- The egg transitions to cracked state when cracked time elapses
-- If near a player and on valid ground after hatch time, it hatches
-- Temperature is managed by external systems (e.g., seasonal events, heat sources)

Dependencies & tags

Components used: cookable, edible, floater, hatchable, inspectable, inventoryitem, lootdropper, perishable, playerprox, talker, stackable, hauntable Tags: Adds cattoy, tallbirdegg, donotautopick (only on cracked variant), cookable (only on pristine egg); checks for burnt, structure.

Properties

No public properties are defined directly in the prefabs. Property access is mediated via attached components (e.g., inst.components.hatchable.state, inst.components.edible.healthvalue).

Main functions

The Prefab returns three prefabs: tallbirdegg, tallbirdegg_cracked, and tallbirdegg_cooked. Each uses internal functions for instantiation.

commonfn(anim, withsound, cookable)

  • Description: Common prefab setup shared between pristine and cooked egg variants. Initializes transform, animstate, sound, network, physics, inventory, edible, and optionally cookable components.
  • Parameters:
    • anim (string) – animation bank name.
    • withsound (boolean) – whether to add SoundEmitter.
    • cookable (boolean) – whether to add the cookable component.
  • Returns: inst – the entity instance.
  • Error states: Returns early on client if not TheWorld.ismastersim.

defaultfn(anim)

  • Description: Instantiates the pristine tallbird egg. Adds hatchable, playerprox, and sets up hatching behaviors and floater parameters.
  • Parameters:
    • anim (string) – animation name for initial state.
  • Returns: inst – the pristine egg entity.
  • Error states: Returns early on client if not TheWorld.ismastersim.

normalfn()

  • Description: Convenience wrapper to call defaultfn("egg") and spawn the standard tallbird egg.
  • Parameters: None.
  • Returns: inst – pristine egg entity.
  • Error states: None.

crackedfn()

  • Description: Instantiates the cracked tallbird egg variant (tallbirdegg_cracked). Sets state to comfy, adds proximity listener for hatching check, and configures eating behavior.
  • Parameters: None.
  • Returns: inst – cracked egg entity.
  • Error states: Returns early on client if not TheWorld.ismastersim.

cookedfn()

  • Description: Instantiates the cooked tallbird egg (tallbirdegg_cooked). Adds stackable, sets perishability, and configures edible values.
  • Parameters: None.
  • Returns: inst – cooked egg entity.
  • Error states: None.

Hatch(inst)

  • Description: Spawns a smallbird at the egg's location, triggers the hatch stategraph on it, awards the hatch_tallbirdegg radial achievement, and removes the egg.
  • Parameters: inst (Entity) – the egg entity.
  • Returns: Nothing.
  • Error states: None.

CheckHatch(inst)

  • Description: Evaluates whether the cracked egg should hatch: checks if a player is within proximity, the egg is not held, the state is hatch, and the location is valid ground.
  • Parameters: inst (Entity) – the cracked egg entity.
  • Returns: Nothing.
  • Error states: None.

OnDropped(inst)

  • Description: Called when the egg is dropped from inventory. Restarts hatchable updates and triggers hatching check if conditions are met; plays uncomfortable sounds if egg is in uncomfy state.
  • Parameters: inst (Entity) – the egg entity.
  • Returns: Nothing.
  • Error states: None.

OnPutInInventory(inst)

  • Description: Called when the egg is placed into inventory. Stops hatchable updates and kills uncomfortable sounds.
  • Parameters: inst (Entity) – the egg entity.
  • Returns: Nothing.
  • Error states: None.

OnLoadPostPass(inst)

  • Description: Handles load order dependency: if the inventoryitem component reports the egg is held, invokes OnPutInInventory.
  • Parameters: inst (Entity) – the egg entity.
  • Returns: Nothing.
  • Error states: None.

GetStatus(inst)

  • Description: Returns the current status text for the egg’s inspection UI ("HOT" or "COLD" if in uncomfy state, else nil).
  • Parameters: inst (Entity) – the egg entity.
  • Returns: string? – status string or nil.
  • Error states: None.

DropLoot(inst)

  • Description: Adds lootdropper component, sets loot based on temperature (loot_hot or loot_cold), and drops loot.
  • Parameters: inst (Entity) – the egg entity.
  • Returns: Nothing.
  • Error states: None.

OnHatchState(inst, state)

  • Description: Handles transitions for the hatchable component's state changes (crack, uncomfy, comfy, hatch, dead). Modifies animation, spawns cracked egg or perish effects, and manages sounds.
  • Parameters:
    • inst (Entity) – the egg entity.
    • state (string) – new state ("crack", "uncomfy", "comfy", "hatch", "dead").
  • Returns: Nothing.
  • Error states: None.

OnEaten(inst, eater)

  • Description: Called when a tallbirdegg_cracked is eaten. Triggers talker-based line via eater.components.talker.
  • Parameters:
    • inst (Entity) – the cracked egg entity.
    • eater (Entity) – the entity consuming the egg.
  • Returns: Nothing.
  • Error states: None.

Events & listeners

  • Listens to:
    • animover (only on dead state) – removes the egg after death animation completes.
  • Pushes:
    • Indirect via components: hatchable may fire hatchfail, hatchstart, hatch, uncomfy, comfy, dead.
    • entity_droploot (via lootdropper:DropLoot).