Project Zomboid

Project Zomboid

Proper Vehicle Injuries for MP
 This topic has been pinned, so it's probably important
Fluffy89  [developer] 23 Jul, 2023 @ 9:02am
Bugs & Issues
Please report bugs and potential issues here!
< >
Showing 1-13 of 13 comments
Rabbit 29 Aug, 2023 @ 12:14am 
Gave myself a medium impact injury just by stopping on a motorcycle. Hit nothing other than the brakes - what setting should I adjust in the sandbox options to make it less likely to think that regular heavy-braking isn't an actual collision?
Fluffy89  [developer] 29 Aug, 2023 @ 1:01pm 
Originally posted by Rabbit:
Gave myself a medium impact injury just by stopping on a motorcycle. Hit nothing other than the brakes - what setting should I adjust in the sandbox options to make it less likely to think that regular heavy-braking isn't an actual collision?

Adjust the interval sandbox option. It changes how many in game ticks must pass by before the mod will check again if you have been in a collision. The lower the number, the more frequent it will check.

By default, an interval of 30 in game ticks per collision check is enough for all vanilla vehicles with speed demon, but modded vehicles can be more touchy when it comes to braking/accelerating.
Last edited by Fluffy89; 29 Aug, 2023 @ 1:01pm
Rabbit 29 Aug, 2023 @ 9:06pm 
So those of us hemorrhaging our guts via our seatbelts need to turn that option to a LOWer number, right?.. So that it sees the braking happen as a curve rather than just assuming that we hit an invisible brick wall, is that the correct direction to go?

Just want to make sure I have it in mind right before I get all zoomie again. I love how the mod works, I just gotta get it set right for these zippy bikes.
Fluffy89  [developer] 29 Aug, 2023 @ 10:00pm 
Originally posted by Rabbit:
So those of us hemorrhaging our guts via our seatbelts need to turn that option to a LOWer number, right?.. So that it sees the braking happen as a curve rather than just assuming that we hit an invisible brick wall, is that the correct direction to go?

Just want to make sure I have it in mind right before I get all zoomie again. I love how the mod works, I just gotta get it set right for these zippy bikes.

On the right track, but only the host/config for the dedicated server needs to change their/its sandbox options.

If you're hosting via the 'Host' button in Zomboid, you can edit the server profile and the mods sandbox options there. If your hosting a dedicated server, you'll need to find and edit the config file, or set the sandbox options via the admin panel in game and restart the server.

When you set the interval lower, it basically lowers the time between checks for a collision. So if you lower it from 30 to say, 15, it will check your speed difference twice as often, meaning you would need to accelerate twice as hard to get the same injuries as you currently have.

Hope this helps!
Rabbit 30 Aug, 2023 @ 5:02pm 
That's basically how I was thinking, but just playing in SP here and speaking in plural because I'm sure there are other player's who'd benefit from the clarification. Great mod, and thank you!
Fluffy89  [developer] 30 Aug, 2023 @ 5:10pm 
Originally posted by Rabbit:
That's basically how I was thinking, but just playing in SP here and speaking in plural because I'm sure there are other player's who'd benefit from the clarification. Great mod, and thank you!

