Want a better Minecraft server? Read about SpigotMC here!
Separate names with a comma.
Discussion in 'Wiki Discussion' started by jtaylor69, Jun 13, 2013.
The wiki looks excellent as of right now.
Added a bit about hopper-alt-ticking.
If you've experienced anything like this, you have two options:
1. Make hopper-alt-ticking false, hopper-amount 1, hopper-transfer 8, and hopper-check 0.
2. Or make hopper-alt-ticking true, hopper-amount 1, and hopper-transfer 8.
Both options make hoppers behave as they do in default minecraft or on a craftbukkit server, but the option 2 is very different internally and is usually better than option 1.
There is a third option: 3. Make hopper-alt-ticking false, hopper-amount 1, hopper-transfer 8, and hopper-check 8. This will not make hoppers behave normally, but it may be a better option for your server speed-wise.
If we define an idle hopper as a hopper that is not moving items, then
Option 3 is better than option 1 if more than 8% of the hoppers on your server are idle.
Option 2 is better than option 1 if more than 44% of the hoppers on your server are idle.
Option 2 is better than option 3 if more than 87% of the hoppers on your server are idle.
With option 1 and 2 having the advantage of vanilla behavior.
If you're not comfortable with guessing what fraction of hoppers are idle on your server, then you can always try different configurations to see which is best. You're also free to mix and match however you like. I used these options as examples because option 1 and 2 are the only ones which allow vanilla behavior and option 3 is the spigot default.
Thanks for your contributions all, this is what I like to see
Would someone take a look into the Entity-tracking-range? The Misc and Other is either mixed up, or something changed in spigot and wasn't noted.
"Miscellaneous controls the range for item frames, paintings, dropped items, experience orbs, and sign text."
By default settings and the current details stated about signs, the player should be able to load Sign Text within 32 blocks, which is true, but if they are up to 64 blocks away, the sign text is still loaded. None of the settings seem to effect it. I even did a quick test with Other, since it is the only setting with 64 set, and set it to 32. Sign text still shows up to 64 blocks away. Just to humor myself, I upped it to 128, 64 is still the sweet number.
As far as I can tell, there is no control of how far from a sign a player is until the text is loaded.
It probably is cached for the client; as a server you can only control what you send not what the player actually sees . If your chunk distance is set to 4 for instance, then clients can still see older chunks out of the 4 chunk radius however there will not be loaded any new chunks beyond that chunk distance for the client.
It would be great if the documentation would also provide the values that are the equivalent of the Minecraft vanilla server. I had to learn the hard way, the Spigot default values break a lot of machinery built in vanilla conditions.
Here are some that I've found:
exp: 1.0(the Spigot default of "3.0" makes XP orbs often merge immediately after spawning. Not much of an issue, but I've had players asking me why mob's didn't seem to drop as much XP as previously)
item: 1.0(the Spigot default of "2.5" has actually broken water-ice-combo conveyers that are fed by droppers because items got stuck in slow flowing curves merging with the next item behind them to bigger stacks)
(the Spigot default value of "4" reduces spawn rates in mob farms, because the smaller cuboid range makes it more likely for a random mob spawn location to hit a player's "no-spawn" sphere and fail)
hopper-check: 1(the Spigot default value of "8" makes a hopper check for items to suck in every 8 ticks, which can cause machinery based on sucking in fast moving items like on an ice-conveyor or from fast moving chest minecart to miss)
The current explanation of this setting seems too vague to me to make an educated decision. So I took the time to look its effect up in Spigot's source code. My best guess ist that it's primary effect is to act like hopper-check were set to 1 (and behave as vanilla), but synchronize hopper checks with actualy server time, not with game ticks, which means that when the server lags behind in ticks (which can happen due to garbage collection, ticks that take longer than 50 ms or CPU under other heavy load) hoppers will skip over their checks when the server is trying to catch up.
Bit in effect it can cause "hopper clocks" to become out of sync with other parts of redstone mechanics that rely on a hopper clock to signal at very precise counts of ticks.
It would be great, if a contributor could confirm or correct me on this.
EDIT: I was wrong on my assumption, thanks for Dmck2b for clearing that up. Also, before anyone quotes me on this: hopper clocks aren't negatively affected by hopper-alt-ticking set to true, as any hopper pushing things into other hoppers (or hopper minecars) will also trigger the receiving hopper's hopper-transfer timer.
Pretty much instead of being checked every tick, hoippers will be a bit smarter about how they tick. If they are active, then they will stay activate and mirror vanilla behaviors (unless you've changed the amount of items that move each hopper tick). But if they aren't active, they won't be fully ticked. Instead, they will wait to be 'randomly' ticked by the game (similar as to how plants grow/ grass spreads) and during that tick, they will be checked if they need to be made active and if so, return to being active and if not they will stay dormant.
Yeah, took another look in the source code and saw the connection between BlockHopper and TileEntityHopper.makeTick() now. Thanks for clearing that up
Edited hopper-check, hopper-transfer, and hopper-alt-ticking for clarity. Also edited merge-radius (which actually has vanilla values -1 for exp and .5 for items) and mob-spawn-range (which actually has vanilla value 8).
Hopper-check was the original solution to the hopper lag issues, but it was breaking machines, so we implemented hopper-alt-ticking which solves the lag issues (in some cases, better) and provides vanilla behavior. Rather than ticking each hopper each tick, it schedules hopper updates only when needed. For example, if a player has 100x100 hoppers for catching gold from a gold farm, then the item entities will look for hoppers below them and only schedule those hoppers to tick while the other hoppers remain dormant.
The random updates on hoppers is intended as a fallback for when a hopper has stuff to do, but it never got scheduled. Mojang used random updates on redstone torches for a similar effect.
You can see all hopper-alt-ticking stuff here: https://hub.spigotmc.org/stash/proj...Patches/0140-Alternative-Hopper-Ticking.patch
Al that options! Awesome!
Why is there nothing in my spigot.yml? There's absolutely no text in it, nothing...
How is that possible?
What version of Spigot are you using? This isn't possible unless you're using a very old JAR or your JAR is corrupt.
VERY NEED MORE CUSTOM messages! For other languages. =( Like custom "lost connection: You must wait 10 seconds before logging-in again." And many others messages. =(
How do I add/edit the max-tick-time one? I can't seem to find it.
thanks for sharing.
Thanks.A lot of work to create
Thank you to everyone keeping this document updated.
Would someone mind looking at hanging-tick-frequency? Currently the description is neither very telling as to what it does, or a complete english sentence. From my understanding, it "Controls the changes the amount of ticks between every time hanging is ticked for updates."
So, yeah. There's that.
I wish there was an option: allow-end: true/false. Thanks for the post