Project Zomboid

Project Zomboid

[B41/B42] Day One (Bandits)
[Bug] Occasional save-breaking crash when Day One Scheduler ends?
I will fully admit to not knowing very much regarding how this issue surfaces; it seems to appear at random, with no rhyme or reason as to the mods used, locations spawned, etc.. However, I am trying to post about it anyway, in the hopes that someone else may be able to corroborate the issue and it be solved - or at the very least, a workaround be found through trial and error.

From what I can understand upon reading the error, something in the way Day One handles its math when ending its scheduler(?) makes the game throw a fit; the save will fade to black and close out. If you try to open it again, all time-scheduled things will be broken; TV, radios, other mod events, etc..

Below is the error as it is formatted in the log, the one that appears just before the save dies.
LOG : General , 1727382743392> [BanditsDayOne] ------------------------------------------------ LOG : General , 1727382743423> [BanditsDayOne] received Schedule.RemovePhase i=1 ERROR: General , 1727382743508> ExceptionLogger.logException> Exception thrown java.util.IllegalFormatConversionException: d != java.lang.Float at Formatter$FormatSpecifier.failConversion. ERROR: General , 1727382743509> DebugLogStream.printException> Stack trace: java.util.IllegalFormatConversionException: d != java.lang.Float at java.base/java.util.Formatter$FormatSpecifier.failConversion(Unknown Source) at java.base/java.util.Formatter$FormatSpecifier.printInteger(Unknown Source) at java.base/java.util.Formatter$FormatSpecifier.print(Unknown Source) at java.base/java.util.Formatter.format(Unknown Source) at java.base/java.util.Formatter.format(Unknown Source) at java.base/java.lang.String.format(Unknown Source) at zombie.debug.DebugLogStream.error(DebugLogStream.java:667) at zombie.iso.objects.IsoDeadBody.<init>(IsoDeadBody.java:121) at zombie.iso.objects.IsoDeadBody.<init>(IsoDeadBody.java:97) at zombie.characters.IsoZombie.becomeCorpse(IsoZombie.java:5158) at zombie.characters.IsoGameCharacter.die(IsoGameCharacter.java:16706) at zombie.ai.states.ZombieOnGroundState.enter(ZombieOnGroundState.java:32) at zombie.ai.StateMachine.stateEnter(StateMachine.java:243) at zombie.ai.StateMachine.changeRootState(StateMachine.java:91) at zombie.ai.StateMachine.changeState(StateMachine.java:43) at zombie.ai.StateMachine.changeState(StateMachine.java:32) at zombie.characters.IsoGameCharacter.actionStateChanged(IsoGameCharacter.java:13858) at zombie.characters.IsoZombie.actionStateChanged(IsoZombie.java:681) at zombie.characters.action.ActionContext.invokeAnyStateChangedEvents(ActionContext.java:433) at zombie.characters.action.ActionContext.updateInternal(ActionContext.java:83) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.action.ActionContext.update(ActionContext.java:66) at zombie.characters.IsoGameCharacter.postUpdateInternal(IsoGameCharacter.java:12084) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.IsoGameCharacter.postupdate(IsoGameCharacter.java:12063) at zombie.characters.IsoZombie.postUpdateInternal(IsoZombie.java:2112) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.IsoZombie.postupdate(IsoZombie.java:2104) at zombie.MovingObjectUpdateSchedulerUpdateBucket.postupdate(MovingObjectUpdateSchedulerUpdateBucket.java:97) at zombie.MovingObjectUpdateScheduler.postupdate(MovingObjectUpdateScheduler.java:171) at zombie.CollisionManager.resolveContactsInternal(CollisionManager.java:411) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.CollisionManager.ResolveContacts(CollisionManager.java:236) at zombie.iso.IsoWorld.updateInternal(IsoWorld.java:3502) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.iso.IsoWorld.update(IsoWorld.java:3427) at zombie.gameStates.IngameState.updateInternal(IngameState.java:1617) 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)