I had frequent fps drops for no reason. But ı got fps drops when ı zoomed out too. It drops from 55 to 5-10 for a second or too, sometimes ıt takes even longer than that.
Not too sure why but my game drops a lot of FPS when running this mod. Basically the fps dropped every 5-10 seconds every time I tried to move for example if I kept sprinting or walking it just kept dropping every 5-10 seconds. I tried to figure out which mod it was and found that this is the only mod that leads to frame drops when enabled by itself and when enabled with all the other mods together.
I've noticed a bug when refueling the chainsaw in B42: when I add fuel, it doesn't return the gas can on the inventory. I tried fixing the code myself, and it now works. I checked how the vanilla code handles generator refueling and applied a similar approach to your mod. I apologize for modifying your code, but I hope this might help you in fixing it. Here's the whole code in ISFuelChainsawAction.lua that I modify:
function ISFuelChainsawAction:isValid() return self.chainsaw ~= nil and self.petrol ~= nil and getPlayer():getPrimaryHandItem():getType() == "Chainsaw2" end
function ISFuelChainsawAction:update() self.chainsaw:setJobDelta(self:getJobDelta()); end
function ISFuelChainsawAction:start() self.chainsaw:setJobType(getText("ContextMenu_ChainsawFuel")); self.chainsaw:setJobDelta(0.0); end
function ISFuelChainsawAction:stop() ISBaseTimedAction.stop(self); self.chainsaw:setJobDelta(0.0); end
function ISFuelChainsawAction:perform() -- Basic error checking if not self.chainsaw or not self.petrol then ISBaseTimedAction.perform(self); return end
-- Complete the action - actual fuel transfer happens in complete() ISBaseTimedAction.perform(self); end
function ISFuelChainsawAction:complete() -- Update chainsaw fuel local ModData = self.chainsaw:getModData(); if not ModData.FuelAmt then ModData.FuelAmt = 0 end
-- Define maximum fuel capacity local maxFuel = 120;
-- Calculate how much fuel to add from petrol can local endFuel = 0; local fluidCont = self.petrol:getFluidContainer();
-- If it's a proper fluid container if fluidCont then -- Add fuel until chainsaw is full or container is empty -- Each 1.0 unit of petrol = 30 units of chainsaw fuel while fluidCont:getAmount() >= 1.0 and ModData.FuelAmt + endFuel < maxFuel do local amount = fluidCont:getAmount() - 1.0; fluidCont:adjustAmount(amount); endFuel = endFuel + 30; end
-- Sync the petrol item self.petrol:syncItemFields();
-- Check if petrol can is empty and replace if needed if fluidCont:getAmount() <= 0 then local inv = self.character:getInventory(); if inv then inv:RemoveItem(self.petrol); inv:AddItem("Base.EmptyPetrolCan"); end end -- Fallback for older code or non-fluid containers else -- Use traditional method self.petrol:Use(); endFuel = 30;
-- Check if petrol can is empty and replace if needed if self.petrol:getUsedDelta() <= 0 then local inv = self.character:getInventory(); if inv then inv:RemoveItem(self.petrol); inv:AddItem("Base.EmptyPetrolCan"); end end end
-- Add the fuel to the chainsaw ModData.FuelAmt = ModData.FuelAmt + endFuel; if ModData.FuelAmt > maxFuel then ModData.FuelAmt = maxFuel; end
-- Queue another action if we're supposed to fill completely if self.full and ModData.FuelAmt < maxFuel and ((fluidCont and fluidCont:getAmount() > 0) or (not fluidCont and self.petrol:getCurrentUsesFloat() > 0)) then -- Only add a new action if the current one finished successfully ISTimedActionQueue.add(ISFuelChainsawAction:new(self.character, self.chainsaw, self.petrol, self.full, 50)); end
The harness is bugged and its giving player max carry weight , lol.... you equip it and suddenly you have super strength.
The backpack giving 100 reduction while giving a lot of carry even with disorganized is a bit OP, maybe drop it to 90%?
Mod`s great comes with a lot of quality of lifes (MOSTLY TALKING ABOUT LOCKPICKING COME ON DEVS) that are amazing and now you can craft backpacks but you could put the military a bit farther in tailoring and adding duffels,hikings with lesser tailoring degree.
Another feedback note, the scissors have alternatives now in B42 if you want to patch your recipes only allowing the conventional scissor to work.
all in all, amazing mod with a load of cool crap to work with.
Hey ordzo, are the errors from the start of the game are normal? just asking. Im kinda worried about the errors. but overall its a great mod! it really helps a lot.
What errors are these exactly. Perhaps they are related to other mods (which this mod uses). Try to put the mod last in the loading order. It would be good to see where the error is in the log file!.
function: onSave -- file: RDC_Z_UI.lua line # 1220 | MOD: Ordzos AddOns ERROR: General , 1737743854100> ExceptionLogger.logException> Exception thrown java.lang.RuntimeException: attempted index: stringify of non-table: null at KahluaThread.tableget line:1689. ERROR: General , 1737743854101> DebugLogStream.printException> Stack trace: java.lang.RuntimeException: attempted index: stringify of non-table: null at se.krka.kahlua.vm.KahluaThread.tableget(KahluaThread.java:1689) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:492) 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.GameWindow.save(GameWindow.java:1262) at zombie.gameStates.GameLoadingState$1.runInner(GameLoadingState.java:325) at zombie.gameStates.GameLoadingState$1.run(GameLoadingState.java:225) at java.base/java.lang.Thread.run(Unknown Source) LOG : General , 1737743854124> ----------------------------------------- STACK TRACE ----------------------------------------- function: onSave -- file: RDC_Z_UI.lua line # 1220 | MOD: Ordzos AddOns LOG : General , 1737743855040> reanimate: saved 0 zombies LOG : General , 1737743855097> Saving GlobalModData LOG : General , 1737743863083> game loading took 47 seconds WARN : Lua , 1737743954513> LuaManager$GlobalObject.require> require("NVAPI/ctrl/instance") failed WARN : Lua , 1737743955612> LuaManager$GlobalObject.require> require("NVAPI/ctrl/instance") failed
I've tested it only with your mod and tsarslib. actually its totally fine since it is working with no major problem. I hope this might help you refine your lua codes. I suspect because I haven't build the crafting table yet that causes the error when starting a new game.
It seems that it is related to the ZRemoteDoorControl mod - I change this mod function in it, but if this mod is not installed, it can throw an error. I'll see if I can do something about it :)
I'm currently playing in 41.7 can't craft workbench is it stopped working properly for newer version can u tell where can I get more information about your mod bro and it's giving me errors from start of world creation but most of things are working except few would really appreciate your help please
not working, it says "Requires: Tsarslib". please add it here on nexusmods for easier download. external links has soooo many runarounds and other pages popping up when i tried to download it using the link you provided. external links are confusing.
First you must read all homecrafting magazines (6 - vol1-3, 5-7). If you find blueprints magazine, then there is homecrafting menu available.
For local tranportation use pallettruck found in some places or craft youself. Any vehicle can transport pallets if there is enough space (min 40 capacity).
In case of pallet filling, I seem not to have the right pallets, despite the home crafting menu making the exact same one that you can find... I found several pallets, but they don't seem to be the right ones For the transport option, I haven't yet tested it...
Never tried PZ multiplayer (probably won't either) so I don't know how it behaves there. If you bring up a problem, I can look into a solution, but nothing is guaranteed.
Oh is that something you can try. Couse i wanna add it on a server that im hosting with another account. And im not sure on how to install it. Couse i cant see launcher or program to use for it
You'r talking about dedicated server or local server. In local server add mod like you add mods in single player - copy mod to mods directory and enable it in game.
if i guess right then dedicated server loads only Steam workshop mod by ID. I dont use Steams version PZ so i cant upload this mod to Steam.
29 comments
I've noticed a bug when refueling the chainsaw in B42: when I add fuel, it doesn't return the gas can on the inventory. I tried fixing the code myself, and it now works. I checked how the vanilla code handles generator refueling and applied a similar approach to your mod. I apologize for modifying your code, but I hope this might help you in fixing it. Here's the whole code in ISFuelChainsawAction.lua that I modify:
require "TimedActions/ISBaseTimedAction"
ISFuelChainsawAction = ISBaseTimedAction:derive("ISFuelChainsawAction");
function ISFuelChainsawAction:isValid()
return self.chainsaw ~= nil and self.petrol ~= nil and getPlayer():getPrimaryHandItem():getType() == "Chainsaw2"
end
function ISFuelChainsawAction:update()
self.chainsaw:setJobDelta(self:getJobDelta());
end
function ISFuelChainsawAction:start()
self.chainsaw:setJobType(getText("ContextMenu_ChainsawFuel"));
self.chainsaw:setJobDelta(0.0);
end
function ISFuelChainsawAction:stop()
ISBaseTimedAction.stop(self);
self.chainsaw:setJobDelta(0.0);
end
function ISFuelChainsawAction:perform()
-- Basic error checking
if not self.chainsaw or not self.petrol then
ISBaseTimedAction.perform(self);
return
end
-- Complete the action - actual fuel transfer happens in complete()
ISBaseTimedAction.perform(self);
end
function ISFuelChainsawAction:complete()
-- Update chainsaw fuel
local ModData = self.chainsaw:getModData();
if not ModData.FuelAmt then ModData.FuelAmt = 0 end
-- Define maximum fuel capacity
local maxFuel = 120;
-- Calculate how much fuel to add from petrol can
local endFuel = 0;
local fluidCont = self.petrol:getFluidContainer();
-- If it's a proper fluid container
if fluidCont then
-- Add fuel until chainsaw is full or container is empty
-- Each 1.0 unit of petrol = 30 units of chainsaw fuel
while fluidCont:getAmount() >= 1.0 and ModData.FuelAmt + endFuel < maxFuel do
local amount = fluidCont:getAmount() - 1.0;
fluidCont:adjustAmount(amount);
endFuel = endFuel + 30;
end
-- Sync the petrol item
self.petrol:syncItemFields();
-- Check if petrol can is empty and replace if needed
if fluidCont:getAmount() <= 0 then
local inv = self.character:getInventory();
if inv then
inv:RemoveItem(self.petrol);
inv:AddItem("Base.EmptyPetrolCan");
end
end
-- Fallback for older code or non-fluid containers
else
-- Use traditional method
self.petrol:Use();
endFuel = 30;
-- Check if petrol can is empty and replace if needed
if self.petrol:getUsedDelta() <= 0 then
local inv = self.character:getInventory();
if inv then
inv:RemoveItem(self.petrol);
inv:AddItem("Base.EmptyPetrolCan");
end
end
end
-- Add the fuel to the chainsaw
ModData.FuelAmt = ModData.FuelAmt + endFuel;
if ModData.FuelAmt > maxFuel then
ModData.FuelAmt = maxFuel;
end
-- Queue another action if we're supposed to fill completely
if self.full and ModData.FuelAmt < maxFuel and
((fluidCont and fluidCont:getAmount() > 0) or
(not fluidCont and self.petrol:getCurrentUsesFloat() > 0)) then
-- Only add a new action if the current one finished successfully
ISTimedActionQueue.add(ISFuelChainsawAction:new(self.character, self.chainsaw, self.petrol, self.full, 50));
end
return true;
end
function ISFuelChainsawAction:new(character, chainsaw, petrolcan, full, time)
local o = {};
setmetatable(o, self);
self.__index = self;
o.character = character;
o.stopOnWalk = true;
o.stopOnRun = true;
o.maxTime = time;
-- custom fields
o.chainsaw = chainsaw;
o.petrol = petrolcan;
o.full = full;
o.ModData = nil
return o;
end
The backpack giving 100 reduction while giving a lot of carry even with disorganized is a bit OP, maybe drop it to 90%?
Mod`s great comes with a lot of quality of lifes (MOSTLY TALKING ABOUT LOCKPICKING COME ON DEVS) that are amazing and now you can craft backpacks but you could put the military a bit farther in tailoring and adding duffels,hikings with lesser tailoring degree.
Another feedback note, the scissors have alternatives now in B42 if you want to patch your recipes only allowing the conventional scissor to work.
all in all, amazing mod with a load of cool crap to work with.
I forgot... there should be a sandbox optin for harness... or is it in the next version :)
It would be good to see where the error is in the log file!.
ERROR: General , 1737743854100> ExceptionLogger.logException> Exception thrown java.lang.RuntimeException: attempted index: stringify of non-table: null at KahluaThread.tableget line:1689.
ERROR: General , 1737743854101> DebugLogStream.printException> Stack trace:
java.lang.RuntimeException: attempted index: stringify of non-table: null
at se.krka.kahlua.vm.KahluaThread.tableget(KahluaThread.java:1689)
at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:492)
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.GameWindow.save(GameWindow.java:1262)
at zombie.gameStates.GameLoadingState$1.runInner(GameLoadingState.java:325)
at zombie.gameStates.GameLoadingState$1.run(GameLoadingState.java:225)
at java.base/java.lang.Thread.run(Unknown Source)
LOG : General , 1737743854124> -----------------------------------------
STACK TRACE
-----------------------------------------
function: onSave -- file: RDC_Z_UI.lua line # 1220 | MOD: Ordzos AddOns
LOG : General , 1737743855040> reanimate: saved 0 zombies
LOG : General , 1737743855097> Saving GlobalModData
LOG : General , 1737743863083> game loading took 47 seconds
WARN : Lua , 1737743954513> LuaManager$GlobalObject.require> require("NVAPI/ctrl/instance") failed
WARN : Lua , 1737743955612> LuaManager$GlobalObject.require> require("NVAPI/ctrl/instance") failed
I've tested it only with your mod and tsarslib. actually its totally fine since it is working with no major problem. I hope this might help you refine your lua codes. I suspect because I haven't build the crafting table yet that causes the error when starting a new game.
You can download from the links below:
https://catalogue.smods.ru/archives/243599
or
https://ggntw.com/steam (enter https://steamcommunity.com/sharedfiles/filedetails/?id=2956373412 to searchbox)
And what vehicles can carry these pallets?
For local tranportation use pallettruck found in some places or craft youself. Any vehicle can transport pallets if there is enough space (min 40 capacity).
I found several pallets, but they don't seem to be the right ones
For the transport option, I haven't yet tested it...
if i guess right then dedicated server loads only Steam workshop mod by ID.
I dont use Steams version PZ so i cant upload this mod to Steam.