WatchTower Docs

Monitoring: Land, People, Map, Lag & Machines

WatchTower monitoring is built from small reports sent by the in-world terminal. Each report is intentionally compact. The system favors frequent safe updates over giant payloads that might crash the script or hit Second…

Guidebook

WatchTower monitoring is built from small reports sent by the in-world terminal. Each report is intentionally compact. The system favors frequent safe updates over giant payloads that might crash the script or hit Second Life HTTP limits.

Land & Presence

The Land Worker gathers information about the terminal’s current parcel and region. It reports the region name, parcel name, SLURL, terminal position, parcel avatar count, region avatar count, region capacity, FPS, time dilation, lag score, and map tile data.

This data is useful for owners because it answers:

  • Is my land online?
  • Is the terminal still in the right place?
  • How many avatars are in the parcel or region?
  • Is the simulator performing normally?
  • Can I jump directly to the location with an SLURL?

SLURL and position

A location should include an SLURL whenever possible. The SLURL lets an owner or staff member teleport to the area being monitored. The terminal position should be shown as a simple x/y/z coordinate. If the terminal is used as a landing-point monitor, owners should place it near the location they actually care about.

Region Map

The Region Map uses simulator/global position data to identify where a terminal is in the Second Life grid. Map data can help show multiple protected locations visually. It can also help distinguish locations with similar names.

Map accuracy depends on the simulator data returned to LSL and the terminal’s current position. If the terminal is moved, a later land snapshot should refresh the map position.

People Online

The Scanner Worker reads avatars in the region and parcel. The safe version does not try to send every avatar every time. It sends a small batch, tracks an offset, and rotates through the list over multiple cycles.

The safe scanner should use these rules:

Safety ruleReason
Maximum 5 avatars per scan batchKeeps JSON small and memory stable.
Rotate through the region listBusy regions still get covered over time.
Include parcel-present and region-presentHelps separate nearby region traffic from land visitors.
Avoid huge names/listsProtects against Stack-Heap Collision.
Drop oversized payloadsBetter to miss one batch than crash the object.

What avatar data means

WatchTower can report that an avatar was seen by the scanner in the region or parcel. It should be described as **seen**, **last seen**, or **present in scan**. It should not be described as perfect attendance, proof of identity beyond avatar UUID/name, or a record of private behavior.

Useful fields include:

  • Avatar UUID
  • Display name
  • Username / legacy name when available
  • Position
  • Distance from terminal
  • Parcel-present flag
  • Region-present flag
  • Timestamp

Lag Meter & Health

The lag/health view should combine simulator performance and terminal health. Simulator performance comes from values such as region FPS and time dilation. Terminal health comes from script free memory, heartbeat age, queue state, and last successful HTTP send.

Suggested lag score meaning:

ScoreMeaning
80–100Healthy or normal.
60–79Mild stress; watch if events are active.
40–59Noticeable lag; owners may want to reduce load.
0–39Serious performance issue or bad data state.

Region lag is not always caused by the owner’s land. It can come from neighboring objects, region load, pathfinding, scripts, avatars, attachments, or temporary grid issues. WatchTower should present lag as a signal, not as a guaranteed cause.

Machine Monitoring

Machines are WatchTower-related objects that report to the dashboard. A machine can be a terminal, payment station, relay, gate, or future add-on object. Machines should be tied to an owner account and, when possible, a location.

Recommended machine record fields:

  • Machine UUID / object key
  • Machine type
  • Object name
  • Owner UUID
  • Owner name
  • Region
  • Parcel
  • SLURL
  • Script version
  • Last heartbeat
  • Last event type
  • Free memory
  • Token state
  • Dashboard status

Handling stale machines

A stale machine is not always broken. The region may have restarted, the owner may have picked up the object, scripts may be disabled temporarily, or the subscription may have ended. The dashboard should show the last seen time and suggest the next step rather than immediately calling it failed.

Recommended stale-machine guidance:

  1. Wait one update cycle.
  2. Check whether the region restarted.
  3. Touch the terminal and choose **Status**.
  4. Use **Health** or **Heartbeat** from the menu.
  5. Confirm the object still has its `WTTOKEN`.
  6. Re-register only if the token is missing or invalid.

Why small reports are better

Second Life scripts have limited memory. A single script building a huge JSON payload can fail with Stack-Heap Collision. WatchTower avoids that by splitting work into small scripts, using maximum queue sizes, sending one HTTP request at a time, staggering timers, checking free memory before big work, and dropping oversized payloads instead of risking a crash.