Appreciated! Hope all goes well :)
Agitatio 4 Dec, 2023 @ 10:07am 
Don't know if these are helpful, but they came up after Working Seatbelts update. On collision. But I bet you already know the issue judging from you conversation with the author.
attempted index: getValue of non-table: null function: initWorkingSeatbeltCompatibility -- file: ProperVehicleInjuries_Client.lua line # 375 | MOD: ProperVehicleInjuriesMP function: initMod -- file: ProperVehicleInjuries_Client.lua line # 478 | MOD: ProperVehicleInjuriesMP java.lang.RuntimeException: attempted index: getValue of non-table: null at se.krka.kahlua.vm.KahluaThread.tableget(KahluaThread.java:1689) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:641) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1812) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:66) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:139) at zombie.Lua.Event.trigger(Event.java:64) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:65) at zombie.gameStates.IngameState.enter(IngameState.java:737) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:145) at zombie.GameWindow.logic(GameWindow.java:298) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:765) at zombie.GameWindow.run_ez(GameWindow.java:681) at zombie.GameWindow.mainThread(GameWindow.java:495) at java.base/java.lang.Thread.run(Unknown Source)
function: doMultiInjury -- file: ProperVehicleInjuries_Client.lua line # 274 | MOD: ProperVehicleInjuriesMP function: checkCollision -- file: ProperVehicleInjuries_Client.lua line # 345 | MOD: ProperVehicleInjuriesMP java.lang.RuntimeException: __sub not defined for operands in doMultiInjury at se.krka.kahlua.vm.KahluaUtil.fail(KahluaUtil.java:82) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:676) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1812) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:66) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:139) at zombie.Lua.Event.trigger(Event.java:64) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:92) at zombie.gameStates.IngameState.updateInternal(IngameState.java:1624) at zombie.gameStates.IngameState.update(IngameState.java:1333) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101) at zombie.GameWindow.logic(GameWindow.java:298) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:765) at zombie.GameWindow.run_ez(GameWindow.java:681) at zombie.GameWindow.mainThread(GameWindow.java:495) at java.base/java.lang.Thread.run(Unknown Source)
Last edited by Agitatio; 4 Dec, 2023 @ 10:08am
Fluffy89  [developer] 4 Dec, 2023 @ 11:21am 
Originally posted by Agitatio:
Don't know if these are helpful, but they came up after Working Seatbelts update. On collision. But I bet you already know the issue judging from you conversation with the author.
attempted index: getValue of non-table: null function: initWorkingSeatbeltCompatibility -- file: ProperVehicleInjuries_Client.lua line # 375 | MOD: ProperVehicleInjuriesMP function: initMod -- file: ProperVehicleInjuries_Client.lua line # 478 | MOD: ProperVehicleInjuriesMP java.lang.RuntimeException: attempted index: getValue of non-table: null at se.krka.kahlua.vm.KahluaThread.tableget(KahluaThread.java:1689) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:641) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1812) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:66) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:139) at zombie.Lua.Event.trigger(Event.java:64) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:65) at zombie.gameStates.IngameState.enter(IngameState.java:737) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:145) at zombie.GameWindow.logic(GameWindow.java:298) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:765) at zombie.GameWindow.run_ez(GameWindow.java:681) at zombie.GameWindow.mainThread(GameWindow.java:495) at java.base/java.lang.Thread.run(Unknown Source)
function: doMultiInjury -- file: ProperVehicleInjuries_Client.lua line # 274 | MOD: ProperVehicleInjuriesMP function: checkCollision -- file: ProperVehicleInjuries_Client.lua line # 345 | MOD: ProperVehicleInjuriesMP java.lang.RuntimeException: __sub not defined for operands in doMultiInjury at se.krka.kahlua.vm.KahluaUtil.fail(KahluaUtil.java:82) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:676) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1812) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:66) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:139) at zombie.Lua.Event.trigger(Event.java:64) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:92) at zombie.gameStates.IngameState.updateInternal(IngameState.java:1624) at zombie.gameStates.IngameState.update(IngameState.java:1333) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101) at zombie.GameWindow.logic(GameWindow.java:298) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:765) at zombie.GameWindow.run_ez(GameWindow.java:681) at zombie.GameWindow.mainThread(GameWindow.java:495) at java.base/java.lang.Thread.run(Unknown Source)

Yes, the issue stems from their major update this morning, the name for sandbox options have changed so PVI is throwing a fit because the options technically no longer exist.

