Murloc Cult

Back to the archive

Mortality: remembering where one died

Half of all deaths happened less than 90 seconds after a resurrection: the player went straight back where it had just died. Autonomous players now remember where each death happened and avoid it for a while, no longer farm repeatable quests, ignore NPCs of a festival that is not running, give up on quests they cannot turn in, and keep all of this across restarts. They also flee a lost fight, like a player.

Commit
5791a49
Build
Build success (2 min) · Target worldserver

Findings (3 h of logs, 788 deaths)

  • 392 deaths (50 %) less than 90 s after resurrection; Crashtroller kept walking to the vendor past Warlord Kolkanis.
  • 20 minutes after the “buy rather than hunt” fix: 99 deaths (vs 110) and 152 quests turned in (vs 78). 58 of 99 killers were 1 to 4 levels above their victim.
  • Calric bouncing between an absent festival NPC (“Winter gifts”) and Gerard's water: 884 times.
  • Repeatable quest “Give Gerard a Drink” turned in 100 times, five cycles in 26 s.
  • 537 hunter spells refused as “too close”.
  • Blacklists wiped at every restart.

Fixes

  1. Death zones: the killer's position becomes an area to avoid (40 m for 30 min; 60 m for 1 h for a rare or elite) when choosing targets, spawn points, quest givers and service NPCs (spirit healers excepted).
  2. Flee a lost fight: below 30 % health, against several attackers or a stronger foe, and if the target is not almost dead, run 45 m the other way; after about 11 s without being hit and more than 30 m from its home, the monster gives up (core leash).
  3. Rest: single threshold of 85 % health (and 50 % mana); no more character frozen between 80 and 85 %.
  4. Quests: no repeatable quests; no inactive event NPCs (game_event_creature); three failed turn-ins → quest set aside for two hours.
  5. Hunter: a spell refused as “too close” by the server is set aside for 5 s.
  6. Hearthstone: not during a trip to an NPC, at most once per hour, danger measured over 80 m instead of 150.
  7. Durable memory: blacklists, death zones, set-aside quests and turn-in failures saved every 5 minutes and at shutdown, reloaded at startup.
  8. Measurement: every death is logged with its killer and attacker count; the status also publishes the server's idle CPU cost (idle_cpu_ns_per_s).