Forgiving Void

Forgiving Void

15M Downloads

Players get stuck in sky (need more information)

TheLimePixel opened this issue ยท 13 comments

commented

The mod is a bit buggy on bigger servers. It tends to keep the player in the sky for a few minutes by continuously teleporting him to a spot. When someone wants to avoid this by teleporting to another player, they crash by going out of bounds. This happens even with 100% TPS, so it's not TPS lag.

commented

This still occurs. has there been a fix? It occurs due to lag, thats for sure. The console also gets spammed with stuff like:
10.12 12:06:03 [Server] Server thread/WARN Darkmega18 moved too quickly! 0.0,335.0577083927641,0.0
10.12 12:05:18 [Server] Server thread/WARN Darkmega18 moved too quickly! 0.0,335.0577083927641,0.0
10.12 12:04:33 [Server] Server thread/WARN Darkmega18 moved too quickly! 0.0,335.0577083927641,0.0
10.12 12:03:48 [Server] Server thread/WARN Darkmega18 moved too quickly! 0.0,333.1211017186044,0.0

I think the server is just hiccuping but there needs to be a way to stop it. because it's actually quite deadly by accident on my pack because you apparently can't breathe that high in the world. so players "asphyxiate" by getting stuck at block 300. and I'm not particularly sure what mod does it either if any.

But this mechanic is also needed by design in my pack, because the player falls through a void world constantly until they make their own platform in it using an angel block and starting items. This creates the effect of just falling for eternity and also stops you from outright dieing from the sudden stop. :< ... and of course stops void jumping cheese if theres hunger, but it's not a big issue in my pack cause it's quick to build up cause the skyblock start is just a start. :V

commented

Alright, those logs helped. I had only been testing as an opped player, where the issue doesn't occur.

Turns out it's actually Vanilla's anti-cheat features being absolutely bad at their job. You could load a Vanilla world right now, teleport a non-op to the sky, and watch them "rubberband" several times before finally getting lucky enough to fall properly.

I've added an option to disable that particular speed check while falling through the void until they land. As a side-effect, that means players could abuse this period to cheat (speedhacks, teleports), however I believe this won't be an issue for the majority of users (and those it would be an issue for, such as public servers, likely are going to have proper anti-cheat measures in place).

If anyone wants to test it on their server, here's a build. You may still get the initial moved too quickly, but the players should fall normally now.

I'll probably release it on Curse in the course of the week.

commented

Erm, slight issue. Your hardcoded fall damage upon re-entry and landing isn't working in this version on singleplayer before I even got to making it an update and putting onto my server... >_<

edit: NEVER MIND! it was the botania odin ring I had on while testing stuff, Rip.

but regardless: speaking of hardcoded. is it possible to make that re-entry damage negateable like any fall by using things that nullify fall damage? Since I've had numerous times where I'd wrap the void then bounce thanks to slime boots from tinkers and come to a stop and be fine. but then I'd just do a normal jump THEN I'd take my 10 damage that I would've taken from the coded fall. or stuff such as landing by using an ender pearl to break my fall, I still take my 10 damage instead of just the 2.5 ender pearl damage. :V Which actually makes it that the botania ring seems to have been the only thing so far to negate it properly and not just have it linger that I've tested. is it just the way they're programmed?

commented

The way it works is that it remembers if the player just fell through the void, and then applies the damage to the first falling event it gets. The slime boots were probably grabbing the fall event before Forgiving Void could get it, which resulted in the damage on a normal jump.

The way the event works, modders only get to set a multiplier applied to the original damage, not an actual damage. To ensure players get exactly the damage as configured, I have to hurt them manually, which is why these other mods have no effect on that damage currently.

However, I've just changed the event handler to 1) run as late as possible and 2) receive cancelled events as well, and 3) apply the damage multiplier other mods specified to the hardcoded damage. That might solve all problems. Build here if you'd like to try.

commented

Roger-roger. Will try. and probably check for updates to other stuff meanwhile too to make a proper update for my pack.

commented

Alright thanks. will give it a shot tomorrow then with several forms of fall negation and such. :D

commented

The fix is up on Curse now, feel free to open another issue if further problems arise.

commented

What version is this on and are you using Sponge?

commented

Do you have a log of that crash you mentioned?

commented

Nope, the guy that mentioned it left my Discord chat. However, he said it only happens in the Nether. That may be mod interaction, but the players being stuck for 10s isn't.

commented

Well on every 1.12/1.12.1 version really and no.

commented

Everything is fine when there's only 1 player on a server, but when there's more, this happens.

commented

The mod only performs a teleport similar to how Ender Pearls do it. Do you have other mods installed (e.g. for anti cheat) that might be interfering? It could also be a matter of connection issues (which would not be reflected in the TPS).

Might be interesting to test if Ender Pearls work fine (as opposed to Forgiving Void, under similar conditions) and whether it happens to every user, consistently.