RegionSpawnMobs-2.0.0.jar
What's new
Changelog - Version 2.0.0
Release Summary
This is a major release that consolidates everything built since 1.1.9 into a single production-ready version. The main goals were:
- complete the SpawnPoint visual system with interactive drag-to-relocate support
- add a region picker for overlapping regions
- introduce
/rsmkilllostfor cleaning up untracked entities inside regions - refactor the visualization layer into dedicated renderer classes
- finalize all UI files and item definitions for the full admin toolset
- ship full i18n coverage across en-US, pt-BR, ru-RU, and uk-UA
New for Server Admins
1) SpawnPoint Visual Entities
SpawnPoints are now represented by persistent visual entities in the world.
Behavior:
- a colored cube model appears at each SpawnPoint position
- the SpawnPoint name is shown as a nameplate above the entity
- visuals are only visible to admins (adventure-mode players do not see them)
- clicking a SpawnPoint visual opens the region editor directly on the SpawnPoints tab, with that point pre-selected
- dragging the visual entity to a new position inside the region automatically relocates the SpawnPoint and saves the region
- if the visual is dragged outside the region boundary, it snaps back to the original position
- orphan visuals (SpawnPoint was deleted) are automatically removed on the next tick cycle
- visuals are recreated automatically if they disappear (chunk reload, server restart)
New component: SpawnPointVisualComponent — stores spawnPointId and regionId on the visual entity.
New system: SpawnPointVisualTickingSystem — runs every 5 seconds per world, reconciles visuals with the current SpawnPoint list.
New service: SpawnPointVisualManager — handles creation and update of visual entities.
New interaction handler: SpawnPointVisualInteraction — resolves which region and SpawnPoint a clicked visual belongs to and opens the correct editor tab.
2) Region Picker for Overlapping Regions
When the admin opens the region editor while standing inside multiple overlapping regions, a picker screen is shown instead of opening one arbitrarily.
Behavior:
- lists all regions that contain the player's current position
- sorted alphabetically by full path
- clicking Edit on a row opens that region's config directly
- if only one region contains the player, the picker is skipped
New screen: RegionPickerGui — uses the existing ConfigMenuRegionRow.ui row component.
3) New Command: /rsmkilllost
Removes loaded entities inside region boundaries that match the region's configured entity ids
but are not tracked by RegionTrackerComponent.
Use case: clean up mobs that were spawned by a previous version, a different plugin, or manually placed and are now occupying region capacity without being tracked.
Behavior:
- scans all active regions across all loaded worlds
- matches entities by NPC role name, NPC type id, or model asset id (case-insensitive)
- only removes entities that are inside the region boundary and have no tracker component
- reports removed count per region and total
Command: /rsmkilllost
Permission: admin
Visualization Refactor
RegionVisualizationService was refactored from a single large class (~540 lines) into
dedicated renderer classes. Each renderer handles one visual concern:
| Class | Responsibility |
|---|---|
BoundaryRenderer |
Region boundary box shapes |
ChunkDensityRenderer |
Per-chunk density overlay (gray/green/yellow/red) |
LiveMobRenderer |
Flock ring + leash line from mob to spawn origin |
SpawnPointRenderer |
SpawnPoint cube visuals in REGIONS mode |
ZoneRenderer |
Zone and cut area shapes |
DebugShapeSender |
Low-level shape packet dispatch |
Practical impact:
- easier to maintain and extend individual visual modes
- no behavior change for admins — all existing visualization modes work the same
UI Files Finalized
All UI definition files are now complete and registered:
Region:
RegionConfig.ui— tabbed region editor (Region / SpawnPoints / Mobs / Zones)RegionConfigMobRow.ui,RegionConfigMobGroupHeader.ui,RegionConfigMobBreakdownRow.ui,RegionConfigMobSearchRow.uiRegionConfigSpawnPointMobRow.ui,RegionConfigVisualPanel.uiRegionConfigZoneRow.ui,RegionConfigZoneBoxRow.uiRegionPicker.ui— overlapping region pickerSpawnPointCreate.ui— SpawnPoint creation screen
Zone / Cut:
ZoneConfig.ui,ZoneConfigZoneRow.ui,ZoneConfigBoxRow.uiCutConfig.ui,CutConfigCutRow.ui,CutConfigBoxRow.ui
Marker:
MarkerConfig.ui,MarkerConfigRow.ui,MarkerCreate.ui,MarkerEdit.ui
Global / Preset / Terrain:
GlobalConfig.ui,PresetConfig.ui,TerrainTypeConfig.ui
Config Menu:
ConfigMenu.ui,ConfigMenuRegionRow.ui
HUD Legends:
Hud/RsmConfigToolLegend.uiHud/RsmMarkerToolLegend.uiHud/RsmMarkerMenuLegend.ui
Admin Items
Two items are available in the Tools tab in Creative mode:
| Item | Left Click | Right Click |
|---|---|---|
RSM Config Tool (Rsm_ConfigMenu) |
Opens the main config menu | Opens the region editor for the region under the player |
RSM Marker Tool (Rsm_MarkerEditTool) |
Opens the marker list | Right-click a marker visual to open its editor |
All items use the Rsm_Developer quality and show a HUD legend while held.
Root interactions registered:
Open_RsmConfigMenuOpen_RsmRegionEditMenuOpen_RsmCutConfigMenuOpen_RsmZoneConfigMenuOpen_RsmMarkerConfigMenuOpen_RsmMarkerCreateOpen_RsmMarkerEditFromVisualOpen_RsmMarkerEditTargetOpen_RsmSpawnpointMenuOpen_RsmSpawnPointVisual
Models
Two custom models are now registered:
| Model | Used by |
|---|---|
RSM_SpawnPoint |
SpawnPoint visual entities |
RSM_Spawn_Marker |
Spawn Marker visual entities |
Internationalization
Full translation coverage for all player-facing strings:
| Language | File |
|---|---|
| English | en-US/server.lang (434 keys — source of truth) |
| Portuguese (BR) | pt-BR/server.lang (434 keys) |
| Russian | ru-RU/server.lang (402 keys) |
| Ukrainian | uk-UA/server.lang (402 keys) |
| Fallback | fallback.lang (64 keys) |
Key pattern: server.rsm.<group>.<action>.<type>
Internal Changes
RotationUtiladded — normalizes rotation vectors to finite values before writing toTransformComponent, preventing NaN/Infinity in saved entity dataRegionSpawnPointPolicyupdated — accounts for SpawnPoint visual entities when evaluating spawn eligibilitySpawnPointmodel updated — addedsetX,setY,setZsetters andgetDisplayName()for nameplate syncSpawnMarkermodel updated — additional fields for activation-aware reconcile introduced in 1.1.9 are now fully persistedMarkerSpawnControllerupdated — combat leash and tamed-mob tracker cleanup from 1.1.8/1.1.9 finalizedMarkerVisualManagerupdated — visual entity lifecycle aligned withSpawnPointVisualManagerpattern- All commands updated — permission checks and translation keys aligned with the final i18n schema
RegionConfigGuiexpanded — Zones tab added, mob breakdown rows, SpawnPoint visual interaction wired in
Compatibility
- Data compatibility: fully compatible with 1.1.9
- Migration required: no
- New component type registered:
SpawnPointVisualComponent - New system registered:
SpawnPointVisualTickingSystem - Existing regions, markers, presets, and terrain types load without changes
Version: 2.0.0
This mod has no additional files

