Server Info
Stat Allocation Patches
A transparent log of every change Crushbone has made to starting stats, allocation templates, and character-creation defaults.
Crushbone ships with canonical EverQuest starting stats for every race. The only exceptions are documented here — what was changed, why, and when.
See the Character Creation guide for how the 25 bonus-point system works and why we prefer player-side specialization to server-side tuning.
Philosophy
- Canonical stats first. A race starts with the stats EverQuest gave it.
- 25 bonus points are the first-line fix. If a player rolls an off-canon combo, those 25 points are the design tool for specializing into the role.
- Patch only when bonus points aren't enough. If starting stat + 25 bonus can't reach a playable floor (≈ 85 for role-critical stats), only then does the server adjust.
- Preserve racial flavor. A patched Ogre priest still has Ogre STR and STA. A patched Troll Bard still regens. We don't blanket the same template across all races of a class.
P0 — Off-canon caster fix (2026-04-24)
Problem: custom rules let any race roll caster classes, but off-canon races kept their race-default allocations. Starting INT of 52 on Troll Wizard, 60 on Ogre Necromancer, etc. Level-1 mana pools of ~30 — unplayable for the first ten levels even after spending all 25 bonus points on INT.
Fix: races Troll / Ogre / Barbarian / Dwarf / Halfling / Vah Shir on classes Necromancer / Wizard / Magician / Enchanter now start with a caster-appropriate allocation: INT=85, STA=115 (after allocation bonus), STR=80, WIS=80.
Rows touched: 408 in char_create_combinations.
Not changed: canonical caster combos (Erudite / Dark Elf / Gnome / High Elf / Iksar × caster classes) use their original race-default allocations.
Tradeoff: Ogre Wizard gives up some raw STR/STA flavor (STR 130 → 80) in exchange for functional casting. Judged worthwhile — a combo that couldn't function is worse than one that plays.
P1-B — Minimal balance intervention (2026-04-24)
Problem: five more off-canon combos sat below the "starting + 25 = 85" floor after P0. Notably Half Elf Cleric at WIS=60, Ogre Bard at CHA=42.
Fix: flavor-preserving per-race allocations for only the truly-broken cases.
| Combo | Before | After |
|---|---|---|
| Half Elf Cleric / Shaman / Beastlord | base WIS 60 | base WIS 65 (CHA trimmed 85→80 to fund it) |
| Half Elf Paladin (1 orphan deity row) | aid 31 (WIS 60) | aid 33 (match peers) |
| Half Elf Druid (1 orphan deity row) | aid 31 (WIS 60) | aid 32 (match peers) |
| Ogre Bard | spread alloc bug | CHA+25 (canon base CHA 42 preserved) |
| Troll Bard | spread alloc bug | CHA+25 (canon base CHA 45 preserved) |
Rows touched: 85 in char_create_combinations, plus 3 new allocation
templates (ids 109, 110, 111).
Intentionally not patched:
- Ogre / Troll / Dwarf Bard — low canonical CHA (42 / 45 / 45) preserved. These are hard-mode picks by design. The 25-point CHA allocation is the fix.
- Everything with starting stat 60 or above on any class — the 25 bonus points reach a playable floor without a patch.
- Combos that are "weak" but not "broken" (Gnome Monk, High Elf Warrior, etc.). They're the cost of picking a flavor race for a "wrong" class.
P2 — Froglok, Drakkin, Vah Shir, Iksar role-splits (2026-04-24)
Problem: Frogloks and Drakkin were implemented with a single allocation template for every class. Every Froglok — Warrior, Wizard, Rogue, everyone — rolled with WIS+25 bonus. Every Drakkin rolled with STA+25. A Froglok Mage got +25 WIS instead of +25 INT. A Drakkin Enchanter got +25 STA instead of +25 CHA. Vah Shir casters were sitting on the generic P0 fallback instead of a Vah Shir-canonical caster line. Iksar Beastlord was routed to a 20-point spread instead of the Shaman priest template it should share.
Fix: per-class allocation templates for each affected race, all sharing the race's canonical base stats. Only the 25 allocation points differ by class role — the racial signature is locked.
New allocations (aids 178-190)
Vah Shir INT caster (aid 178) — Nec/Wiz/Mag off-canon. Base 95/75/80/90/65/70/75, alloc INT+25 → final INT 90 with STR 95 / AGI 90 / CHA 75 preserved.
Froglok role splits (aids 179-184) — all share base 75/85/100/100/75/85/50:
| aid | role | final primary |
|---|---|---|
| 179 | Warrior | STA 110 |
| 180 | Paladin / Shadow Knight (hybrid) | STA 105 |
| 181 | Ranger (hybrid) | DEX 120 |
| 182 | Monk / Rogue / Berserker | STR 100 |
| 183 | Necromancer / Wizard / Magician | INT 100 |
| 184 | Bard / Enchanter | CHA 75 |
Priests (Cleric, Druid, Shaman, Beastlord) keep aid 86 — WIS 110.
Drakkin role splits (aids 185-190) — all share base 80/90/75/90/85/80/75:
| aid | role | final primary |
|---|---|---|
| 185 | Priest-line (Clr / Dru / Shm / BST) | WIS 105 |
| 186 | Paladin / Shadow Knight (hybrid) | STA 110 |
| 187 | Ranger (hybrid) | DEX 95 |
| 188 | Monk / Rogue / Berserker | STR 105 |
| 189 | Necromancer / Wizard / Magician | INT 110 |
| 190 | Bard / Enchanter | CHA 100 |
Warriors keep aid 94 — STA 115.
In-place rewrites
- aid 110 (Ogre Bard) — P1-B wrote spread alloc by mistake; corrected to CHA+25. Base CHA reverted to canon 42 — Ogre Bard stays hard-mode.
- aid 111 (Troll Bard) — same fix. Base CHA reverted to canon 45.
Rewires in char_create_combinations
- Iksar BST — off spread aid 59, now shares Shaman aid 63. WIS 115.
- Vah Shir Nec/Wiz/Mag — off P0 aid 94, onto new aid 178 (VS-canonical INT+25).
- Vah Shir Enchanter — onto aid 75 (share Bard CHA+25 on VS default base). Final CHA 100.
- Vah Shir Beastlord — onto new aid 191 (VS-canonical WIS+25). Final WIS 95.
- Froglok non-priests — 12 class slots fan out from aid 86 to aids 179-184 by role.
- Drakkin non-warriors — 15 class slots fan out from aid 94 to aids 185-190 by role.
Still deferred (P2B)
The Apr 24 P0 patch routed Barbarian / Dwarf / Troll / Ogre / Halfling casters onto aid 94 — which erased their racial signature in exchange for functional INT. P2 unwound Vah Shir the same way using race-canonical aids 178 (INT) and 191 (WIS). The other five races still need per-race INT+25 and CHA+25 allocations (10 new aids) to complete the P0 unwind without losing racial flavor. Targeted for the next balance pass once P2 rewires have been verified in-game.
Deployment note — worldserver restart (2026-04-28)
P2 was applied to the live database 2026-04-24, but EQEmu's worldserver
loads char_create_combinations and char_create_point_allocations into
memory at boot — the character-creation screen reads from that snapshot, not
from the database directly. The world process had been running since
2026-04-22 and continued serving the pre-P2 wiring (Froglok WIS+25 on
every class, Drakkin STA+25 on every class, Ogre/Troll Bard +20 spread)
right up until 2026-04-28, when worldserver was restarted to reload the
tables. New character creation now reflects the P2 allocations.
If you rolled one of the affected combos between 2026-04-24 and 2026-04-28, your stats were baked from the old allocation. Re-rolling that character at the creation screen will give the corrected starting line. Affected combos:
- any non-priest Froglok (Warrior, Pal, SK, Rng, Mnk, Rog, Ber, Wiz, Mag, Nec, Brd, Enc)
- any non-warrior Drakkin (every class except canon Warrior)
- Vah Shir Necromancer / Wizard / Magician / Enchanter / Beastlord
- Iksar Beastlord
- Ogre Bard, Troll Bard
Existing canon-combo characters were never on the affected aids and are unaffected.
Lesson: any future patch that touches char_create_combinations or
char_create_point_allocations requires a worldserver restart to take
effect on the live creation screen. Database-only verification (the queries
in the patch SQL) is necessary but not sufficient.
P3 — Comprehensive char_create cleanup (2026-04-25)
Problem: P0-P2 fixed the worst cases but left a structural bug. When Crushbone enabled "any race can roll any class" via the universal PoK start zone, the auto-generated combos all routed to each race's default allocation aid — not the role-correct aid. Examples:
- Erudite Shadow Knight (canon!) on the Cleric allocation (aid 17) instead of the SK aid (aid 22). Cazic-Thule SKs were correct; Bertoxxulous and agnostic SKs got priest stats.
- Wood Elf Druid (canon!) on the Bard allocation instead of the Druid allocation. Tunare-deity Druids were correct; Bertox/agnostic got CHA+25.
- Iksar Shadow Knight, Necromancer, Monk, Shaman — all canon Iksar classes — routed to aid 59 (the Iksar BST spread default) instead of their canonical role aids.
- Off-canon casters across Barb/Dwarf/Troll/Ogre/Halfling still on the P0 fallback aid 94 (Drakkin caster base) — strong INT but wrong race.
- Vah Shir Beastlord on the P2 hotfix aid 191 — pure VS base + WIS+25, but inconsistent with the Iksar BST → Shaman canon-aid pattern.
Fix: rebuild the entire (race, class) → allocation table from a single principle: every race-class pair gets the role-correct allocation, with race-canonical base stats. Off-canon roles get new pure-base aids; canon classes route to existing canon aids regardless of deity; Beastlord shares the canon Shaman aid where the race has canon Shaman.
What changed
81 new allocations (aids 192-272) — pure race base + clean class allocation, one per off-canon role per race. Allocation pattern by role:
| Role | Allocation | Total |
|---|---|---|
| Warrior | STA+25 | 25 |
| Berserker | STR+25 | 25 |
| Pal / SK (hybrid) | STA+20 | 20 |
| Rng / Mnk (hybrid) | AGI+20 | 20 |
| Cleric / Druid / Shm / BST (priest) | STA+5 / WIS+25 | 30 |
| Wiz / Mag / Necro (INT caster) | STA+5 / INT+25 | 30 |
| Enchanter | INT+5 / CHA+25 | 30 |
| Bard | CHA+25 | 25 |
| Rogue | STR+25 / DEX+5 | 30 |
Beastlord canon-share: in races with canon Shaman (Barb, Troll, Ogre, Iksar, Vah Shir), BST shares the canon Shm aid — same final stat profile. Matches the Iksar BST pattern locked in P2.
Vah Shir BST hotfix retired: aid 191 dropped. VS BST now routes to aid 79 (canon VS Shaman) for consistency with Iksar BST → aid 63.
Canon class re-routing: all canon (race, class) combos that were landing on the race default aid (Bertox/agnostic bug) re-routed to the correct canon class aid. Most-impacted races: Erudite (SK, Necro), WE (Druid, Ranger), DE (SK, Necro), Iksar (everything except BST), Gnome (Pal, SK, Necro), HE (Pal).
P0 contamination cleanup: Barb/Dwarf/Troll/Ogre/Halfling INT casters and Enchanters off aid 94 onto race-canonical INT and CHA aids. Each race now has its own caster line that preserves racial flavor.
Rows touched
- 80 INSERTs into
char_create_point_allocations(aids 192-272, skip 225) - 1 DELETE of aid 191 (VS BST hotfix retired)
- ~220 UPDATEs across
char_create_combinations, covering every (race, class) pair for races 1-12, 128, 130
Tradeoffs
- Off-canon classes use pure-base templates without the +5/+10 class tilts that canon classes get baked into their base. A Half Elf Necromancer has pure HE base + STA+5/INT+25 alloc — slightly weaker than a canon HE Wiz (which has the +5 STA / +10 INT base tilt). Intended: off-canon should feel slightly off-tier.
- BST sharing the canon Shm aid means BST gets the Shaman's STA tilt and loses some DEX. Judged worth it for consistency with the Iksar BST precedent set in P2 — and BST is a WIS class first, melee second.
- Coarse revert: the P3 revert SQL restores per-(race, class) defaults but doesn't perfectly reproduce every lore-deity quirk that pre-P3 routing had baked in. Re-running prior patches (P0, P1B, P2, P2-hotfix) after revert restores those.
Validation (2026-04-25, post-apply)
- Aid count: 80 new aids inserted (aids 192-272 less skipped 225). ✓
- Aid 191: deleted. ✓
- VS BST: routed to aid 79 (canon VS Shm). ✓
- Erudite SK: routed to aid 22 (canon Erudite SK), Bertox + agnostic. ✓
- Iksar BST: routed to aid 63 (canon Iksar Shm, P2 preserved). ✓
- Ogre BST: routed to aid 68 (canon Ogre Shm). ✓
- Barb Shm: routed to aid 3 (canon Barb Shm), corrected from aid 0. ✓
- Default-aid sweep: only legitimate canon-class rows remain on race defaults (Human Bard 47, WE Bard 81, HE Cleric 43, DE Cleric 5, Dwarf Berserker 12, Halfling Cleric 37, Gnome Cleric 23, Drakkin Warrior 94). ✓
P3.1 — Vah Shir Berserker canon restoration (2026-04-25)
Problem caught in P3 review: P3 routed VS Berserker (race 130, class 16) to new aid 272 (pure VS base + STR+25 = STR 120). But aid 77 pre-exists in the DB as the canonical VS Berserker template — base 100/80/80/90/65/70/65 (with +5 STR / +5 STA / -10 CHA Berserker class tilt) + STR+25 alloc = STR 125 final.
Vah Shir IS a canonical Berserker race (post-Gates of Discord), and the other four canon Berserker races (Barb / Dwarf / Troll / Ogre) all use their canon aids with class tilts (aids 1, 12, 71, 66). VS Berserker should match.
Fix: rewire (race=130, class=16) → allocation_id = 77. New aid
272 left in place (orphaned but harmless). The result preserves the
"canon class combos stay original" rule across all five canon Berserker
races.
What's NOT patched
The server's default answer to "my off-canon combo feels weak at level 1" is use your 25 bonus points. Examples:
- Troll Shaman starts at WIS=70. Spend 25 → WIS 95. No patch needed.
- Gnome Warrior starts at STR=70. Spend 25 → STR 95. Hits Gnome's cap. Still playable, still tiny. That's the combo's flavor.
- High Elf Shadow Knight starts at STR=55. Spend 25 → STR 80. Lower than an Iksar SK but functional. The combo is a roleplay choice, not a power pick.
See Character Creation for the full allocation walkthrough.
Revert capability
Every allocation patch ships with forward-SQL and revert-SQL in the
crushbone-dist repo under patches/, plus a MariaDB dump of the affected
tables archived on the VPS. Existing characters are not affected by allocation
changes — allocation_id only applies at character creation. Rollbacks are
one-shot SQL and take no longer than running the original patch.
