Entities, Movement, Placement & Attributes
1. Summary
All actors share one unified NPC model (19) — players are special-cased; monsters, townsfolk, workers, and wildlife are all npc_instances from YAML definitions.
Actors exist in the global world at (x, y, z) with orientation on the horizontal plane. Movement uses 360° facing and velocity; FOV and movement speed are first-class attributes modified by equipped item instances, skills, and effects.
No BiS gear chase — each player assembles a unique inventory of instances (18).
Attributes split into primary (core stats), derived (computed from primaries + gear), and resource pools (HP, stamina, mana). A unified modifier system (08) applies to attributes, skills, and item properties.
2. Placement & orientation
2.1 World position
struct Transform {
position: WorldCoord, // x, y, z, w, t
yaw: f32, // facing, radians or degrees 0–360° (server canonical)
pitch: f32, // optional: look up/down, climb, fly (default 0)
}
- Server authoritative — clients send intent; sim integrates position
- z from world strata (
01): surface, underwater, underground, sky
2.2 Facing vs movement direction (decided)
| Concept | Field | Meaning |
|---|---|---|
| Facing | yaw |
Where the model/intent “front” points — attacks, interactions, FOV cone center |
| Movement direction | velocity (vx, vy) or move_yaw |
Where the body is actually going |
They differ when strafing, backing up, knockback, sliding, mounted:
facing (yaw) ──►
┌───┐
│ P │──► velocity (may be 45° off while strafing)
└───┘
- Move intent:
(forward, strafe)in local space → world velocity viayaw - Network: replicate
position,yaw,velocity(or last intent) @ tick rate in AOI (06) - NPC behavior — controllers set
move_yaw/yaw(19§8)
2.3 Rotation for items & objects
| Object kind | Placement |
|---|---|
| Dropped item | x,y,z + yaw (flat on ground); optional pitch for slopes |
| Placed furniture / stall | Full yaw; snap to grid optional per item template |
| Projectiles | yaw + pitch for trajectory |
| Corpse | yaw at death facing |
Items use single yaw by default (degree value on instance or template default). Structures may lock rotation to 90° steps if authored — template flag rotation_snap: 90.
2.4 Omnidirectional world vs FOV
- Cartography / map reveal — 360° around character (
06) — exploration is not cone-limited - Combat detection, stealth, “see NPC” — FOV cone from
yaw±fov/2(attribute) - Hearing — sphere (radius attribute), ignores FOV unless muffled
This split avoids tunnel vision on the map while keeping tactical facing matter.
3. Movement attributes
| Attribute | Role |
|---|---|
move_speed_walk |
Base m/s on foot |
move_speed_run |
Sprint; drains stamina |
move_speed_swim |
Underwater (01 strata) |
move_speed_fly |
Sky band when flight allowed |
move_speed_climb |
Vertical surfaces |
acceleration |
How fast velocity reaches target |
turn_rate |
Degrees/sec — how fast yaw catches desired facing |
encumbrance_factor |
From carry mass vs Strength — multiplies speeds |
All modifiable via buffs, terrain, zones, mounts.
Auto-nav / AI pathfinding uses the same terrain move_speed_mult for Fastest (true ETA) vs Direct (shortest walkable geometry). See 51-pathfinding-route-modes.html.
4. Primary attributes (core stats)
Six primaries plus Charisma at launch are the main inputs to derived stats and skill checks. Internal scale 1–1000; UI displays 1–100. Skills use 10 achievable tiers (configurable breakpoints).
| Attr | Code | Typical uses |
|---|---|---|
| Strength | STR |
Carry mass (08), melee damage, knockback, bash, mining power |
| Dexterity | DEX |
Ranged accuracy, dodge, lockpick, fine crafting, attack speed (light weapons) |
| Intelligence | INT |
Spell damage, mana pool, recipe complexity, identification, magical crafting |
| Stamina | STA |
Stamina pool size, run duration, fatigue resistance, gathering endurance |
| Vitality | VIT |
Health pool, poison/disease resist, breath hold, resurrection penalty recovery |
| Wisdom | WIS |
Mana regen, perception, mental resist, healing received, soul-bind success |
| Charisma | CHA |
NPC prices, faction, stall traffic, aggro soften (10) |
5. Resource pools (secondary)
Full tick rules, hunger/thirst, damage, durability: 15-active-stats-survival-and-damage.html.
| Pool | Regen driven by | Depleted by |
|---|---|---|
| Health (HP) | VIT, rest, food, sleep, magic | Damage; starvation/dehydration |
| Stamina | STA, rest, sleep | Run, dodge, block, combat, overload |
| Mana (MP) | WIS, INT, rest, meditation | Spells, rituals |
| Hunger | Food, food stands | Time, run, combat, cast, biome |
| Thirst | Drink, wells, stands | Time, exertion, combat, biome |
| Breath | VIT | Underwater (01) |
6. Derived combat & perception attributes
Computed each tick from primaries + gear + modifiers; cached until dirty.
6.1 Offense
| Derived | Typical formula driver |
|---|---|
attack_power |
STR + weapon |
spell_power |
INT + implement |
crit_chance |
DEX + luck |
crit_multiplier |
DEX, weapon |
hit_chance |
DEX vs target evasion |
attack_speed |
DEX, weapon weight, weapon skill (12) |
cast_haste |
INT, spell school skill (12) |
cast_mobility_bonus |
INT, WIS — mitigates spell complexity movement penalty (12) |
max_target_slots |
WIS, DEX, Targeting skill, gear — parallel combat target bindings (12) |
armor_pen |
STR, weapon |
6.2 Defense
| Derived | Driver |
|---|---|
armor_physical |
Equipment |
evasion |
DEX |
block_chance |
STR, shield |
parry_chance |
DEX, weapon |
resist_* |
VIT, WIS, gear (fire, cold, lightning, poison, arcane, holy, dark, physical) |
6.3 Perception & awareness
| Derived | Driver | Use |
|---|---|---|
fov |
Base 90°–360°, WIS, gear | Cone of sight for entities (not map fog) |
sight_range |
WIS, DEX, light level | Max distance to see targets in FOV |
hearing_range |
WIS, STA | Detect unseen entities |
stealth |
DEX, armor weight | Reduces chance to be detected |
trap_sense |
WIS, DEX | Interact with hidden objects |
FOV is a stat — e.g. base 120°, eagle helm +15°, blind debuff −80°. Omnidirectional cartography unchanged (06).
7. Physical & survival attributes
| Attribute | Role |
|---|---|
carry_mass_max |
f(STR), modifiers (08) |
hunger / thirst |
Long-term pools; affect STA regen, eventually HP |
temperature_comfort |
Cold/heat biomes (01 zones) |
fall_safe_height |
VIT, STR |
swim_depth_rating |
STA, VIT — pressure in deep ocean |
8. Mental & social (optional depth)
| Attribute | Role |
|---|---|
willpower |
CC duration resist, fear |
luck |
Loot rolls, crit margin, craft proc — hidden from players (server-only displays) |
reputation |
Per faction — not primary, but attribute-like |
morale |
Party buffs, flee threshold for NPCs |
evil |
Unjustified NPC/worker kills; prayer/jail/PvE reduce (14) |
9. Item & object attributes
Every item is a unique instance (18). Templates define schema; rolled stats live on the instance at mint.
9.1 Universal item properties
| Property | Spec |
|---|---|
instance_id |
Global UUID — permanent identity (18) |
mint_source, minted_at, provenance |
Audit trail (18) |
base_mass, base_volume |
Template base; instance may vary slightly via roll |
packable, can_soul_bind, enchantable |
08, 07, 17 |
durability / max_durability |
wear — repair or permanent destroy (15 §8, 18 U6) |
rotation_yaw |
placement §2.3 |
soul_bound |
instance 07 |
quantity |
1 for equipment/meals; splittable lots for ore/coins (18 §4.2) |
9.2 Equipment combat stats (per instance)
| Stat | Weapons / armor |
|---|---|
damage_min, damage_max |
Rolled at mint — two “longswords” differ (18) |
damage_type |
slash, pierce, blunt, elemental |
attack_speed |
weapon base; scaled in combat by skill (12) |
reach |
melee range_max_m base on weapon |
scaling_skill |
weapon skill id for basic attacks (12) |
armor_value |
armor |
resist_* |
armor, jewelry |
stat_bonuses |
+STR, +DEX, … (modifiers) |
fov_modifier |
helmets, masks |
move_speed_modifier |
boots, encumbrance |
9.3 Tools & stations
| Stat | Role |
|---|---|
tool_tier |
Which recipes usable (09) |
tool_speed |
Craft time multiplier |
station_fuel_rate |
forge, kiln |
9.4 Consumables
| Stat | Role |
|---|---|
heal_amount, mana_restore |
potions |
buff_modifiers[] |
food, elixirs — base recipe stats |
enchantments[] |
Optional — extra effects on consume (17 §10.1) |
duration |
temporary effects (base + enchant may stack) |
10. Skills (separate from primaries but linked)
Skills are trained values (0–100+) used for checks and unlocks; often gated by primary minimums. 10 tiers of mastery (display + unlock breakpoints); internal precision on 1–1000 scale.
| Category | Examples |
|---|---|
| Combat | swords, axes, bows, unarmed, blocking, targeting, evocation, restoration, … — each scales related ability attrs (12) |
| Magic | evocation, inscription, soul-bind, enchanting (17) |
| Gathering | mining, logging, fishing, herbalism |
| Crafting | smelting, cooking, weaponsmith (09), essence prep (17) |
| World | cartography (06), riding, swimming |
| Social | trading, haggling (10) |
Skill XP modifies effective skill level; primaries may cap skill training speed.
11. Modifier interaction (recap)
All attributes, derived stats, FOV, and move speeds use the shared modifier model (08 §6):
- Spells, potions, equipment, auras, zone effects, death sickness (
07) Modifier.targetexamples:attr.strength,derived.evasion,move_speed_run,fov,item.mass
Recompute derived cache on equip, buff, or primary change.
12. Server & protocol notes
- Replicate in AOI:
position,yaw,velocity, essential combat state - Interest: entities outside
sight_range∩ FOV may be omitted from combat awareness but region sim still runs AI globally in shard - Placement validation: collision mesh from chunk terrain (
01); reject invalid spawn - Item drop: find floor
z+ validyawfrom dropper facing
13. TUI / agent
flatland status # primaries, pools, key derived
flatland attr list --json
flatland move --forward 1 --strafe 0 # local to facing
flatland face --yaw 270
flatland place item <id> --yaw 45
14. Phasing
| Phase | Scope |
|---|---|
| 1 | Position, yaw, velocity, walk speed |
| 2 | Primaries STR/DEX/INT/STA/VIT/WIS + HP/stamina pools |
| 3 | FOV, sight range, stealth; item yaw on drop |
| 4 | Full combat derived; resist table |
| 5 | Swim/fly/climb speeds per strata; breath |
15. Open questions
Resolved (2026-07-06):
| # | Decision |
|---|---|
| A1 | 1–1000 internal, 1–100 display; skills 10 tiers |
| A2 | Pitch + yaw ranged with LoS (12) |
| Luck | Hidden |
| CHA | At launch |
| Combat | Locked in 12 |
16. Quick reference — attribute families
PRIMARY STR DEX INT STA VIT WIS [CHA]
POOLS HP Stamina Mana Breath
MOVEMENT walk run swim fly climb turn_rate
PERCEPTION fov sight_range hearing stealth
COMBAT attack_power spell_power crit hit evasion armor resists
PHYSICAL carry_max hunger thirst
ITEM mass volume durability damage armor stat_bonuses
SKILL (trained, linked to primaries)
Coordinates & AOI: 06. Carry mass: 08. Death penalties: 07.