promotional bannermobile promotional banner

RegionSpawnMobs

Take full control of how mobs spawn in your world. Define where they appear, how many, when, and under what conditions.

File Details

RegionSpawnMobs-1.1.3.jar

  • B
  • Apr 17, 2026
  • 260.79 KB
  • 90
  • Early Access

File Name

RegionSpawnMobs-1.1.3.jar

Supported Versions

  • Early Access

Changelog - Version 1.1.3

Added

SpawnPoint maxSpawn

  • Each SpawnPoint can now have an optional maxSpawn
  • maxSpawn limits how many live mobs from that point can exist at the same time
  • Accepted values:
    • null / empty / Unlimited = no limit
    • 1..50 = active limit
  • The control uses the spawnPointId saved in the tracker and the count performed during the region scan

maxAlive per entity

  • Each EntitySpawnConfig can now have an optional maxAlive
  • maxAlive limits how many mobs of that entityId can be alive in the region
  • Accepted values:
    • null / empty / Unlimited = no limit
    • 1..200 = active limit
  • The filter happens before the final spawn roll, using the scan by entityId

Expanded scan

  • The region scan now counts:
    • total mobs
    • density per chunk
    • density per SpawnPoint
    • density per entityId
  • This allows applying maxSpawn and maxAlive without a parallel runtime system

Containment — Return to SpawnPoint

  • When a mob leaves the region boundary and is teleported back, it now returns to its original SpawnPoint instead of a random position inside the region
  • The spawnPointId is already stored in the RegionTrackerComponent since spawn, so the lookup is direct via UUID — no ambiguity even if multiple SpawnPoints share the same name
  • If the mob has no SpawnPoint (spawned without one) or the SpawnPoint was deleted, the system falls back to the existing random safe position behavior

Region Parent System

  • Any region can now declare a parentRegionPath pointing to another region
  • When a field is empty/null locally, the region inherits it from the parent
  • Inheritable fields:
    • entities — mob list and configs
    • presetId — spawn interval and quantities
    • spawnMode — CONTINUOUS, WAVE or THRESHOLD
    • spawnConditions — time of day, weather, terrain
    • ignoreChunkDensity — chunk density bypass
  • Non-inheritable fields (always local):
    • boundaryspawnPointsregionIdregionNamefolderPathisActivemaxPerChunk
  • Rules:
    • Maximum 1 level of depth — a parent cannot have a parent
    • A region cannot be its own parent
    • Deleting a region that has children is blocked until the children are unlinked
    • Renaming a parent region automatically updates parentRegionPath in all children
    • Moving files manually outside the mod is the admin's responsibility
  • parentRegionPath is stored as the full path string (folderPath/regionName) in the JSON
  • If the parent is not found by full path, the system attempts fallback by unique name
  • If not found at all, the region operates as independent and logs a warning

Preset and Mode — Required Fields

  • presetId and spawnMode no longer default to default / CONTINUOUS on region creation
  • Both fields now start as null (none), forcing explicit configuration
  • If a region has no parent and tries to spawn without preset or mode configured, the system skips spawn and logs a warning in the console
  • The warning is throttled to once every 15 seconds per region to avoid console spam
  • If the region has a parent configured, none is valid — the values are inherited

RegionConfig Menu — Parent Field

  • New Parent dropdown added to the Region section of the config menu
  • Positioned below Folder — alongside other structural fields (Name, Folder, Parent, World)
  • Lists all regions that are valid parents (no parent themselves, not the region being edited)
  • Select (none) to remove the parent link
  • Preset and Mode dropdowns now include (none) as the first option
  • Saving without preset or mode configured (and no parent) is blocked with a clear error message in the menu status bar

Changed

Redesigned RegionConfig

  • RegionConfig was reorganized into 3 columns:
    • Region
    • SpawnPoints
    • Mobs
  • The screen became wider and clearer for large configurations
  • SpawnPoint now shows a short Point ID to differentiate points with similar names

SpawnPoint filter flow

  • Allow Mob and Remove Mob remain as dropdowns
  • Selections are applied directly when clicking Save SpawnPoint
  • Separate add/remove filter buttons were removed

Unified menus

  • RegionPreset and Terrain Type now follow the same visual and interaction pattern
  • The global menu was also updated to the same style

Migration and persistence

  • Missing or invalid folderPath is now automatically corrected based on the actual file folder
  • Normalization happens on the loaded file itself, without creating duplicates
  • Regions at the root are saved to regions/<name>.json
  • Regions in a folder are saved to regions/<folderPath>/<name>.json

Fixed

Saving and normalization

  • Fixed behavior that created duplicate JSON during migration of old regions
  • Fixed folderPath inference to reflect the actual folder inside regions/
  • Fixed use of System.err in persistence warnings, replaced by Hytale logger

RegionConfig

  • Fixed visual inconsistency in the SpawnPoint flow
  • Adjusted layout to avoid overlap between sections and footer
  • Improved consistency of SpawnPoint filter saving

Terrain Type Config

  • Improved reading of the configured terrain types list
  • Fixed visual behavior of the panel with long content and scroll

Notes

  • maxSpawn resolves local control per point
  • maxAlive adds a regional cap per entity when that global control is desired
  • Both options work together with SpawnPointspawnMode and ignoreChunkDensity
  • The parent system is designed for reuse — create one region with all mobs configured and link multiple regions to it, each with its own boundary and SpawnPoints
  • Preset and mode are now intentionally required — a region without them and without a parent will not spawn anything and will warn the admin every 15 seconds

Version: 1.1.3
Compatibility: compatible with old regions; folderPath is automatically normalized when necessary. Existing regions without presetId or spawnMode will log warnings until configured.