ModernUO/dev-docs
Kamron Batman 5df8d0bdae refactor(server): unify first-boot prompts into the ConfigurePrompts phase
Move the engine's own first-boot prompts (data directories, listeners, server
name, expansion + map selection) out of ServerConfiguration.Load and into
ServerConfiguration.ConfigurePrompts() [CallPriority(0)], so all first-boot
prompting -- engine and content -- runs through the single
AssemblyHandler.Invoke("ConfigurePrompts") phase. Load now only reads/creates
the config file.

- Feasible because assembly loading uses AssemblyDirectories (default
  ./Assemblies), not DataDirectories, so assemblies load before the now-later
  data-dir prompt.
- UOClient.Load() (client-file discovery) moves with the data-dir prompt.
- Core.Expansion is now assigned in ConfigurePrompts (every non-mocked boot);
  nothing between LoadAssemblies and that phase reads it (type initializers run
  lazily, not at load).
- CallPriority(0) keeps engine prompts (incl. map selection) ahead of content
  prompts like the pathfinding pre-bake (priority 50).

Main.cs already invokes the ConfigurePrompts phase, so no startup-ordering edit.
Tests are unaffected: fixtures call Load(true), which now just reads config, and
set expansion/data dirs directly; ConfigurePrompts is gated on m_Mocked.
Updates dev-docs/server-lifecycle.md to reflect the unified design.

NOTE: Main.cs startup ordering isn't covered by the fixture-based test suite, so
this needs a first-boot runtime check (fresh modernuo.json) before merge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 05:11:15 -07:00
..
claude-skills docs(messages): document interpolation anti-patterns and :L format spec (#2441) 2026-05-03 18:23:50 -07:00
runuo-migration-docs docs: Updates CLAUDE dev-docs/skills for serialization (#2372) 2026-03-15 01:05:03 -07:00
code-standards.md feat: Add zero-alloc interpolation handler to ValueStringBuilder, replace all StringBuilder usage (#2387) 2026-03-22 14:23:44 -07:00
commands-targeting.md chore: Adds AI instructions and SKILLs for ModernUO codebase (#2347) 2026-03-01 11:42:19 -08:00
configuration.md chore: Adds AI instructions and SKILLs for ModernUO codebase (#2347) 2026-03-01 11:42:19 -08:00
content-patterns.md docs: Updates CLAUDE dev-docs/skills for serialization (#2372) 2026-03-15 01:05:03 -07:00
era-expansion.md chore: Adds AI instructions and SKILLs for ModernUO codebase (#2347) 2026-03-01 11:42:19 -08:00
event-scheduler.md chore: Adds AI instructions and SKILLs for ModernUO codebase (#2347) 2026-03-01 11:42:19 -08:00
events.md chore: Adds AI instructions and SKILLs for ModernUO codebase (#2347) 2026-03-01 11:42:19 -08:00
gump-system.md docs(messages): document interpolation anti-patterns and :L format spec (#2441) 2026-05-03 18:23:50 -07:00
networking-packets.md docs(messages): document interpolation anti-patterns and :L format spec (#2441) 2026-05-03 18:23:50 -07:00
pathfinding.md feat(pathfinding): first-boot prompt to pre-bake the .swb map cache (#2475) 2026-06-07 16:30:33 -07:00
property-lists.md docs(messages): document interpolation anti-patterns and :L format spec (#2441) 2026-05-03 18:23:50 -07:00
regions.md chore: Adds AI instructions and SKILLs for ModernUO codebase (#2347) 2026-03-01 11:42:19 -08:00
serialization.md fix: Preserve corpse notoriety across server restart (#2426) 2026-05-03 02:15:01 -07:00
server-lifecycle.md refactor(server): unify first-boot prompts into the ConfigurePrompts phase 2026-06-08 05:11:15 -07:00
string-handling.md docs(messages): document interpolation anti-patterns and :L format spec (#2441) 2026-05-03 18:23:50 -07:00
t2a-crafting.md feat: Pre-Publish 14 Crafting (supersedes #2181, #2381) (#2476) 2026-06-07 20:27:22 -07:00
threading-model.md chore: Adds AI instructions and SKILLs for ModernUO codebase (#2347) 2026-03-01 11:42:19 -08:00
timers.md docs: Updates CLAUDE dev-docs/skills for serialization (#2372) 2026-03-15 01:05:03 -07:00