Im at University for another 4 or so hours, but Ill push out an update fixing the issue once Im home.
Fluffy89  [developer] 4 Dec, 2023 @ 3:40pm 
Originally posted by Agitatio:
Don't know if these are helpful, but they came up after Working Seatbelts update. On collision. But I bet you already know the issue judging from you conversation with the author.
attempted index: getValue of non-table: null function: initWorkingSeatbeltCompatibility -- file: ProperVehicleInjuries_Client.lua line # 375 | MOD: ProperVehicleInjuriesMP function: initMod -- file: ProperVehicleInjuries_Client.lua line # 478 | MOD: ProperVehicleInjuriesMP java.lang.RuntimeException: attempted index: getValue of non-table: null at se.krka.kahlua.vm.KahluaThread.tableget(KahluaThread.java:1689) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:641) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1812) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:66) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:139) at zombie.Lua.Event.trigger(Event.java:64) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:65) at zombie.gameStates.IngameState.enter(IngameState.java:737) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:145) at zombie.GameWindow.logic(GameWindow.java:298) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:765) at zombie.GameWindow.run_ez(GameWindow.java:681) at zombie.GameWindow.mainThread(GameWindow.java:495) at java.base/java.lang.Thread.run(Unknown Source)
function: doMultiInjury -- file: ProperVehicleInjuries_Client.lua line # 274 | MOD: ProperVehicleInjuriesMP function: checkCollision -- file: ProperVehicleInjuries_Client.lua line # 345 | MOD: ProperVehicleInjuriesMP java.lang.RuntimeException: __sub not defined for operands in doMultiInjury at se.krka.kahlua.vm.KahluaUtil.fail(KahluaUtil.java:82) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:676) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1812) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:66) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:139) at zombie.Lua.Event.trigger(Event.java:64) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:92) at zombie.gameStates.IngameState.updateInternal(IngameState.java:1624) at zombie.gameStates.IngameState.update(IngameState.java:1333) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101) at zombie.GameWindow.logic(GameWindow.java:298) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:765) at zombie.GameWindow.run_ez(GameWindow.java:681) at zombie.GameWindow.mainThread(GameWindow.java:495) at java.base/java.lang.Thread.run(Unknown Source)

I'm home and have uploaded a fix so PVI should behave as previously, airbags will have to wait on compatibility as I'm finishing up my term at uni, so this will probably wait until winter break.

The stacktrace you posted is quite helpful by the way, in this case I was already made aware of the issue my the Working Seatbelts author, but the stacktrace otherwise is a huge help in diagnosing issues.
Bambino 13 Dec, 2023 @ 8:40am 
Currently using an interval of 15 in MP. Players are reporting taking damage for using the handbrake and turning while not colliding with anything. If it matters, we are using Filibuster Rhymes' Used Cars. It's also quite random - I cannot recreate the issue on command.
Last edited by Bambino; 13 Dec, 2023 @ 8:58am
Fluffy89  [developer] 13 Dec, 2023 @ 10:53am 
Originally posted by Bambino:
Currently using an interval of 15 in MP. Players are reporting taking damage for using the handbrake and turning while not colliding with anything. If it matters, we are using Filibuster Rhymes' Used Cars. It's also quite random - I cannot recreate the issue on command.

Lowering the interval slightly to 10 should fix the issue, without hitting things at least.

It also appears quite random most likely because slowing down your momentum really quickly is causing a low severity injury, which by default only has like a 30% chance for the scratch to apply.

Hope this helps!
Last edited by Fluffy89; 13 Dec, 2023 @ 10:54am
Foxenn 28 May @ 7:24am 
I did you you said, even lowered the interval to 5 but it was still happening, and has caused deaths for some of my server users, the mod is fantastic but because of this issue i have to remove it for the health of my server, im sorry :(
Fluffy89  [developer] 28 May @ 9:36pm 
Originally posted by Foxenn:
I did you you said, even lowered the interval to 5 but it was still happening, and has caused deaths for some of my server users, the mod is fantastic but because of this issue i have to remove it for the health of my server, im sorry :(

Hi! I'm sorry to hear that PVI has caused issues for your server :(

With an interval as low as 5 ticks, unintentional injuries via braking extremely hard is impossible in all my testing. By 'has caused deaths for some of my server users' are you meaning that the injuries from a car crash are causing deaths, they're dying on impact (when the option is unticked and/or chance is at 0%), or they are randomly dying when a vehicle breaks hard?

Since I haven't gotten any widespread reports of this issue past vehicles that accelerate/brake very hard causing low severity injuries, I'd appreciate any and all info you can give me to help diagnose if this is a more widespread issue with PVI, or a more local issue.
< >
Showing 1-13 of 13 comments
Per page: 1530 50