UODiamondCodex

Jail System

Holds misbehaving players in a jail cell using an equipped timer item, and provides teleport runes to release them back to town. Source: UOD - System Jail.scp.

How it works

When a player is jailed, a timed script item i_jail (type=t_eq_script, displayed as an alchemy rune) is equipped on them and acts as the sentence timer.

  • On @timer expiry the item runs cont.forgive, sends the player to jail cell 8, and removes itself — releasing the prisoner.
  • The item's timer value is the remaining sentence in seconds. A value of -1 means an indefinite sentence ("A staff member will contact you"). A reason is stored in i_jail.tag.reason.

Two teleport runes let jailed/released players get back to town by stepping on them:

Item On step
i_rune_britain src.go britain
i_rune_moonglow src.go moonglow

The i_jail_system rune (a floor marker) is stepped on at the cell exit. On @step it inspects the player's i_jail timer and reacts:

  • Timer 0 (no jail item found): tells the player they don't seem to be jailed / were not released correctly and calls moveback (blocks passage).
  • Timer -1: tells them they are jailed indefinitely, shows the reason, and blocks passage.
  • Otherwise: reports "You will be sent out in N seconds," shows the reason, and blocks passage.

Note: Actual jailing (equipping i_jail, setting timer/reason) is triggered elsewhere. In this shard src.jail / src.stone are used (see the Poison script's anti-cheat trap) alongside SphereServer's built-in JAIL/FORGIVE commands. This file only defines the cell furniture, release timer, and exit runes.

Key definitions

DEFNAME Type Role
i_jail t_eq_script Equipped sentence timer; releases to jail cell 8 on @timer
i_jail_system rune marker Cell-exit step check; enforces jail, shows time left & reason
i_rune_britain rune marker Step to teleport to Britain
i_rune_moonglow rune marker Step to teleport to Moonglow
i_jail.tag.reason tag Text reason for the jail sentence