#mod_development
1 messages · Page 261 of 1
Would be cool to crunch out KY and then go state by state
Coast to coast roadtrip challenge
Managed to make my mod better, but good god it took me way too long to figure out how to do it. My lack of coding experience bit me in the ass for sure. I imagine it still would make more experienced modders cringe, but I think I've made it compatible with most other foraging mods
I'm looking at Better Flashlights, Grimlight. Is there a way to make something from an outfit have light without filling an attachment slot? It looks like the only options are to have an object act as a flashlight (in hand) or as an attachment to something, and then toggleable, like having a weapon attachment slot to interact with that is filled either as part of a gun or connected to a clothing that treats it as a weapon attachment slot filled
viewing headlight from Better Flashlights
ALright, I'm starting from scratch.
I want to make an identical copy of the friendship bracelet, renamed to the "Melon Bracelet". How do I do that?
Preferably using as many base in game assets as possissible.
Anyone else getting failed to update the workshop item result=2 while trying to update a mod?
was working fine 2 mins ago, now its not for me
Updated mine after you mentioned, worked for me
That's really weird. Its refusing to update any mod at all of mine, even old ones that I didn't change
aaand its working now after I enabled a VPN
yeah that's just the 'random steam issue' error
it usually goes away after restarting the game or steam
for each of the first aid items (rags, bandaids etc) there is the AlwaysWelcomeGift = true, what does that do?
nvm, no use after build 32
wait i actually never thought about using the crafting menu
i barely ever used it
but thered be too many stuff in the menu so i wanna do it in the tailoring menu instead
Hello, Is there way to change animSet xml's property on game boot?
I'd want to access animNode by m_AnimName, but zombie's animation so it may be impossible through timedAction (no sure)
I understood, mod-loading and overriding media xmls is earlier stage than any of lua script functionality.
So it makes hard to provide configurable animiations 😦
translation files aren't lua, they're plaint text
the 1252 encoding might not support these characters
or there might be an issue where these characters are visually similar but are different code points so they don't map to ANSI characters
I'm not using translations, do I need to ?
player:setHaloNote("Vous quittez la zone de combat, désactivation du mode PvP dans 10 secondes...", 252, 194, 3, 500)
Hey :) getText("Translation_code") instead of plain text, and then you have to make the link with your translated file in \lua\shared\Translate\FR
you must make sure that the encode of the FR file (translation) is in ANSI
Alright thanks !
how about fesco
@raven zinc -also where can I find that mod
A bit of server/client stuff question.
I have a function in my client file
local ETWCommonLogicChecks = {};
local strength;
local function populateSkills()
local player = getPlayer();
strength = player:getPerkLevel(Perks.Strength);
end
Events.OnCreatePlayer.Remove(populateSkills);
Events.OnCreatePlayer.Add(populateSkills);
Events.LevelPerk.Remove(populateSkills);
Events.LevelPerk.Add(populateSkills);
function ETWCommonLogicChecks.SewerShouldExecute()
end
return ETWCommonLogicChecks;
and I need to use it in my server file
local ETWCommonLogicChecks = require "ETWCommonLogicChecks";
local original_Recipe_OnCreate_RipClothing = Recipe.OnCreate.RipClothing;
---Overwriting Recipe.OnCreate.RipClothing() here to insert ETW logic catching player ripping clothing
---@param items any
---@param result any
---@param player IsoPlayer
---@param selectedItem any
function Recipe.OnCreate.RipClothing(items, result, player, selectedItem)
local modData = ETWCommonFunctions.getETWModData(player)
if #modData.UniqueClothingRipped < SBvars.SewerUniqueClothesRipped and ETWCommonLogicChecks.SewerShouldExecute() then
local item = items:get(0)
---@cast item Clothing
if detailedDebug() then print("ETW Logger | Recipe.OnCreate.RipClothing() item: " .. item:getName()) end;
ETWCommonFunctions.addClothingToUniqueRippedClothingList(player, item);
end
original_Recipe_OnCreate_RipClothing(items, result, player, selectedItem);
end
And I got a report of an error in server console
ERROR: General , 1725907727926> 17 983 052 429> ExceptionLogger.logException> Exception thrown java.lang.RuntimeException: attempted index: getPerkLevel of non-table: null at KahluaThread.tableget line:1689.```
As I understand that's server trying to run `populateSkills` but why?
/client is not loaded server side
You can technical force load a /client file in server side, but it is highly suggested to never do that
If there's a clear separration between both it's for a good reason
/shared and /server are loaded server side
/client, /server and /shared are loaded client side
oooooh
this is the information that I required
So things being shared client side and server side should be put in /shared
Unless they are only used in /server then put them in /server
You can also check if a code is ran client side or server side with isClient() and isServer()
this explains why server fucntion
local original_Recipe_OnCreate_RipClothing = Recipe.OnCreate.RipClothing;
---Overwriting Recipe.OnCreate.RipClothing() here to insert ETW logic catching player ripping clothing
---@param items any
---@param result any
---@param player IsoPlayer
---@param selectedItem any
function Recipe.OnCreate.RipClothing(items, result, player, selectedItem)
local modData = ETWCommonFunctions.getETWModData(player)
if #modData.UniqueClothingRipped < SBvars.SewerUniqueClothesRipped and ETWCommonLogicChecks.SewerShouldExecute() then
local item = items:get(0)
---@cast item Clothing
if detailedDebug() then print("ETW Logger | Recipe.OnCreate.RipClothing() item: " .. item:getName()) end;
ETWCommonFunctions.addClothingToUniqueRippedClothingList(player, item);
end
original_Recipe_OnCreate_RipClothing(items, result, player, selectedItem);
end
was working in SP and MP while being in server folder xd
ye
do you think doing something like changing
local ETWCommonFunctions = require "ETWCommonFunctions";
local ETWCommonLogicChecks = require "ETWCommonLogicChecks";
to
local ETWCommonFunctions;
local ETWCommonLogicChecks;
if not isServer() then
ETWCommonFunctions = require "ETWCommonFunctions";
ETWCommonLogicChecks = require "ETWCommonLogicChecks";
end```
would work nicely then
Depends if you're trying to access anything from these modules ?
functions
Just your tool functions should be put in /shared
can I require lua from shared in client/server folders?
ye this is also my problem
since recipes are on the server folder
Ye I'm trying to avoid making my functions global
Don't make them global
i dont
Use modules like you're doing that's great
so is it possible to just put the oncreate functions on the shared
while we have our modules function on the client?
myModule = myModule or {}
--then recipe functions
the also use
if item:myModule.isValid() then
myModule.doStuff(item)
end
The "module" you are makikg here is a global, not a module
ok yeah then global then
But oncreate just needs to be globals
Idk if these run server and client side, but if they tend to be put in both I guess they do
So as long as both are global client and server side then they will work so shared or server doesn't matter
Tho I would suggest following what everyone does if people tend to put them in server
i remember back then when i placed the oncreates on client
after doing the recipe its says no such function
Especially since it doesn't matter
Yea so probably don't put it in client
Put in shared or server
this is in server in vanilla
Also
yeh i placed them on server
and just copied my functions from client and just made em local
shared loads before server and client files
And I don't remember which loads first between server and client
question
if we have onPlayerUpdate
on server
and just have it sendServerCommand
will that work?
instead of having client to ping pong it back
how often does player update? that sounds like a lot of commands
with checkers it wont be heavy
i think its similar to ontick
Some Events don't run client side or server side
right
right
Is there a status effect for being on fire? It doesn't occur with a moodle, I'm trying to figure out how to ignite a player to apply similar mechanics
Granted my main issue is not being able to make someone glow without a flashlight in hand or flashlight attachment worn
My fear is that fire does get overhauled in 42, but cest la vie
gta sa car
Yes there is
give me a sec
declaration: package: zombie.characters, class: IsoGameCharacter
-- example
if not player:isOnFire() then
player:setOnFire(true)
end
Hi. Can someone confirm to me that index refers to the vehicle skin? I had this idea but wanted to double check and can't find where I saw that information. Thanks!
VehicleZoneDistribution.construction.vehicles["Base.f700dump"] = {index = -1, spawnChance = 20};
Indeed, looking at the file with the cars distribution ProjectZomboid\media\lua\shared\VehicleZoneDefinition.lua in the game directory, it refers to the car skin index, with -1 being random.
Ah, thank you! That must be where I first saw it then. By the way, when they say the total for a zone should always be 100 does it mean the maximum spawn chance a vehicle can have or the total sum of all vehicles spawning for that zone? Is this percentage based?
see this #mod_development message
oh perfect, thank you so much.
Hello everybody. Does anyone know if it is possible to make a vehicle that spawns with different wheel options? I know that for the body you can make the Vehicles_XYZ_Shell transparent and the game handles color variations, or make every color variant manually and list them in the script. I was thinking of something similar to the latter for the wheel texture.
Hello guys, I have a question. I made a recipe to transform thread in twine or other stuff, and so I put the line destroy Thread=4, to make it disappear once transformed, but the problem is that it works even if the thread has only 1/10 unit, and I would like it to take 4 full units threads. How is that possible please ? thank you !
module MonsterEnergy
{
recipe Make Nails From Can
{
EmptyPopCanMonsterWhite/EmptyPopCanMonster/EmptyPopCanMonsterRed/EmptyPopCanMonsterPacificPunch/EmptyPopCanMonsterUltraViolet/EmptyPopCanMonsterUltraParadise/EmptyPopCanMonsterMangoLoco/EmptyPopCanMonsterMIXXD/EmptyPopCanMGuaranáBaré/EmptyPopCanMGuaranáDolly/EmptyPopCanRedBull/EmptyPopCanFanta/EmptyPopCanGuaranaAntartica/EmptyPopCanPepsiMax/EmptyPopCanBangStrawberry/EmptyPopCanGuaranaJesus/EmptyPopCanSpriteSoda/EmptyPopCanCocaColaZero/EmptyPopBangBlackCherry/EmptyPopPurpleHazeCherry/EmptyPopBlueRazzCherry,
keep [Recipe.GetItemTypes.Hammer],
Result:Nails=2,
CanBeDoneFromFloor:true,
Time:80,
Category:Carpentry,
Sound:SliceMeat,
}
recipe Make RedBull And Whisky Mix
{
RedBullCan=1,
WhiskeyFull=1,
PlasticCup/GlassTumbler/GlassWineWater,
Result:CupRedBullWhiskey,
Time:20.0,
Category:Cooking,
OnGiveXP:Recipe.OnGiveXP.Cooking8,
NeedToBeLearn:True,
CanBeDoneFromFloor:False,
}
}
I make this recipes , and the rest is not apearing , can someone help me ?
its not appearing and idk why , i need helppp
Remove "destroy". Also is your goal to make one Full Twine from 4 Full Threads? I belive by default you would recive "full" Twine, but for it to require 4 Full Threads you'd probably need to use something like : Thread = 40 , because Thread has use delta of 0.1 and that means that it will use 1/10 of item per use, recipes included.
Going back to "destroy" Its mostly used to prevent item from becoming other item (there are items that once used: For example if you were to use DishCloth in recipe (it has 0.1 use delta) and required 10 units of it, When recipe would end you would get your result and Wet version of that item, because it has "ReplaceOnDeplete = DishClothWet," and its considered when in recipe, so in case you would prefer for it to not give you wet DishCloth, you would instead use Destroy (then there is no need for amount, since it will just delete item after recipe).
Can you help me ?
You added both of those recipes in tabs Carpentry or Cooking and you look for them in general? If you write name of recipe and select the checkbox next to place you write it, it will check each category for that recipe.
its not the recipes that i created
its the normal ones
i didint even searched anything
just like 40 recipes
Sorry, i might've read it wrong
My first guess you overriden vanila recipe file
How is your file where you have it named?
I already tried with Thread=40 but it doesn't work because it requires 40 thread (complete or not, it doesn't understand the units and only the numbers of items in the inventory). The problem is, if I remove destroy, then the recipe won't show anything in the craft panel, it'll show an empty recipe.
I try to make a full twine with 4 full threads yes. The result is ok until now. The process isn't.
recipes.txt
Change it. iF you use same name as vanila file, it is overriden.
should i put the same name like in the game files ?
ok , i will try it , thankss
Can you post that recipe here?
i will try it rn
The script text you mean ? Or a screen ?
Could be both just to make sure
{
destroy Thread=4,
Result:Twine,
Time:250.0,
Category:Tailoring,
NeedToBeLearn:false,
CanBeDoneFromFloor:true,
OnGiveXP:ClothMendingXP10,
}```
Maybe destroy does not support "=4 or any amount" Im not sure. Can you tell me again why you think Thread = 40 doesnt work?
@tranquil kindle THANK YOU , finally
it really worked
really thank you
I tried and it doesn't work because you need to have 40 Threads items in your inventory. It's the number of items, not the number of unit. Then with =4 the recipe works, but it can be done with incomplete Threads.
Did you actually tried it with 4 Full items, or did you use debug option in crafting menu to give ingredients?
I tried with both full items, partially full and it works no matter what, but I wish it'll work with only Full threads. In debug and without.
Does it really make a diffrence if someone has 4 full threads or 8 halves? or 12 quarters?
It doesn't really make sense for me at least, but if you really wanted to force Full Threads only, i belive the only way is to use OnTest function similar to one used while crafting Molotovs, which checks if in molotov case the bottle is Full, and if it isnt, it does not allow for recipe.
It does because my recipe is supposed to work in revert and so you can create 4 threads with a twine, but then, it'll give you 4 full threads. And so it can be "glitched" to have full threads
Yeah i'm actually trying to do a OnTest function to make it work, but there is always a problem 🥲
Am i missing some logic here? 1 Thread = 10 units, 4Threads = 40 units, 8 times Half Thread means 8x0.5 = 40 Units too, You can already Consolidate Threads to make two halfes of thread to make one Full Thread.
Yeah it should be working too but I mean, idk how to apply this logic to my recipe. Atm it works even if you have 4 thread with only 1 unit on each of them.
But youre using "Destroy" right now
So it makes sense because destroy does not seem to care about How much uses there is per item, but only if there is an item.
Yes I know, but idk how to do it another way, i'm kinda noob in coding, that's why i'm asking for help ^^'
Its literally recipe for making matress
So thread = 40 should work
And then to revert it make it require Twine=1, and result Thread=4, or 40 (I think result will give you Full items, if no functions are involved, so you might need to test both)
I swear it doesn't work, I tried already 😅
I swear if i launch game and it works.....
(not mad)
Its just that i usually have to actually show people that something works in most cases
It doesn't really make sense for it to work since it takes 4 thread items in your inventory with =4 (not mattering the units) so 40 would require 40 items from your inventory (full or not)
i would trust nik , she knows what shes doing
It's not a question of trust, I TRIED and it doesn't work 🤷🏻♀️
Thread does have UseDelta, so does ducttape, If item has use delta 0.1, it means that whole item has 10 uses
Yeah i get it for this point
That is the result when set to Thread=40
I can only if I have at least 40 items in my inventory, not 40 units of this item
Why does it shows (40 units) in yours and not in mine ? 😭 😱
recipe Make Twine
{
Thread=40,
Result:Twine=1,
Time:180.0,
Category:Carpentry,
}
recipe Make Thread
{
Twine=5,
Result:Thread=40,
Time:180.0,
Category:Carpentry,
}
Literally copied matress code
thats why its carpentry
Dang so the carpentry line did all the job ?
Twine has use delta of 0.2 so that means 1 Full Twine has 5 uses, so i use 5 twine for 40 Threads
No
I just got lazy and did not remove it
Oh sh*t i'm dumb, just realized you didn't use destroy that's why it litterally works and mine doesn't because I was still using destroy line -_-
Sorry for my slow brain
And thank you for explaining
Yeah if you wanna use :```recipe Make Thread
{
Twine=5,
Result:Thread=40,
Time:180.0,
Category:Carpentry,
}```
you actually need to set Thread=4, since i wasnt sure if it gives full item or not, but in this case it does. so if you have result:Thread=40 you literally get 40 full items.
It was so "simple" and yet i'm struggling like a donkey 😅
Okay thank you 🙏🏻 And sorry for being kinda stupid 🙈
I tried and it works so I made all my "look alike" recipe as you explained me and it works very well. Thank you again ❤️🔥
iguess albions car reads the property from script and cannot be changed via lua,. owell
Can someone help me in the mod support plz
Can sendServerCommand return a value to the script that called it?
Forget it, I'll just do a SendClientComamand back so I can deal with it
This is the way to go. Send a packet to the server asking for stuff then receive an answer in a different packet sent from the server.
You will likely always have those 4 files when doing network:
ClientRecv.lua
ClientSend.lua
ServerRecv.lua
ServerSend.lua
It's more convenient if you explain your issue first :p
People will help you if they know the answer
well i did before and no one said notting "_"
but they are asking for the details now, wouldnt it be better to provide the statement or atleast link to the issue you originally posted?
no. theres a delay so it wouldnt be possible to do a callback
Yea. I did it but now I need to know how to grab back, since I need it for a rcon response, but oh well
They were actually talking about the #mod_support channel where they explained it. I did not get it at first either.
Was my explanation not answering that question?
I dont think so. Not for my case anyway. I do have a command that sends a ServerCommand, that gets intercepted by the client, do things, and sends a ClientCommand, that gets intercepted by the server. This part is ok. However its the command that sends the ServerCommand that returns when I send an Rcon command to the zomboid server
It does print correctly on the server, but I need something to return the value to the RCON client specifically, not simply make it run
Then send a ServerCommand to the client
Yes. I did that. And the client ran the command
That is ok
Look
LuaServerCommands.register(CMD_NAME, function(author, command, args)
-- Check if the correct number of arguments are passed.
if #args < 2 then
return '/'..CMD_NAME..' [player] [range]'
end
-- NOTE: The helper only becomes visible in global scope when the first lua server command is fired.
-- Make sure to reference the helper inside of the command's handler function.
local helper = LuaServerCommandHelper
-- Attempt to resolve the player using the helper method.
local username = args[1]
local player = helper.getPlayerByUsername(username)
if player == nil then
return 'Player not found: '..tostring(username)
end
local playerID = player:getOnlineID()
local range = tonumber(args[2])
sendServerCommand('refresh', 'container', {playerID = playerID, range = range, playerName = username})
local containers = getNearbyContainers(player:getX(), player:getY(), player:getZ(), range)
for i = 1, #containers, 1 do
local container = containers[i]
local items = container:getItems()
if items:size() > 0 then
if container:getParent() then
ItemPicker.updateOverlaySprite(container:getParent())
end
container:setExplored(true)
end
end
return 'Command ran'
end)```
This is my code
Its a code that, when I send a command via RCON (this is important), it triggers something in game
So, it sends the command, on the sendServerCommand. That is ok and that is working
However, the sendServerCommand DO NOT RETURN A VALUE, which is my issue, so I made a separate thing to try to grab it back when it runs
which is
local CommandsTest = {};
CommandsTest.returnvalue = {};
CommandsTest.returnvalue.container = function(playerObj, args)
print('player:' .. tostring(args.playerXx) .. '-containers:' .. tostring(args.containersXx) .. '-quantity:' .. tostring(args.quantity))
return 'player:' .. tostring(args.playerXx) .. '-containers:' .. tostring(args.containersXx) .. '-quantity:' .. tostring(args.quantity)
end
local onClientCommandTest = function(module, command, playerObj, args)
if CommandsTest[module] and CommandsTest[module][command] then
CommandsTest[module][command](playerObj, args)
end
end
Events.OnClientCommand.Add(onClientCommandTest) ```
So it prints on the server, it shows on the server, it works as I want, BUT it doesnt return as a value if I trigger the command as RCON to the RCON Client that triggered it
It works, it just doesnt return the value where I need it
I'll probably need to store the things in a variable most likely and somehow update that variable once I've grabbed the value
(use ```lua for coloration)
(I thought I was?)
Oh
Litteraly write lua
Sorry
Uh
I dont know how to do that?
It just wrote lua on the code
make a line break after.
function()
Got it
But anyways
Since I send the code, it is being returned "Command ran", as I added to the return code
Im pretty sure something breaks if I dont add a return there, let me test
is LuaServerCommands from the Java API?
haha, that parts was important
I'm not familiar with it, it might be buggy
did you try their discord (in mod description)?
Its not a bug in Jab's mod this thing specifically
Instead of return, you send another command back and handle the expected "return" there.
as mentioned by Glytch3r here: #mod_development message
Because for most things, you can run the code on the server side
although If you do need it outside lua, I don't think that mod supports that
Messing outside lua wouldn't be a problem
But yea, I think I may have to do another look on what I am doing
Maybe check if I can update the containers outside the client side
they made his own java API call that will or not print the value your return in the Lua callback
the only way to know is to have a look at their java code
I think I could ask him about something like that, but I think that will not be necessary
I will try changing the focus here from the clientside of the code to the serverside of the code, and see if the serverside works too
it's not even open source, so we'd need to uncompile it first 😩
It isnt?
I am almost sure Jab did it on github somewhere
Oh well
Let me try the serverside thing here and lets see if serverside it works
I decompiled it
protected String Command() {
int argCount = this.getCommandArgsCount();
if (argCount == 0) {
return "/luacmd <command> <varargs>";
} else {
String command = this.getCommandArg(0);
KahluaTable tableArgs = LuaManager.platform.newTable();
for(int index = 1; index < argCount; ++index) {
tableArgs.rawset(index, this.getCommandArg(index));
}
String author = this.getExecutorUsername();
if (author == null || author.isEmpty()) {
author = "console";
}
KahluaTable ourObject = (KahluaTable)LuaManager.env.rawget("LuaCommands");
LuaClosure outFunc = (LuaClosure)ourObject.rawget("onCommand");
LuaReturn luaReturn = LuaManager.caller.protectedCall(LuaManager.thread, outFunc, new Object[]{author, command, tableArgs});
return !luaReturn.isEmpty() ? luaReturn.get(0).toString() : "Executed Lua command.";
}
}
looks like it's supposed to print it
well, I guess, it's printing is somewhere since he's forwarding your return value
do you ever see an "Executed Lua Command." message?
So, John. The thing is it prints, but it doesnt return because it prints outisde the function that has a return
I just refactored the thing to run serverside instead of clientside, so I'll see if it works this way
If it does, great
If it doesnt, its back to the drawing board
Yes, it would never work that way anyway. If it did that would mean the entire game would freeze while waiting for the server to answer. :D
That makes way too much sense and I totally didnt think like that
They way it could work, but I guess they did not write the code for it, is by having their java plugin register a callback, wait for the answer then call another lua function with the result.
basically what you are emulating right now with a servercommand
I think if I want it to work, I would need another code, so when code 1 works, it writes on some ModData, and when code B works, it reads from the ModData
And then maybe a third code to clean the ModData
maybe
dunno
you just want an object on the client side that remembers the call, ModData is for persistent memory (alive after a reboot)
but you probably don't need to remember anything about the command itself from the client side, the servercommand should contain every instruction you need to execute
Yea, probably
his lookin for a return like lets say
getHealth()
but client to server to client
global moddata is the way to go
I think you're right. I only knew about ModData and that got me confused. I looked at the decompiled game and I see there is a GlobalModData which, I'm guessing, is sync with the server at all time?
no, it's the same thing
ModData is the lua wrapper around GlobalModData
it's usually just called global mod data to differentiate it from object mod data
how is it synchronized with the server then?
oh, there is a transmit
and receive
ok
the methods for it are kind of unreliable from what i've heard
I did not know about it and made my own packets with commands :D
good!
besides the reliability concerns the provided transmission works by sending the entire table every time
it can get really wasteful for most applications
https://github.com/Phibonacci/Bard-Interactive-Music/blob/main/media/lua/server/BardServerCommands.lua
https://github.com/Phibonacci/Bard-Interactive-Music/blob/main/media/lua/client/BardClientRecvCommands.lua
https://github.com/Phibonacci/Bard-Interactive-Music/blob/main/media/lua/client/BardClientSendCommands.lua
once you've already sent one packet it's really no burden to add more anyway
i had an issue with a mod i helped with where once the table got big enough receiving it just disconnected you because the client timed out processing it 😭
the issue there was twofold with the mod having the most terrible algorithm imaginable on receiving it but it can demonstrate how big the tables can get
that's the most PZ thing I've read today :'D
keeping the spirit of the vanilla code, I like it
it's probably ok as long as you send tables this size: #mod_development message
yeah that's no issue
The worst programming habit I've ever witnessed was years ago, at my first job. Someone took the source object that should have been read only. Modified a string in this object to serialise the value of an int and then parsed the int and modified the string back to the initial state further in the code.
I was amazed.
what is that supposed to mean 😭
true
readonly (or constant): the value of the variable can only be read, not modified
serialize: translate data into another data format (here a number into a string like 1.6 -> "1.6")
ojjj
oh, sorry
i meant oh 😭
and here I was searching what "ojjj" meant on duckduckgo, only to find "only joking" :D
lol
I updated a container on the server side. How do I make the client grab the container again?
If I log out and log back, it shows the items, however just moving away and back dont
Dont know the exact command but you need to draw tje ui „dirtty“
imagine that i make items and i put "Module Bla Bla Bla" why do people sometimes put Imports Base ??? i just want to know
Is there anyway to disable the bleeding and injured moodles for a specific trait? You still bleed and get damaged, but the moodle wouldn't show up
do yall know any mods that tamper with the tailoring panel??
im gonna explode i cant find anything on it at all
so that everything from base exists for your mod
you can then use them or parts of them
like their model icons etc for parts
or items directly for recipes
for example ammotype
if you import base then you can just say
Ammo:Apple,
if you did not then you need to say
Ammo: Base.Apple,
not really sure about the syntax here but the point is you dont need to add the module everytime you use anything from Base
Hello, How can I get stats:setEndurance(1.0), to get the current endurance, and add x value over the amount of times the program has been run, and after to reset the program run times, it will be implemented as a wearable
Did you try replacing set with get ;) ?
Yes, but do I then assign it to a variable, say i for example:
player:getEndurance()
stats:setEndurance(i+0.02)
how do I then set the Get endurance to i, so that I can add it to the current endurance? (im trying to fix the stalker exoskeleton fix mod)
i = player:getEndurance()
The Fatigue Value is for sleep ? what is the value for tireness ??
Yeah, the point of getters is that they give you a value, so you write it in a variable
local endurance = player:getEndurance()
stats:setEndurance(endurance+0.02)
(make variables local, NEVER global
if you are adding items, use sendItemsInContainer(object, container)
From server?
yeah
if you are removing items, you must use a server command to send the ids of the removed items to the clients and remove them manually
I am refilling the container contents with the ItemPicker.fillContainer(container, player)
This works, considering I do receive a new stock of items in the container, however it just updates on the client after I logout and login
yeah the game doesn't really have convenient ways of modifying items from the server
if the container is empty before you use the itempicker (as i believe it'll delete existing items) then sendItemsInContainer is sufficient, otherwise you'll probably need to use a server command to delete all the existing items
pretty weird that some object synchronize automatically and others don't
like, in what scenario would you want clothes out of sync between clients and servers?
If a recipe has a lua component for whatever reason, do I still put the NeedToBeLearn in the function or the script recipe?
true. it takes time to determine which ones are synced
wdym
I have a recipe I want to adjust so that you need to learn it, it has a module base entry and a lua entry. I've tried putting the NeedToBeLearn variable on the base recipe, but it doesn't seem to work. So I was just wondering if it needs to be added to the .lua side?
it should be part of the script
ty, I'll keep at it, just wanted to make sure it wasn't something obvious with the lua (which I suck at)
can you show us both script and lua
i still got no clue what youre asking
hello small Q, which event will be fired after sandbox setting is changed?
is endurance already a variable, do I just write it as it is? so no need to get endurance then?
What ?
???
No you need to get it ???
this
I'm so fucking confused like did you read the code snipet ?
calm down 😭
@nimble badger if you don't know lua, I'd recommend reading the PIL guide before you start modding https://www.lua.org/pil/
Sry I'm tensed, getting only stupid questions today lmao
to be fair if the dude doesnt understand whats happening in those 2 lines he probably shouldn't doing it
Like it's just reading
its not bitwise shifting where you have no clue whats happening if you dont know it
I mean no he just needs to learn that's fine
Hi, one question, does anyone know where i can learn in a guided way the api for the game and how to mod it? thanks
I was just confused about setting a variable to something more than one character, never worked with lua before
Thanks for the help btw
yes, but thats why you recommend them resources to learn lua instead of telling them how little they know
and bitwise shifting isn't any different, it's easy to understand once you know it, but you have to learn it first to know it
I'd argue reading English "getSomething()" and "setSomething()" is easier than understading what's <<< or >>> when you never seen both options
Doesn't matter
no event is fired
ty, I am just finding the info on decompiled javas.
hm.. if you can give another favor to me. What way seems good to catch the sandbox changes (especially on dedicated server)?
@bronze yoke
you could write them into mod data or something and then check if they changed every 10 min for example
only real way is to check periodically, if you're waiting for a specific option you can cache that value and do something if the current value doesn't match the cached one
well I wanted to avoid periodical events, but it looks only way :/
Thank you 🙂
can someone make vhs / cd player and storage ( if you put vhs / cd in it they will weight 0 and ability to play that music and tapes, something like mp4 player ) , it is portable and be usable while walking and sprinting
is there any good thing to store VHS / CDs
Im going to ask a question that isn't as stupid now, wasn't there a website or something of sorts, that had all of project zomboid's Variables?
do you mean this?
https://zomboid-javadoc.com/41.78/
Javadoc Project Zomboid Modding API package index
Well yeah, im specifically trying to find player variables, like Endurance so i can write them correctly (eg endurance or Endurance)
you can update player variables using methods. So you wanna use the link and in search put "Endurance" for example to see what method is used for it
Aka you cant just
playerEndurance = 1```
you need
```player:setEndurance(1)```
(pseudocode)
This is how my code is looking at the moment
local stats = player:getStats()
local EnduranceRG = player:getEndurance();
stats:setEndurance(EnduranceRG + 1.0);
it breaks at stats.setEndurance
so stats;getEndurance?
what does it say
the error
I'd expect it to error at
local EnduranceRG = player:getEndurance();
not at stats:setEndurance(EnduranceRG + 1.0);
Can't really screenshot the debugger, but the green bar is at stats;setEndurance(EnduranceRG + 1.0);
could be that its calling nil value??
First things first, you should have console.txt open pretty much 24/7 when u making mods and testing them ingame so when it errors you have easy access to error
I think I fixed it hold up
Thanks a lot! im sure it was player:getEndurance, You were right, it was stats:getEndurance() thanks!
Ye but did you look at error
Learning to read those is going to help a lot during modding
Callstack?
nah above it
send the error
-----------------------------------------
Callframe at: removeItemOnServer
function: transferItem -- file: ISInventoryTransferAction.lua line # 399 | MOD: Snow is water - Full Version
function: perform -- file: ISInventoryTransferAction.lua line # 260 | MOD: Snow is water - Full Version
function: perform -- file: AutoLoot_DisplayLooted.lua line # 88 | MOD: AutoLoot
function: perform -- file: ETWActionsOverride.lua line # 122 | MOD: Evolving Traits World (ETW)
ERROR: General , 1726083822845> 16,241,616> ExceptionLogger.logException> Exception thrown java.lang.reflect.InvocationTargetException at GeneratedMethodAccessor1226.invoke.
ERROR: General , 1726083822845> 16,241,616> DebugLogStream.printException> Stack trace:
java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.GeneratedMethodAccessor1226.invoke(Unknown Source)```
as exacmple
i was wrong you were right, the stacktrace
xd
there's no error anymore, and there's nothing above call stack??????
Wait
you made that mod?
i jsut grabbed random error from my console
Found it thanks
Is there a way to make the protection stats of clothes random in the .txt?
or will i have to call on some sort of lua function :C
you'll have to rely on lua
unfortunate but expected news
client or server? I'm thinking it could be done when items are spawned but I'm not actually sure
like, how to make sure stats are associated with different instances rather than the server deciding on some random level that will dupilcate across all instances of an outfit
you can do it on the server
items can have an OnCreate function associated with them, that would be the easiest way to do this
usually editing item properties per instance can be a pain as they usually aren't persistent but i have a feeling this will be because tailoring changes the defence of clothing instances anyway
Interesting, I was doing this to mod jewelry, so tailoring would be something I can avoid, sounds pretty doable C:
Hello,
I just uploaded some code I wrote late last-year to aid in detecting and removing players who join servers with the EtherHack mod installed for cheating.
Here's the Steam Workshop item:
https://steamcommunity.com/sharedfiles/filedetails/?id=3329520682
Here's the GitHub repository:
https://github.com/asledgehammer/EtherHammer
Enjoy.
Is there a way to seperate player related deaths vs pve deaths?
I want to know the possibility of a mod that can separate the two so that players when they die to, for example zomboids, they wont get punished but if they do get killed by a player they get blocked or something along those lines
you might be able to do an isinfected check, not exactly the same so probably not what you want, but pretty simplistic
won't work unless infection is enabled though <w>
Well I personally am not a modder but lemme show something rq
We use a mod that logs players deaths, skills, inventories, etc, would it be possible, with the mod makers permission of course, to pull this data and use in the way I was describing?
yes by getting last attacker
then check using instanceof
is there a way in which I can read all the pz supported functions ? Like this site?
Wdym?
You mean detailed documentation?
There is none
yep
do you have a website or something?
Closest thing you'll have is umbrella
Well now you do
mmmmmmmmmmmmmm no :E
oh sorry wtf
lol sorry :E my apologize
yeah i'm there thx
just one more question maybe you can help since i'm not so good ^^'
I'm trying to make a new skill called Gunsmith and apparntly I managed to do it. Now the guns are defined with a tooltip that I want players to read only if the gunsmith skill is above or equal to 3.
I made a small lua script but chatgpt suggest me this event t make the script run :E
Events.OnPreItemTooltip.Add(showTooltipBasedOnGunsmith)
I don't think that "OnPreItemTooltip is something that should work ahhaahhaha
any suggestion?
By initial idea (which might not be the best) is to catch tooltip in UI and if it's a gun, overwrite it
Not sure how to do that though as I think tooltip code is generalized and it's not separate for different items
Which mean you'd be catching every single item tooltip with your code
Which again can he fine but not ideal
Albion is smarter than me, wait until she sees your question or ask her when she's around, she's the 
U.U
I made the same with meds. Meds have the same icon as "pill" or "syringe". If you have enough level in doctor you see the name of the pill and what is it used for u.u
The problrm is the event which handles everything. I am trying OnPlayerUpdate
Wait if you have it for meds already can't you use same thing but for guns?
Also what exactly are you doing OnPlayerUpdate
I believe that event is fired very often
Like on the OnTick level often
Almost always hahahah
I never use on tick
It s very performante killer
@pastel raptor
no such event
chatgpt randomly assumes events exist based on other games
you can just use setTooltip()
Chatgpt is decent help as long as you ask it Lua questions and not PZ questions
Aka
"How do I loop through 2 depth table modData.MyMod" and not "how do I make weather change to rain in PZ with event"
local function showTooltipBasedOnGunsmith(player, item)
-- Check if the item is the "Pistol" (or whatever weapon you want to use)
if item:getFullType() == "Pistol" then
-- Get the player's skill level in "Gunsmith"
local gunsmithLevel = player:getPerkLevel(Perks.Doctor) -- Use your custom skill perk name
-- Only show the tooltip if the player has level 3 or higher in Gunsmith
if gunsmithLevel >= 3 then
-- Show the tooltip (normal behavior)
item:getModData().showTooltip = true
else
-- Hide the tooltip
item:getModData().showTooltip = false
end
end
end
-- Hook the function to run when the tooltip is being displayed
Events.OnPlayerUpdate.Add(showTooltipBasedOnGunsmith)
chatgpt made this 😄
🫠
Don't use ChatGPT for PZ modding unless it's basic algorithm
It will give you a fuck ton of wrong things
For example here
item is not sent to OnPlayerUpdate
I think icon will be applied to old items with do Param. I set sounds for guns that way and it works for new and old ones.
I believe stats like condition and damage might still use old values, but icons/sounds/attached models do work on both from my experience
Currently, in the settings menu, the largest texture size for the vehicles is 2048x2048, but there is also a checkbox for "Double-sized textures". So the question is, what is the resolution of the texture file supposed to be? Actually... How does the checkbox work in the back? is it just a large texture that's downscaled if it is unchecked?
i have created a deathtracker bot script for discord that send an image on player death, if u are interested dm me
whats the best way to debug your code in game?
Don't use chatgpt period. It generates text that looks like human text, and merely that. Since the information itself isn't stored anywhere, there isn't even a way for it to tell if it's hallucinating or saying truths. If it's correct, it is purely because what it generated happened to match real world information. And otherwise, it's confidently incorrect.
Just don't be a fucking idiot when you use it, that's it
People keep saying to not use it, they are the same people who don't even know how to use it
automation bias isn't a sign of being an idiot tho
also you don't know what you don't know, so if you ask chatgpt for something you didn't already knew, you have no way to know if it's saying the truth or hallucinating
Again, you just don't know how to use it
If you try to use it for knowledge, you haven't understood the whole point of the tool
I'm telling you: you just don't know how to use it
paraphrasing search engine something something
same issue occurs but in a different plane
Example of what you can do
Write an essay through ai, test it, tell ai to make it more human, test it
It’s undetectable
yes the thing is i need to change tooltip and icon
doparam works but the already spawned items doesnt change
setTooltip works but icon doesnt
The best way to do that is to give an example of how you write, and tell it to write like you
allright fair. Writing human-like text is literally what it's designed to do.
Hmm smart
I’ll try that
AI hatters just don't even know how to use AI, like seriously, stop shitting on AI, you just have an insane tool at your disposal that you DO NOT KNOW HOW TO USE
finding new, more computationally expensive ways to find and replace
depends on what youre workin on
Literally
i'm not a hater i'm just quick to point out its limitations
But at least it didn't take me 15 minutes basically
Even tho ai might take our jobs doesn’t mean we can’t use it to our benefit
There's a lot of examples I've used this tool for easier repetition
ctrl-r takes you 15 minutes? 😟
i mean i wouldn't have had 400 gbs of llms downloaded if i hated the idea of using llms
It's not a search and replace here
I mean sort of I guess
I can leave it do the thing, go do something else in the mean time. This is a bad example I think in this case
search and replace the text that i would write except i don't wanna write it
The voiceline example is the one I've used a lot
voicelines makes sense to me
fun fact: it's in principle possible to make PZ NPCs that use llama-3b to talk to you
it'll require a java mod + not sure what else but it's a thing
Pythoid
it's been done
cool!
using ai to generate code will usually hold you back - for new users it creates things they have no hope of understanding, but even for an experienced user it'll just slow them down
Pythoid is the go to here ngl, if you have to use a manual installer, you could directly use Pythoid to link Python to PZ
if it generates something wrong (and it will) it's actually quite difficult to go through something that looks correct and verify every bit of it - much easier to just write it yourself in the first place
That's again a miss use of the tool, telling it to write you a code is not the go to, you should ask questions on how to write/a tool with smaller parts
it's not like it's any good at anything more complicated than fizzbuzz anyway
Don't tell you to write an entire application or yes it will break
Tell it to teach the steps to follow to make such application, where to start etc
there's an AI in development that specifically can operate with symbolic logical data, so it can make mathematical proofs and by extension it codes quite well.
We'll have to see how it goes
it's not an llm so there's no reason to dunk on it before it's out
it's just in the past few years llms have been all the rage so people associate AI in general with LLMs specifically
it went from "a program that can speak like a human? wow, magic" to "a program that can speak like a human, whop dee doo" in like a year
Im working on a new item, and a multiplayer mod around the item
one of the main things im noticing is when i try to get the player on a server side, im getting an exception thrown and it doesnt tell me why there is an error, and according to the local variables in game this is correct:
-- Function to get the correct player for singleplayer or multiplayer
local function getCorrectPlayer(player)
if player == '0' then
print("Server: Singleplayer mode detected, getting local player")
return getPlayer() -- For singleplayer
else
print("Server: Multiplayer mode detected, getting player by ID")
return getSpecificPlayer(player:getOnlineID()) -- For multiplayer
end
end
ignore my debug statements
use isClient()
it's because getPlayer() returns a local player but the server has no local players because it is not a client
player in local is a '0' so my logic should have not errored correct?
getSpecificPlayer also deals with local players
use players' OnlineIDs with getPlayerByOnlineID
-# Use this format for easier reading:
```lua
<code here>
```
if it's 0 then what does 0:getOnlineID() mean?
thats why it was within an if
interesting that the single player isnt being hit, im in the carpentry scenario if that makes a difference
isClient() returns false in singleplayer
singleplayer is considered neither a client or a server
so when i do the following
local function getCorrectPlayer(player)
if isServer() then
print("Server: Multiplayer mode detected, getting player by ID")
return getPlayerByOnlineID(player:getOnlineID()) -- For multiplayer
else
print("Server: Singleplayer mode detected, getting local player")
return getPlayer() -- For singleplayer
end
end
-- Prevent unauthorized interactions within a safehouse
local function onPlayerInteract(player, context, worldobjects, test)
print("Server: Player interaction detected")
local actualPlayer = getCorrectPlayer(player)
local playerSquare = actualPlayer:getCurrentSquare() -- error on this line
local isInSafehouse = false
end
i get the error:
attempted index: Add of non-table: null
I can see that actualPlayer has an isoPlayer object
i don't see an Add index here, are you sure it's not on another line?
usually that would indicate a typo in an event name
me either 😦 local actualPlayer = getCorrectPlayer(player) this gets called however
another note, is there an event for when an item is crafted using carpentry? i looked on the docs and i couldnt see anything obvious?
one off here but where can I check print() functions? command line?
console.txt or in-game lua console
Thanks, do you know where I can find all player: stats: and such?
anyone know?
@mystic vessel Hello friend! We cant make brown paint with your Machines! mod, need a quick edit to the paint recipe here:
{
PaintbucketEmpty=1,
PaintRed=2,
PaintYellow=2,
NearItem:PaintMixer,
Result :PaintBrown,
Time : 500,
Category : PaintMixing,
Sound :CanisterAddFuelFromGasPump,
CanBeDoneFromFloor : TRUE,
NeedToBeLearn: falsed,
}
recipe Make Brown Paint
{
PaintbucketEmpty=1,
PaintGreen=2,
PaintBlue=2,
NearItem:PaintMixer,
Result :PaintCyan,
Time : 500,
Category : PaintMixing,
Sound :CanisterAddFuelFromGasPump,
CanBeDoneFromFloor : TRUE,
NeedToBeLearn: falsed,
}
Rather, you need to make sure you have the right items and not just click "make brown" as it will choose either recipe to use.
sure, a i'll edit and upload thank you for the report
i'm also late for that, but i'm almost uploading machines II
It took a lot longer than it should have, but for a good reason.
I spent the last week editing fish models and skins for my server, I get it hahah. Thanks for the hard work!
I appreciate
How can I make a clothing item that isn't affected by other clothings masks?
Should I create a new body location?
I would look at the ammo strap, it's basically doing that for itself
dedicated clothing slot
Is there a way to change the color of light from attachments?
(aiming to have an orangey gold candle glow...)
without using that slot
is there a guide or template to create body locations?
actually
yes
In the modding discord
#1270944623661027328 message
is that like those chocolate coins
the ones wrapped in gold
Hi all, is there a way to change the maximum amount of runners in the vanilla Casual setting for zombie speed?
UK Map update now with zebra crossings!
Is there anyway to make FullSuitHead BodyLocation protect feet from scratches if you have no shoes? I'm using a clothing model that has shoes on the model itself.
If I could modify whatever code that checks if you have Shoes, also check for FullSuitHead should fix the problem hmm
Anyone know the event for when something gets constructed like a storage box
Thanks!
Mods are programmed in Lua right?
mainly yes
There is a little bit of zedscript which is some weird text scripting thing but it's pretty easy to learn, pzwiki has a bunch of docs for that (or look at vanilla game files in \media\scripts\
I have a custom vending machine how can i use the existing mesh, cant seem to find it in the media folder
vending machine? they aren't 3d
yeah but how can I make to have my own bodylocation render AFTER the vanilla ones?
I have shirts above jackets
I'm not too familiar with that guide, it should tell you tho ?
Bcs I'm pretty sure it tells about clothing priority or shit like that
Which I believe are defined in a lua file
sadly it does not
also xml ? that counts too right?
if we're being pedantic about the term 'programmed' neither zedscript or xml count
but let's not LOL
I guess but barely
but you just did tho 
is it because lua isnt compiled? which is why "programming" doesnt apply?
lua counts, scripting is a subcategory of programming
but zedscript and xml are not scripting, they're just data storage
i see good to know
there's probably an argument that animation xmls should count as scripting
is it normal to use xmls for animations?
don't you have to?
I think glytcher means in general and not specific to pz
oh, i don't really know exactly what formats for it are common, most games i've looked at have proprietary binary formats for it, but animation xmls basically just set up a finite state machine which is a pretty standard way to handle animations
any modding gurus want to talk me through some issues im having? please dm me
making an entierly different type of mod... gotta find a tutorial!!
would... anyone be able to help with making an item mod? im so confused by this
what are you having trouble with?
so, the items.txt file has two different ways of making item scripts and what on earth!
it makes very little sense to me...
wdym two different ways?
like.... these are so different
i think part of the confusion here is just because you're looking at it in notepad, the indentation is all messed up
the differences in values specified is just because most items don't need to specify most fields, they're either not relevant to that type of item at all or they have default values to fall back on
okay makes sense
what is metal value?
in the current version of the game, literally nothing
it would've been for melting things down for blacksmithing, no idea if they're still going to do things that way though
alr!!
im working on a coin mod
its gonna be small on release but thats okay
can, i put whatever i want as the category? or would i have to make a new one for that to work
you can put whatever you want, they don't need to be declared anywhere
you'll need to add a translation entry for it somewhere for the name to show up correctly, let me check where that is
yeah, if you have for example DisplayCategory = MyCategory, then in IG_UI_EN.txt you should have an entry like IGUI_ItemCat_MyCategory = "My Category"
okay... what is IG_UI_EN?
im trying to...
im not very snart
mostly confused on file stuff, i get the stuff i need to write
i believe theres a purpose for it i just forgot what since i havent played the game ever since i did modding
but i recall there was a purpose for it cuz i used to run a server
i think its related to metal weld blow torch thing
maybe to create scrap metal or something
this is related to translate
go to shared translate
then whatever language
by default its EN
ill just use one of the ones from the base game, probably just "junk"
ye thats what most people do anyways
maybe ill do it in the future
another question, can i put all of the item stuff in one txt file?
you can
for some reason most modders separate each type of thing into a separate file (items file, models file, etc) but it doesn't actually matter at all how script files are organised
in my opinion it's cleaner, depends on how much stuff you have in the script tbf
but it is a pain to scroll through a large file
separating models and items can make sense but when you only have a couple items it feels kind of cumbersome and i think sticking strictly to that way of doing things is what makes people not think to group objects more logically (e.g. items_carpentry.txt, items_cooking.txt instead of a giant items.txt)
Possibility of a everyone has schizo mod?
I'm like 90% sure it's used to determine which items make microwaves explode
i recall that using a tag, like HasMetal or something
icons should be named
Item_whatever
but when you add to the script
Icon = whatever,
anyone good with script files?
im asking so i dont waste the gen publics time ¬_¬ ass
what i specifically want is some guidance on if i cant use the script file system to use a custom tileset/pack instead of using a model
you should read the site - it makes the point that people won't want to respond to a question like that because they don't know what problem you're having and they don't want to commit to helping you when they don't even know if it's something they can help with
there's a good chance someone who knows the answer to your question will not respond because they don't know what your question is
can i have guidance on if i cant use the script file system to use a custom tileset/pack instead of using a model
Learn to ask proper questions instead of insulting people. I've sent this here a dozen of times and every single time person asking adjusted their question in a way so someone could help them. Except you, that is. You're not saving time, you asking ppl to spend more time to help you. You asking ppl to spend time to figure out what your question is, instead of posting your question straight away.
And shove your unwarranted hostility someplace mentioned in your comment :)
The website is not an insult, it's a genuine advice, and I'd recommend using it, instead of being offended
I got caught doing this before like 2 days ago on a separate server (unrelated to pz), I thought they were gonna call me dumb for asking such simple things so I abstracted a lot from the question, ended up being the things I abstracted that were the issue
im guessing it cant be done then i will model it
I just bully albion for all my questions 
i'll be honest that i hadn't read any of those sites until recently and i did always get the vibe that people posting them were a bit snarky
but they actually make pretty great points that make it easier for everyone
there has to be a way of using a tileset/pack with the script txt files
for carpentry for example with the bookshelves
Hello, I have a question, how can I change the fire rate of a weapon?
https://pzwiki.net/wiki/CombatSpeedModifier this should do it
CombatSpeedModifier = 0.9,
just add that to your item.txt
Thkx a lot
within scripts, when defining the object what file does this need to go into, i have seen a variety
just put it on the scripts
you can put everything together or separate them its up to how you want things organized
oh so i can put the recipe etc all together?
each guide i read seems to differ slightly
👍🏼
I Belive rakeki is wrong, or its some other way but site says its only on clothing, where you want firearm. That would be RecoilDelay, so less recoildelay = more firerate, but its capped by animations, m16 Assault Rifle with 10 aiming is the fastest you can get in vanila, but there is also "real full auto" mod that changes it.
interested to see the result
Hey all, trying to make my first mod. I get an error in game, the little red box down in the right hand corner. How can I see the console? or is it log file only? if so, where are the log files?
found it, thank you
this worked thanks!
where are icon photos stored in the base game????????
.pack files
texturepack folder
Damn
Somone point me in right direction how I would go about making a mod to make the back of toilet's containers
im so good at editing
Wish there were more modding tutorial videos 😭 but I'm assuming I'd just need to look at an example of a mod that has made custom object containers already to see how it's put together any suggestions?
your best bet is looking in ProjectZomboid/media and other stuff online ;-;
just keep on poking around and youll figure it out, you got this!!
Thanks for support I don't think it should be the hardest thing to do 😭 just recently started learning to map and made a item following Blackbeard's video so yeah I'll poke around for awhile end goal for me is to learn how to make a trainable skill with custom items animations and object interactions but yeah one thing at a time 😅
I'm trying to SendClientCommand, I already have added a hook to OnClientCommand but when I'm hosting a game, it doesn't seem to be firing my 'hello world'. Am I doing something wrong or does this not work when you host the game on non-dedicated?
recipe Make Nails From Can
{
EmptyPopCanMonsterWhite/EmptyPopCanMonster/EmptyPopCanMonsterRed/EmptyPopCanMonsterPacificPunch/EmptyPopCanMonsterUltraViolet/EmptyPopCanMonsterUltraParadise/EmptyPopCanMonsterMangoLoco/EmptyPopCanMonsterMIXXD/EmptyPopCanMGuaranáBaré/EmptyPopCanMGuaranáDolly/EmptyPopCanRedBull/EmptyPopCanFanta/EmptyPopCanGuaranaAntartica/EmptyPopCanPepsiMax/EmptyPopCanBangStrawberry/EmptyPopCanGuaranaJesus/EmptyPopCanSpriteSoda/EmptyPopCanCocaColaZero/EmptyPopBangBlackCherry/EmptyPopPurpleHazeCherry/EmptyPopBlueRazzCherry,
keep [Recipe.GetItemTypes.Hammer],
Result:Nails,
CanBeDoneFromFloor:true,
Time:80,
Category:Carpentry,
Sound:SliceMeat,
}
I have this recipe for empty pop cans
and its giving me 10 nails idk why
its supossed to give me 1
i already tried Result:Nails = 1,
@tranquil kindle
If i remember correctly when you open vanila box of nails it gives you 100 nails, right?
recipe to open box of nails
recipe Open Box of Nails
{
NailsBox,
Result:Nails=20,
Sound:PutItemInBag,
Time:5.0,
}
But in result you have 20, which leads me to belive that result:nails=1 will equal to being 5 nails
item Nails
{
DisplayCategory = Material,
Count = 5,
Weight = 0.01,
AlwaysWelcomeGift = TRUE,
Type = Normal,
DisplayName = Nails,
Icon = Nails,
MetalValue = 1,
SurvivalGear = TRUE,
WorldStaticModel = Nails,
}
Because it has Count = 5 means one unit as result of recipe will give you 5 nails. Im not sure why TIS went with that approach. It does not even make sense for me, but its same for opening boxes of ammo.
yes
So you can either leave it as nails=1 and be it 5 nails, or you'd need to use lua for that, which is actually hillarious
so i need to put 0.25 ?
soo i need to create the nail ?
If you really want it to be 1 nail and not 5, you'd need to make onCreate Function which will give player exacly one nail
how do i do that hahaha
i just know how to create models items translate recipes
just the basics of that coding thing
never tried and i dont even know how to learn
I belive you, i myself been there.
Let me see if i can cook something up for you
thank you
pottery i'm working on :3
thats cool
thank ye ^^
Okay, so you'd need to create lua file in your mod and put it in lua>server>Your file and all you need is to paste this
function Recipe.OnCreate.didizaoNails(inventoryItem, result, player)
local SingleNail = InventoryItemFactory.CreateItem("Base.Nails")
player:getInventory():AddItem(SingleNail);
end
then
on your recipe you add those 2 lines
OnCreate:Recipe.OnCreate.didizaoNails,
RemoveResultItem:true,
the name of the file should be didizaoNails ?
anything, but it has to be rather unique so other mods wont be overriden, or you do not override vanila file.
okk how can i learn more ?
What do you mean?
Same as you did with just script items and such. You try, you fail, you check other mods to see how its done
Many ways
Others would write you this from memory and would guarantee it works, i actually had to test it first just to make sure.
thank you
on "OnCreate:Recipe.OnCreate.didizaoNails,
RemoveResultItem:true," i just paste it
i dont need to delete nothing ?
Nope
IF it worked before and only gave you more nails, now it will give you one, if it didnt work, then....
Ok, so a few hours of meddling around with all this. I this I have a basic version of what I wanted working. I want useless items to be useful. Saw several tear underwear mods, but found then buggy and not what I wanted.
I now can tear any base game boxers into sheet rope. I will add the other underwears and add rip cloth to the one that make sense.
I ended up using ItemTweakerAPI to do this. Is it still supported? I found something its lacking and I am working on adding it.
whats your steam @tranquil kindle ?
I belive its pinned to my discord profile, why?
Wish I was at home rn to learn more 😭 y'all seem to be having fun
Question tho would it be possible to change the zombies into like rpg monsters that only attack when aggroed and non humanoid models w animations or should I wait for the npc update in 42
what in scripts to i need to do to have an item be crafted in a similar way to how carpentry/metal working is done, i want a siloette of the item being crafted and when clicked crafting will commence
The preview tile ?
so some testing and I think I fixed ItemTweakerAPI
not sure if its still active or if there is a preferred form of communication 😅
have you tried to contact the author if ItemTweakerAPI?
how/where?
You're referring to builables, well the game doesn't have predefined method to add those kind of objects like there is for .txt script items. But I created a framework for such objects, the "Building Menu". Here is a guide if you want to use it https://github.com/eI1on/pz-building-menu/blob/main/DEVELOPMENT.md. And the workshop page https://steamcommunity.com/sharedfiles/filedetails/?id=3067798182. But from what I've seen devs will add their own version next build.
comment section on the mod's steam page
I wasn't sure if there was github or something.. I can comment there but I don't think I can add all the code changes there
all the pottery items i'm making are considered food items internally so i can "cook" them... thankfully we can disable the eat property so youre not chomping down on clay lol
you technically answer my first question. reading the mod page, seems it may not be supported anymore.
more progress :3
if you're looking for a print, keep in mind that the server doesn't log to the in-game console or the regular log file (as it is an entirely separate instance of the game, even when in-game hosted) - check coop-console.txt instead
you need to show the code
@tranquil kindle can you help me in dms ?
Im making a mod to a server that just works in singeplayer idk why , i maked a mod with media/textures/vehicles and i put the modified textures of the advert trailer with the same name , and it actually works on single player but in mp its not working
You overriding texture for a trailer, but its only visible on Singleplayer? Or is that you see it changed, but others do not, or it just doesnt work at all?
But how does it not work
Does not show custom texture, or does but only for you?
ok, I need opinions 😄
My goal was to make underwear useful by being able to rip it.
- all base game underwear types are able to be ripped into sheet rope except the garter.
- all base game stockings are able to be ripped into 2x sheet rope.
- all base game boxers and briefs are able to be ripped into ripped sheets.
- all base game corsets are able to be ripped into leather strips.
- all ripped sheets will be +1 per 5 levels of tailoring.
- all ripped sheets give chance of producing tread at the same rates as base game.
- easy patch support for third party underwear mods
Am I missing anything?
There's already mod that allowsd you to rip underwear, but I'm not sure which one cuz it's in my like 200 mod list
I'm fairly sure it's a pack of a bigger QOL mod but im not sure.
Looks good tho

local finalRainCounter = modData.RainCounter + rainGain - rainDecrease;
modData.RainCounter = math.min(upperBoundary, finalRainCounter);
modData.RainCounter = math.max(lowerBoundary, finalRainCounter);
modData.RainCounter = finalRainCounter;
Very smart. Big brain. Much code
what is the thing about .pack files? is there a way to see the contents?
lets say i want to replace a texture or something inside it
you can extract it using tilezed, which can be found in the Project Zomboid Modding Tools automatically added to your steam library if you own the game on steam
I got tilezed downloaded, do you mind showing how to extract? i cant open the file inside of it
I wasn't aiming for the 'never been done' mod.. its just 'my first mod'.. I will be making a full series of them
Ye it's great
now I just have to figure out how to package it and put it on the workshop lol
this will let you view the textures and associated names, i have not created new .packs though so i wish you the best with that! :)
What is the time I have to set for the "WearClothingHat" animation? I set it to 40 or 60 and the animation plays and ends but the "SetJobDelta" never ends and the action is not performed.
tried it but it does not export the images at all
created a folder, set everything up correctly i guess
just doesnt do anything after clicking on OK
hmm, it's not something i've tried before but i can take a poke at it and letchu know what i find
to be more specific im trying to edit the tiles2x
to create custom tiles for a retexture attempt
maybe someone already has that unpacked probally, but the tilezed isnt doing the job atm apprently(checked at the forums)

