pub enum Intent {
Show 67 variants
Move {
entity_id: EntityId,
forward: f32,
strafe: f32,
vertical: f32,
sprint: bool,
seq: Seq,
},
Stop {
entity_id: EntityId,
seq: Seq,
},
Harvest {
entity_id: EntityId,
node_id: String,
seq: Seq,
},
Use {
entity_id: EntityId,
template_id: String,
seq: Seq,
},
UseGrant {
entity_id: EntityId,
grant_instance_id: Uuid,
target_instance_id: Uuid,
seq: Seq,
},
Say {
entity_id: EntityId,
channel: ChatChannel,
text: String,
seq: Seq,
},
Craft {
entity_id: EntityId,
blueprint_id: String,
count: Option<u32>,
seq: Seq,
},
Interact {
entity_id: EntityId,
target_id: String,
seq: Seq,
},
ShopBuy {
entity_id: EntityId,
npc_id: String,
offer_id: String,
quantity: u32,
seq: Seq,
},
ShopSell {
entity_id: EntityId,
npc_id: String,
template_id: String,
quantity: u32,
seq: Seq,
},
ShopClose {
entity_id: EntityId,
npc_id: String,
seq: Seq,
},
TestDamage {
entity_id: EntityId,
amount: f32,
seq: Seq,
},
SetTarget {
entity_id: EntityId,
target_id: EntityId,
seq: Seq,
},
SetTargetSlot {
entity_id: EntityId,
slot_index: u8,
target_id: EntityId,
seq: Seq,
},
ClearTarget {
entity_id: EntityId,
seq: Seq,
},
ClearTargetSlot {
entity_id: EntityId,
slot_index: u8,
seq: Seq,
},
SetAutoAttack {
entity_id: EntityId,
slot_index: u8,
enabled: bool,
seq: Seq,
},
Attack {
entity_id: EntityId,
target_id: Option<EntityId>,
weapon_slot: Option<u32>,
seq: Seq,
},
Pickup {
entity_id: EntityId,
drop_id: Option<String>,
seq: Seq,
},
Cast {
entity_id: EntityId,
ability_id: String,
target_id: EntityId,
seq: Seq,
},
BindActionSlot {
entity_id: EntityId,
slot_index: u8,
ability_id: String,
auto_enabled: bool,
seq: Seq,
},
UseActionSlot {
entity_id: EntityId,
slot_index: u8,
seq: Seq,
},
Dodge {
entity_id: EntityId,
seq: Seq,
},
Lunge {
entity_id: EntityId,
forward: f32,
strafe: f32,
seq: Seq,
},
DirectionalJump {
entity_id: EntityId,
forward: f32,
strafe: f32,
seq: Seq,
},
Block {
entity_id: EntityId,
enabled: bool,
seq: Seq,
},
EquipMainhand {
entity_id: EntityId,
template_id: Option<String>,
instance_id: Option<Uuid>,
seq: Seq,
},
EquipOffhand {
entity_id: EntityId,
template_id: Option<String>,
instance_id: Option<Uuid>,
seq: Seq,
},
EquipWorn {
entity_id: EntityId,
slot: BodySlot,
instance_id: Option<Uuid>,
seq: Seq,
},
MoveItem {
entity_id: EntityId,
item_instance_id: Uuid,
from: InventoryLocation,
to: InventoryLocation,
to_parent_instance_id: Option<Uuid>,
quantity: Option<u32>,
seq: Seq,
},
PlaceContainer {
entity_id: EntityId,
item_instance_id: Uuid,
seq: Seq,
},
PickupContainer {
entity_id: EntityId,
container_id: String,
seq: Seq,
},
SetContainerLocked {
entity_id: EntityId,
location: InventoryLocation,
locked: bool,
seq: Seq,
},
DropItem {
entity_id: EntityId,
item_instance_id: Uuid,
from: InventoryLocation,
seq: Seq,
},
DestroyItem {
entity_id: EntityId,
item_instance_id: Uuid,
from: InventoryLocation,
quantity: Option<u32>,
seq: Seq,
},
RenameContainer {
entity_id: EntityId,
item_instance_id: Uuid,
location: InventoryLocation,
name: String,
seq: Seq,
},
UpsertRotationPreset {
entity_id: EntityId,
preset: RotationPreset,
seq: Seq,
},
DeleteRotationPreset {
entity_id: EntityId,
preset_id: String,
seq: Seq,
},
AssignSlotPreset {
entity_id: EntityId,
slot_index: u8,
preset_id: String,
seq: Seq,
},
SetHotbarSlot {
entity_id: EntityId,
slot: u8,
ability_id: Option<String>,
seq: Seq,
},
AdvanceRotation {
entity_id: EntityId,
slot_index: u8,
seq: Seq,
},
NpcTalkOpen {
entity_id: EntityId,
npc_id: String,
seq: Seq,
},
NpcTalkSay {
entity_id: EntityId,
npc_id: String,
message: String,
seq: Seq,
},
NpcTalkClose {
entity_id: EntityId,
npc_id: String,
seq: Seq,
},
AcceptQuest {
entity_id: EntityId,
quest_id: String,
seq: Seq,
},
WithdrawQuest {
entity_id: EntityId,
quest_id: String,
seq: Seq,
},
TrackQuest {
entity_id: EntityId,
quest_id: String,
seq: Seq,
},
QuestGiveItem {
entity_id: EntityId,
npc_id: String,
template_id: String,
quantity: u32,
seq: Seq,
},
HireWorker {
entity_id: EntityId,
def_id: String,
wage_copper_per_interval: u32,
lodging_container_id: Option<String>,
job_yaml: Option<String>,
seq: Seq,
},
DismissWorker {
entity_id: EntityId,
worker_instance_id: String,
seq: Seq,
},
SetWorkerJob {
entity_id: EntityId,
worker_instance_id: String,
job_yaml: String,
seq: Seq,
},
AssignWorkerLodging {
entity_id: EntityId,
worker_instance_id: String,
lodging_container_id: String,
seq: Seq,
},
SetWorkerMode {
entity_id: EntityId,
worker_instance_id: String,
mode: String,
seq: Seq,
},
GiveWorkerItem {
entity_id: EntityId,
worker_instance_id: String,
item_instance_id: Uuid,
quantity: Option<u32>,
seq: Seq,
},
TakeWorkerItem {
entity_id: EntityId,
worker_instance_id: String,
item_instance_id: Uuid,
quantity: Option<u32>,
seq: Seq,
},
RenameHiredWorker {
entity_id: EntityId,
worker_instance_id: String,
name: String,
seq: Seq,
},
TeachWorkerBlueprint {
entity_id: EntityId,
worker_instance_id: String,
blueprint_id: String,
seq: Seq,
},
BuyProperty {
entity_id: EntityId,
zone_id: String,
seq: Seq,
},
SellProperty {
entity_id: EntityId,
zone_id: String,
seq: Seq,
},
BankDeposit {
entity_id: EntityId,
npc_id: String,
amount_copper: u64,
seq: Seq,
},
BankWithdraw {
entity_id: EntityId,
npc_id: String,
amount_copper: u64,
seq: Seq,
},
BankClose {
entity_id: EntityId,
npc_id: String,
seq: Seq,
},
BankTransfer {
entity_id: EntityId,
npc_id: String,
to_character_id: Option<Uuid>,
to_name: String,
amount_copper: u64,
seq: Seq,
},
StorageStore {
entity_id: EntityId,
npc_id: String,
item_instance_id: Uuid,
quantity: Option<u32>,
seq: Seq,
},
StorageTake {
entity_id: EntityId,
npc_id: String,
item_instance_id: Uuid,
quantity: Option<u32>,
seq: Seq,
},
StorageShip {
entity_id: EntityId,
npc_id: String,
dest_building_id: String,
item_instance_id: Uuid,
quantity: Option<u32>,
seq: Seq,
},
StorageClose {
entity_id: EntityId,
npc_id: String,
seq: Seq,
},
}Expand description
Client → server gameplay input (reliable, sequenced per entity).
Variants§
Move
Fields
Stop
Harvest
Use
UseGrant
Apply a grant consumable onto a specific item instance (unique gear status bindings).
Say
Craft
Start a blueprint craft (timed, like harvest).
Fields
Interact
Door, NPC, enter/exit building.
ShopBuy
Buy from an NPC shop offer (ShopOpened catalog).
ShopSell
Sell inventory to an NPC (ShopOpened buy list).
ShopClose
Close an open NPC shop UI (releases the NPC movement pin).
TestDamage
Dev / test: apply damage to self (co-op testing).
SetTarget
Slot-1 combat target (plans/12 alias).
SetTargetSlot
Target slot assignment (plans/12 §5.3). Slot 1 aliases SetTarget.
ClearTarget
ClearTargetSlot
SetAutoAttack
Toggle per-slot auto-attack (plans/12 §4.2).
Attack
Melee attack — uses target_id or the player’s current target.
Pickup
Pick up a ground loot pile (nearest in range when drop_id omitted).
Cast
Cast a spell or use a non-weapon ability template (plans/24 §4.3b).
BindActionSlot
Bind an ability to a target slot action bar (plans/12 §4.2).
UseActionSlot
Fire a bound consumable or ability from a slot (plans/24 §4.3c).
Dodge
Dodge — brief i-frames, stamina cost (plans/24 §4.3c).
Lunge
Lunge — burst forward in movement/facing direction, higher stamina cost.
Fields
DirectionalJump
Directional jump — leap one cell uphill over a medium cliff (plans/04 §4.5b).
Fields
Block
Block — frontal mitigation while held (plans/24 §4.3c).
EquipMainhand
Equip or clear mainhand weapon (plans/26 §C2b). None unequips.
Two-handed weapons (hand_slots: 2) clear offhand on equip.
Prefer instance_id so unique bindings travel with that weapon instance.
EquipOffhand
Equip or clear offhand (shield / dual-wield). Rejected while mainhand is two-handed.
EquipWorn
Equip a wearable (container, belt, armor, jewelry) to a body slot, or clear the
slot when instance_id is None.
MoveItem
Move an item instance between root / worn / placed container inventories.
Fields
from: InventoryLocationto_parent_instance_id: Option<Uuid>When moving into a container location, nest under this parent instance (None = container root).
PlaceContainer
Place a placeable container from inventory onto the ground at the player’s feet.
PickupContainer
Pick up a placed container (with contents) into inventory.
SetContainerLocked
Lock or unlock a worn or placed container (requires matching key when locking/unlocking).
Fields
location: InventoryLocationWorn slot or placed container id encoded as location.
DropItem
Drop a non-container item on the ground at the player’s feet.
DestroyItem
Permanently destroy an item stack (not recoverable; no ground drop).
Fields
from: InventoryLocationRenameContainer
Set a custom display name on a container instance (chest, pouch, backpack).
UpsertRotationPreset
Create or update a rotation preset in the player’s library.
DeleteRotationPreset
Remove a rotation preset from the library.
AssignSlotPreset
Assign a library preset to target slot T1/T2.
SetHotbarSlot
Bind or clear a hotbar slot (1–9) to a learned / weapon ability
or an inventory consumable (item:<template_id> — see hotbar_consumable_binding).
Fields
AdvanceRotation
Fire the next ready ability in a slot’s rotation (manual step).
NpcTalkOpen
Open a turn-based conversation with an NPC.
NpcTalkSay
Send a player message in an open NPC conversation.
NpcTalkClose
Close an NPC conversation.
AcceptQuest
Accept a discovered quest (adds to active list).
WithdrawQuest
Withdraw from an active quest (resets progress; can re-accept).
TrackQuest
Highlight an active quest in the HUD.
QuestGiveItem
Turn in items for an active give_item objective while near an NPC.
HireWorker
Hire an NPC worker (fee + recurring wage).
Fields
DismissWorker
Release a hired worker instance.
SetWorkerJob
Replace or assign a worker job YAML loop.
AssignWorkerLodging
Point a worker at a camp bed / lodging container.
SetWorkerMode
Switch companion vs job-loop automation mode.
GiveWorkerItem
Hand an item from the player’s inventory to a hired worker (e.g. a tool the
worker must carry but not consume, like a handsaw for oak_to_lumber).
Fields
TakeWorkerItem
Take an item from a hired worker’s inventory back into the employer’s root.
Fields
RenameHiredWorker
Set a custom display name for a hired worker (shown in menus / route editor).
TeachWorkerBlueprint
Teach a known blueprint to a hired worker (costs worker_train_copper).
BuyProperty
Buy an unowned crown property parcel (plan 37).
SellProperty
Sell an owned property parcel back to the crown (plan 37).
BankDeposit
Deposit physical coins into the bank ledger at a teller (plans/08 §8).
Fields
BankWithdraw
Withdraw copper from the bank ledger as physical coins at a teller.
Fields
BankClose
Close the bank teller UI.
BankTransfer
Magical clearinghouse transfer to another character’s bank ledger (plans/08 §8.3).
Fields
StorageStore
Store an on-person item into the town storage vault at a storage manager.
StorageTake
Take an item from the town storage vault onto person.
StorageShip
Ship vault items to another storage building (distance fee + travel time).
Fields
StorageClose
Close the storage manager UI.