Release Scope
| Item | Value |
|---|---|
| Release date | 2026-07-12 |
| Compared from | v2.9.0 (053b03676c4e5b315f2f21667325e35a0dc81fdc) |
| Reviewed through | 354085130cd1cba01719a9c3193bf171dad5a058 |
| Commit range | v2.9.0..354085130cd1cba01719a9c3193bf171dad5a058 |
| Commits reviewed | 145 |
This release moves beyond the v2.9.0 class refresh by giving several of those class identities the systems they need in the live world. Rangers now have a persistent beast-companion game loop, casters have a real Spell Power gear axis, Monks have a fuller fist-combat rotation, and NPCs can use modern class and creature tactics. Stranglethorn Vale supplies a large level 35-50 hunting region built around the new Ranger and NPC systems.
Enchanting is the largest cross-class mechanic in this release. The old shard commands remain recognizable, but success is no longer a flat or immortal-only operation: characters develop an Enchanting skill, inspect exact odds, choose between ordinary and stabilized attempts, and turn failed focused extraction into a reusable character-bound resource.
The notes below summarize the player-, builder-, client-, and operator-facing outcomes of the release. They intentionally group related work rather than repeating every commit.
Enchanting And Crafting
A universal progression skill
- Every class receives Enchanting at level 1 with a normal learn rate.
- New and migrated player characters begin with 25 percent Enchanting when no prior learned value exists.
- Meaningful binding and focused extraction attempts can improve the skill on success or failure.
- Intelligence and Wisdom contribute to both binding and focused extraction, making character stats part of crafting rather than treating the shard ledger as a purely administrative inventory.
Eligible items and affix order
Enchanting accepts tracked ObjGen base, magic, and rare equipment. Ordinary authored equipment, uniques, old generated objects without tracked affix vnums, and non-generated items are rejected without consuming materials.
An affix must share a real wear slot with the target and must be between ten levels below and five levels above the item. Affixes are applied in this order:
- Suffix.
- Prefix, after a suffix exists.
- Rare affix, after both suffix and prefix exist.
craft lookup <item> and craft affixes <item> show every compatible affix,
the current slot state, owned shard counts, affix stats, and the character’s
normal and stabilized chances. craft shards <item> filters the shard ledger
to choices that can currently fit the selected item. Ledger shards can be used
directly; withdrawing a physical shard is optional.
Binding chance
Normal binding begins with a base chance of 60 percent and then applies:
- one third of current Enchanting skill;
- an Intelligence-plus-Wisdom adjustment, clamped from -5 to +10;
- no suffix penalty, a 10-point prefix penalty, or a 25-point rare penalty;
- a two-point penalty for each affix level above the item level.
The final normal chance is clamped from 20 to 95 percent. craft stabilize
adds 20 percentage points, still capped at 95 percent, and costs:
| Affix being bound | Fractured essence cost |
|---|---|
| Suffix | 1 |
| Prefix | 2 |
| Rare | 3 |
A valid binding attempt consumes its physical or ledger shard whether it succeeds or fails. Stabilized attempts also consume the stated essence. On failure the target item and its existing affixes remain unchanged; internal validation or merge errors consume neither shard nor essence.
Disenchanting and fractured essence
craft disenchant <item> preserves the familiar deterministic path: it
destroys an eligible generated magic or rare item and awards one randomly
selected recorded affix shard.
craft disenchant <item> suffix|prefix|rare instead focuses on a chosen slot.
Focused extraction uses a 70-percent base before the same skill, stat, slot,
and above-item-level adjustments used by binding. Its final chance is clamped
from 25 to 95 percent.
- Focused success awards the chosen shard and destroys the item.
- Focused failure still destroys the item but awards one fractured essence.
- Fractured essence is character-bound, saved with the player, shown in the shard display, and cannot be withdrawn or traded.
- Random disenchanting still returns only one shard even when an item carries multiple affixes.
Purging remains a separate risk
craft purge still attempts to restore a generated item to its base form. Its
success chance is based on the number of tracked affixes: 35 percent for one,
60 percent for two, and 85 percent for three. A failed purge destroys the item.
This mechanic does not use Enchanting skill or fractured essence.
Crafting observability
Binding, disenchanting, and purging now emit non-player-visible activity events containing the item, affix slot, chance, roll, skill and stat inputs, material source, essence spent or awarded, and outcome. A retained SQL report summarizes crafting outcomes without turning the activity feed into player spam. Crafting chance and compatibility logic also has focused unit and static coverage.
Ranger Beast Companions
Taming and persistence
Rangers learn tamebeast at level 10 and mend pet at level 12. A tameable
target must be a living, visible, non-humanoid animal at or below the Ranger’s
level. It cannot be a protected service NPC, another controlled creature, a
temporary summon, or already fighting.
The tame attempt uses Ranger skill and the level difference, bounded to a 5-95 percent chance. Failure provokes the beast. Success records the original mobile prototype as a persistent companion, removes the wild instance, and either activates the new pet or sends it to the stable when another pet is already active.
Rangers can retain up to ten distinct pet records. Only one Ranger pet is active at a time; the rest remain stabled or dead. Pet state, custom name, and source prototype survive saving, reconnects, copyover, and normal restoration.
Pet lifecycle commands
| Command | Behavior |
|---|---|
pet status | Lists controlled summons and all Ranger pets with state, location, combat status, specialization, and abilities. |
pet return | Calls safe, out-of-combat controlled followers back to the owner. |
pet dismiss | Stables the active Ranger pet and despawns other safe temporary followers. |
| `pet summon [# | name]` |
| `pet name <# | name> |
pet revive | Restores a fallen Ranger pet at one-third resources for 100 movement. |
| `pet disband <# | name>` |
mend pet provides the Ranger’s direct companion recovery action. Ranger pet
death is recorded instead of silently deleting the companion, while ordinary
temporary pets continue to use their existing summon lifecycle.
Owned follower summons also receive general status, return, and dismiss
handling. mount status, mount return, and mount dismiss provide the same
basic ownership controls for temporary mounts. Out-of-combat follower pets can
automatically return when stranded in another room, addressing cases such as a
Voidwalker being left behind after its owner flees.
Specializations
Pet family specialization is loaded from runtime race data:
| Specialization | Pet profile | Persistent owner/pet effect |
|---|---|---|
| Ferocity | 115% damage, 90% health and armor, fast offense | Predator’s Thirst |
| Tenacity | 130% health and armor, 90% damage, rescue behavior | Endurance Training; owner gains 5% maximum health |
| Cunning | 115% Accuracy, 120% movement, dodge and Hamstring behavior | Pathfinding |
Base pet combat values scale from the Ranger and the source beast, then the
family profile is applied. Existing beast abilities remain visible in the
pet status output, and pet combat/movement cleanup prevents stale ownership,
duplicate active pets, cross-room fighting, and unsafe dismissal or swapping.
NPC Combat And Pursuit
NPC melee specials now pass through a role-aware selector rather than a random
switch containing invalid or dead branches. Existing OFF_* permissions remain
the builder-facing contract, and modern tactics replace legacy action slots so
ordinary mobs do not gain an extra special every round.
The supported modern permissions include:
- warrior pressure: Rend, Hamstring, Mortal Strike, Execute, and Shield Slam;
- rogue pressure: Rupture, Eviscerate, and Sinister Strike;
- creature attacks: Bite, Tail Sweep, and Swoop;
- retained legacy actions such as Bash, Disarm, Trip, Kick, dirt kicking, and Berserk where the mobile already permits them.
Backstab is treated as an opener instead of being selected after combat has already begun. Tail Sweep can strike the primary opponent and a bounded number of other attackers, Bite uses the modern melee calculation, and level-20-plus Swoop adds movement control. Builder and audit tables now understand the new offense flags.
Configurable hunt modes replace scattered pursuit assumptions. Guards can track appropriate aggressors without turning every NPC into a global hunter, and engagement paths consistently link attacker and victim combat targets. Pet, service, quest, and no-fight protections remain in place.
Class ability execution also checks actual proficiency. NPCs and players no longer receive a guaranteed modern ability outcome merely because a command path exists, and class, creature, and quest actions now carry more distinct combat audio and feedback.
Spell Power, Magic, And Monk Combat
Spell Power and spell critical strikes
Spell Power is now a first-class apply, character field, save value, OLC field, equipment comparison input, and displayed combat stat. Effective Spell Power is the sum of equipped/applied Spell Power and current Intelligence, clamped at zero.
Supported spell damage, healing, and periodic paths use a shared initial 25-percent coefficient: 25 percent of effective Spell Power is added to the base amount before later spell-specific modifiers. Spell critical chance begins at 5 percent, gains the level-scaled bonus from Crit Rating, is independent of weapon skill, and is capped at 85 percent. Critical spell damage and supported healing double the resulting amount.
New caster-oriented prefix and suffix entries make Spell Power available in
the generated loot and Enchanting pools. The stat is included in score, item
attributes, comparisons, gear scoring, crafting displays, save/load rebuilding,
GMCP, MSDP, and ObjGen analysis scripts.
Monk fist-combat expansion
Monk progression now introduces Tiger Palm, Blackout Kick, Roll, Vivify, Dodge, and Crackling Jade Lightning earlier. Expel Harm arrives at level 10, Paralysis at level 34, and several later abilities were reordered to make the leveling kit more coherent.
- Expel Harm spends movement to heal the Monk and, while fighting, deals half of the effective healing as Nature damage to the opponent.
- Crackling Jade Lightning adds a ranged Nature option.
- Paralysis applies a short pressure-point command and magic stun.
- Fists of Fury now makes four strikes instead of three.
- Chi Focus and Elusive Brew use modern Accuracy, Attack Power, and Armor Rating conversions and have their command waits reduced from 12 to 6 pulses.
- An unarmed Monk, or one using a fist weapon, receives an additional attack opportunity equal to one quarter of Hand to Hand proficiency. Slow suppresses this extra strike.
Other class and spell changes
- Curse of Agony now ramps over its duration.
- Temporary summons use more consistent ownership, duration, cleanup, and combat behavior; Voidwalkers can rescue while already engaged.
- Movement and combo opening windows were refined, including Mongoose Bite, Overpower, and Tiger Palm affect classification.
- Remort characters pay double spell mana costs, and client ability metadata reports the effective cost.
- Room-targeted abilities are explicitly represented and no longer require a target placeholder; room-cast execution paths were corrected.
- Obsolete residual spells were removed and class data was regenerated.
Stranglethorn Vale And World Content
Stranglethorn Vale is a new level 35-50 area in vnums 35500-36999, connected
to the Astral Plane by a two-way portal. It contains 617 playable rooms, 46
mobile prototypes, 11 objects, three shops, 340 resets, and ambient and encounter
programs.
The area follows a continuous north-to-south Great Jungle Road through the Nesingwary expedition, Lake Nazferiti, Grom’gol, Gurubashi territory, Crystalvein Mine, the Cape, Booty Bay, Wild Shore, and Jaguero Isle. A sealed exterior threshold reserves the future Zul’Gurub connection without pretending that dungeon is already implemented.
The wildlife roster covers multiple level bands and the Cat, Raptor, Spider, Crocolisk, Turtle, Bat, Wind Serpent, Basilisk, Crab, and Gorilla families. It deliberately supplies Ferocity, Tenacity, and Cunning Ranger choices while keeping civic and service mobiles protected. Named hunts include Sin’Dall, Tethis, Konda, Nalak, and the group-oriented level-50 King Mukla encounter.
King Mukla layers authored boss health and defenses with an opening Bash, mid-health Berserk, and low-health Haste. Routine wildlife and humanoid rewards use calibrated leveling profiles; Booty Bay civic NPCs have no generated loot. The area was checked for internal topology, portal safety, service placement, reset references, pet-family parity, and combat separation.
Existing areas received saved-format normalization, beast race/form/part updates, pet-taming corrections, portal adjustments, generated object updates, and targeted live-content polish. The large textual churn in those files mostly reflects standardizing current OLC serialization, not hundreds of separate player-facing features.
Quests, Help, And Player Usability
- Removed the parallel obsolete personal-quest implementation while retaining the current kingdom quest flow.
- Kingdom quest reward caches are capped at level 50, objective progress has
distinct sounds, and
quest inforeports whether a new quest is available or how many hours remain on cooldown. appraise <item>shows full attributes for an item offered by the current shopkeeper before purchase.- Help lookup now opens a unique exact keyword match, presents a compact ranked
ID list for ambiguous matches, and supports
help search <text>for broader discovery without dumping every matching helpfile body. targetnow uses the stored$$target system consistently;target clear,target none, anduntargetimmediately clear it and refresh combat data.- Player-entered communication bodies can be up to 1,024 bytes, replacing the historical short command-line ceiling for supported communication commands.
- Combat, invulnerability, pet, quest, movement, magic, and sound messages were clarified, and duplicate starter base drops are suppressed.
Client And Protocol Notes
The canonical native GMCP reference now lives at
.ai-skills/low-api-supervisor/references/gmcp-api.md, with
docs/gmcp-api.md pointing client authors to it.
Additive fields and behavior
Char.StatsandChar.Combatexposespell_powerandspell_crit_chance; bridged MSDP exposesSPELL_POWERandSPELL_CRIT_CHANCE.Char.Combat.stored_targetreports the savedtarget/$$substitution even outside combat, whiletarget_nameremains the visible current opponent.Char.Combat.target_affectsuses the same entry schema asChar.Affects.effectsfor the visible opponent’s effects.Game.GlobalQuest.joinedand MSDPJOINEDdistinguish a running global quest from the current player’s participation.Char.Abilitiesreports effective remort mana costs and theroomtarget type for room-wide abilities.- Native effect entries include a more precise
mechanicclassification for combo windows, cooldowns, periodic damage, and periodic healing.
Compatibility changes requiring client attention
Char.Stats.armor_rating is now one numeric consolidated value. Native GMCP no
longer emits the old armor_rating.pierce, .bash, .slash, or .exotic
object fields, nor the matching flat armor_rating_* fields. Clients that
rendered the old object must migrate to the scalar.
Settable resistance apply names were normalized to resist_fire,
resist_frost, resist_nature, resist_arcane, resist_holy,
resist_shadow, resist_all, and matching perc_resist_* names. Deprecated
area/OLC aliases continue to map during migration, but clients should consume
the canonical names.
Stored-target metadata moved from the Char.Abilities.target object into
Char.Combat.stored_target, where it can update independently of the ability
list. Clients using the old location should migrate.
Media and Mudlet
Areas can define multiple ambient regions. Client media transitions rotate stable keys and send five-second fade-in/fade-out instructions so adjacent soundscapes crossfade without leaving duplicate loops.
The server can advertise a manifest-driven Mudlet core package through
Client.GUI. Package metadata comes from data/mudlet-packages.json, with safe
fallbacks. Automatic package push is disabled by default and must be enabled
with LOW_GMCP_MUDLET_PACKAGE_PUSH=1; non-Mudlet clients can ignore the
package.
Builder, Runtime, And Release Operations
- NPC race definitions now load from
data/race.datinstead of relying only on the compiled table. Warcraft-aligned forms, anatomy, and pet-family fields are available to runtime systems and migration scripts. - Mobile OLC racial-flag editing, area save output, area-validator parsing, and builder references were updated for current Format 2 records.
- Administrator activity telemetry now records sessions, reconnect/link-dead transitions, location and actor context, and filterable event summaries.
- Open-beta tooling covers validation, suppression, test delivery, send ledgers, and analytics; public listing and connection copy was refreshed.
- MSSP uses a dedicated
LOW_MUD_HOSTNAMEvalue instead of deriving the game connection host from the website URL. - Pipe-to-process command stacking, area-save null-file handling, room boot initialization, affect cancellation iteration, xlist bounds, character deletion, starter race assignment, clan launch flow, and related release safety issues were corrected.
Verification And Known Release Notes
The reviewed range adds focused tests for crafting rules and integration, Ranger pet persistence and commands, help matching, modern NPC multi-hit selection, spell stats, combat behavior, and protocol serialization. The Stranglethorn review records a clean full build, Ranger pet tests, isolated cold boot, deterministic generation, and an area-validator result of zero errors with 13 expected proper-name warnings.
Two retained tooling limitations are documented rather than hidden:
- the general loot validator still stops on a pre-existing
area/objbase.areWelparsing issue before it can perform a whole-world pass; - the legacy race-data test parser does not yet understand every Format 2 mobile record, so the release relies on the focused Ranger tests, direct race checks, area validation, and successful cold-boot evidence for that surface.
The release build and focused crafting, protocol, help, Ranger-pet, and combat tests passed before publication. Publishing the source release does not deploy, copy over, or migrate the running game; operators should take normal runtime and database backups, review environment additions, and use the normal copyover process when promoting it to a live server.