it's working fine on my end? unsure what's causing the problem, but regardless i can send you the unpacked set in dms or something
that would be great thanks
yeah, idk what is happening
not sure if windows has something to do with it
yeh, its a bit large so lemme go upload (temp site, not redistributing) it somewhere and i'll shoot ya a download link in a min
and no worries, i have no clue either
Hi guys! I'm just starting my attempts to understand modding, and I've encountered a problem. I'm trying to spawn a zombie of the appearance I need when I press a button. The hair color has changed, but the zombie's suit for a policeman does not change. What am I doing wrong?
local x = 10907
local y = 10094
local z = 0
local square = getCell():getGridSquare(x, y, z)
if square then
local zombie = createZombie(square:getX(), square:getY(), square:getZ(), nil, 0, IsoDirections.S);
local visual = zombie:getHumanVisual()
local hairColor = ImmutableColor.new(0.0, 0.0, 0.0, 1.0)
visual:setHairColor(hairColor)
zombie:dressInNamedOutfit("Police")
zombie:resetModel()
end
end
Events.OnKeyPressed.Add(function(key)
if key == 34 then
SpawnZombie()
end
end)```
Hmm I believe the outfit can be set only if the zombie is loaded in
Hi, I hope you are having a nice night, I have a question, how can I make my 3D model of a gun magazine visible when I place it on the ground? When placing it, only the icon appears but I would like the 3D model to be shown, I already made a script where I place everything necessary including the WorldStaticModel, I made a folder with the name world items and placed the OBJ file so that it can be " detected" but nothing happens, I appreciate your help and thank you very much.
Does anyone know if there is a way to add protection to a specific body part on clothing? For example, I made pants with leg protection and I need them to only protect the legs
Maybe the problem is in the model format? As far as I know, the game supports .x and .FBX. Try exporting the model in FBX format and apply all transform
The model is already in FBX jeje, which is why it seemed strange to me that the model did not already appear having used both formats
I don't know if I'm okay, I have worlditems in the models_x folder and inside is the 3D model in fbx, I have 2 .txt files in scripts, one is for my weapon and the other is for the magazines and in this I have all the configuration of my gun magazines. Is the order okay? Or am I failing in something? Jejeje
In theory, everything is correct, maybe the problem is in the names? Missing comma, period, letter, etc.
Hey guys please help. I'm really going OUT of mind with a stupid On.Create function which does not add what I want è_é
I got this Recipe:
recipe Scuoia cervo
{
keep ButcherKnife,
DeadDeer,
Result :DeadDeerSkinned,
Sound :Butcher_short,
AnimNode :BuildLow,
Prop1 :ButcherKnife,
NeedToBeLearn :true,
SkillRequired :Butchery=4,
OnGiveXP:Recipe.OnGiveXP.Butcher10,
Category :Hunting,
Time :4500.0,
CanBeDoneFromFloor :TRUE,
**OnCreate: Recipe.OnCreate.DeerSkin,**
}
This is the On.Create function placed in Lua/Shared
function Recipe.OnCreate.DeerSkin(items, result, player)
local itemContainer = player:getInventory()
if not itemContainer then return end
itemContainer:getInventory():AddItem("LeatherCustom", 1)
end
I don't know why I get the recipe result (DeadDeerSkinned) BUT I don't get the item LeatherCustom from the On.Create function. Please help I?m really going out of my mind ç_ç
put your function in lua/server/
the Recipe table isn't created until then, if you put your function in shared depending on how you did it it will either error or get silently deleted
I tried in server also but nothing :E
its cuz of the syntax
you used addItem but added a 2nd param
remove the ,1
or add s
addItems(inventoryItem, integer)
did someone manage to reload a lua script without reloading the game?
I noticed there is an option to do that in the debugger but for some reason it never worked for me
it works, it's just often not advisable
I understand the implications but I could never redefine a function with my new code by doing that so I assumed it did not work at all
i've never heard of it straight up not working
it's fairly commonly used
i don't personally make much use of it but there aren't any quirks to it i know of
maybe I gave up to early on it then
I'll give it a try when I have a chance to do so
Does anyone happen to know the variables for holes in clothing by chance? I've found these ones but they don't really help me. I want to transfer holes from one piece of clothing to another and im not seeing what I need to get it done.
getHolesNumber()
copyPatchesTo(Clothing newClothing)```
https://steamcommunity.com/sharedfiles/filedetails/?id=2909488957
This includes something Aiteron made that reloads Lua per file - but there's a few issues with things like Events.Add etc
yes, the luatable is copied when you add it to en event, it's unavoidable
thank you for the link, I'll have a look at that
I create modules, and keep event adds elsewhere
is there a way to get the server to sync all animation variables with clients or should I be individually calling my mod's setVariables on all clients?
Once again I thank this server for having the tools and info for mod making.
https://steamcommunity.com/sharedfiles/filedetails/?id=3331641213&searchtext=
I create a game with only this mod and when it is reloading lua it detects an error, the screen goes black and I have to close the game. I don't know if it's my fault but I think it's because of the mod.
anyone knows what this means?
[2024-09-15 17:08:52] [AppID 108600] CAPIJobStoreUserStats::BInit() - no stats found, aborting
I may be wrong, but I think you can do a sendServerCommand and use createhorde2, which has an argument -outfit that spawns the zombie with the desired clothihng
Let me check here
public class CreateHorde2Command extends CommandBase {
public CreateHorde2Command(String var1, String var2, String var3, UdpConnection var4) {
super(var1, var2, var3, var4);
}
protected String Command() {
int var16;
for(int var12 = 0; var12 < this.getCommandArgsCount() - 1; var12 += 2) {
String var13 = this.getCommandArg(var12);
String var14 = this.getCommandArg(var12 + 1);
switch (var13) {
case "-count" -> var1 = PZMath.tryParseInt(var14, -1);
case "-radius" -> var2 = PZMath.tryParseInt(var14, -1);
case "-x" -> var3 = PZMath.tryParseInt(var14, -1);
case "-y" -> var4 = PZMath.tryParseInt(var14, -1);
case "-z" -> var5 = PZMath.tryParseInt(var14, -1);
case "-outfit" -> var11 = StringUtils.discardNullOrWhitespace(var14);
case "-crawler" -> var6 = !"false".equals(var14);
case "-isFallOnFront" -> var7 = !"false".equals(var14);
case "-isFakeDead" -> var8 = !"false".equals(var14);
case "-knockedDown" -> var9 = !"false".equals(var14);
case "-health" -> var10 = Float.valueOf(var14);
default -> {
return this.getHelp();
}``` Yea, here is a snipped of the code in java, but you mostly need the 'case' section to know what to use
Thanks, but I have no idea how to use this. My knowledge of Zomboid's methods, functions, etc. is practically zero. I want to be able to spawn a zombie with any clothes, not just with ready-made outfits.
How can I configure the Time it takes for a Player to Eat a Food Item?
Hi, does anyone know why my tilesets are getting split like this?
ongamestart event returns getmoddata as nil even if i have initiated the moddata already
whats a better event for initiating player moddata?
OnLoad?
Events.OnCreatePlayer.Remove(createModData);
Events.OnCreatePlayer.Add(createModData);```
I run mine there
works as intended
Idk, but are you managing to unpack and pack things sucessfully? im trying and It just doesnt work
tilezed refuses to actually fucking work, getting on my nerves at this point
packing seems fine btw
unpacking othewise does not work
i thought that only runs first time you create the player?
anyways on load worked
i also did that before
good to know
can someone save me 3 min of testing and tell if infection level 100 or 0 if sandbox is set to everyone is infected?
local bodyDamage = player:getBodyDamage()
local infectionLevel = bodyDamage:getInfectionLevel()
0
cheers
100 activates the damage effect
I see, ty
how the hell do you know all this?
it's just something i've looked at before
how do i make a single shirt to be wore by all zombies in the game?
The annoying way:
modify every outfits
the chad way:
modify the visuals of every zombies
Yo, any goood soul would mind unpacking the tiles2x.pack and this file here too? my tilezed can create .pack, but unfortunetly, I cant unpack, it doesnt work.
If I wanted an outfit mod made is this a good place to make a request?
Hi there.
Short question. I don't want to provide other language's translation of my sandbox options for now. Can I make EN as default?
If then please let me know the way 🙂
EN is default
hm.. then it seems due to that I missed putting commas.
ty
Is there an easy way to detect an update in sandbox variables ? I would like to send some info to the client when they change. I could save a state and compare it to the new state every few seconds but that's not so pretty.
Hello, I hope you had a great day, I have a problem, I made a separate script so that my weapon was detected and the attachments could be placed, and when I rack the bullet it does not appear in the inventory it simply disappears and I get an error what is
Callframe at: se.krka.kahlua.integration.expose.MultiLuaJavaInvoker@d99f9350
function: removeBullet -- file: ISRackFirearm.lua line # 71 | Vanilla
function: rackBullet -- file: ISRackFirearm.lua line # 50 | Vanilla
function: animEvent -- file: ISRackFirearm.lua line # 122 | Vanilla
Does anyone know what I can do to solve it?
unfortunately no
is there a way to make it so zombies won't attack a player? I know of setGhostMode but that seems to make my char invisible to other players doesn't it?
you have to show the code
@thick karma
told you it also invi to players
getPlayer():setZombiesDontAttack(true)
try this
I have been updating my unlisted mod for a few months and it's almost ready to come out. Should I reupload it so the workshop shows it as a new mod? Is it bad for its visibility if I just change it to public?
there's some evidence that it won't always count time before it was first made public but overall the algorithm heavily punishes older mods, i would reupload it
But like doing that as a mod not locally
Maybe a script that inputs "every zombie will wear this shirt"
I tried unpacking the specific .pack files i said, but no luck, aparently an issue on my side, using w11
but thanks
Yes, I was talking about a mod here
By visuals I meant the clothings of zombies
In real time
Change the item they wear
They are called ItemVisuals
Hello, please tell me how the NeckProtectionModifier works? I saw it in the vanilla hoodie code and I don't understand how it works. Is it possible to implement it for other body parts as well?
oh sorry, what code, where does that error appear? or the scripts where I have the weapon and accessories?
im curious if its possible to have it so lightbars dont flash on the clients end or something? like is it possible/does it exist? or something. im trying to find a way to deal with seizure triggers, as far as i can tell currently other ppls lightbars r completely out of my control
If i remember correctly it makes it so if you set your item to be for example 100% Scratch/Bullet/Bite resisten and then add that line, it will give 0.5 Of those resists to Neck area, so while rest of body has 100% resists, neck will have 50%
Because Hoodie with hood up will cover neck and head too, so its to slightly nerf it, but I might be wrong.
ye
both? Haha
anything that will help narrow down the issue
Oh ok ok sorry
has anyone used PZ Upacker recently?
I'm trying to upack UI2 but its been running for hours and doesnt appear to be doing anything.
is that maybe an old method? i've been away for some time

In the Extract .tiles images window under Prefix did you put the tilesheet name? And not the name from that list in Pack Viewer.
no idea what your talking about. sounds like your talking about something totally different?
this is what im doing? trying to "uppack" UI2 so i can get the individual texture sheets in like png format
but the process starts working, and it never finishes or does anything, even after waiting hours and hours
Oh god I don't know what ancient version you are using but the tools have been updated and look like this. You can find them in the Steam library.
Or a modified version https://github.com/Unjammer/TileZed
oh lol me and my ancient tools, you making me feel old
This is my scripts "Thompson" have the gun and stats, "Mods" have attachments and "error" have the error from console
Hello! When using the command
local item = InventoryItemFactory.CreateItem("Base.MyItem")
is there a way to check whether an item with script ID Base.MyItem acutally existis?
I use this for creating a clothing item and in case the item does not exists, the game displays the usual red-white canvas when the clohting gets equipped.
I tried if item then but this didn't work for me (i.e. variable item seems to contain smth although the clohting item does not exist).
it should return nil if it really doesn't exist
it sounds like the item does exist but the ClothingItem doesn't
yeah thanks! I just found my error. I forgot to delete the item's script.txt entry but deleted everything else. XD XD MY BAD!!!
sorry for asking! was really thinking for quite a long time about it. then I asked my question here and immediately afterwards, I remembered this 😦
haha don't worry that's how it always is
This line is causing error in ISRackFirearm:
self.character:getInventory():AddItem(newBullet)
Maybe it's failing to create item from the previous line
idk why
could be that you need the lowercase addItem
no they take different argument type
yeah it sounds like the item is probably nil
with more context it might be that the issue is 9mmBullets doesn't exist yeah
likely either a typo in the reference to the item or if it's a custom item something may be stopping that script from being parsed
wat they both take InventoryItem no?
and return same thing
only lowercase version accepts just the inventoryitem object
Hii idk if this is the right place to ask, but is anyone here looking to become an actice developer for a small team for PZ content creation? 
wait what no
ok nevermind, i got bamboozled by PZ api again
lowercase version doesnt accept string objects but uppercase works for all types
I can reload, shoot, equip, unequip and add attachments to the Thompson normal but at the moment i rack the gun the error appears and bullets do not appear in inventory
can you post the script for the bullets?
i suspect if everything else is working it's just a typo in the name of the bullets or something
where do i find that
Check the doc
wwhat doc
i actually can't really see how this error would occur
the method has null checks, it shouldn't be able to throw an exception because of that
nvm found it
I dont have script for the bullets jajhaja i jus take the scripts for attachments and in the Thompson script and the scripts for the magazine put the base.9mm
if loading them works fine i have no idea what's going on here
Spent too much time working IRL to advertise a new anti-cheat for EtherHack users on multiplayer servers.
It exists, though.
just parts of it like how everyone does it
im not gona dl files lol
okay so im working on changing zombie clothing and all i did was add the hat to the fossoil zombie clothing XML and they now spawn without shirts or pants 100% of the time. any idea what i could've done wrong to cause this? does the hat need to be a subitem?
they also appear to be wearing only default clothing
what exception message to you get with this?
unfortunately InvocationTargetException
which basically just means 'there was an exception'
i think i see what could have happened
if you passed nil and it chose the string overload that string isn't nil checked
AmmoType = 9mmBullets but the item is called Bullets9mm
jahaja thkx It didn't work for me but you made me realize my mistake and I compared my code from Thompson script with Magazine Script and I put in magazine script Base.Bullets9mm and changing that, everything was solved
Hii, sorry again if this is the wrong channel but #1285397103652372500 we are hiring modders for a content creator / content creation
Just another question, how could I make my firearms mod compatible with another? For example, with Vanilla Firearms Expansion (VFE) only in the attachments section, or would I have to ask for permission first?
Hi, I'm currently trying to add some items to the distribution tables through procedural lists but the lists are not appearing in the tables. In fact, two of the lists are but the rest refuse to appear, and even these two lists only appear in one room definition and no more. I have checked this through LootZed in debug mode.
I have both proceduraldistributions and distributions files in the /server/items folder and followed the guide in the forums.
This is what the proceduraldistributions file looks like. Here I just have the first and last entry of the file, the ones that appear in the container, together with one of the procedural lists that refuses to appear.
This is what the distributions file looks like (with just one room definition to summarise). As you can see all but the last two refuse to appear in the container.
If I remove those from the list the others don't appear either way.
local LDFDistributionTable = {
carsupply = {
isShop = true,
metal_shelves = {
procedural = true,
procList = {
{name="CarTiresOffroadFR", min=0, max=99, weightChance=40}, -- missing
{name="CarTiresCommercialFR", min=0, max=99, weightChance=40}, -- missing
{name="CarTiresEquipmentFR", min=0, max=99, weightChance=40}, -- missing
{name="CarTiresClassic1FR", min=0, max=99, weightChance=30}, -- missing
{name="CarTiresClassic2FR", min=0, max=99, weightChance=20}, -- missing
{name="CarTiresClassic3FR", min=0, max=99, weightChance=10}, -- missing
{name="CarBumpers1FR", min=0, max=99, weightChance=100}, -- missing
{name="CarBumpers2FR", min=0, max=99, weightChance=80}, -- missing
{name="CarBumpers3FR", min=0, max=99, weightChance=60}, -- missing
{name="CarAttachmentsFR", min=0, max=99, weightChance=40},
{name="CarHubcapsFR", min=0, max=99, weightChance=80},
}
},
},
}
table.insert(Distributions, 2, LDFDistributionTable);
Can someone help me see if I'm doing something wrong? Thanks!
Here's a screenshot showing just the last two procedural lists appearing in the container loot probabilities.
PZK VLC got new update with SVU3 compatibility, enjoy! 😉
Is there any way you can think of for the server to send an image to the client?
I'm talking about a PNG that the server would have in a directory but the client would not.
I've seen it's possible to write files but I guess it's only in text mod.
i feel like im opening really old pack files, because im trying with tilezed and the same thing happening. its just processing forever. where should I get the most up to date pack files for item UIs these days?
Same as here, maybe try to update the game? idk. I can give you the icons if you want, I was able to unpack them.
anyone knows how to fetch the players target, specifically zombie
i think i saw it before, and it involves hightlight
what file from where exactly did you unpack? I feel like I must be trying to unpack older .pack files of different format or something?
Is there a method for checking when an item has entered a player's inventory?
Attempting to make infinite ammo 9mm mags for a weakened copy of the basic pistol to keep reloading a necessity.
when I open TileZed I do not have any of these packs in my window, its blank. i dont see any way to configure that working directory or anything either. are those base game texture packs? or something you made for a mod/map?
In File > Open .pack > select D:\SteamLibrary\steamapps\common\ProjectZomboid\media\texturepacks\UI2.pack and it will populate that list circled in green. Those names in the list you will not use to extract images. You will use the image prefix in File > Extract images...
I tried opening with 2 different versions of TIleZed, neither can open my
C:\Program Files (x86)\Steam\steamapps\common\ProjectZomboid\media\texturepacks\UI2.pack
maybe my pack files are messed up, can someone send me their copy of
C:\Program Files (x86)\Steam\steamapps\common\ProjectZomboid\media\texturepacks\UI2.pack
how long should this part take?
for me it took less than 1s
i must still be using wrong version of TileZed I guess, what version are you guys using and can you share the download link or zip and attach here?
This is the latest version on steam
i downloaded mine from TIS forums
i'll try yours now
yep, i guess i was using old version that cannot open current .pack files
thanks for your time
glad that helped
yep it did thanks, I now updated undeniable wiki to version 41.78.16 , new textures and all:
https://undeniable.info/pz/wiki/itemlist.php?sort=Version&DESC=DESC
What is the app called to make a pz map mod
I'm getting reverse values when using
ClothingItemExtra
Like for the lumberjack shirt, I convert the first texture and i get the last one, seems like evrything is reversed
in TimedActions, what time units is maxTime based on?
No idea, if you find out I'm interested lol
Can I use fbx for weapon models as well or only items?

🤝 