UODiamondCodex

Poison System

Lets players poison weapons with poison potions (gated by the Poisoning skill) and applies damage-over-time when a poisoned weapon lands a hit. Source: UOD - System Poison.scp.

How it works

Applying poison to a weaponF_POISON / F_POISON_DO:

  1. F_POISON validates that the target is an item and specifically a weapon, then asks the player to target the poison to use (F_POISON_DO).
  2. F_POISON_DO requires the second target to be a poison potion (MORE1==s_poison). It rolls the Poisoning skill via skillusequick 30 (poisoning/2). On success it plays snd_spell_poison, adds the t_poison typedef to the weapon's events, consumes skill, and confirms. On failure it falls through to a normal skill attempt (action=30).

Poisoned weapon behaviour — TYPEDEF t_poison:

  • @click shows [Poisoned at N%] (based on tag.poison/10), except on food.
  • @weaponhit: with a ~1-in-3 chance (and if the victim isn't wearing/resisting i_rune_poison), poisons the victim for tag.poison/2, makes them "become sick," and decrements TAG.POISON by 5. When TAG.POISON reaches 0 the poison wears off and t_poison is removed from the weapon.

I_FORCE_POISON is a helper equip-script that force-applies s_poison spell effect and sound to its link (used to script-poison a target directly).

Note: The file also contains an anti-cheat trap TYPEDEF t_fucker: any character who clicks or double-clicks an item bearing this type is logged (GOTCHA <uid> <name> <account>) and immediately jail-ed and stone-d (frozen). This is a honeypot, not part of normal poison play.

Key definitions

DEFNAME Role
F_POISON / F_POISON_DO Player-driven "poison a weapon" targeting flow
t_poison (TYPEDEF) Runtime behaviour of a poisoned weapon; TAG.POISON = potency
I_FORCE_POISON Script helper to force a poison effect on a linked target
i_rune_poison Item that grants poison resistance / immunity (checked on hit)
t_fucker (TYPEDEF) Honeypot: auto-jails anyone who interacts with the item
Skill 30 (Poisoning) Skill gate for applying poison