#mod_development
1 messages ยท Page 376 of 1
And a lot of them don't even know how to code
Idk I haven't looked into that and I don't give a shit about it lol, just the app needs to work with just VSCode
Which is definitely doable based on what I have already done
The git thing is a bit weird, like for example an extension we used for modding that depends on it is LuaLs
Which was previously used for Umbrella
It needed you to also install git to install Umbrella
I'm personally not a fan, the simpler we make the installation process, the better imo
anything is fine for me
your work stays within the limits
back to the pz-translation-data, can it be /schemas/translation_files.json -> /.schemas/generic/translation_files.json
/.schemas/prefix/Attributes.schema.json ?
will the pz-translation-data/data/ be remove in the future?
No they won't
The goal is to provide data which can be used in general by any soft or any tools made by anyone
They simply import the latest data, and do whatever they want with it
So it's best to keep it in a usable format, then transform it into the schemas
As for the paths here idk, bcs those schemas for users should probably not be in a hidden folder
Maybe simply put those in formatted/Attributes.schema.json or some shit like that
i'll open the first PR. Once i see how you restructure pz-translation-data, i'll edit the PR to match.
formatted/Attributes.schema.json
๐
oooookay, so I updated my mod's translation file to the standard format but now my game is crashing on loading the translations
ahh nevermind troubleshot
had a doubled up translation
JSON doesn't like duplicate keys. Which is a perfect fit for tranlation files, since I'm sure I'm not the only person who has created duplicate entries and then wondered why things did not update when I changed one of them.
if your editor supports json it should warn you about this long before you get in-game
I am trying this, but it does not seem to save the state from the modData for that item when I leave the area and return. Ideas?
I have modData flag that 'Activates' an item, and it gets reset upon returning to the area.
Just to check something obvious: you're on 42.15.2 and not 42.15.1?
They just fixed some moddata transmit issues.
they fixed the issue with global mod data, nothing to do with this at all
everyone saying 'mod data is broken' was making a big panic out of nothing, it was a very specific flaw that didn't affect the majority of mods
If you are replying to me, I am referring to B41 modData for worldObjects.
Dude
The amount of duplicated keys in the vanilla files
I bet you can't even closely estimate how many there were lmao

