Notice These changes are only applied to the 1.12 servers so far. The other servers will soon be updated as well. Introduction What is EntityControl? EntityControl is a custom plugin made by MyM, and exists on all of our 1.7.10 and above servers. It is this plugin that enforces the "only so-and-so many entities are allowed to exist in a 3x3 chunk area" which many of you, members of the MyM community, are aware of. By default, a maximum amount of 40 Entities are allowed to exist within a 3x3 chunk area. Out of these 40, up to 30 of them are allowed to be animals, and up to 20 of them are allowed to be monsters, leading to any variation between [30 animals + 10 monsters] and [20 animals + 20 monsters]. These limits can and are tweaked as necessary for each individual server. If this limit is met or exceeded, then new spawns are not allowed. If the limit has been exceeded, then entities are culled when the chunks are (re-)loaded. Many of you don't like how unpredictable this system in. This is where the new changes come in. The old EntityControl To explain exactly what has changed, I need to preface this with how they were culled. Every chunk has a list of many entity-specific lists, which contain entities inside of them. Something like a master-list containing a list of cows, a list of sheep, a list of zombies, and so forth. The order of the entities being culled was dependent on where in this list of lists the entities were. If they were at the top of the list(s), then they were culled. Their position in the list(s) was dependent on where in the chunk they were, in a first-found-first-written-down system. This meant that entities that you wanted to stay, such as farm animals, pets and more, could get removed any time you reloaded a chunk. On some modpacks, this was quite troubling as some resources could only be generated by certain entities, or you needed to breed/train/upgrade them and suddenly all that work was deleted. The new EntityControl I have re-written the logic in which EntityControl culls entities. Instead of the first-found-first-killed system that we have had for quite some time, all of these entities are now sorted by age and persistence. Now, most of those entities in the list of lists are copied to, you guessed it, one more list. This list is special however. It is sorted. Younger entities first, then older, in ascending order. Now, comes a second list. This list contains the remaining entities that aren't in the first list. What decides in which list an entity goes? Whether or not the Entity in question is persistent. This list is sorted by age as well, for reasons that will be mentioned below. Persistence is a vanilla mechanic, and is automatically set when you use a nametag on an entity, when you tame a pet, or through a select other few modded interactions, such as Jailor's Safari Nets etc. EntityControl now culls entities first from the 'normal' list of entities, removing the younger/newer entities first. If however, this list is empty, and the 3x3 chunk area still has too many entities, then EntityControll will start culling from the persistent list, removing the younger/newer entities there. How this affects you It is now much easier for you, the player, to keep your pets and your farm-animals without having to put them in a pokéball/jar/lasso. Whilst there is still a chance for them to be removed, the chance is no longer completely random. The older (in correlation to other nearby entities) your pets/farm-animals are, the smaller said chance of them being removed becomes. Let's say that we're on SevTech, and want to make sure that our new baby buffalo stays. We just just need to put a name-tag on them, or use something else which sets persistence, and then go kill any other entity in this 3x3 chunk region which is older than our new buffalo. As new entities spawn, which will be younger than our buffalo, they'll be put before the buffalo in these 2 lists, essentially pushing our buffalo to the back, and further away from the deadly reach of EntityControl. Summary Entities are now culled by EntityControl differently than before. Instead of haphazardly killing entities as they're given to the plugin, they're now sorted. The sorting is done in two stages: first by age, and then by persistence. Younger/newer entities are killed first EntityControl continues culling entities based on age in ascending order If there's no more normal entities to cull, it starts to cull persistent entities The persistent entities are sorted by age in ascending order as well Once the 3x3 chunk area has less than a total of n (default 40) entities again, it stops culling. Any new entities spawning in this 3x3 chunk area (and going over the limit) will be killed first before EntityControl starts looking at the older entities.