## DMZ Ragnarok 1.1.343
**The lag release: the open world shards were building tens of thousands of mobs a second, and a long list of smaller costs is gone with it.**
### Natural mob spawns were built and then thrown away
- **The open world shards constructed 10,000 to 57,000 entities every second**, while the hub built about a dozen. The open world region turns natural mob spawning off, but that rule was checked only after the game had already created each mob. Every candidate was built, rejected and discarded, so the mob limit never filled and every spawnable chunk around every player tried again on the very next tick.
- **Natural spawns are now refused before any mob is created**, both by regions and by protection zones, so a region that denies spawning costs almost nothing.
### Lag spikes
- **A permission change no longer rebuilds every player's command list in a single tick.** Rebuilds are spread out over the following ticks within a small time budget, each rebuild checks each permission once, and a login now sends one command list instead of three.
- **NPC regions spawn at most 3 NPCs per region and 20 in total per tick**, instead of hundreds at once when many players gather. How many NPCs a region holds is unchanged: the limit per nearby player is the same, they simply arrive over half a second. Regions now keep track of their own NPCs instead of searching every entity in the world, only place NPCs where they will actually move, and remove extras that pile up when chunks reload.
- **Region kill rewards no longer wait on the database** on the thread that runs the game.
- **Network sync does far less work per tick**: unchanged data is no longer compressed every few seconds, nearby players from the other shard update less wastefully, and logins have their own thread for handovers.
- **/rtp no longer freezes the server** while it generates terrain for a destination.
- Cheaper protection checks, portals, zones, holograms, raid and tournament hosts, quest waypoints, form bonuses and the dungeon time limit.
### Dungeons
- **A floor guardian could respawn every tick.** If the arena had not finished loading, a freshly spawned guardian could not be seen by the check for a living one, so another spawned, and another. One floor collected hundreds of Raditz this way. Guardians now wait for the arena to load and cannot respawn more than once every five minutes unless the last one was killed, and floor portals no longer re-route a player every tick.
- **Advanced spawners set to a saved NPC never counted their own mobs** and spawned a full new wave every cooldown with no limit. They now count what they spawned, so the configured cap holds.
### Classes
- **A class a server has switched off no longer shows up for players.** Hidden classes were still sent to clients from the race files, so they appeared in character creation anyway.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }