iWerking

Member
ServUO Version
Publish Unknown
Ultima Expansion
None
Pub 57.4.1 (the baseline)
The 57.x line was primarily about modernizing the build/runtime:

Migrated to the new .NET SDK project format.
Replaced the old Roslyn CSC runtime compilation with dotnet CLI building.
Improved networking for high‑load scenarios.
Various community bugfix contributions.

Pub 58 — major themes added on top of 57.4.1
Based on the PR's commit history, the changes fall into these buckets:
1. Multi‑era / older client support (the headline feature)
Restoring expansion checking so the server can emulate any expansion era (not just the latest), with one era per server installation.
Reinstated older client packet handling in the core.
Fixes for character creation on older clients.
New client encryption support API (encrypted client support).
Restored runtime script compiling (which had been removed in 57.x).

2. Core / framework changes
Global settings library unifying assembly info across all child projects.
TextDefinition converted to a struct (prevents null‑ref issues).
Serialization core API updates; null‑safe object‑list serialization.
Sector updates use HashSets to assert distinct entries; sector activation/deactivation overhaul; RegionRect.GetHashCode override.
Core threading updates and dynamic queue trimming to mitigate memory leaks.
Critical networking optimizations.
Reworked item parents to streamline the API and prevent abuse (plus a stack‑overflow fix).

3. New APIs / hooks
Item.LastHeldByPlayer and LastHeldByStaff tracking properties.
IAccount.LoginIPs array.
Hook for Mobile.LiftItemDupe (custom handler support).
Promo code registration & redemption API for the Ultima Store.
Expanded NameList API.
New [Switch command to toggle boolean property values.
HueDataBrowserGump / HueDataViewGump for inspecting hue tables.
Extended Properties API with interface‑type support.
Dynamic config support for AutoSave; Mobile.ActionDelay exposed in General.cfg.

4. Gameplay / content fixes
Creatures no longer fall lemming‑style from heights ≥20z.
Champion spawn level handling fixes.
Unwieldly weight malus correctly applied to all equipment.
Escort NPCs now accept player requests properly.
Access‑level checks no longer treat VIP as staff.
BaseCamp/escort/timer reliability fixes; movement path fix for impassible items.
Town Crier and Banker gump housekeeping.
Dragon Armor attribute fix; Camp Prisoner "Stockholm syndrome" fix; Sovereign deposit fix.
Restored XmlSpawner editing via XmlTextEntryBooks (with performance/memoization improvements). Note: full XMLQuest was already removed before this; it's not coming back in P58.

5. Diagnostics / dev quality‑of‑life
Exception handling and logging for packet handlers; basic packet send logging in debug.
TileData simplified loading.
Code‑style rules tightened (braces on single‑line if).
All compile warnings cleaned up.



57.4.1 = stable, officially released, single‑era (latest expansion only), modernized build.
58 (p58-wip) = experimental but powerful, especially if you want multi‑expansion / older‑client emulation, encrypted client support, or the new APIs (LastHeldBy, promo codes, item visibility controls). It hasn't been merged in 5 years, so expect to live on a fork and treat it as semi‑maintained.

Reference/thanks:
@Wilson
 

Attachments

Last edited:

Donations

Total amount
$80.00
Goal
$500.00

Shards

Back