Maybe that's what motivated them to finally move to json; the coder was sick of the translator duplicating everything. ๐
Yea idfk but I wouldn't be surprised ๐ญ
What we all cope for is that they are testing json for translations to finally move to json for scripts lmao
let's be realistic here
let me cope pweaze
I hope so!
Monkey's paw curls they will move each script type to JSON one by one, breaking every mod with each update until they are all done.
Tbh that's where my extension might prove very powerful lol, since I properly map the entirety of scripts with it
I wanted to do that with the translation files but there's already so many scripts that do it that I didn't bother doing it
Also them moving their own scripts to json will be extremely easy
Bcs they already automatically generate those
This hotfix changed more than the patch notes suggest... my ignore-container-capacity mod stopped working. I wonder what they snuck in.
oof
what are you trying to do, precisely?
I have a world item, like a workbench that needs to be 'enabled/activated' before usage. I've got recipes for it, that check this and works fine. But when I use a context menu to toggle it on/off, the modData for the worldObject it uses does not save that data when I leave/re-enter the cell, and I'm assuming other players don't see the changes either, but haven't tested that yet.
I can sort of trick this into working, but also altering the InventoryItem modData for the item, and then checking against that for the context menu options, but it's not ideal, and I assume would be error prone trying to sync different modData for different states Item vs worldObject
They fixed ModData by adding some BBWs.
And good old "one single bit was backwards" issues.
Here is the basic code I have for it. The context menu and all of that works fine, the recipes work as they are supposed to. Just the modData for the item doesn't save between exit/re-entry of the area.
local function Activate(player, object)
local modData = object:getModData()
modData.Activated = true
object:transmitModData()
end
local function DeActivate(player, object)
local modData = object:getModData()
modData.Activated = false
object:transmitModData()
end
local function CustomContext(player, context, worldObjects, test)
local objects = worldObjects[1] and worldObjects[1]:getSquare():getObjects()
for i = 0, objects:size()-1 do
local object = objects:get(i)
if instanceof(object, "IsoWorldInventoryObject") and object:getItem():getType() == "CustomWorkbench" then
local modData = object:getModData()
-- Admin Activate/Deactivate
if isAltKeyDown() then
if modData.Activated == nil then
local activate = context:addOptionOnTop("(ADMIN) Activate", nil, Activate, object)
elseif not modData.Activated then
local activate = context:addOptionOnTop("(ADMIN) Activate", nil, Activate, object)
elseif modData.Activated then
local deactivate = context:addOptionOnTop("(ADMIN) De-Activate", nil, DeActivate, object)
end
end
if modData.Activated then
local activated = context:addOptionOnTop("Activated", nil, nil)
activated.notAvailable = false
else
local activated = context:addOptionOnTop("Deactivated", nil, nil)
activated.notAvailable = true
end
end
end
end
As far as I can tell, this is correct? But it does not save the modData like it's supposed to. It's ran Client side for the context menu and general functionality.
I've mostly been using a mix of notepad and notepad++ but i really should just be doing everything in notepad++ I feel
You should be doing everyhing in VSCode man ๐
Notepad++ Works fine for me
That's what you think lol
Trust us who have experience in helping people and modding, you can't understand what VSCode brings you with Umbrella until you have actually tested it
And dear god I need to make that video about typings to showcase all of that to new modders
Client side modData is not saved in MP
And server side modData is not automatically synced to client
Yeah I think I'll stick with notepad++ for now
To properly change modData in MP, you need to send a packet/command to the server, ask it to change its modData, then have it send the modData (technically marking it for sending) back to all clients
Okay. I was curious if this was the case here. I can't remember, is it possible to send the worldObject in a client/server command, or do I need an object ID to be sent/converted for this?
I believe you always need to send objectID's over, not 100% sure though.
Do you know the command to retreive that off hand?
Just take the advise
If you are not convinced by me, be convinced by others
Do it
Trust the community, and if you have a problem with Microsoft, use Codium, it's the same app but not Microsoft handled
Even when it comes to just making items for your mod you have no excuses anymore thanks to ZedScripts
Everyone's experience with it is that you just don't realize what you are missing until you actually use it
we use the tools that make modding the easiest
Notepad++ -> VS Code is a massive upgrade.
And I'm sure it's really good, I'll probably start using something like that for the next mod I start up to make things quicker and easier
100% less time dealing with lua syntax errors killing everything
I mean I used visual studio in college a bit
I just didn't touch it because I assumed you'd need a license or something
Doesn't fix my logic issues, but at least the syntax loads!
VS Code is a free "simple" IDE. Visual Studio Community is also free and great for .Net stuff, but not helpful here.
Well hey that's helpful, I've spent a while just retyping the code for all my stuff, and with a bigger mod like the one I'm working on now any time savers help a bunch
VS Code + Umbrella plugin is great. Umbrella gives it awareness of most zomboid functions/api calls, it lags a bit with the rate things change in unstable but still very helpful.
And ZedScripts for script files.
Visual Studio is NOT Visual Studio CODE
That's a whole different thing
To be fair, it's terrible branding by MS.
Yeaaa
Like Java and Javascript.
i think that's why it's usually called vscode
Does anyone know how to fix nullpointerexception: itemvisual:getholezombie()?
I have an item script with a wearable piece of clothing and somewhere along the line messed up... either on the txt or on the xml
Welcome to the Team. Take an infusion, put on your glasses and some warm clothes like the rest of us in the retirement home ๐ซก
nooooooooooo
why compare java vs javascript lmao
visual studio and vscode same from MS but java vs js
I'm old enough to remember this:
Before there were 137 slightly different flavours of java that are mostly but not fully compatible.
just here for the memes
What sort of errors?
well one I solved was a layering error, a turtleneck hid the neck slot which was were I was attachin the gasmask to, so when not wearing that its fine
the other isss
one second
I'm still not the best at parsing this screen
but when attempting to wear the right kneepad I made this came up
it looks like it must be the clothingextraaction?
is the paramater an item or a visual?
Its an item, a clothing item, just the right kneepad to match the left one
Left is fine, right breaks with that error
Compare them and find out what differences there are, including verifying the model/texture files
gotcha
could be something really minor like a misnamed texture or badly placed comma on one... but you have a good target to compare to!
true
aha!
somehow I managed to lose the entry in the fileguid table
must have accidentally cut and not copied
I hate the @#$%#@$% fileguid thing.
If the game needs to reference guids for performance then generate a hash table on game start, don't make us do it all by hand!
No probs!
now I need to figure out how toooo make my flashlight turn from its weapon version to its flashlight version with aaaaa submenu
right click Context menu?
yeah! I just have never done it before
the good news is it's pretty easy
the annoying news is if you want to look at the logic for existingg stuff it's all in java now. But that's cool, you just want "if right click on my item add this menu" right?
Yeah just a simple thing to toggle between the two versions, since both work independantly
From my notes:
local doDIYContextMenu = function(playerNum, context, items)
print("##### doDIYContextMenu()")
local primaryItem = items[1]
if not instanceof(primaryItem, "InventoryItem") then
primaryItem = primaryItem.items[1]
end
if primaryItem:hasTag("DIYSchematic") then
print("##### It's a DIY Scematic")
local playerObj = getSpecificPlayer(playerNum)
readOption = context:addOption(getText("ContextMenu_ReadDIY"), items, DIYonLiteratureItems, playerObj);
end
end
Events.OnFillInventoryObjectContextMenu.Add(doDIYContextMenu)
basically you add to the OnFillInventoryObjectContextMenu event, check if the item is one you care about, and use context:addOption to add something extra to the bottom of the context menu (or similar functions if you want to get fancy)
that then calls the function (DIYonLiteratureItems in this example)
Okay! I Kind of vaguely follow ya here
I will.... return to this when I understand a bit more lmao
in the meantime I'll just get the last of the clothing items made and implement the weapons
is spongy alive?
how can i make my mod work with your customization mod people are complaining tattoos are going under skin?
its load order
it should work fine if mine is loaded after yours
How can I get the Object ID of a IsoWorldInventoryObject?
Im pretty sure you don't actually, if its a world object I think you use the index on the tile and the world coords
getId() (And sometimes, getID()) however are things on most classes
but IIRC there are few 'get by id' functions.
Id consider looking at how vanilla references a world object in a right click action that is sent to server (the debug actions in particular often use sendClientCommand)
TimedActions use a different serialization system and actually can send a few different object types automatically
So should I just send the grid square coordinates and then re-check that square for the same item/type and do it that way? Seems clunky.
Yea, you might be able to check it for the same getId() or same 'index' into the objects on that tile(?)
but I don't think you can just.. get world objects by Id
Hmm. Do you know if the index in the array is consistent/ordered? getId(), and getID() don't seem to work for IsoWorldInventoryObject at least.
I could be wrong, its just what I remember reading here (And finding when trying to send other types of objects via command)
Id hope so lol
As far as I remember, the args table can only be standard types, and not objects, so I'd need an ID or a coordinate or someth ing.
Yea
did they change timed actions again ?
I won't have more than one of this item even near others, so I can probably just scan through the worldObject list and hope for the best I suppose that it finds the right item.
I mean, the world cords kinda limit it to only that item on that tile
oh, isoWorldInventoryObjects, you could get use getItem() on them and getId() on that?
Yeah, thats true. The context menu pulls from that specific square, so I guess I can do reverse grab the square from it's coordinates and just send that, and then redo all that logic again later.
I think the nth item on the tile would be consistent though?
If the item and it's ID is consistent with the object when it becomes placed/worldObject, then I suppose that would work, yeah.
Yea, give it a shot and relog
Yeah, I'll check real quick and let you know. Thanks for the idea!
np
It seems the itemID changes on restart, but stays the same during the current session. And that carries over well, so I can probably use that for this. Thanks for the suggestion!
Now, I'm trying to send a table within a table in the args of sendClientCommand, and its returning nil, so I got to figure that out now. assigning modData table to a table to send isn't working.
Hu, I thought for sure tables in tables worked
I thought so too, unless I'm doing it wrong.
are you sure its a proper table and not some kinda java object?
I thought modData using getModData() returned a reference to a table?
I can print() the variable and it shows the table ID correctly
Its prob.. a fancy table, or something...
try hardcoding a table in there and see if it sends?
If I send all the tabel contents as individual items it works, but nested table doesn't I guess.
I guess I'll have to validate what comes through instead of expecting all of the modData every time.
This is likely during the perform method of the timed action, because it's constantly ticking.
ill generate it again and see
the transaltion tool somewhat isnt working
any ideas ?
I'm still working with B41 stuff, so I'm not keen on that info, sorry.
Do you know how to convert the itemID back to the Object?
nvm i found why its complaining about that it has to face the player when adding something
You can disable this if it's not feasible to face the object, or if it's possible sometimes, you can make it function either way by sending a flag with the timed action request.. I have a mod that does a timed action either near a vehicle, or inside a vehicle, and thats how I handle that.
on b41? right not b42?
Yes, B41. Not sure if B42 changed, but it should be the same, sending extra arguments and assigning them. Such as forceFacing = true, and then in the :new constructor assigning that and using it to adjust whether you want it to face the object or not.
there is a way to get object from objectID from an itemContainer that contains it, but otherwise no
Ahh bummer. I guess it's back to using the coordinates and at least confirming the itemID afterwards.
-- self.character:faceThisObject(self.target) -- this should make the artist face the person they are working on
-- self.character:faceThisObject(self.target); -- face target
I'm not sure if target is an player object, or a playerID. But make sure it exists before trying to face it, otherwise don't do that action.
just commenting them does the trick at the cost of player exp
vss vintorez
i made it bigger than usual. does it still look fitting?
iam not really an expert with guns but i know someone
imo too large
how about this?
looks fine to me
is scope properly ratio'ed to the gun?
i know that soviet scope is not the smallest one
but still
what about this?
looks nice to me
ok then i'm done now. i will test it in SP a bit before uploading.
should i make the laser pointer attachable or leave it like that?
yea i'm doing it. seems appropiate.
Opinions: should this be .357 magnum or .44 magnum?
nice texturing! my mind says 357
1, standard cartridge for that sort of gun, 2, 44 ouchie, 3 with no stock 44 and no buttstock means that will not stay in your hands long
I got the model and base texture from sketchfab, then cut it down/reworked teh texture to account for not having any metalic or normal map inzomboid, and added the wrapping. So I can't take credit for the texture without violating the CC attribution license.
I've got the spin reload animation from Nik (and permission to use it)
ahhhh fair enough, and I kind of enjoy zomboid not having native metallic maps because I enjoy painting metallics
hand painted metallics and highlights and shadows always beat generated ones
especially in zomboid where there is no 3D world to reflect... the reflection maps on cars can be really out of place
My lewis gun is entirely procedural textures in blender baked into a map.
That was an interesting thing to work though.
hey for what its worth it looks great
I'm happy with the final result, but it took a lot more time than I expected.
well hey hit me up sometime, I love texturing stuff and guns are fun
I made these for my police pack but they are going to get pushed back and probably remodelled for the pt.2 because i'm lowering my scope
I'm getting better at planning textures... and leaving space for the things I did not plan for.
That's one texture for 8 or 9 crow-bar based weapons... a lot of things at zomboid scale look good when they are just light/mid/dark grey.
I'm gonna have one hell of a time making my "improvised weapons" pack and more guns as I slowly make more and more outfits, I'll have to take some screenshots or rip some of the gun models so I can more closely match the zomboid look
vss vintorez.
The other "wooden stock with weird skeleton design" gun
I should finish teh corwbar mod. I just have to do the preview image and some weapon images for teh mod page.
But the hard part is doing that without coming up with a new idea for a stupid crowbar-variant
Freudian slip, I meant "really clever and lore-friendly crowbar-variant"
Simple, bolt/weld/strap random bullshit to a crowbar
Did 4.15 add more security to prevent reflection sneaking into private fields? One of my mods that relies on doing that not fails when not in debug mod, with "Not in Debug" as the reason for rejecting me.
Callframe at: getNumClassFields
function: __index -- file: disable_addexclusion.lua line # 30 | MOD: Nepenthe's Wear anything With Anything
function: disable_addexclusion.lua -- file: disable_addexclusion.lua line # 59 | MOD: Nepenthe's Wear anything With Anything
ERROR: General f:0, t:1773314755366> ExceptionLogger.logException> Exception thrown
java.lang.reflect.InvocationTargetException at DirectMethodHandleAccessor.invoke(null:-1).
Stack trace:
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
...
Caused by: java.lang.IllegalStateException: Not in debug
zombie.Lua.LuaManager$GlobalObject.getNumClassFields(LuaManager.java:6442)
New feature in 42.15. ๐
The if (!Core.debug) is new as of 14.15.0. ๐ญ
no matter what i do, i cannot upload anything to the workshop because it always reads that my mod.info is missing. i tried over an hour but without success. cannot find anything more out. also the mod-template structure reads the same error. some suggestions?
for b42. my mod.info was all over the place to test but for now it's in /myModName/contents/mods/myModName/mod.info
that won't work - for B42 check out the new structure.
i tried but i failed.
Short version is make a 42 folder and a common folder under myModName, leave common empty and put everything in 42
i have that.
the mod works perfect in SP but i cannot upload it due to missing mod.info besides it should be correct.
so only in 42 folder and nowhere else?
and the poster image is when enabling the mod in the list? and the preview image is the picture on the workshop itself?
wow it worked now. thanks a lot.
Here's a new low in useless communication: A steam message saying "Unable to launch the game today".
In French.
No mention of which game.
can somebody confirm this link https://steamcommunity.com/sharedfiles/filedetails/?id=3683495094 if my mod is shown for you?
The good news is I have overridden the reload animation for my new gun.
The bad news is now reloading makes you surrender.
This feels like a problem for tomorrow
check tha the m_condition is is getting properly replace
is the issue happening on reload starting or racking part?
the racking.
conditional was wrong, I renamed some things and didn't rename it to match - thanks
...that lets me put bullets in, but I can't rack or aim. Unless I walk around, then I can aim. So... tomorrow's problem.
FEELS GOOD
Common or versiniong is optional now, you just need one of the two
I was copying the structure from the "add lever action to vanilla guns" mod and was happy to note I don't need multiple copies of the animation now
I'm sure I'll get there, the fact I have a mod doing exactly what I want to do (replace rack animation) means I just need to figure out what I'm doing different incorrectly
the sound radius number is meant in tiles, or?
yes
tunning all attachment places will be time consuming but worth 
I'm slightly confused, why my code runs both on server and on the client 
I got this code in my server folder, right?
local function getPlayerList()
if gameMode() == "SP" then
return { getPlayer() }
end
local players = {}
local onlinePlayers = getOnlinePlayers()
for i = 0, onlinePlayers:size() - 1 do
players[#players + 1] = onlinePlayers:get(i)
end
return players
end
--- Function that recomputes the carry weight for players, applying all modifiers in the correct ordering
function UnifiedCarryWeightFramework.recomputeAll()
for _, player in ipairs(getPlayerList()) do
log("Recomputing carry weight for player " .. tostring(player:getUsername()))
-- some code
end
end
but I can see prints both in console and coop console? I'm hosting a server from main menu. I do know that if you play SP server code effectively runs on client, but if its MP why do i get prints in console? eh?
shouldnt it only be in coop-console?
the client runs files in the server folder
but I thought that's only in SP?
no it's not
hmmm
you can avoid this by starting your file with```lua
if isClient() then
return
end
but won't it prevent the mod from working in SP then?
-- | isClient() | isServer() |
-- Singleplayer | false | false |
-- Multiplayer Client | true | false |
-- Co-op Host (client process) | true | false |
-- Co-op Host (server process) | false | true |
-- Dedicated Server | false | true |
oh wait nevermind

misread the table
You forgot to include isMultiplayer()
SP runs both the client and the server in a single runtime.
-- | isClient() | isServer() | isMultiplayer()
-- Singleplayer | false | false | false
what do you mean not both, when SP runs all the code
in a single runtime
does OnCreatePlayer not fire on server? My assumption was that it fires every time player is created?
you don't need to check isMultiplayer() in any case, because singleplayer does not return true for isClient() or isServer()
it is not considered either
so if isClient() then return end returns if it's a multiplayer client, but not if it's a multiplayer server or singleplayer
^
local function gameMode()
if not isClient() and not isServer() then
return "SP"
elseif isClient() then
return "MP_Client"
end
return "MP_Server"
end
Is Full-Auto Fire already in the base game and usable?
Like can I make full-auto guns using only vanilla resources?
Okay, so when people say server/ files should always start with if isClient() then return end, that is generally good advice for MP only mods.
However, it's not always true for vanilla filesโand TIS might stop loading them entirely on the client or in SP if that check is there.
Since vanilla supports both modes, some 'server' files must run in both SP and MP.
I agree that isMultiplayer() is often redundant and should mainly be checked within shared/ files for consistency.
But telling people to always start with if isClient() then return end is misleading if they want their mod to work in both SP and MP, using MP logic first with SP as a fallback.
i must not ask fast like chitchat for advanced text ๐
it's not true for vanilla files because the vanilla files aren't organised in any coherent way and plenty of the files in the server folder are actually exclusively client code
please reread this conversation because i did not say 'all server/ files should start with this' so i don't really see what your point is, i literally just said that it would avoid the behaviour that they were experiencing
I mean I did this
local function gameMode()
if not isClient() and not isServer() then
return "SP"
elseif isClient() then
return "MP_Client"
end
return "MP_Server"
end
-- This should be ran only if it's SP or if it's a server process
if gameMode() == "MP_Client" then
print("UCWF | UnifiedCarryWeightFramework | Detected MP client environment, skipping the file")
return
end
which is exactly what I needed
Just do whatever works for your case. Guarding inside functions is usually better unless every function in that file is server-side only. So.
if the functions aren't server-side only, why are they in the server folder?
shared folder runs on both, no?
yeah
it just seems like common sense to me that client code is in client, server code is in server, and shared code is in shared
the folders themselves have no real difference beyond their names (and the client folder not loading on multiplayer servers) so it's strictly organisational
there can be some weird cases where you might need a file in server/ for load order reasons though
but i don't making sweeping statements like 'all files in server/ should always have these guards' because i don't expect other people's code to be organised the way mine is (or organised at all to be quite honest)
I'm trying my best 
also me
But hey, TIS has many files in server/ without the isClient() or isServer() guard on top, so why?
kinda weird that sendClientCommand and OnClientCommand receieve args in different order
sounds like #modeling
mb
nah its fine, its just you prob will get answer there faster
can someone remind me folders load order? it's shared -> server -> client?
And. If the shared/ files design to served on both client and server, this is a different case
Some code is not at the "right place" for legacy reasons. There is less and less of it though, as new versions of the game are delivered. The remaining is just not the priority.
shared -> client -> server
#musicmaniacpins folders load order
it can be worth noting that while shared/client usually load immediately after each other, server can be significantly delayed in singleplayer
Ain't no way I read a chatgpt reply๐ญ
Yes
Now jacking up the cyclicrate multiplayer will act up in different refresh rate settings
Now if you want to implement full auto with rpm control for your weapons check out my mod RAF
(Shameless self plug)
No ? That's just my thought process. But I dont claim any copyright. ๐
Why you fear of it? Ever thing about that 60% internet new contents is now eyy-azz-generated
English as a language to communicate, when i cant, i use google, this is my respect for anyone i wanted to talk to
Hey I only said without putting I read a chatgp reply 
tbh I also use chatgpt for spellchecks in my 4th language
I'm trying to keep things as vanilla as possible in my mod. So it'll probably be the same set RPM to avoid the least conflicts possible
@stone axle this is for mod dev, you want #mod_support
im about to learn German with chatgpt ๐
considering it's literally a language model not the worst use 
My mod is vanilla basically
my msg jsut got silently delted, thanks automod

this fking automod
I've been putting prints into every corner trying to figure why this is not working, can sm1 help please? xd
client.lua
local function recomputeCarryWeight_OnCreatePlayer(playerIndex, player)
local gameMode = gameMode()
if gameMode == "SP" then
print(
"UCWF | UnitedCarryWeightFramework_Client | recomputeCarryWeight_OnCreatePlayer | Detected SP environment, recomputing carry weight directly"
)
require("UnifiedCarryWeightFramework")
UnifiedCarryWeightFramework.recomputeAll(player)
elseif gameMode == "MP_Client" then
print(
"UCWF | UnitedCarryWeightFramework_Client | recomputeCarryWeight_OnCreatePlayer | Detected MP client environment, sending command to server to recalculate carry weight"
)
sendClientCommand(player, "UCWF", "update_weight", {})
else
print(
"UCWF | UnitedCarryWeightFramework_Client | recomputeCarryWeight_OnCreatePlayer | Detected unknown environment, skipping carry weight recalculation"
)
end
end
-- OnCreatePlayer are client events so if we're SP or MP client we need to send command to the server
Events.OnCreatePlayer.Remove(recomputeCarryWeight_OnCreatePlayer)
Events.OnCreatePlayer.Add(recomputeCarryWeight_OnCreatePlayer)
it just wont send
i swear
imma tilt
I double checked vanilla implementation
and this should work
commands aren't ready as early as OnCreatePlayer
you need to wait until the second tick
ooooh
omg i spent 30 min putting prints into every corner of the code trying to figure out whats wrong

look at this 
Haven't really tried waiting for ticks before, my assumption is that usual way of doing this is
- on client side instead of onCreateCharacter i do onTick or whatever
- wait few of them (maybe check until getPlayer() returns a player? idk)
- send a command to server
- unregister myself?
#musicmaniacpins reminder about commands timings (and nice pattern in msg after)
This is my standard pattern:
local function setup()
Events.OnTick.Remove(setup)
Core:ini()
sendClientCommand(Core.name, Core.commands.playerSetup, {})
end
Events.OnTick.Add(setup)
you fighting with client server for that? use OnGameStart and OnGameBoot
or OnTick Add Remove with debounce
well I'm about to load into server to see if now thing works so if it is I'll just leave it be as it is now
how about always sendClientCommand on both SP MP, but server run on SP will trigger by itself
so when server (run on SP) will triggerEvent OnServerCommand
--- [SERVER]
--- Send a command from the server to a specific client
---@param _targetPlayerObj IsoPlayer
---@param _module string
---@param _command string
---@param _data table
function Utilities.SendServerCommandTo(_targetPlayerObj, _module, _command, _data)
if not Utilities.IsServerOrSinglePlayer() then
return
end
if Utilities.IsSinglePlayer() then
triggerEvent("OnServerCommand", _module, _command, _data)
else
sendServerCommand(_targetPlayerObj, _module, _command, _data)
end
end
no trauma about game mode
now you care about will that Events.OnCreatePlayer load on both SP and MP
well thats enough PZ for today 
thanks for the help
at least its working now
imma delete that to not clutter the channel xd
Are there any good image/icon resources for skills so I can use more than just a book to differntiate?
Can any mod developer help?
Where can I find the names of the radio and TV stations in Lua?
For example: Life Timeโฆ build 42
Hey everyone, new to modding and would like to create a car mod, are there any up to date guides/tutorials on how to create a car mod?
hello everyone! i am interested in modding project Zomboid. is there a mode to spawn zombies on an empty map to test out stuff i wanna make
try vanilla icon first then: https://pzwiki.net/wiki/Skill_book
try find in \media\lua\shared\Translate\EN
actually \media\radio\RadioData.xml
correct me if I'm wrong
You can just load normal map and spawn zombies with debug mode
ohh oke! will try thanks
Can an item equipped in the secondary slot add protection values? Like If I were to make a shield, or should I just make it a thing you equip on your forearm that protects your upper body?
@paper ibex ok so I pulled your schemas and I also updated the formatter script to automatically generate these automatically from the dataset
Tho the patterns you have made need to be verifed
also I realized you are not in the modding Discord ?
Gasmask & Novelty Glasses == CURSED
@paper ibex wait, but the json schemas can't work from GitHub ?
Not without lua scripting. Easiest way is probably to make a piece of clothing with an empty texture and the hidden property so it does not show up in inventory, give the the coverage/protection values you want the shield to have, and equip/unequip that whenever the shield is equipped/unequipped.
I'm not sure that just adding protection values would feel satisfying as a shield though.
yeah it would have to have some special behaviors
i was brainstorming like
a two handed riot shield explicitly just for knocking zomboids or charging through crowds would be a useful niche but would require some heavyweight scripting and lots of balancing
and then a light one handed one that yknow, provides some protection and has a custom pushing animation or something? but Idk its tough
I'm gonna go get some groceries and mull these things over
you are right though, just adding some protection values feels a bit lame,
I don't think there is any event or way to get code in when a zombie attacks/hits a player, because if there was you could have attacks from the front 90ยฐ stagger they player and zombie a bit instead of causing an injury.
Also, you want to think of what you can do without any new animations. Unless you want to make animations, but that's a whole pile of extra work.
emmy extension gets the schema from their github repo, though I had to enable the download schema option for json in my vscode settings
do guns use a different shooting animation when they're empty as opposed to loaded ?
They must - on full auto/continuous the barrel stays still and level, when you click on empty the gun lifts up a bit
Unless I'm mis-remembering that
asking because some people are requesting the terminator spin animation for the lever action mod
And I was thinking of 2 options for adding it in
I'm working on getting Nik's spin animation working
- Specifically plays when trying to shoot the levergun on empty
- Alt mod
Ideally it would spin on rack if it's the first rack after reloading
ideally yeah
idk how you would go about differentiating something like that without touching the reload timed action
No idea if there is a "reloading" flag that will persist through that
I'm not even sure how complicated the animation conditionals can be.
I'm just trying to copy your mod to get a different rack animation, and so far I've broken everything ๐
lmao
Just so you know, there's a reason why I didn't change the animation file names
There's a special value inside the fbx files that determines their "animation" name
and if it doesn't match your files properly, it will not load it
I don't remember what the string name identifier thingy is called though
All I know is it's tied to the animation itself that plays, not the file name
...that's probably exactly what is going wrong then
thanks
Is anyone here anything of a civil war buff? And now anything about Kentucky, Tennessee, Indiana in the civil war?
which one do you like more?
It's a trusted source apparently so that's fine, but that's a good place to look into, maybe I can do smthg like they do
How do you go about adding new items to MountOn for weaponparts without overwriting the content?
I tried the link from your screenshot and it does work for me
maybe it's something specific to your configuration. Or, well, mine
I just woke up and opened an issue on gh, so you can read it when you're online.
oh wait you're still online
okay so we need to configure the trusted domain in vscode . Thje settings key isjson.schemaDownload.trustedDomains
How do we do that ? What did I miss which made your schema being properly downloaded ?
||i got banned before i could join.||
The green one, because it adds colour variety.
add trusted domain for https://raw.githubusercontent.com/escapepz/pz_translation_json_schema
Troubleshooting doc
https://github.com/escapepz/pz_translation_json_schema/blob/main/.github/Troubleshooting_Trusted_Domains.md
Oh we should add this into pz-translation-data as well
ok thank you. i'm editing the texture again and will show you another in a moment.
i scaled down the textures to match zomboids style and made it brighter and did some more camo on scope and a very gentle camo on magazine.
people seem to like my mod so i want to have a proper texture.
That's good... Once it's in the game it's much harder to see than in blender, so more contrast is usually the way to go.
round two of texturing the cop implements
scratched up from previous peacekeeping operations! or more recent failed ones
.223 its back and better than ever 
yeah I like keeping .223 but rather than being a different ammotype altogehter it will be a more accesible common civilian variant but doing less damage
would it do any less damage? like .223 and 5.56 are so close as to barely matter
Yeap, its part of a framework we are working on. and my mod will personally feature a selection of ammo types
hence why .223 will be civilian variant
Hell yes! That rocks
weapon keeps track of the ammo you are firing here are tracers to demostrate
blue is 223
green is 556
all the time I find myself thinking how much Id want new, weirdo wackadoo ammo types
reloaded or manufactured
you can also change how the weapon performs based on ammo type
I will make subsonics versions
slugs and birdshot come to mind for 12 gauge, but theres a lot of potential for all kinds of different calibres
yeah like subsonics, armor piercing and jhps, etc etc etc
they will make you rack after shoot, but will make less damage
I will die happy if I can finally load shotgun shells with coins in lieu of lead
well when we release the framework we hope it gets adoption by other gun modders
so we can finally have a layer of compatibility between weapon mods
I will absolutely jump on such things, I haven't tried modding guns quite yet since I want to save that for part 2 of my police gear, but that will be awesome to implement!
nice! the systems are design to be easy to use. and made with compatibility in mind so exited to keep on working on this
and I feel its important to have a mod be an "exampl" hence why im putting almost all systems in my mod
See one of the things I was wanting to make eventually would be grenade launchers, of the break action police variety, the six shot riot variety, and potentially as an under barrel for a grenadier variant of the m16a2 I was modelling, Any plans to support that sort of thing or are you mostly going to aim for conventional ammo calibers?
I did some math, while the famous one the KAC masterkey was exceedingly rare... whats stopping some random kentuckian from sawing up grandpa's old js-2000 into one
oh hell yeah
"I did some meth, while the famous one the KAC masterkey was exceedingly rare... whats stopping me from sawing up grandpa's old js-2000 into one?" - Zomboid Survivor
meth is the cause, and solution to all problems in rural kentucky
i was zoomed out while watching this i thought it was an underbarrel grenade launcher i was hoping you were just about to blow a hole in your wall
Lol it's the masterkey
Altho explosives are not out of the question. It's just that it need thinking before how we implement them
if i have player object and I try to do player:getBodyDamage():Update() on the server does it not work? 
From testing it looks like it works in SP but doesn't work in MP
Uh ? @sour island
You don't get banned for no reasons there
Unless you took the scammer role by yourself which is your own fault
Wait but that's not something people need to do no ?
you do need to do that, it seems to be a recent change to vscode's json extension
i've been getting the same thing with .emmyrc
Interesting, I didn't have any issues with emmyrc ?
Oh recent change, how recent ?
it was sometime during my break over the last few weeks
Oh yea, was there really a security risk with that ?
wdym ๐
are there any better options for this than splitting func into 2 and delaying 2nd part by few ticks to wait for bodydamage to update?
hmm
Started in 2024 and finally tried joining the PZ Discord for modding, but I might just give up on the verification.
I update player base carry weight, and I need to know what would be a final carry weight after my base carry weight update
so i can apply delta to it
What verification ?
update() applies all over-time changes for that tick, if you call it it's going to double that
like anti bot or something idk, i cant remember anything about that server
might be yeah
I hate putting stuff on ticks
I assume its not very expensive to add and remove events?
it's basically free
you're really just adding/removing one element to/from a list
ok
question regarding concurency. How does it work in PZ? Not at all? Game will finish all jobs for current tick before proceeding to next one?
not at all yeah
ok cool
lol, i just called it being shadowbanned. i've never been there, and tbh i won't bother if i'm already blocked
if u share IP you can be banned cuz sm1 else got banned
I am banned from official Dead By Daylight discord czu I live in student house and some pepega got banned in there
(due to how our network acess is set up)
net win tbh
People barely ever get banned on the modding server even when there's people that clearly deserve it, if you got banned it's either bcs you did a very serious fuck up, or it was a mistake

So you aren't blocked from the modding Discord
honestly? true
wait what, i tot ip ban is some kind of discord account restriction
nah
well yea
its restriction on discord side to prevent bans bypasses
like when you are banned there's no option "to ban by IP", you are simply banned and then discord adds a layer on top of that to prevent bypasses
as far as I know, I might be mistaken
but that's my understanding
per server ban is mostly by bot
its very simple to check, ask that server admin to check bans, if you are on the list - you are banned intentionally. if you are not on the list - your IP is flagged by sm1 else being banned
which utilizes discord API, so not much of the difference
just checked with the web discord version, the http post say i got banned so
we don't automatically ban anyone, i think you probably clicked the 'i am a scammer please ban me' button
ngl that button do be pretty funny
it filters a lot of bots
ye, figures
most of them are set up to pick every role so they can see as many channels as possible
when discord bot AI agents

if I add event onTick, it only starts triggering during next tick, right?
yeah
it depends on when you added it, it's literally just if the event has triggered for that tick yet or not, but OnTick is quite early in the tick iirc
so my acc might stucks between the void?
๐
You know you can get unbanned from servers right ???
I already pinged Chuck so when he's available he'll look into it
@paper ibex apparently you aren't even banned bruh
its home network
then idk 
#musicmaniacpins reminder about getBodyDamage():Update()
yo did anyone know why my mod don't showing up in game
We can't do anything with so little
You need to give more detail of what the fuck you're showing us lol
Also which game version ?
Anyway, I suggest checking out the wiki page
yo
Goat, i need your opinion in something
So, let me explain
this is going to be different from all the other mods you have ever encounter
I don't know if you have ever played DCS (probably not) but the thing is, it's comunity have created something called DCC. it is like an external software that makes dynamic missions for the game. I am planning in doing something very similar in Zomboid
What i intend for the Necroa Outbreak, is to be a Simulator at this point, and for that, i want to create the metaverse in a separated software
that will handle all the information about the actual apocalypse setting
But i am quite confused in how to make this bridge between the Game and the software.
What do you think about it?
What's your goal exactly with that whole thing ? Why do you need to make such a bridge in the first place ?
it would be a pain in the ass to run all that in game. So it will be handled in the software in a lighter way and then the information would be transfered to the game
it will be a managment with 2d maps with all the houses and cities mapped in the software
like the interactive map but different
Imagine week one but organized and with zombies and people not spawning out of nowhere
So, to fully run the mod, you would need the software to be the brain of the mod and the mod to run in the game
Got it?
And it would simulate faction fights
coordinated hordes
supply chains
Stuff like that
you wouldn't live in the post apocalyptic scenario of zomboid, but in a society that is slowly dying
since you can live your life normally in the beginning on week one for an example, it is more than enough to prove me that it is possible to simulate society inside zomboid in some degree
I just need to understand how to make this bridge from zomboid with the outside world
Is there a way to make Item templates like there are vehicle templates ?
no
the bridge you say is needed java mod. because pz disabled ability to fully communicate with the os (sanboxed) so no file read outside Zomboid , no http request , no 3rd call, just lua
Yeah, that is kinda a no go zone. I have seen modders doing that here and there.
My fear is, how much of the java i would have to modify
and if people would be able to install the mod, not if this is possible or not
But what do you think about it?
Need opinion on something from more advanced ppl in here.
I used to have a lot of printouts that are toggable in mod options (so they can be easily toggled mid-play and can be individual on per-player basis in case its multiplayer. Nothing that triggers extra fast (like onTick), the fastest one (refresh-rate-wise) is every minute (but i got a bunch of every minute events so it ends up printing like 5-10 lines every minutute due to different systems). Now since I gotta move my logic to server, I was thinking that in case its server I could send the prints into client via send command and passing the string in args. Question is, is that viable option flow/architecture-wise? Because if I do prints for 10 man server every minute in server console, that file will get big quick.
So tldr: what you think about sending commands from server to client to print stuff into individual consoles instead of server console
the game prints a lot of things all the time without you needing to mind it. Text is not something heavy, also, it is not really saved the way you think it is
I also have an idea to work in the future with enable http call to communicate with 3rd party but this need more details to talk and research about security. I dont want to break the rule from start. Or it will just a show case with no public version.
I've seen 50+MB logs
I don't wanna print stuff just cuz i can
i want this to be public for everyone to play at some point. but it would be like intalling a modmanager for an example. Only if you know what DCC is to make sense to you.
But it basically connects the software and the game and that is it
i am quite relutant because this game is in constant updates and something like this feels a bit easy to be broken by a simple patch
you can use zul to splits the log stream to specific log files.
but yeah, for the bridge you can use file read and write without java mod, but this is low performance approach
i trying using a simple json for that
i wanted to see if i could print the in game time to a json
and make a software read it in real time
lot of errors
then i tought it would only be possible by coding java to do it
but before i start i came here first
to ask for that information
I know its possible to generate files from in-game, is that what u asking about?
what is the goal of server logic and send heartbeat log back to clients for saving logs?
yea i dont understand the question
kinda, yeah.
KillCount mod has export kills function, It generates a file somewhere
but where? in world data?
that's all i know, you can go dig around in it
will download it imediatly to check this out
or at least its supposed to, I never really used that function 
the game have file write lock so you cant write into same file.
Tchernobill here, its his mod
%username%/Zomboid/lua (on windows)
it can save stuff there? i thought it was limited to the world save and server
Wait, so you are the creator of that mod... cool
so, it is possible to use a software to run stuff in game after all
writing files allows to communicate with thrid party programs. I think that's how twitch & OBS plugins work.
that kills performances though ๐
Yo, Tchernobil, any thoughts on this 
i mean send what a client need, when a client need, but why save to client just for logging
that is exactly why i need an external software to do the hard work, it would track the player coordinates, when the player was in range of some event, the software would send commands to spawn a zombie/npc for an example
because putting 10 lines for each client into server console is gonna be shit, no? on any server with half-decent pop you'll dump so mych shit in 1 console
for simple spawn , you can use RCON
isnt that only for servers?
yes
that is the problem bud
your mod SP only ?

can try
your mod : write states to game_state.json
read only from 3rd_command.json
your 3rd: read only from game_state.json
write commands to 3rd_command.json
it is going to be hell to tie a json to a in game command
but not a problem i guess
this is performance trade off. but i cannot see the full picture from your case here
no ? just a text . you design and use it, not the game, you control the game from it ig ?
yes i know
ah i see, you scare of the big shjt single Debug-server.log after time
thanks for the help, i will try to assemble this
use zul. lol, or simple writeLog
by the way, what is zul?
the log lib i create for easy logging without print()
https://steamcommunity.com/sharedfiles/filedetails/?id=3653948326
i don't think that's a great idea, the network traffic would be really excessive
ok, i will see what i can do
so it's better to take a hit on server console size?
i would say that in general you only really want to log things if something has gone wrong, nobody really cares about your generic info/'everything is ok :)' prints, even if they help with debugging
I mean yea, its not on by default and not suppsoed to be on unless I ask ppl to give me logs with it on
it might be worth considering writing your logs to a separate file, it would be easier for you to go through and leaves little reason to complain about spam
oh that's a great one, I haven't considered that
ok imma go dig in KillCouint to see how writing stuff in my own files works
like if you want to log on server, at least, please, that log should help server admin to manage their server, not just for debug
use writeLog , of check my zul lib
writeLog is just for log
zul can enable/disable log via sandbox options
it help server admin to control the logs, too
*or
This is probably why I banned you, but I didn't list a reason. 
While looking for why I may have banned you I also came across your Kofi which lists modifying others work for money as an offered service- despite also listing that you won't be the one to upload it- 
Insane if you ask me
true and real
Use a tool to posible learn? Nah
Use it to take someone else work to make money?
Yeeeah


With Braven being MiA for a little over a year now, would it be unethical to attempt a B42 port of one of their mods ?
I went through the process of seeking them out for permission, only to find that they haven't been active since march of 2025
I don't want to step on any toes in that regard, just wanting infection zones in B42 (Cordyceps Spore Zones)
were you unable to find a way to contact them or did you just see they were inactive and not bother trying
Their discord server is locked down, and full of scam message bots
they haven't updated any mods in a year
profile is private, comments are off
are their discord dms open?
Yes, but nobody has heard from them since last year
They have been MIA
The modding policy asks you exhaust all options though
So I'd wait a few days for their response and maybe put up a disclaimer
But I can tell you they most likely don't wish their stuff is continued
Darn
I will likely poke around their code to learn a bit how it was done, how stuff like the house zones n' stuff were determined, and try to write up my own version.
I don't plan to just repack their mod by any means, if I do it then it would be written myself
I just know at one point I wanted a sort of vaccine/cure oriented mod that would involve researching how the infection works, and attempting to make meds yourself
I know there's cure mods, but I feel like most of them are cheaty in the sense that it doesn't make sense for a cure to be developed, but not distributed in any meaningful way
hope its ported to b42 by the time i decide to play PZ again
I mean antibodies kinda does make sense
I've looked at it a bit, def higher in my mind on quality
not a theory. i will not explain. but the works as people asking and i can deny or accept. But at least im being honest about the case.
!tap
xd
I can never take this seriously from a game that attempts as much realism as it does
Cause the game isn't realistic, it's grounded in realism
And I really hate this conflation and circular argument
I think it's more so the wording
Yes
Lies. Does he know about the T virus?
The idea that you CAN'T apply scientific principles instead of it not NEEDING to apply all scientific principles
Like yeah you absolutely could if you wanted to
there's nothing stopping you
it's fiction
It doesn't stop working just because it's an imaginary monster
Can you remake it without using the original code?
Maybe will be your own version
Just use "grounded in reality" ๐ฉ spread that term
That would be the hope
Grounded in reality
Zomboid is a game grounded in reality, not a realistic simulator
Real
As such expectations exist and when they deviate too far it breaks immersion
So no zombies aren't magical
any mod that makes the game easier in any way is a 'cheat' mod to somebody, and making infection curable objectively is making the game easier
it's up to you where you want to draw that line in your own gameplay
Even RE is zombies are not magical
When my QoL mod means i dont have to play the game
I want you to have to research multiple sample types.
Tainted water, zombie skin, survivor skin, whatever thingy I decided to put in the building nests.
Researching them using the medicine skill, crafting a vaccine/cure having a chance to fail and waste resources based on skill.
Stuff like that.
Actual effort into saving your 3 year characters instead of stockpiling 30 million capsules from "They Knew" from horde clearing
i've learned to hate no word more than 'QoL'
Oh for sure it would still be considered a cheat, I do not disagree
It just is related to like, server modpack stuff I was working on in b41 and am thinking of rebuilding in b42
a lot of the mods I was using for the experience don't work anymore
I have a meme from terraria
I plan to make a server experience that's zomboid adjacent instead of 1:1 zomboid.
#terraria #qualityoflife
I used about 70 quality of life mods for this. some known, some unknown, all fully legit. I think I am allowed to do similar ideas from the past if it means its only once a year. guilting me will not work, guilting me but including money will work
Though it won't be any time soon, I need to develop several mods from the ground up for something like this
What gets my pendantic ass riled up is even in fiction with magic you still have grounded stories -- there's whole video essays about high vs low fantasy
I guess is our human way to find logic to things
And thats normal haha
I mean it's useful for story telling if there's limitations
I feel like high fantasy stories kind of feel wishy washy sometimes
and so they flew the ring into the mordor on giant eagles
Yeah basically, LoTR but not for that reason lol
A big gripe I have about a lot of fantasy stories with magic is just
There should be way more mechanical things
Not having limits or rules its an issue
Def like universes with their own limit rules or concepts
Yes, you have to lean into one side or the other
Like genuinely should be more than irl
I like one anime recently that treated magic as a power source, light source, heat source and the MC was just an inventor
I can't recall the name, but it was somewhat of a slice of life kind of thing

It wasn't that one btw
I found it, it was https://en.wikipedia.org/wiki/Dahlia_in_Bloom
yoo can anyone help me make that bodilyfunctions_fix works my game version b42.15.2 (the latest one) its not showing up in mods
i can give nedded screenshot just tell me i'm new in modding community
i remember this lmao apparently theres a big twist where its revealed that his sister was actually like a clone and was created specifically to be his perfect wife or something
crazy work
One universe that drihes me insane if I try to apply rules from ours. Its star wars
Why is that a reoccurring plot for animes ...
Isn't that something in evangelion? (I actively avoid watching any of them)
no ||rei is like a clone of shinjis mother or something||
I just meant clone of family member
Like bro (author) just write incest, stop rigamarolling it
Also I'm reminded of another anime Ive only heard about - where a boys brain is placed in his sister's body and their friend "falls in love" with them?

Anyway, to summarize - zombies arent magic
lol i recognise this one
its meant to be fucked up not a fetish thing though
i think so kinda
i only saw the first few episodes so i didnt get to that stuff but i saw people talking about it
I mean it really depends on how you define magic
If you think itโs the vibe then no
If you think itโs anything impossible in the real world then yes zombies and a lot of sci-fi is magic
that nuance is what that conversation was about ๐ญ
I figured this out: use the twirl animation for RackLeverActionRifle/RackLeverActionRifleNoMag and the normal lever animation for RackAimLeverActionRifle/RackAimLeverActionRifleNoMag
Then if you're aiming you do a sensible rack animation, if you're holding the gun without aiming it does the twirl.
Also, can I use your lever-action animation in my mod for the sensible reload?
ain't it niks?
The fancy twirl is (and he gave permission) but I'm not sure if teh lever action anim is too.
i would assume so
I think you may be right... but I don't want to assume that because one animation is OK to use I can use all of Nik's.
always best to be careful these days
@tranquil kindle Can I use your lever antion animation in my mod? I figured how to use sensible lever action when aiming, the twirl for when not aiming (so normally only reloading when empty)
Unrelated question for you folks. Have been working on a mod specifically on the LUA side of things where my intention is to store data in rows that is persistent with the server. I have a large amount of experience writing handlers and APIs that communicate between server and client and was curious if PZ gives us a way to establish a connection to the local DB that exists? I see in some documentation we have a player.db file that stores local player values in a SQLite format (I believe?). Trying to find a way to gain access to the local DB system so I can create and interact with my own tables. Not sure if possible thus why Im asking :). Anyways thanks in advance if anyone can help.
It's also polite!
I don't think so; sqllite is used foe player and vehicle DBs but I've never seen any interface for accessing them directly
grrr ok
might be worth spinning up a postgres db on the system thatll be running with it and just write a handler system that can communicate between terminals
or go through http idk. anyway thank you
PZSQLUtils is the java class that handles SQL, but it's not exposed.
How much data are you dealing with?
yeah and tbh i've toyed with the idea of storing everything in moddata but once that gets too big itll become impossible to manage
multiple rows per user
or per account id
Is Multiple 3 or 3000?
@paper ibex can you explain why you're even doing these docs ? You basically took the procedural distributions wiki page I wrote on the wiki, fed it through an AI which remade it into a md doc ?
https://github.com/escapepz/docs/blob/main/02_Community_Unofficial/42.7/Procedural_distributions.md
if i had to guess (rough estimate im still very much in pseudo code land) probably 100-200 rows per user
so you have 50 people and moddata gets pretty bloated
not sure if its meant to handle that or what
hope was multiple tables but
I'm not sure how well that will work, but it would also depend how often it's getting accessed/how intensive the queries are.
if you want to communicate with an external db you'll need either an external program (which you communicate with by writing to files) or a java mod
Definitely would be a nice task for SQLite if possible.
i could write a package that exposes fetches on a local machine and then just reference those fetch urls in lua could i not?
would all have to be same machine
but i could run it through 127.0 that way
you can't make http requests from lua
Description of my mod links directly to the mod the animation is from and credits Nik lelele
hahah well I'll wait to get confirmation from Nik.
I didnโt make any of it, just happened to be the first person to ask Nik
And work on the preview images and fixing the "it's upside down in the holster because rifle and pistol are 180ยฐ rotated from each other" problem
I set up the animsets, nothing else
its just pistol these days, thats the odd one out,
I think I'll need to make a new attachment type and add it to holsters... this guns "unfilled niche" is a rifle-type weapon that fits in a holster instead of using a long weapon slot.
@bright fog Good job on that.
I came back around this place to post a thread (funeral) for my shelved ShadeHammer project because it so deeply reflected to work on many technicalities and that uhhh won't work now.
This change may have ended any future interests to jump back on that project. Really bummed out now.
That sucks. You could make a java mod frontend for your needs for now?>
Iv vaugely considered that if TIS is going to add stuff for mods, we could have a java mod for the people who can't wait, then hopefully in a PZ verison or two mods using it can transission to vanilla code
1 java mod to support a bunch of Lua mods
Black Moons you killed me!
Using your cooking mod I cut my hands multiple times making a salad.
And then did not realize that was going to slow me down so much swinging my Hammerbar when I later encountered zombies.
...but it was a really nice salad.
Is there a way to use the attachment editor to work on attachments for the player model? Whenever I select the male or female player model it starts throwing thousands of errors.
So I have resorted to this...
For personal use, i still ref the wiki page, so, will this be good or no for others ? All the resource, the tool i use stays within that repo
my docs repo and Umbrella repo were cloned into the pzstudio new project by default, but i plan to move them into pzstudio-template-project in the future
To die for, some would even say!
also amazed it did since it only ever cuts left hand atm
so only would affect 2 handed weapons
But thanks for reporting this, I strive to be "This is how you died"
as all mod authors should!
Death... by.. SALAD.. DUN DUN
Also again, Id love it if TIS could think more about 'death by a thousand cuts'
In this case literally.
Don't kill the player for eating some burnt food. Just make his life painful enough he dies of zombies.
btw the "full list of distributions" section in pzwiki is very buggy for me, that is a huge table and very slow for re-open to read
anyway i can private that repo if you want, just tell me, i dont want to annoy wiki contributors by jut copy paste the content to anywhere then use as a standard for others, for real.
Just look at the lua file directly?
Yea, those are mine too. Feel free to use them
Someone make a window-clearing animation that uses your gun/two-handed melee to clear out the window instead of the normal animation please
yeah crap, my game is crashing on loading the scripts after changing something in my mod, and I have no idea whats causing it
Good job on what ?
What's the point of copying the wiki ? Just point people to the wiki directly. When you copy docs like that you scrape the wiki and any updated modding docs will be outdated on your side, thus you'll be sharing outdated docs
Yes that is a fair point and I want to move it out of that page
Wait are you blaming me about the reflection removal ????
Yeah, i already noticed readers that the doc might be outdated.
Copying wiki was an old way of working to fit my workflow.
I've been looking for a better way of workflow to mod. And i think i've finally found it.
Does anyone know how to achieve the lighting on the vending machines? I have added light properties to the tiles, I've also tried in item definitions. I just can't get it to work?
There are two seperate parts
- there is an "lit up object" overlay for everything that can be lit up, light pasting the glowing bits over a 2D image.
- to light up the tiles you need to make an... something like
IsoWorldLightor similar.
And some stuff is coded in java to manage lighting up when powered.
So you'd have to reproduce that in lua if teh java stuff does not do what you want
that's the similar idea for a TV, there's a tile for teh TV and a seperate "it' on" overlay tile
Interesting. Thanks for that. Oddly enough, I can't find any overlay for the snack vending machine and none of the TV ones have any particularly special property for lights. Ill try playing about with the IsoLightSource. Thanks again!

๐คฆโโ๏ธ
To workflow a mod ? Just read the docs ?
There's already a port
Yea that's why I realized that, bcs I asked in the staff chat why he was banned
I use the same workflow used for most small-team commercial software projects: Come up with an idea, work on it from random angles with no overall plan until you either give up or end up with a mostly working product.
Bro there are so many problems with porting my mod to MP if I want to use good anti-cheat practices and follow how client-server authority shifted in PZ...
Ok, so they are giving more authority to the server, right? Obviously its to restrict some ways players can cheat. Now, lets take a primitive example: say I have a mod that checks how many dark tiles have player seen and when value reaches specific counter he gets Cat Eyes trait. I wasn't thinking much about security and integrity before so I just store progress in player mod data and run everything on the client. This was before b42 MP.
I can't just leave the logic on the client and delegate giving traits to server, because then server blindly trusts command that client send without much validation. So you can cheat by forging the command (I assume)
So then, I need to make server the decision maker, not the executor, so ideally I move this whole thing to the server and ON the server every minute I check that for all players. But here's the kick, how do I store progress then? Do I have to make my per-player modData into global modData? This also really sucks ass because I have UI that updates based on those values, so I'd also have to figure how to make that work...
Cuz people can cheat by modifying their player mod data, no?
this whole MP cheating thing is a nightmare
listen, i dont give a fck, good luck. Thanks
i know the reason and my guess was right, just stop talking like random guy in the anonymous chat
When i shared my work for others, only one person actually gave me feedback that helped me improve. I spent all night fixing that shit
Meanwhile, the other guy just judged me and acted superior. That is not helpful, that is kind of you-know-what-i-mean for me, or whatever you imagine with.
P/S just stop playing dota2 (like i was)
How expensive is transmitModData()? Say if I wanna run my calculations on server side and then, for example, every minute send the players modData back to them 
Me: Releases new mod.
User: This mod crashes my game! Also I'm playing 42.14.
workshop users asking for an update 5.6 nanoseconds after a new patch drops
Not if you ignore it! Vanilla zomboid isn't great at security, so it's not reasonable to expect mods to magically solve that problem.
Time to make your crowbars nice and fancy!
Honestly I'm very close to just ignoring it and just letting server to be executor
instead of decision-maker

ok time to learn zomboid modding so i can make an actual umamusume mod that aren't just the uma models as shoes
(zomboid styled uma zombies would be peak, especially if ultra sprinter)
gonna have to learn lua i guess
Yeah, the alternative is a huge amount of stuff needs to get moved to the server in a way the game does not support - like your example, the server needs to count the dark tiles the player has seen without trusting anything from the client.
What would that mod do? This channel can help point you in teh rightt direction to get started.
30 seconds of google says it's just cat girls, but horses. ๐
cat girls 
Look, I'm basing this off skimming the first page of google search results... I'm sure there is a lot more stuff happening
not really, I already have the function that does that, all I'd have to change is instead of doing it for 1 player I'd loop through all players. Moving is not a problem, the problem is modData thing, since I store progress in it, and I do need it to be present on client since I have UI that displays it. So my only concern is transmittingModData to player. It's extra traffic and idk how much moving this to server will affect performance
ok so my current idea is:
conditionally replace female model trait with an umamusume model (basically same model but without human ears and with horse ears and tail) with either some umamusume trait (very fast and high endurance but will die incredibly easily to anything and get sick very easily just like a real race horse lol) or just like an option in character creation
and then my other idea is uma zombies which would always act as sprinters with extremely fast speed but basically just crash into you instead of biting (still will break a bone or two)
oh my god i just made a wall of text sorry 
Some of that is very do-able, some is buried deep in the java.
KERCHOOOW
I think you can change a zombie into a sprinter after they spawn, but you need to attach to the zombie spawn event and wait a few ticks for it to settle before doing anything. There may also be issues if the player can not see the zombie, or that may only batter for outfits.
i see, my main goal right now though is just a simple (toggleable? some way to change) model change for the base model to be an umamusume (unlike the current uma mod on the workshop which are shoes that replace the whole model and are incompatible with any clothing)
uma zombies are kind of an afterthought so i can put that aside
kachow desu wa
is this a change for the player or for zombies?
for now, just change to player model i suppose
good to start very simple
i can probably make something in blender
I have never even played the game, just know the memes and saw some gameplay 
Instead of changing the entire model, why not ears/tail clothing items and hairstyles that hide the ears?
well maybe i could do the uma ears with a hairstyle instead
probably a good idea
Does the source material always cover up where human ears would be?
probably, would be weird if they had 2 pairs of ears
sometimes but they literally just don't have human ears
discussing anime horsegirls anatomy in modding channel
https://c.tenor.com/PDVoFxSzLyEAAAAC/tenor.gif
I know, but in general anime-style always covers up where the human ears would be be to avoid them looking really weird... and you can take advantage of that to hide human ears in Zomboid.
embedd fail
and i guess i could have the tail be part of the "hairstyle"
not sure how that would work with head rotation though
I don't think you have any way to make an animated/flexible tail, just a static mesh you attach to the tail location.
oh static mesh is completely fine yeah
there is a "tail" location in vanilla, used for bunny tails. It's the obvious attachment point for any other tail too
i see, thanks for the info! :>

Idea: let players set a random sprinter amount using sandbox settings as normal. When a zomie spawn if it is a sprinter add the ear/tails clothes to it.
That will need some tricky lua, but I think it's possible... at least if the api call to find out a zombies speed-type works.
that might be cool
Now im wondering, Do people prefer standard clothing spawning parameters? ie finding a few pieces of any set at random in fitting places like cop clothing in a police department, or premade bundled "clothing packs" as like an entire outfit folded up and you can uncraft it into the clothing components?
the latter might be a thing I try for future clothing packs maybe
Depends on the clothing
The Frockin' series has the idea of "gift boxes" - you find a box with a number of items from the mod.
No. Good job on the extension
Oh bruh thx, make sure to point what you're talking about or that can be confusing lol
I didn't properly reply
But yes this update is somewhat devastating
I work with Java professionally and wish that I could NDA and volunteer a API interface for Lua so I can continue working on my project
Is there a known interace to enforce the Target (Player) of an IsoZombie and to make them chase that Target ?
__IsoZombie:setTarget(IsoMovingObject) ?
yeah, that alone does not do the trick ๐ the enemy does not move to the target in my test case (The player target is at ~5 squares distance).
try setAggroTarget(playerNum, x, y) (Last Stand challenges)
__IsoZombie:pathToLocationF(x, y, z)
__PathFindBehavior2:pathToLocation
thx
I was testing how to disable a zed
but not this
There is ? Where at








