Dev-loop friction on branch live-ebx.
Symptom
After modList.ReloadExtensions, every inspector fetch fails with:
[PartitionSerializer] ERROR: Partition not found / not loaded: <guid>
and stays broken until the server is fully restarted (which reloads the level).
Cause
PartitionSerializer populates self.m_Partitions only from Events:Subscribe('Partition:Loaded', ...), and clears it on Level:Destroy. A reload re-runs __init -> m_Partitions = {}, but the level is already loaded, so Partition:Loaded never fires again and nothing repopulates the cache.
Effect
Every ext change to MapEditor requires a full server restart rather than a reload, which is a meaningful tax on iteration (WebUI-only changes are fine via the normal build).
Fix direction
Rebuild the cache on init/reload by scanning already-loaded partitions instead of relying solely on the event. There are already two fallback paths for uncached partitions (a name lookup, and a single-instance SearchForInstanceByGuid fallback), which suggests this has been worked around rather than fixed.
Dev-loop friction on branch
live-ebx.Symptom
After
modList.ReloadExtensions, every inspector fetch fails with:and stays broken until the server is fully restarted (which reloads the level).
Cause
PartitionSerializerpopulatesself.m_Partitionsonly fromEvents:Subscribe('Partition:Loaded', ...), and clears it onLevel:Destroy. A reload re-runs__init->m_Partitions = {}, but the level is already loaded, soPartition:Loadednever fires again and nothing repopulates the cache.Effect
Every ext change to MapEditor requires a full server restart rather than a reload, which is a meaningful tax on iteration (WebUI-only changes are fine via the normal build).
Fix direction
Rebuild the cache on init/reload by scanning already-loaded partitions instead of relying solely on the event. There are already two fallback paths for uncached partitions (a name lookup, and a single-instance
SearchForInstanceByGuidfallback), which suggests this has been worked around rather than fixed.