Paragon: ship class-12 starter spawn data so character creation works on fresh installs

Companion to 2026_05_09_00.sql (DBC overlay). The DBC overlay teaches
the world server that class 12 (Paragon) exists; this migration
teaches it WHERE class-12 characters spawn, what action bar they boot
with, and what per-level base stats Player::InitStatsForLevel uses.

Without these rows, contributors hit:
  - Player::Create -> "invalid race/class pair (R/12) - refusing"
    and the client shows "Error creating character".
  - WorldServer load -> "class-12 Level-L does not have stats data!"
    integrity warnings.

Tables touched (idempotent: DELETE WHERE class=12 then INSERT):
  - playercreateinfo         : 10 rows, every DK-eligible race spawning
                               in their racial newbie zone (Northshire,
                               Valley of Trials, Ammen Vale, ...).
                               NOT Acherus -- Paragon is from-level-1.
  - playercreateinfo_action  : 46 rows, default action bar layout
                               per race (attack 6603, eat 78, racial,
                               etc.).
  - player_class_stats       : 80 rows, per-level base HP/Mana/STR/AGI/
                               STA/INT/SPI. Curve mirrors Warrior to
                               level 60, Paladin-style HP inflation
                               past 60 to keep Paragon competitive
                               in Wrath content.

Tables intentionally untouched: playercreateinfo_item is empty for
class 12 (Paragon ships no per-class starting items, only racial
kit), and the mask-based playercreateinfo_skills/_cast_spell/
_spell_custom rows already cover class 12 via their classMask=0
"all classes" entries.

Verified locally: applies cleanly twice in a row (idempotent),
worldserver restart now logs `>> Loaded 72 Player Create Definitions`
(was 62 pre-Paragon = +10 races for class 12) and creates a Draenei
Paragon without rejection.

CLIENT-PATCHES.md troubleshooting block updated to merge the two
"Character Creation Failed" modes (DBC overlay missing + spawn data
missing) into a single fix recipe. Existing contributors with a
pre-built dbimport image need
`docker compose build ac-db-import ac-worldserver` before this
migration is visible to DBUpdater; fresh clones get it on first
`docker compose up`.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Docker Build
2026-05-09 13:06:39 -04:00
parent ecd8eacb1f
commit 5deb9e3255
2 changed files with 211 additions and 7 deletions
+32 -7
View File
@@ -53,13 +53,38 @@ worldserver image is older than commit `4d2a80d` (the
the same release tag and rebuild the worldserver image.
If the **client** shows the Paragon class on the create screen but the
server replies **Character Creation Failed** when you pick it on a
**very old** server checkout (predating commit landing
`modules/mod-paragon/data/sql/db-world/updates/2026_05_09_00.sql`):
pull `main` and run `docker compose up -d ac-db-import`. Recent
Fractured server builds ship the Paragon DBC overlay as a SQL
migration (see **Server-side Paragon DBC overlay** below); fresh
checkouts do **not** need the patched DBCs copied into `data/dbc/`.
server replies **Character Creation Failed** (sometimes shown as
"Error creating character") when you pick it: the worldserver is
missing one of two pieces of class-12 spawn data. Both ship as SQL
migrations under `modules/mod-paragon/data/sql/db-world/updates/`
and are auto-applied by AzerothCore's DBUpdater on every
`ac-db-import` run, but the SQL files are baked into the dbimport
Docker image at build time -- so a stale image won't pick up new
migrations. Fix:
```bash
git pull origin main
docker compose build ac-db-import ac-worldserver
docker compose up -d ac-db-import
docker compose restart ac-worldserver
```
The two migrations:
- `2026_05_09_00.sql` -- DBC overlay rows for `chrclasses_dbc` and
`skillraceclassinfo_dbc`. Without this the server can't even
resolve class 12 in `sChrClassesStore`. See **Server-side Paragon
DBC overlay** below.
- `2026_05_10_00.sql` -- `playercreateinfo`, `playercreateinfo_action`,
and `player_class_stats` rows for class 12. Without this
`Player::Create` rejects every (race, class=12) pair as an
"invalid race/class pair" and the worldserver prints
`class-N Level-L does not have stats data!` integrity warnings on
load.
After the rebuild + restart, `ac-worldserver` should log
`>> Loaded 72 Player Create Definitions` (was 62 pre-Paragon) and
character creation succeeds for any DK-eligible race.
If the client **logs in** successfully but **disconnects immediately**
when entering the realm: the auth server is handing your client the