Justice, Law Enforcement & Bounties
1. Summary
Civilized zones are policed. Killing workers or neutral NPCs is allowed (including PvP on workers) but carries consequences:
| System | Role |
|---|---|
evil rating |
Character attribute — rises on unjustified kills; reduced by PvE, prayer, jail |
| Guard NPCs | Respond near towns, guard posts, watchtowers |
| Worker flee | Attacked workers sprint away — hard to catch |
| Wanted board | Every town lists wanted criminals; guards + players enforce |
| Bounties | Players hunt wanted targets for posted reward |
| Unconscious → kill/capture | PvP loser falls unconscious; winner chooses fate |
| Jail | Captured players serve time — clears bounty, reduces evil |
Wild zones have no guard response; evil still accrues for NPC/worker kills.
2. Locked decisions
| # | Decision |
|---|---|
| 1 | Workers can die in PvP/combat (13). |
| 2 | Killing workers or neutral NPCs increases evil (amount scales by victim type, zone). |
| 3 | Non-wild zones have policing — guard coverage from settlements + emplacements. |
| 4 | Attacked workers flee rapidly — high burst speed toward lodging/guard post. |
| 5 | Guards converge on players attacking NPCs/workers within guard jurisdiction. |
| 6 | After guard engagement, criminal is posted to wanted boards (all towns). |
| 7 | Wanted players attacked by guards on sight in town (guard approaches + LoS). |
| 8 | Player bounty hunters accept wanted entries; kill or capture for reward. |
| 9 | PvP defeat → unconscious (not instant death); winner may kill or capture. |
| 10 | Captured → restrained, follow captor, deliverable to jail. |
| 11 | Jail time removes wanted status and reduces evil after N duration. |
| 12 | evil reduction also via monster kills, prayer at temples/sanctuaries (timed channel). |
3. Zone security model
World segments tag security tiers (01 zone metadata):
| Tier | ID | Guards | Worker safety |
|---|---|---|---|
| Wild | wild |
None | Jobs at own risk; flee still triggers if attacked |
| Patrolled | patrolled |
Guard posts, watchtowers — delayed response | Workers work; flee + eventual guard help |
| Civilized | civilized |
Town guard network, fast response | Strong deterrence |
GuardCoverage {
tier: civilized | patrolled | wild
emplacements: [guard_post, watchtower, town_gate, ...]
response_radius_m: f(tier, emplacement_density)
response_time_ticks: f(distance_to_nearest_guard)
}
Guard emplacements are authored fixtures + town spawns. Attacking a neutral NPC inside response_radius queues a crime event.
4. The evil attribute
Persistent character stat (11) — visible to self; optionally visible to others via Detect Evil skill or guard scan.
| Event | evil delta (example) |
|---|---|
| Kill neutral town NPC | +large |
| Kill hired worker | +large (employer may sue / grief claim) |
| Kill hostile monster | −small (redemption) |
| Kill wanted criminal (bounty valid) | 0 or −small |
| Prayer session complete | −medium per duration |
| Jail sentence served | −large + wanted clear |
evil_rating ∈ [0, ∞) with soft cap — diminishing returns / plateau above ~1000
High evil may affect: NPC prices, guard aggro priority, temple refusal, faction gates. Soft cap prevents runaway numbers from dominating all systems.
4.1 Reducing evil
| Method | Mechanism |
|---|---|
| Monster kills | Each qualifying hostile kill applies evil_redemption_per_kill (daily cap optional) |
| Prayer | Channel at temple/sanctuary prayer_duration_ticks; interrupt cancels; grants evil reduction |
| Jail | Sentence completion (§9) |
| Quests | Future — atonement arcs |
Prayer requires sanctuary fixture — not usable while wanted in that faction’s towns (config).
5. Worker & NPC protection
5.1 Worker flee
On first hostile action against a worker (damage or hostile intent):
worker.state = FLEE
worker.move_speed = flee_speed_base × flee_panic_multiplier # very high
worker.flee_target = lodging | nearest_guard_post | employer_residence
- Job paused; resumes after reaching safe point + calm timer if attacker gone.
- Workers have HP — can die if caught (
evilon killer). - In civilized zones, crime event also dispatches guards (
§6).
5.2 Neutral NPCs
Shopkeepers, quest givers, labor brokers: same flee optional; many are indoors or non-combat with guard escalation only.
6. Guard NPCs
6.1 Crime event
CrimeEvent {
criminal_entity_id,
victim_entity_id,
crime_kind: AttackNeutral | KillNeutral | AttackWorker | KillWorker | ...,
position,
zone_security_tier,
timestamp,
}
6.2 Response
- Find guards within
response_radiusof crime (emplacements + town patrol pool). - Guards path toward criminal at high speed.
- On range + LoS: engage combat (
12) — guards are strong, co-op. - On first guard aggro against criminal → add/update wanted record (
§7).
Guards do not follow criminals into wild unless border chase rules (optional, short leash).
6.3 Wanted in town
When a wanted player enters civilized tier with active warrant:
- Patrol guards path toward player when in extended radius.
- LoS + within engage range → attack (same as PvP, guards as faction).
- Player can flee town; warrant persists on regional boards (
§7.1).
6.4 Guard lethality vs evil
Criminal evil |
Guard behavior |
|---|---|
| Low / moderate | Attack until unconscious → capture → jail |
| Very high | Lethal engagement — guards more aggressive, may kill |
Threshold configurable per ruleset (guard_lethal_evil_threshold).
7. Wanted board & bounties
7.1 Wanted record (central ledger)
wanted_entry:
character_id: ...
display_name: ...
crimes: [kill_worker, assault_guard]
evil_at_posting: 340
bounty: { silver: 50 }
posted_at: ...
origin_region_id: northhold
spread_regions: [northhold, millbrook] # grows to nearby towns over time
expires_at: ... # entries timeout — not forever
status: active | captured | expired
Wanted boards are fixtures in towns. Listings are regional first (origin_region_id), spread to adjacent towns over configurable time, and expire after wanted_ttl unless renewed by new crimes.
TUI: flatland wanted list, flatland wanted accept <id>.
7.2 Player bounty hunters
| Action | Result |
|---|---|
AcceptBounty(wanted_id) |
Hunter flagged as authorized; GPS hint optional (region only, not exact) |
| Kill wanted (valid combat) | Hunter claims bounty to bank; wanted cleared; evil unchanged for hunter |
Capture wanted (§8) |
Deliver to jail → full bounty + bonus; wanted cleared on booking |
Bounty reward: equal split among valid bounty party members on turn-in.
Invalid kill (wrong target, accomplice) — no payout; may increase hunter evil.
7.3 Funding
Bounty pool from: town tax (10), employer restitution on worker kill, crime fines on capture.
8. Unconscious, kill & capture (PvP)
Extends combat (12) and death (07).
8.1 Unconscious state
When player HP → 0 in PvP (and optional elite PvE):
state = UNCONSCIOUS
duration: until revived, killed, captured, or self-recovery
actions: none — stuck in place (minimal chat optional)
Not dead — no corpse yet; inventory remains on body.
No auto-death timer. If the winner ignores the body, the unconscious player eventually recovers and may leave. Another player may capture while down. High-skill targets may escape restraint before jail (chance vs captor skill).
8.2 Winner interaction
Standing adjacent, channel Finish intent:
| Choice | Requires | Outcome |
|---|---|---|
| Kill | — | Normal death flow (07) — corpse, respawn, penalties |
| Capture | rope / manacles item (consumed or durable) |
Target → CAPTURED |
Killing unconscious neutral/worker still applies evil + crime event.
8.3 Captured state
captured:
restrained: true
follow_captor: true
inventory_locked: true
skills_disabled: true
escape_chance: f(DEX, relevant_skill, captor_skill) # before jail booking
Captor escorts to jail fixture → TurnInPrisoner → prisoner enters JAILED (§9). Failed escape attempts extend restraint timer.
9. Jail
| Field | Behavior |
|---|---|
| Location | Town jail NPC / cell fixture |
| Sentence | base_sentence + f(evil, crime_severity) in ticks |
| While jailed | No world actions; offline time may count (config) |
| On release | Wanted cleared; evil reduced; respawn at jail exit |
Logged-out prisoners remain jailed — cannot evade by disconnect.
10. Combat integration
| Topic | Rule |
|---|---|
| Friendly fire | Still on (12) — killing ally workers adds evil + employer grievance |
| Guards | Faction town_guard; cannot be bribed at launch |
| Unconscious | Overrides auto-attack on downed target |
| Workers | Valid combat targets; flee on first hit |
11. Worker death (employer impact)
| Effect | Detail |
|---|---|
| Worker HP → 0 | Worker dies — replace via new hire unless worker insurance active |
| Insurance | Paid policy — respawn worker at lodging after delay + fee |
| Replacement | Hire new worker; retrain |
| Killer | evil + wanted if guards respond; employer notification |
| Insurance | Future — crafted worker bond policy |
12. TUI / agent
flatland wanted list
flatland wanted accept bandit-42
flatland capture <player> # on unconscious target
flatland jail status
flatland pray --sanctuary temple_northhold --duration 300
flatland evil # self rating + recent changes
flatland guard-zones map # overlay security tier (debug)
13. Phasing
| Phase | Scope |
|---|---|
| 5 | Zone security tags; evil attribute; monster redemption |
| 6 | Worker flee; guard crime response; wanted board |
| 6b | Unconscious PvP; kill vs capture |
| 6c | Player bounties; jail sentences |
| 7 | Prayer sanctuaries; watchtower emplacements; employer restitution |
14. Open decisions
Resolved (2026-07-06):
| # | Decision |
|---|---|
| J1 | evil soft cap — diminishing returns above ~1000 |
| J2 | No auto-death unconscious; recover if ignored; capture by others; escape roll before jail |
| J3 | Regional wanted — spreads to nearby towns; expires over time |
| J4 | Evil-scaled guards — high evil = lethal; lower = knock out → jail |
| J5 | Worker respawn only with insurance |
| J6 | Equal split bounty among party |
15. Cross-references
| Topic | Doc |
|---|---|
| Death & corpse | 07 |
| Combat | 12 |
| Workers | 13 |
| Economy / tax | 10 |
| Attributes | 11 |
| World zones | 01 |
Guards use same combat intents as players (12). Workers flee uses movement from 11.