Book Web Ground
Based on game build 714014 | Last updated: 2026-03-04
Overview
book_web_ground is a client-side entity prefab representing a visual FX effect placed on the ground that applies a temporary ground speed penalty to nearby entities. It is used as part of Wickerbottom's web spell in DST. The prefab creates a static groundFX entity with a 360-degree rotation, plays an animation sequence, and periodically scans the area for affected entities within TUNING.BOOK_WEB_GROUND_RADIUS. Entities that meet specific tagging criteria have their locomotor component modified via PushTempGroundSpeedMultiplier, unless they are followers of a player.
The prefab does not own a component class per se — it is a prefab that instantiates entities with ANIMSTATE, SOUNDEMITTER, TRANSFORM, and NETWORK services, and is typically spawned by the book_web spell. It is not persisted in the world (inst.persists = false).
Usage example
The prefab is instantiated internally by the game and not meant to be manually constructed. A typical usage in spell logic would be:
inst:SpawnPrefab("book_web_ground")
where inst is the spell-casting entity (e.g., Wickerbottom). The entity is configured with its own internal logic (OnInit, OnUpdate, Despawn) and does not expose external APIs beyond internal method calls.
Dependencies & tags
Components used:
follower(viav.components.follower:GetLeader())locomotor(viav.components.locomotor:PushTempGroundSpeedMultiplier(...))
Tags added to entity:
"NOCLICK"— prevents the entity from being clickable.
Tags used for filtering entities in radius scan:
SLOWDOWN_MUST_TAGS = { "locomotor" }SLOWDOWN_CANT_TAGS = { "player", "flying", "playerghost", "INLIMBO" }- Entities with a
followercomponent where the leader has the"player"tag are excluded from slowdown, even if they meet the above criteria.
Properties
No public properties are defined in this prefab's constructor.
Main functions
OnUpdate(inst, x, y, z)
- Description: Scans for entities within
TUNING.BOOK_WEB_GROUND_RADIUSof the given world position and applies ground speed penalty to qualifying entities via theirlocomotorcomponent. This function is called periodically and once at spawn. - Parameters:
inst(Entity) — the book_web_ground instance.x,y,z(numbers) — world coordinates to center the scan.
- Returns: Nothing.
- Error states: No explicit error handling — relies on safe component existence checks (
v.components.locomotor ~= nil,v.components.follower ~= nil).
OnInit(inst)
- Description: Initializes the entity upon spawn: cancels any pre-existing periodic task, sets up a new
DoPeriodicTaskloop callingOnUpdate, triggers the initialOnUpdate, and plays the web-spell sound. - Parameters:
inst(Entity) — the book_web_ground instance.
- Returns: Nothing.
Despawn(inst)
- Description: Handles visual cleanup when the entity expires. Plays the
"despawn"animation, listens for"animover"to automatically remove the entity. - Parameters:
inst(Entity) — the book_web_ground instance.
- Returns: Nothing.
Events & listeners
- Listens to:
"animover"— inDespawn, triggersinst.Remove()to clean up the entity after animation completes.
- Pushes: None.