Petals
Based on game build 714014 | Last updated: 2026-03-06
Overview
The petals prefab represents a small, decorative, and consumable item in the game—primarily used as a craftable food ingredient, cat toy, or vase decoration. It integrates with multiple core systems: it is edible, perishable, stackable, fuelable, dryable, and hauntable. It supports networked replication and can transform into petals_evil (a haunted variant) or petals_dried (a dried variant) under specific conditions. The prefab is optimized by adding the dryable tag early and registering干燥 support for both pristine and dried states.
Usage example
local inst = SpawnPrefab("petals")
inst.Transform:SetPosition(x, y, z)
-- Example: Dry the item using the dryable component
if inst.components.dryable then
inst.components.dryable:Dry()
end
-- Example: Haunt the item manually (if conditions allow)
if inst.components.hauntable then
inst.components.hauntable:TryHaunt(some_haunter)
end
Dependencies & tags
Components used:
edible, fuel, inspectable, inventoryitem, perishable, stackable, tradable, upgrader, vasedecoration, dryable, hauntable (via MakeHauntableLaunchAndPerish and AddHauntableCustomReaction), and utility functions MakeInventoryPhysics, MakeInventoryFloatable, MakeSmallBurnable, MakeSmallPropagator, MakeHauntableLaunchAndPerish, AddHauntableCustomReaction.
Tags added:
cattoy, vasedecoration, dryable
Properties
No public properties are defined directly on the petals prefab. Property values are set on its attached components in the constructor (see usage example and component usage).
Main functions
Not applicable — this is a prefab factory function (fn) and does not define custom instance methods.
Events & listeners
- Listens to: None defined directly.
- Pushes:
despawnedfromhaunt— fired when the originalpetalsentity is replaced bypetals_evil. Payload:{ haunter = haunter, newPrefab = new }.- (Via
petals_evilspawning logic)spawnedfromhaunt— fired on the new entity. Payload:{ haunter = haunter, oldPrefab = inst }.
The OnHaunt function (defined locally) is registered as a custom reaction via AddHauntableCustomReaction, and handles hauntable logic, entity replacement, and event propagation.