Improvable Skills 3

Improvable Skills 3

1M Downloads

Occasionally cause players respawn in a corrupted state on server

TerwalEast opened this issue ยท 14 comments

commented

In multiplayer games on remote server, sometimes players would immediately die a second time when they click respawn(Mod features like JourneyMap's Death point and FTB's /back command will record and recognize that second death).
After that and another respawn, player is stuck in a half-dead state, cannot move but can destroy blocks or harm nearby entities.
Disconnecting will solve this, and getting killed and respawn third time may or may not.
On single player worlds "Die Twice" still happen from time to time, but without the following immobilization.

Tested and reproduced with the Improvable Skills only.

commented

Some more tests yield that:
On the half-dead state, player can try to open their Inventory, but would immediately be kicked out as if player closed Inventory. In that brief moment the player avatar is shown in death animation's last frames, red and lying on side.
Wait for ten secs or so before respawning helps avoiding that bug, greatly reducing the frequency of false-death happening, but not completely.

commented

@Xplodin

I have seen this, and my fix was adding NaNny mod

Can you enable logging NaNny, to see which event causes this to happen? Would be much appreciated in getting this resolved.

commented

ye, ill try this on a test instance. I havent really used the mod for a while.

commented

Cant seem to reproduce with only this mod and NaNny
I even command block repeat /kill on my character for 5 straight seconds of pressing respawn really quick

commented

Might be another mod causing this, then? Maybe incompatibility of another mod with Improvable Skills. That, or it has been fixed by Forge/Mojang. Idk.

commented

Do you have any updates on this? I have this issue on 1.19.2. I removed the mod, and the issues stopped, "I Killed my self a lot". But when I reinstalled the mod, the issue pop up only after few deaths.

commented

I have seen this, and my fix was adding NaNny mod

commented

This is happening to me and its really messing up the server now. If a player logs out while dead in this corrupted state it won't let them join the world anymore. Also, with our modpack mobs are pretty aggresive so while in this corrupted state u end up getting killed AGAIN.

I tried NaNny but that didnt help
Heres my modpack: https://drive.toph.cc/share/lSCC1vFL
Password is corrupted

commented

I narrowed down the issue something with JEI and EMI!!

I'm going to test and see which mod is the issue but after removing JEI, EMI and its addons the corrupted state no longer happens and naturally I can join again.

commented

The modpack doesn't help much, I need actual debug info that would let me figure out the issue. In case of players being unable to join the world -- there must be a stack trace on the server logs or something.

This is one of those tricky issues where narrowing it down is very difficult due to the absence of any traces whatsoever.

commented

debug-server.log
latest-server.log

debug.log
latest.log

Logs form server and client.

  • I started a new server, new world
  • joined died and clicked respawn
  • corrupted death happened prompting respawn menu again
  • I clicked tittle screen instead

after this trying to join back in freezes the game

commented

There seem to be a ton of rendering errors from the overlay thirst:thirst_level.
Your issue might be completely unrelated; the overlay rendering can cause freezing or crashing.

The server is completely lacking any errors, indicating that the issue you're facing is definitely client-related.
The server itself has successfully read player data just fine.

The particular issue I am talking about:

[27Jun2024 20:24:25.610] [Render thread/ERROR] [net.minecraftforge.client.gui.overlay.ForgeGui/]: Error rendering overlay 'thirst:thirst_level'
java.lang.NullPointerException: Cannot invoke "dev.ghen.thirst.foundation.common.capability.IThirst.getShouldTickThirst()" because the return value of "net.minecraftforge.common.util.LazyOptional.orElse(Object)" is null
	at dev.ghen.thirst.foundation.gui.ThirstBarRenderer.lambda$static$0(ThirstBarRenderer.java:44) ~[ThirstWasTaken-1.20.1-1.3.7.jar%23798!/:1.20.1-1.3.7]
	at net.minecraftforge.client.gui.overlay.ForgeGui.lambda$render$0(ForgeGui.java:126) ~[forge-1.20.1-47.2.19-universal.jar%23831!/:?]
	at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422) ~[guava-31.1-jre.jar%23102!/:?]
	at net.minecraftforge.client.gui.overlay.ForgeGui.redirect$cjc000$batching(ForgeGui.java:1253) ~[forge-1.20.1-47.2.19-universal.jar%23831!/:?]
	at net.minecraftforge.client.gui.overlay.ForgeGui.m_280421_(ForgeGui.java:121) ~[forge-1.20.1-47.2.19-universal.jar%23831!/:?]
	at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:945) ~[client-1.20.1-20230612.114412-srg.jar%23826!/:?]
	at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23826!/:?]
	at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23826!/:?]
	at net.minecraft.client.main.Main.main(Main.java:218) ~[minecraft-1.20.1-client.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.2.19.jar:?]
	at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.2.19.jar:?]
	at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.2.19.jar:?]
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?]
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?]
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?]
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?]
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]
	at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?]
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100) ~[?:?]
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129) ~[?:?]
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70) ~[?:?]```
commented

I removed thirst was taken and had the same results after dying and trying to joining again. Doesn't seem to be thirst
The game freezes only happens when hammerlib and improvable skills is present on the modpack, I'm assuming its a compat issue but I can't figure out where

last logs with no thirst
latest.log
debug.log
server
debug.log
latest.log

commented

I tested on an empty instance with just JEI, EMI, and Improvable skills and the bug never happened
So the compat issue is not entirely there

However on my modpack here's what I noted
Removing EMI from just server, fixes the corrupted death bug but won't allow me to rejoin after death and leaving.
Removing JEI and EMI from both client and server, no bugs happen, can join
Removing hammerlib and skills no bugs happen, can join

So yeah even more confused now, where the issue is