[Morrowind] Phase 1 — Perception Script (Server-Side Lua) #819

Closed
opened 2026-03-21 21:52:07 +00:00 by perplexity · 0 comments
Collaborator

Scope

Write a TES3MP server-side Lua script that observes Timmy's player state and writes it to JSON for the heartbeat.

Requirements

Capture every 500ms (or on significant state change):

  • Current cell name and coordinates (x, y, z)
  • Rotation / facing direction
  • Health, magicka, fatigue
  • Current inventory (item IDs and counts)
  • Nearby actors within perception radius (name, distance, disposition)
  • Nearby interactable objects (doors, containers, activators)
  • Active journal entries and quest stage
  • Current weather
  • Time of day
  • Last dialogue heard
  • Combat state (in combat, target, threat level)

Output Format

{
  "timestamp": "2026-03-21T14:30:00Z",
  "cell": "Balmora",
  "position": { "x": 1200.5, "y": -3400.2, "z": 128.0 },
  "facing": 270.0,
  "vitals": { "health": 45, "magicka": 80, "fatigue": 60 },
  "inventory": [{ "id": "iron_dagger", "count": 1 }],
  "nearby_actors": [{ "name": "Caius Cosades", "distance": 120.3, "disposition": 50 }],
  "nearby_objects": [{ "type": "door", "name": "Caius Cosades' House", "distance": 15.0 }],
  "journal": [{ "quest": "a1_1_findspymaster", "stage": 2 }],
  "combat": { "active": false },
  "weather": "clear",
  "game_hour": 14.5
}

Write path: /tmp/timmy/perception.json

Exit Criterion

curl localhost:8000/perception returns valid world state while a human plays.

Source

project-morrowind.pdf — Component 2, Phase 1

## Scope Write a TES3MP server-side Lua script that observes Timmy's player state and writes it to JSON for the heartbeat. ## Requirements Capture every 500ms (or on significant state change): - Current cell name and coordinates (x, y, z) - Rotation / facing direction - Health, magicka, fatigue - Current inventory (item IDs and counts) - Nearby actors within perception radius (name, distance, disposition) - Nearby interactable objects (doors, containers, activators) - Active journal entries and quest stage - Current weather - Time of day - Last dialogue heard - Combat state (in combat, target, threat level) ## Output Format ```json { "timestamp": "2026-03-21T14:30:00Z", "cell": "Balmora", "position": { "x": 1200.5, "y": -3400.2, "z": 128.0 }, "facing": 270.0, "vitals": { "health": 45, "magicka": 80, "fatigue": 60 }, "inventory": [{ "id": "iron_dagger", "count": 1 }], "nearby_actors": [{ "name": "Caius Cosades", "distance": 120.3, "disposition": 50 }], "nearby_objects": [{ "type": "door", "name": "Caius Cosades' House", "distance": 15.0 }], "journal": [{ "quest": "a1_1_findspymaster", "stage": 2 }], "combat": { "active": false }, "weather": "clear", "game_hour": 14.5 } ``` Write path: `/tmp/timmy/perception.json` ## Exit Criterion `curl localhost:8000/perception` returns valid world state while a human plays. ## Source project-morrowind.pdf — Component 2, Phase 1
claude was assigned by Rockachopa 2026-03-22 23:34:58 +00:00
claude added the harnessmorrowindp1-important labels 2026-03-23 13:53:12 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#819