Skip to main content

Woby Commands Classified

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

Overview

woby_commands_classified is a classified component responsible for handling command execution, state propagation, and runtime behavior for Woby — Walter’s configurable pet. It acts as the central hub for skill-based toggle states (e.g., pickup, sitting, sprinting), bag locking, courier delivery routing, and network-synced preview states. The component supports both server-side logic (e.g., skill activation, memory Chest location storage, courier movement) and client-side command routing (e.g., buffered actions, preview state management). It is attached to a dedicated classified entity and binds to a Woby pet entity and its owner (a player) during lifecycle transitions.

Usage example

local woby = spawn_prefab("walter_woby")
local classified = SpawnPrefab("woby_commands_classified")
classified.components.woby_commands_classified:InitializePetInst(woby)
classified.components.woby_commands_classified:AttachClassifiedToPetOwner(woby, player)
classified.components.woby_commands_classified:ExecuteCommand("sit")

Dependencies & tags

Components used:
follower, locomotor, playercontroller, skilltreeupdater, spawnfader, talker, wobycourier

Tags:
Adds "CLASSIFIED"; controls "NOCLICK" via spawnfader:FadeIn/Out.

Properties

PropertyTypeDefault ValueDescription
sitnet_boolfalseServer-authoritative "sitting" state; synced via "isdirty" event.
pickupnet_boolfalseSkill-activated pickup toggle; synced via "isdirty" event.
foragingnet_boolfalseSkill-activated foraging toggle; synced via "isdirty" event.
workingnet_boolfalseSkill-activated working toggle; synced via "isdirty" event.
sprintingnet_boolfalseSkill-activated sprinting toggle; synced via "sprintingdirty" event.
shadowdashnet_boolfalseSkill-activated shadow dash toggle; synced via "isdirty" event.
outfordeliverynet_boolfalseWhether Woby is currently delivering.
chest_posx, chest_posznet_floatWOBYCOURIER_NO_CHEST_COORDNetworked coordinates of remembered chest.
chest_pos_failednet_eventEvent fired when chest memory fails.
baglocknet_booltrueBag lock state; synced via "baglockdirty" event.
isnewspawnnet_booltrueMarked true at spawn for initialization behaviors.
hasbaglockusercmdbooleanfalseTracks whether user commands "lockwoby"/"unlockwoby" are registered.
_previewtable{}Client-side preview map used during command batching.
_taskTask or nilnilCurrent static or periodic task (e.g., preview timeout).
_parentEntity (player) or nilPlayer entity (Walter) that owns this classified.
_petEntity (Woby) or nilCurrent pet entity.
courierdatatable or nilCourier delivery state (start, current, dest positions, teleport flags).
couriertaskTask or nilnilPeriodic task handling courier movement.
wobyiconEntity (globalmapicon) or nilMinimap icon tracking Woby when sitting or delivering.

Main functions

ExecuteCommand(cmd)

  • Description: Dispatches a Woby command (cmd), routing to client or server implementations depending on context. Handles skill toggles, bag locking, courier recall, remember chest, and pet commands.
  • Parameters: cmd (string) — A Woby command constant (e.g., "SIT", "LOCKBAG", "REMEMBERCHEST").
  • Returns: true on successful dispatch; false otherwise.
  • Error states: Logs unsupported commands to console.

InitializePetInst(pet)

  • Description: Binds the classified to a Woby pet entity, sets up parent if missing, disables leashing when sitting, and creates a minimap icon.
  • Parameters: pet (Entity) — The pet (typically "walter_woby").
  • Returns: Nothing.

AttachClassifiedToPetOwner(inst, player)

  • Description: Attaches the classified entity to its owner (player), registers event callbacks for skill activation/deactivation, and initializes bag lock state from the player.
  • Parameters: player (Entity) — Player entity.
  • Returns: Nothing.

SendCourierWoby(data)

  • Description: Starts or cancels courier delivery routing. On start, disables leashing, sets sit state, creates a minimap icon, clears brain actions, and schedules periodic courier ticks.
  • Parameters: data (table or nil) — Courier data including destination (destpos). nil cancels.
  • Returns: Nothing.

CourierWobyTick(inst)

  • Description: Periodic tick (1s) handling courier movement: calculates distance to destination, handles fading/teleportation, detects stuck behavior, and manages delivery completion.
  • Parameters: inst (Component instance) — Passed implicitly.
  • Returns: Nothing.

MakeMinimapIcon(inst) / ClearMinimapIcon(inst)

  • Description: Spawns or removes a globalmapicon that tracks Woby when sitting or delivering.
  • Parameters: inst (Component instance) — Passed implicitly.
  • Returns: Nothing.

GetValue(name)

  • Description: Returns current or preview state for a named property (sit, pickup, etc.). Prioritizes client-side preview over networked state.
  • Parameters: name (string) — Property key (e.g., "pickup", "baglock").
  • Returns: boolean — State value.

ShouldSit, ShouldPickup, ShouldForage, ShouldWork, ShouldSprint, ShouldShadowDash, ShouldLockBag, IsOutForDelivery

  • Description: Convenience getters that delegate to GetValue.
  • Parameters: None (per method).
  • Returns: boolean.

RecallWoby(silent)

  • Description: Forces Woby to recall, clears courier state, sets sit to false, re-enables leashing, and optionally pushes "callwoby" to the owner.
  • Parameters: silent (boolean) — Suppresses the "callwoby" event.
  • Returns: Nothing.

IsBusy_Server() / IsBusy_Client()

  • Description: Indicates if Woby is currently executing or previewing a command. Checks pending tasks, owner handshake state, and delivery status.
  • Parameters: None.
  • Returns: boolean.

NotifyWheelIsOpen(open)

  • Description: Server/client method to notify of spell wheel open/close events. Used to prevent auto-recall and manage container restriction timing.
  • Parameters: open (boolean).
  • Returns: Nothing.

Events & listeners

  • Listens to:

    • "isdirty" — Resets client preview state (ResetPreview).
    • "sprintingdirty" — Resets preview and cancels turbo sprint on sprinting off (OnSprintingDirty).
    • "baglockdirty" — Updates bag lock UI and user commands (OnBagLockDirty).
    • "wobydirty" — Refreshes client command wheel referrers (OnWobyDirty).
    • "chest_posdirty" — Updates chest minimap icon (OnWobyCourierChestDirty).
    • "woby_commands.chest_pos_failed" — Cancels temporary chest focus UI (OnWobyCourierChestFailed).
    • "onremove" (pet) — Detaches classified and cleans up (OnRemovePet).
    • "riderchanged" — Forces recall (OnRiderChanged).
    • "onremove" (player) — Clears classification and reattaches to pet (OnRemovePlayer).
    • "onactivateskill_server", "ondeactivateskill_server" — Syncs skill states (OnActivateSkill, OnDeactivateSkill).
    • "ms_skilltreeinitialized" — One-time sync after skill tree initialization.
  • Pushes:

    • "tellwobysit" / "tellwobyfollow" — Notifies owner of sit/follow state changes.
    • "callwoby" — Signals recall intent.
    • "tellwobycourier" — Notifies owner of courier start.
    • "updatewobycourierchesticon" — Requests minimap chest icon update.
    • "woby_commands.chest_pos_failed" — Client-side chest memory failure.
    • "isdirty" (net event) — Signals preview/state change for client sync.