Have you considered limiting things by chunk? This would be a neat way of not having to keep track of players, but rather throttling offending chunks. This could have some annoying chunk-boundary effects but overall things might run more smoothly than now.
The possible effects of slowing down per chunk, and the cost of timing/grouping per chunk, means I most likely will not implement it, at least not as a priority.
I am working on per-user limiting, and will hopefully have a test version for that up soon.
Let me see if I understand the mod/goal here:
If it takes a long time to tick everything, then you might get 5 tps, and each entity/tile entity gets ticked 5 times, once per server tick.
With this installed, you will get (best case) 20 tps. During each tick, 1/4th of the entities in the loaded chunks get ticked. Each still gets 5 ticks per second, but only gets updated once every 4 server ticks.
That about sum it up?
So I assume this means that the sun/moon will move properly, at 20 real minutes per cycle, even when the server is loaded, and I won't see the client's idea of "Game time" jump around.
Will things like furnaces ... actually, will a smelt take 10 seconds like it does now, or will it take time based on how many ticks it sees?
The server will try to run at 20 TPS. So things like moving around, redstone, interacting(Opening a chest), digging/placing blocks etc. will run at 20 TPS.
To achieve this it will slow down Entities and TileEntities according to your config with Time Slices.
By default it spread the time equally, meaning that if a tick is taking more than 50 ms, and Entities are using 40ms per tick, it will, for example, only tick half the Entities per tick.
Thus running Entities at only 10 TPS.
For Entities this will mean they will move about slowly(Including things like eating grass and regrowing wool), and for TileEntities like a furnace, they will take longer to finish smelting stuff.
Ohh ... speaking of reactors, how will this work with rotarycraft/reactorcraft machines/engines/reactors?
Depends on how the mods are written.
Certain mods, mostly for multiblock structures, will do the "tick" outside the TileEntities themself, meaning that they will actually run at the server TPS rather than the TileEntity TPS.
As far as I can see, RotaryCraft has no multiblock structures, and should run at the TileEntity TPS without problems.
I'm using it on my server, tps without using it: 12, using it: 18. I'm not getting 20 tps (i know my main problem are tileEntities from DIM0, maybe you can provide me a special cfg? or is there any way to make the mod try to keep my server working at +20 tps, so i can get 20 real tps?) but it's still incredible!
Some people made mods to improve fps, like optifine or fastcraft, but anybody thinks on improving tps, just you. Keep up the good work!
Please note that TickDynamic is not meant as a " permanent fix" for low TPS, but rather as a stopgap while you find and fix the real problem, or to survive lag spikes/peak hours.
For your case, I would suggest looking at the command "/tickdynamic list time [page]", as it will tell you what might cause it to not achieve 20 TPS.
Most likely there is something outside Entities/TileEntities using enough time that slowing down Entities/Tiles can't make up for it.
How much time is used for the "(Other") and "(External)" categories from the command i mentioned?
EDIT: You can also look at the "tickTime" config under "worlds". This defines the max time it will target. Setting this to <50 might allow it to reach 20TPS, but will cause even more slowdown of Entities/TileEntities to accomplish this.
Thank you all for the feedback so far =)
I'm still working on version 0.2.0 which will introduce the ability to define custom groups of Entities/TileEntities, to allow for more control, and even exclude certain Entities/Tiles or Mods from the slowing effect.
After that, for 0.3.0, I will work on per-user accounting.