#mod_development
1 messages ยท Page 341 of 1
possessed fridge
and it's not persistent if I pick up the fridge and move it...
something to ponder after a nap
Ok I see
Got to pass the mod data to the item
that was my thought. just need to refresh the brain before I dig in to that
If container:AddItem() is run on client, only the client will see the added item? If the server is restarted or the chunk is reloaded the item will disappear?
Actually isn't there something like other players do not have any info regarding your inventory ?
Admins can observe player inventories
But other players cannot
Was wondering if I could populate a container in a building to only show an item for that specific player
Figured additem on client might do the trick
Yea but they possibly ask the client for it ?
Yes I believe that is the case.
yes, and yes
the server has the save file and the server doesn't know about the item
Is there any way to get all the isoobject containers in a room or building?
I forget if getcontainer in a room returns all containers or not
No I think that's not a thing sadly

people would have to time it properly and put stuff when capacity is high
"ill just shove the corpse in the fridge"
"theres lots of room"
"oh no wait it wont fit"
"huh?"
i think theres a debug function that allows you to force spawn buildings loot
check the code it might have what youre looking for
So I've checked the flow from ISWorldObjectContextMenu => ISChopTreeCursor:new =>I SWorldObjectContextMenu.doChopTree => ISChopTreeAction:new , and implementations of Base.Log, but I cannot find how the logs get added to the ground after a tree gets chopped down. Anyone aware of how this happens or if it's even in an overrideable file?
you might want to try this
and see if its the thing that spawn the tree
setChopTreeCursorLocation()
yea that's in the other file, after some more digging i think it's based in OnObjectAdded call from ISMoveableSpriteProps... might just pivot to a different method for now, that seems a bit much to override lol
just added it as a forageable like i was gonna do in the first place - first thought best thought anyway, thanks though glytcher!
I am trying to fix the CDC rapid response 2 mod and I've been looking at this error for a while and navigating through the lua code to the best of my abilities but I haven't been able to figure out how to fix this bug:
Callframe at: se.krka.kahlua.integration.expose.MultiLuaJavaInvoker@d47f127a
function: init -- file: forageSystem.lua line # 722 | Vanilla
ERROR: General f:0, t:1753913897610> ExceptionLogger.logException> Exception thrown
java.lang.RuntimeException: attempted index of non-table at KahluaUtil.fail(KahluaUtil.java:100).
Stack trace:
se.krka.kahlua.vm.KahluaUtil.fail(KahluaUtil.java:100)```
local global_chance = 3
if SandboxVars.CDCRR.ForageLoot then
if SandboxVars.CDCRR.HardcoreMode then
global_chance = 1
end
categoryDefinitions["Airdrops"] = {
name = "Airdrops",
typeCategory = "Airdrops",
identifyCategoryPerk = "PlantScavenging",
identifyCategoryLevel = 0,
-- chance = global_chance,
categoryHidden = false,
validFloors = { "ANY" },
zoneChance = {
DeepForest = 1 * (SandboxVars.CDCRR.LootReductionModifierForaging),
Forest = 2 * (SandboxVars.CDCRR.LootReductionModifierForaging),
Vegitation = 2 * (SandboxVars.CDCRR.LootReductionModifierForaging),
FarmLand = 4 * (SandboxVars.CDCRR.LootReductionModifierForaging),
Farm = 7 * (SandboxVars.CDCRR.LootReductionModifierForaging),
TrailerPark = 9 * (SandboxVars.CDCRR.LootReductionModifierForaging),
TownZone = 10 * (SandboxVars.CDCRR.LootReductionModifierForaging),
Nav = 3 * (SandboxVars.CDCRR.LootReductionModifierForaging),
},
chanceToMoveIcon = 20.0,
chanceToCreateIcon = 10.0,
focusChanceMin = 5.0,
focusChanceMax = 10.0
}
end
end```
line 45 points to the last "}"
Hey y'all want sentient ai npcs in pz?
I pass
Uh ?
hey I'm new to making mods how do I change where an item spawns?
You mean the container it spawns in ? Of an existing item or your own modded item ?
yeah
the tutorial I'm following says to use the default distribution file but mine is different from the turorial and I'm lost here
it is from 2020
What tutorial are you following ?
This tutorial video will show you how to make a simple drink in Project Zomboid. I will go into the steps involved from start to finish. Read more below.
0:00 intro
1:08 Start
1:44 Searching for images to use in game
2:30 Searching for the Sound Effect
3:06 Creating mod file directory
3:54 Creating mod.info
4:34 Creating a poster
7:14 Adding ne...
I suggest looking at the wiki
I'm just tryna add bloxy cola
alr
thx
what does like the 10 20 and numbers mean
is that the chance out of 100
to spawn
so I would add the item to the file?
No
Make a file from scratch, don't modify vanilla files
You will add to a vanilla table however
so I'd make something like this (screenshot from the wiki)
No not exactly
Tho, I don't have the full article content in mind, but you should have a proper example of code to use
would that also be on the wiki
realizing I don't have a clue how to transfer mod data when picking up an object and then placing it
any help on this? I was reading the base game Lua and I can't figure out what is the problem with the category definition from the mod Idk what's the issue trying to add the table
Check if categoryDefinitions is infact a table and not a nil
Attempted to index of non-table
thank you the mod broke in some update and I wanted to try my hand at fixing it
no problem
Yea that's in the page I sent
hi everyone quick question, where can i get the list of all the sound avaialable in the game
self.sound = self.character:getEmitter():playSound("object_generator_connect_loop_01")
print("here : " .. tostring(self.sound))
its print 0 all the time, and my sound dont play, i tried every string possible but no sounds
Looking to make some personal changes to a weapon mod and trying to figure out something. What settings determine what weapon will show up attached to a zombie? I understand there exists a sandbox option for the player, but how exactly do modders determine that?
realizing I do have a clue, but it involves messing with ISMoveableSpriteProps and I'm trying to talk myself out of that option
anyone know of a LUA method i can use to get the exact age of a food item?
making a conditional that checks if a food item is older than 1 ingame day
nvm, found it
I regretfully did not talk myself out of it. I have feelings about it. I don't know if I'll upload this because omg it's lead brick approach. But mod data is preserved. I'm also not sure how robust it is.
might be a bug, I don't know if it's intentional but line 1235 in ISMoveableSpriteProps.lua
-- original code
if _object:hasModData() and _object:getModData().movableData then
item:getModData().movableData = copyTable(_object:getModData().movableData)
end
-- modified code
if _object:hasModData() then -- and _object:getModData().movableData then
item:getModData().movableData = copyTable(_object:getModData().movableData)
end
I don't think _object:getModData().movableData will ever be true/populated here
looks intentional but i'm not sure what the point is
I'm trying to find a not so heavy fix that doesn't involve overwriting a couple of functions in ISMoveableSpriteProps
even the modified code I have above will lose the mod data for some reason
it's hit or miss if it keeps it
I think I see why it's doing that now. I'll just stick with my initial thought, copy the mod data myself and try to figure out a better way.
that's the second time I almost asked a really stupid question and figured it out while I was typing
nope, I'm stupid. I thought it was the way I did the tooltip update
where's that function?
like file wise
Hello, Well I have a problem that I haven't been able to solve for several days! I made a 4-tile of a 2x2 tent on a custom map. I have (normally) configured my SpritGridPos correctly and I have checked "ForceSingleItem". However when I am in game and I want to retrieve my item, I can't retrieve it in one block. My 4 tiles are separated and I end up with 4 parts in my inventory. Help me please, I can't take it anymore not finding the solution xD
Yea that's how multi tile works
You'll have to make a custom system if you want an item like vanilla tents
with a .lua?
@bright fog Normally I have configured my def.tiles correctly. I have the .pack ready. However, I think I have a big gap in the necessary .txt and .lua... I don't have any particular knowledge in this area and I can't find a tutorial to teach me this.
client\Moveables\ISMoveableSpriteProps.lua
maybe
ISMoveableSpriteProps:canPlaceMoveableInternal(...)```
local function clipSfx()
local sfxTable = {}
local categories = GameSounds.getCategories()
for i = 0, categories:size() - 1 do
local cat = categories:get(i)
local sounds = GameSounds.getSoundsInCategory(cat)
for j = 0, sounds:size() - 1 do
local sfx = sounds:get(j)
table.insert(sfxTable, sfx:getName())
end
end
local toClip = table.concat(sfxTable, ",\n ")
Clipboard.setClipboard(toClip)
print(toClip)
return sfxTable
end
clipSfx()
Yes
erf... this is starting to be beyond my skills. Do you have a video to teach you the mechanisms?
Nop
Guides for Lua are rare because it's always extremely specific stuff
Well, I'll have to find someone to help me with Lua then x)
thank you for the help :p
when in doubt just chatgpt it
I tried ChatGPT and Kimini but frankly, I feel like it creates more problems for me than anything else.
I'm interested in making a very small occupation mod that adds serial killer as an option. What files do i need to look for so i can get started?
Check pinned messages, plenty of info there, may have what you're looking for
Aight thanks, will do.
Exactly
I have been searching for the forage code that handles which months Rose hips or Acorn can appear and when they have bonus month etc, it used to by in ForageSystem but I cant find it there anymore
where did they move that? T_T
oh its in shared/Foraging/Categories
roblox ahh code
Correct me if I'm wrong, but wouldn't it be possible to set it up like other multi-tile structures?
Where you add multiple sprites in the same layer (example from advanced forge):
component SpriteConfig
{
face E
{
layer
{
row = crafted_02_25 crafted_01_18 crafted_01_39,
row = crafted_02_24,
row = crafted_02_32,
}
}
face S
{
layer
{
row = crafted_02_26 crafted_02_27 crafted_02_33,
row = crafted_01_35,
row = crafted_01_55,
}
}
}
I haven't played much with it so not sure if I'm missing something
Uh no idea, is it ?
can these be picked up and moved?
Oh that I'm not too sure about. Maybe it's not possible to have a multi-tile entity also be a moveable, but it should work because couches are pretty much that right?
I haven't experimented much with it. I just made a quick craft recipe that let me build a multi-tile entity using the building menu and it worked, but I didn't do anything beyond that
i didn't think couches had entity scripts
and i'm fairly sure they do drop into separate pieces
there are some movable entities (i can think of water coolers at least) but i can't think of a multitile one so i don't know how that behaves
Ah yeah you're absolutely right, couches are not entities.
I guess at least making it into a multi-tile entity would simplify the custom code needed a bit, since it would count as one object right?
is there not a way to scale UI font?
No idea, maybe
Not sure
What UI element are you trying to scale the font of ?
You should be able to chose small medium or large I believe ?
Tho that's different fonts
what the game considers a font is really a pairing of font and size
you can probably do more with the size using AngelCodeFont but i haven't done much with that
it won't be proper scaling, fonts are bitmaps so they can't be scaled properly, but it would let you at least stretch the bitmap, i don't think the regular rendering functions let you do that
i found one that is passable. each font is restricted to its size and i need to stretch it to fit a box
Time to update my mod again! after a decent while 
shared\Foraging\Categories\WildPlants.lua
Rosehips = {
type = "Base.Rosehips",
minCount = 3,
maxCount = 6,
skill = 4,
xp = 5,
rainChance = 20,
snowChance = -100,
categories = { "WildPlants" },
zones = {
BirchForest = 15,
DeepForest = 10,
FarmLand = 10,
Forest = 10,
OrganicForest = 7,
Vegitation = 15,
},
months = { 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, },
bonusMonths = { 9, 10, 11 },
malusMonths = { 5, 6 },
spawnFuncs = { forageSystem.doWildFoodSpawn, forageSystem.doRandomAgeSpawn },
altWorldTexture = forageSystem.worldSprites.shrubs,
},
Acorn = {
type = "Base.Acorn",
minCount = 3,
maxCount = 6,
xp = 5,
categories = { "WildPlants" },
zones = {
BirchForest = 15,
DeepForest = 10,
FarmLand = 5,
Forest = 10,
OrganicForest = 15,
PHForest = 15,
PRForest = 15,
Vegitation = 5,
},
months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
bonusMonths = { 5, 6, 7 },
malusMonths = { 3, 4 },
spawnFuncs = { forageSystem.doWildFoodSpawn, forageSystem.doRandomAgeSpawn },
itemSizeModifier = 1.0,
isItemOverrideSize = true,
},
U need to add a line. isProp = true
I already found it but thanks, right after asking too lol
Oh damn that's all? So isProp makes it into a moveable basically?
I think so,but i didn't know much about isProp,in my building mod,some building use isProp can make it be functional
Interesting, will definitely play around with that at some point
like this Brazier
use isProp can make it to be fireplace,when u right click the vanilla map spawn Brazier,it didn't show any fireplace contextmenu
how do we play zombie anims with code
Pretty sure you can't. There's no easy way to force a zombie into one specific state to play a custom animation. You have to use the states already available and write your .xml in a way so that it overrides the vanilla animation with the custom animation you want.
So you can essentially just make animations for idle, walking, running, attacking, getting attacked, falling down, getting knocked back, etc. etc.
What are you trying to achieve? I can point you in the right direction based on that
I have a mod that prevents doors from opening if there is more than one zombie in front of them. I am trying to implement a feature where, if there is exactly one zombie blocking the door and the door opens, the zombie will play the "Zombie_ShoveStaggerFall_3m" animation.
Ah I see, hmm... That's a tricky one because I'm pretty sure that animation is a hit react. It's possible to trigger specific hit reacts based on player animations, but I don't know if it can be done without having the player attack the zombie
Maybe something like zombieObj:knockDown(true) could work.
I haven't done anything directly with zombies yet, but if you have a scroll through the available methods on the zombie object there might be something that allows you to stagger it using just lua
declaration: package: zombie.characters, class: IsoZombie
okay , thanks
Maybe setStaggerBack(true)
Yea it's setStaggerBack
it workks , thanks guys
I'm curious, what did you use to stop doors from being opened actually ?
I patch ISOpenCloseDoor:isValid(). The hooked function checks for zombies on the door's square and simply returns false to cancel the action.
Can someone tell me what is the correct encoding for russian files translation?
I've been messing around with UTF-8 and some users report my mod is not correctly showing the russian translation, while others say it works.
Someone suggested using ASCII. Anyone knows for sure what is the right encoding for russian translations?
ASCII afaik is crap for Cyrillic.
Cp1251/Windows-1251
I'm looking to get into making something that will heavily involve the radio and TV.
Can someone point me in the direction I need to be in to put custom "stories" and music for specific radio frequencies and creating television channels?
keywords, anything that I can eyeball myself, I'm not looking for a tutor unless I honest to god get stuck on something I cannot solve myself.
maybe a basic "plugin" interface
You mean sound playing for specific radio and music playing ?
specifically I'm wanting to introduce new stories with voice acting across the radio, with a music channel on TV
There's a few mods that add such similar stuff
When I fiddled with it before, I noticed there was a tool that could create these, but life got the better of me. One of the biggest concerns I had getting back into it is whether or not I could endlessly loop these.
Yes
Maybe that ?
Or maybe you're thinking of one of the mods that add media voice acting
And the looping of media is something completely different from the voice acting
That's going to involve lua I know.
Voice acting is just triggered alongside the medias triggering in-game
Tho idk the details of it
I can figure it out on my own by looking through other's mods. I'm just gathering the basic tools I need to do so before I get investigative about it.
Yeah I don't have faith in any of these tools. They feel like deadware.
Oh well. I'll do it myself then.
If you mean that they look like they are old, yes they aren't too up-to-date for sure
There's the decompiled code of these tools, if you want to update them tho
they're not really out of date, they're for a system that hasn't been updated longer than they've existed
they're only a couple years old
Announcing the rebirth of a mod I really enjoyed tremendously from B41 and before that was sadly broken and unfixable due to the passing of it's previous modder, Stalhansch. RIP.
It's my hope going forward that this mod will add more historical armors from similar periods as the weapons, but that's turned out to be a much bigger undertaking than expected.
What's the big roadblock that's stopping car exhausts from functioning like generators (to a lesser extent of course)?
Just curious, because it looks like it was in the game for a bit then removed.
I've never heard of car exhausts working like generators
I feel like it used to be in game at least at some point
There aren't any roadblocks, it's trivial to implement
If it was removed, than it was done for balance / immersion / whatever
Yea that sounds annoying as shit whenever you want to park in a garage
The thing is most of a cars energy is spent into the driveshaft to mechanically turn the wheel.
You'd be better off tearing out the engine and then jury rigging a generator from copper wire and an old alternator from a car, and then some testers to make sure you get the generator right so it runs on 120V.
The amount of energy coming out the exhaust is minimal.
Fairly certain that wasn't what they meant haha but more so the toxic fumes lol
Oooooooh, yeah. My bad! ๐
Yea no worries that was the forst thing I thought about too lol
@nimble spoke your discord is under attack.
Just random bot attacks, those don't always have a reason to exist
If u stack creates on a table, you can keep stacking them all the way up to the sky.๐
Wait what
B42 ?
And can you access all the crates from the bottom tile ?
Yup, because all the crates are still considered to be on the same tile, the one where the table is placed. Their visual Z height doesn't affect their interaction layer, this stacking bug exists in B41 as well.
Hi all- I'm working on a super simple mod atm (first time) and I'd like to test what I have done currently, but for some reason, the mod isn't showing up as a mod I can enable in game. Could anyone tell what I'm doing wrong? Here's the file structure- the workshop folder is in the area where the saves are
the common folder is empty besides the folders which have nothing inside of them
Nevermind, I'm so dumb, it's just because I never updated the mod.info
Anyone know where the files that deal with shoving and stomping are located? I've found the animation xmls but Im trying to make it so zombies can only be pushed, but not pushed completely over
infinite stack on b41 too?
Hi all, I have two recent mods that I'm trying to publish for B41 but both fail to download on the server's side.
I've published a few basic mods in the past, and I'm not really sure what's going wrong here...
Only "new" thing with these ones are that they use translation files in the shared directory. Any advice on where I'm possiblly going wrong?
Has something changed in the way B41 should be published since B42 released?
Did someone know how to use moveable items on craftrecipe?
Anyone having issues with enabling debug mode? Yells about script load errors but I got no mods enabled or whatever, just the unstable branch, don't know if that may be why?
I would try verifying files through steam, and maybe deleting the reset-mods txt file from C:/Users/%LocalUsername%/Zomboid/mods just in case
Debug mode on vanilla 42 should not cause problems like this
FYI for anyone that gets stuck on this, it was the steam client on the server side that needed to be updated. I think there are threads here that covered that before... I just didn't see them until I posted this
Deleting the reset-mods file worked, thank you! ๐
Noticed that the reset-mods file for public build was still present which is what I'm guessing caused it, even while all mods were disabled 
Follow up question: Didn't realise io read/write doesn't work in PZ lua. Is there a simple way to read external files (even if only simple text) into your lua code?
Does getFileReader() get there?
Yes, getFileWriter() and getFileReader() works
at least on b42, didn't test on b41
The file has to be in C:\Users\YourUsername\Zomboid\Lua
Thank you
Hey guys! Since releasing my Mitsubishi Pajero mod, a few people asked me to make armor for it or make it compatible with the Standardized Vehicle Upgrades mod. Could any of you give me some pointers on how to do it please as I haven't a clue how to go about it?
Hi! In a clothing item's xml file, what is the difference between <textureChoices> and <m_BaseTextures>?
Texture choice is to apply texture to 3d model clothing while BaseTexture is when you make a clothing item without 3d model, which is instead painted on player's model. It simply adds texture on top of player model texture. All shoes and alot of clothes are actualy made this way, we usually call them 2d or skinthight clothes.
There is a pretty nice guide that covers this and more
@tranquil kindle @drifting ore thanks for the info!!
Thank you very much @drifting ore. I've seen this encoding mentioned before but wasn't sure at all. Thanks for the wiki resource as well!
Steam Community: Project Zomboid. ะ ะะฃะะะฃะ ะะะจ!. ะ ััะธัะธะบะฐัะพั ััั: https://steamcommunity.com/sharedfiles/filedetails/?id=2633338368
What could be a reason for an item to show up as an icon instead of its 3D model when placed in the world?
- Mesh and textures paths are correct, checked spelling too
- Model file is
CookieBoxOne.fbx - Screenshot 1 :
CookieCollectionModels.txt - Screenshot 2 :
CookieCollectionItems.txt
Empty fbx file, more than 1 material on model. There could be also issue with module. I personally use Base for my models and custom one for item script s
Try Module Base in model txt and see if it works
HOLY- Okay, sooo, this did work, so I have no clue why the custom module didn't work, no clue if I forgot to do something for the game to notice the custom module, but now it looks like this
Guessing some kind of "scale" thing in the models file?
Is there something required for the game to properly read custom modules in B42? Don't remember it from B41
Yea rescale it in Blender preferably or when exporting the model
Ah gotcha
Hi! Where do clothing items get their weight value defined?
Wdym ?
Their weight model wise you mean ?
Just their inventory weight. Wasn't this defined in their script txt-entry?
yeah
maybe I am stupid but I cannot find it there:
```item Shirt_CamoGreen
{
DisplayName = Military Shirt - Green Camo,
DisplayCategory = Clothing,
Type = Clothing,
Icon = Shirt_CamoGreen,
BloodLocation = ShirtLongSleeves,
BodyLocation = Shirt,
ClothingItem = Shirt_CamoGreen,
FabricType = Cotton,
Insulation = 0.25,
WindResistance = 0.15,
WorldStaticModel = Shirt_Ground,
Tags = RipClothingCotton,
ResearchableRecipes = SewShirt;SewShirtSleeveless,
}```
My guess is it uses a default weight
So weird. Did they change this somehow? The whole clothing_shirt.txt does not have a single weight value there.

Maybe it is by default attached to the FabricType or smth?
Also possible that it was always this way and I just didn't notice.
Highly possible
Also possible.
But I just found out that you can assign a weight manually by using "Weight = 4" in the script.
yea
the default weight is 1
Fixed corpses reanimating if a player reloads a save while dragging. aww, no more zombie pals?
Someone just told me the ZuperCarts Fork animations broke cuz of the latest update. Can anyone confirm? I'm literally wayyy too busy with work to be messing with modding anymore. At least without knowing what I'm jumping in to fix and why it broke. Thanks for any help, appreciate yall!!! Play some PZ for me too!
I gotta check mine. I'll give yours a whirl too
The only info about it I have is that the player now carries it like a weapon. Someone reached out to me on Discord otherwise I'd have no idea.
Thank you!!!
looks fine to me
looks ok
Interesting. Well, I'll let em know. Thank you!!!
Is it possible to have a txt file stored on the server and have a mod read from that, parse it, and then send data to the client?
Yes
That's a method used by a bunch of mods to have server informations which can be updated outside of mods
With other means
I thought as much. Any examples you could recommend I look at? Or documentation to point me in the right direction?
No documentation regarding that for now
As for example uuuh not sure
Sec
I used it in a project
Hell yeah, I'll check this out. Thank you so much, you're awesome
did I get lucky pre 42.11 and onCreatePlayer event ran every time the game started? I don't see where else I load up mod data besides that event and everything was fine before today not drunk btw, yet
No idea
I don't remember if it ran everytime
(Client) OnCreatePlayer: Fires every time a local player loads into the world.
Runs everytime yea
It doesn't anymore ?
testing now. I might other issues related to skill and logic
I also used it before, let me check
too early for a print maybe
Mine seems to be working ๐
Mine prints right up near the top, like 10 lines down
oncreateplayer is very late in the process
I was expecting it near the bottom
it has to work at least once, because it doesn't error on the first run. It's on a reload but but even force setting the table I get from mod data gives me an error
good grief, I think I'm working on the wrong file
didn't know I was subscribed to my mod. ugh
local version works fine. which is worrying. what's different....
just odd. so on a new game, everything works fine. If I quit and reload, I get an error. if after a reload, I use the color picker, or force set the table, it works fine until I quit and load.
Events.OnCreatePlayer.Add(function()
if getPlayer():getModData() and getPlayer():getModData().highlightColorData then
print("SETTING COLOR FROM THE DAMN MOD DATA")
JBSelectUtils.highlightColorData = getPlayer():getModData().highlightColorData
else
print("INITIAL COLOR SETUP IS THIS WORKING???")
JBSelectUtils.highlightColorData = { red = 0.2, green = 0.5, blue = 0.7 }
getPlayer():getModData().highlightColorData = JBSelectUtils.highlightColorData
end
end)```
It does spit out the "SETTING COLOR FROM THE DAMN MOD DATA" print after reload also.
the error is on:
addAreaHighlight(x, y, x + 1, y + 1, z, JBSelectUtils.highlightColorData.red, JBSelectUtils.highlightColorData.green, JBSelectUtils.highlightColorData.blue, 0)```
and if I hard set JBSelectUtils.highlightColorData right before calling that, it works. or if I use the color picker, which sets that and the modData, it works. until a restart that is
it's like it's not keeping the reference
<@&671452400221159444>
Im trying to make a mod that adds a poster to build 42 but when i try to upload it it says "there are unrecognized folders in your Contents/ folder. The following folders are the only ones permitted in Contents/: buildings/ creative/ mods/"
The error should be fairly obvious
You did a mistake with your mod structure
how many floors does b42 have?
i wish theres a getSize() or something
thnx ill look into it more when i actually need to know this
What are you trying to do ?
This won't change anyway
Also technically there is a current number of floors for a chunk
oh its cuz i have an old functio that fetches the highest z with a solid floor
was used for mortar mod
so that the explosion happens on the top floor instead of the ground(as if it phased thru the roof)
i wanted to use this function now
to determine if theres a floor above the player so that if it returns true then the player wont recieve sunlight damage(making another vampire mod)
You can verify the max number of floors of the chunk
That you're sure to never check too far
declaration: package: zombie.iso, class: IsoChunk
Outputs the top and bottom level with IsoGridSquares present
you can just use square:haveRoofFull()
Perhaps he wanted to check if there's squares at any level above you ?
he said he wanted to check if there's any ceilings above the player
Ah I guess
this includes non roof floors? but even if it doesnt this is already good thnx a bunch albion
it's used for determining if rain can reach a tile so anything that blocks rain counts
I definitely will need that for solar charging
Is there a way to get animNode by name in lua, then grab the m_BlendTime?
Not to my knowledge no
I don't think you can no
Why do you need to get that in Lua ?
Cheat detection
People cheat by changing the blend time ?
Yep, you can cut short the time thus the animation time thus....every go faster.
Best you can do is parse the game files from Lua
At least you can do that
You can parse every AnimNodes that are defined in the AnimSets folder
How?
Cheating in zomboid....
I see these file reader etc, well, will test if it can read vanilla files. I thought it couldn't.
getGameFilesTextInput can be used to read vanilla files
i fixed it but then it said im missing a mod.info which i had so i just gave up
You just did a very obvious fuck up in your mod structure, I'm 100% sure of it
yeah i guess chatgpt wasnt much of help
plus im trying to make it for b42
I've just seen the pinned messages
hahaha
im sorry
Hey there! I'm trying to check if the custom item I added to the game is spawning in zombies, I can give myself the item and use it but cant find a zombie with the item in them no matter how much I spawn. Not sure if I'm doing it correctly cant find much info about it
This is how I try to do it (screenshot below)
Nvm forgot to add the require, now I'm wondering if I can set the chance to a custom value instead of the one in AttachedWeaponDefinitions.lua for "spearStomach"
How hard would it be to make a mod that adds different variants and styles of the wooden window barricades that like randomizes each time?
making the sprites would be the hardest part. everything else could roll random numbers in an event and choose the sprite you want
๐
When it comes to Zomboid modding ChatGPT is the opposite of helpful. ๐
yeah i've realised it gives diffrent answers
Hello, me and my friend are trying to make our first test mod, but we have run into an issue with the 3d textures.
Does anyone know to export the blender .obj file as the .x file, like the ones the game uses?
Thank you in advance!
you can use .fbx format.
ok, is there anything which needs to be changed in the script if .fbx is used?
for details on animations, you should ask in modeling channel. there are the experts.
got it, ty!
No
Just export as fbx
Don't use .x
just did that, currently trying to get it to work, but the 3d textures don't show up
thx for the wiki btw
But regarding DirectX, it will never be the solution, just so you know and don't try anything more in this direction
I was just toying around with the vehicle mass and it is VERY fun to set all the mass to 1 and drive through cars, just like with zombie ragdolls lol
๐
Make it a mod lol
I'm using onTick to call zombie:getOutfitName(), but it always returns nil.
After I kill a zombie, zombie:getOutfitName() returns the dead zombie's outfit name, not the target zombie's.
I've confirmed that the zombie information I need is indeed for living zombies; it's only the outfit name that's causing this issue.
OnTick doesn't return any zombies
Show your code
I deleted all my code except for getOutfitName() and print(), and it seems to work now. Perhaps I was writing too much to modData. As long as I know it's working, I'll try it again to see where the problem is. Thanks for your response.
Mod structure on the wiki
Based on some feedback on the mapping Discord, I added more details regarding mod structures. Now each individual Modding field pages will have detail regarding their mod structure and each subfolders to the media folder for each modding fields are detailed in this section. The modding field pages will have a section "Folder structure":
I've already searched all the wikis, Lua API, Java API, and even asked ChatGPT, but no one has answered this question.
Now Iโve tested and discovered that there seems to be some leftover data in the modData system. For some reason, it doesnโt get cleared when the zombie is removed. Currently, I wrote some data into the modData of a single zombie โ the data only contains information specific to that one zombie. Then I deleted that zombie and reloaded my script, keeping only the part that prints out the modData โ everything else was removed.
After deleting all zombies in the game and spawning a new one, the modData read from it is still from the previous zombie. No matter how many times I delete or respawn zombies, it always reads the modData from the last zombie before I reloaded the script.
This message was not aimed to you
Read the IsoZombie page
You can't properly use mod data on zombies
The page explains why
OK thank you so much
There are some tricks you can do... what is your goal with storing modData on a Zombie?
We might be able to suggest a different approach
<@&671452400221159444>
Hullo! Just messing around with creating UI panels, had a question:
ISCollapsableWindow.createChildren(self)
local buttonW = (self:getWidth() - 50)
local buttonH = 25
for i = 1, 20 do
local newButt = ISButton:new(25, yPad, buttonW, buttonH, "=)", self, self.onClicked )
newButt:initialise()
self:addChild(newButt)
yPad = yPad + 35
end
end
function TestPanel:onClicked(button)
local i = (ZombRand(6) + 1)
button.title = self.strings[i]
print("I'm just a funny little guy")
end
function TestPanel:new(x, y, width, height)
local o = ISCollapsableWindow:new(x, y, width, height)
setmetatable(o, self)
self.__index = self
o.title = "Test Panel :)"
o.strings = {"Ow!", "Stop!", "That hurts!", "Quit it!", "Enough!", "Stop that!"}
o.yPad = nil
return o
end
How would one go about making this panel scrollable, since the buttons extend past the bottom of the panel?
:addScrollBars() i think
Take a look at ISScrollListBox.lua
I'm trying to make a custom weapon (StoneSword) for my mod, and everything works except repairing.
The weapon spawns, can be equipped, used, and breaks after some use โ but when I right-click on the broken weapon, there's no "Repair" option.
Here's my fixing definition in scripts:
module Base
{
fixing Fix StoneSword
{
Require : StoneSword,
Fixer : Woodglue=2; Woodwork=2,
Fixer : DuctTape=2,
Fixer : Glue=2,
Fixer : Scotchtape=4
}
}
(problem solved)
Is it for b41 or b42?
B41
Ah I think you need the trailing comma after Fixer : Scotchtape=4 so try doing Fixer : Scotchtape=4, instead
OK, I'll try it.๐
I modified it, but still no results
Is your StoneSword also using Base module?
YES (problem solved)
https://github.com/AhongBOSS/-More-weapon-mods-V1/blob/main/media/Scripts/Moreweaponmods_item.txt
Dang okay, sorry bud my b41 modding knowledge is very limited, hopefully someone else can jump in
Okay, thanks for your help.
Better highlight for parameters
I'm trying to fix an issue in my wiki pages where parameters were put in between <> and led to some confusion from some that they had to be kept. So instead, by using colors to highlight the various parameters, this should fix this issue
https://pzwiki.net/wiki/Inputs
I will pay if someone undoes what PZ devs did and put barricading back to normal
Build menu is so stupid
Fuckin
A mod just called "Less Tedium" would be a godsend.
I think more and more stuff will move away from context menu, so if you get Roccos The Shortcut and neat build UI and then use the new keybind settings to quickly open the build menu, it's not too bad. Probably best to get used to this new way of building stuff.
With that said, if you want to commission it you could go to the PZ Modding Community sever and make a most in the #requests channel, you'd be more likely to find someone to pick it up
Eh ?
Ah to not having the right click options ?
Sadly they were right to modify how building overall works, but it's true it's not very flexible to add context menu options
I support and understand the devsโ decision to start removing a lot of things from the context menu โ itโs already overloaded with too many options.
What I donโt agree with, though, is removing some options while still adding new ones at the same time.
Maybe their real goal is just to streamline the world context menu specifically.
I just do not like how it's now
Open menu select thing build repeat
Before it was "HAve items, right click on window, boom."
It's just tedium now.
Looking to commission a hairstyle if any artists are around/free. Hope to see a portfolio.
Is there a way to get the absolute path to steamapp PZ folder?
I'm unsure, I don't think so no
For security reasons I believe
yup no
You need to read from mod ID or vanilla folders directly
I'm trying to locate the part of the code that determines what items (scrap wood etc) are dropped when a player-built wall is destroyed so we might be able to apply that to player built barricades. Any ideas would be greatly appreciated.
its in the moveable defs lua
look for ISMoveableDefinitions.lua
Much love, thank you!
oh!
I know why my modifications didn't work. I put the mod in Zomboid/mods, but my game is running Zomboid/Workshop, so it didn't work. ๐คก
Sadge, so no way to do some form of animation xml integrity check. Guess I can only do a check that is less reliable and limited.
But you can access the game files
If you ask to be able to read the files
I think you can access them
Oh haha, well at least you figured it out!
You need absolute path for the game files.
You sure ? Isn't there a reader like for mod files ?
I don't know about mod files, I am looking at vanilla files.
getGameFilesTextInput only works on debug mode. getGameFilesInput works outside debug mode but need absolute path. getGameFilesTextInput also use absolute path, the different between them is BufferedReader and DataInputStream
Hmm
@bronze yoke wait was it you that needed users to reference their game path in a mod ?
I guess that could be a solution...
i did it before but i don't remember how
I just wanted to share that I just had my mod show up as a big part in nurse's stream yesterday. That's a first for me
local gameDir = string.match(getLoadedLua(0), ".+/ProjectZomboid/")
Nice ! What's your mod ?
getLoadedLua ? Interesting
What does that output exactly ?
paths of loaded lua files
The media/lua folder ?
yeah, absolute paths
Ok ok pretty cool
Hey all, i know 0 of modding so i ask here to you all, is it possible to make a patch for this mod to revert all the stats of the boots back to vanilla and at the same balance the ones added by it (i think it adds some) to bring them closer to vanilla balance? (like, no stomp power of 6 and 600 durability) PS: This on B42.11
https://steamcommunity.com/sharedfiles/filedetails/?id=2850935956
https://imgur.com/xf9QXFC.gif
Hey survivor!
Are you tired of constantly switching game versions just to play Multiplayer?
Save time by keeping separate, ready-to-play installs for each v...
Is there anyway to share code between build 41 and build 42 implementations of a mod? I have the mod structure that supports both versions, but I'm unsure how I can share some generic code between them.
no
you can't share anything between 41 and 42
there are some very specific tricks for very specific things but it's best to just think of them as separate copies of the mod
I'm making a personal mod that led to me using ZomboidDecompiler to edit some java. I've made the changes, I just have no idea how to recompile to class files while satisfying dependencies. Any tips?
I think the closest I've gotten is javac -d [path to output] -cp [path to jars] -classpath [path to PZ root] [path to java file I'm trying to compile] but the output complains about trying to convert an object to a bool in sections of code I didn't touch
Textures used in Lua directly is the only way to share stuff that I know of
Actually, technically you can also use the poster and icon in B41 from B42
Hi! I just noticed that in Echo Creek, in (almost) all bathrooms, there is a missing collision for toilets and sinks. Is this intentional?
Yes. The vanilla ones have never had any. If that werenโt the case, there would be many small bathrooms you couldnโt enter.
heyo! quick and hopefully not silly question - anyone know where I can find the sprites/PNGs for the game's particle effects -- like the smoke from a smoke-bomb, and/or fire?
I may just be blind because it's late, but I can't find them in the expected media/textures folder, - the fire and smoke PNGs in there are totally different from in-game ๐คจ
Did you check inside the .pack files ?
Is there anyway to get FullSuitHead to allow Backpacks? Only way can get it to work is the remove it from the original BodyLocations.lua file lol
I haven't heard of clothing like full body suit that would not allow you to wear backpacks
Hazmat suits
Not PZ question, but do you know the way to crack unity il2cpp?
create your own body location
what problem?
I'd have to add every clothing type with my new body location I suppose
its actually the other way around
you actually tell the bodylocation what parts it overwrites/replace
so not declaring anything at all means you can wear it together with anything and wont have any issues
Yes, albeit maybe not in the way you intended(?)
I checked, both by skimming them in notepad (in case I found a pointer,) and also by attempting to open the .pack files in Tilezed's pack viewer, but either I did that wrong, or I may not know how pack viewer works
where i can find the values for vanilla clothing?
like, i renember the wiki had a decompiled (i think) before but i cant find anymore
cause i want to grab the vanilla values for shoes, but cant find them anywhere
Sooo I'm trying to migrate my B41 WIP mod to B42 and ran into an issue- Adding crowbar variants, for some reason, it only shows half the model. Could it be miss-aligned texture? In blender it looks fine
Wdym by values ?
That's curious lol
{
DisplayName = Socks,
DisplayCategory = Clothing,
Type = Clothing,
Weight = 0.1,
Icon = SocksAnkleWhite,
BloodLocation = Shoes,
BodyLocation = Socks,
ClothingItem = Socks_Ankle,
FabricType = Cotton,
Insulation = 0.15,
WindResistance = 0.1,
BiteDefense = 5,
ScratchDefense = 5,
WorldStaticModel = Sock_Ankle_Ground,
Tags = noRope,```
Like these (i grabbed these from a mod)
i am still confused, i need to decompile it first?
Nop
It's in the game media folder
Inside the scripts folder
This folder
media/scripts
So in VSCode you simply search inside this folder for key terms to find the boots
oh!
triangulate your mesh before exporting
i don't remember the details but there's changes to how b42 handles ngons that causes stuff like this a lot
Oh wonderful- X_x
Did notice these not being on the texture part before so moved those up over it, is that what you meant by this?
AHAH!
It was indeed that!
Wait,what?
i have this script with this recipe item:
module Base
{
craftRecipe AssembleLegendaryBackpack_Grey
{
timedAction = SewingCloth,
Time = 1200,
xpAward = Tailoring:100,
AllowBatchCraft = False,
Tags = AnySurfaceCraft,
category = Tailoring,
SkillRequired = Tailoring:4,
NeedToBeLearn = True,
AutoLearnAny = Tailoring:6,
inputs
{
item 1 tags[Scissors;SharpKnife] mode:keep flags[IsNotDull;MayDegradeLight],
item 1 tags[SewingNeedle] mode:keep flags[MayDegradeLight],
item 1 tags[Awl] mode:keep flags[MayDegradeLight],
item 5 [Base.DenimStrips;] mode:destroy,
item 4 tags[HeavyThread],
item 2 [Base.LeatherStrips] mode:destroy,
item 3 [Base.Twine;5:Base.DuctTape;2:Base.Rope] flags[DontReplace],
item 5 [Base.WoodenStick2],
}
outputs
{
item 1 LB.Bag_LegendaryBackpack_Grey,
}
}
]
and Recipes_ES.txt
RecipesES =
{
/Fabricar Mochila Legendaria/
Recipe_AssembleLegendaryBackpack_Grey = "Fabricar Mochila Legendaria Gris",
Recipe_AssembleLegendaryBackpack_Pink = "Fabricar Mochila Legendaria Rosa",
Recipe_AssembleLegendaryBackpack_Black = "Fabricar Mochila Legendaria Negra",
Recipe_AssembleLegendaryBackpack_Green = "Fabricar Mochila Legendaria Verde",
Recipe_AssembleLegendaryBackpack_Brown = "Fabricar Mochila Legendaria Marrรณn",
}
But the game does not locate what is failing!!!
PLS NEED HELP
Lol what ?
Is that the original mod ? (clearly is from the amount of votes)
YOU need to tell us what is failing here man
The recipe doesn't load ? Your translation isn't used ?
We CAN'T locate what is failing if you yourself don't even tell us what you expect from this and what you are getting or not getting
I'm having an issue with not being able to see my mod in my user/zomboid/mods folder, When I open the gmae up to enable it I can't see it what might be causing this issue?
probably missing mod.info
make sure that you are following the mod structure correctly, and particularly that you have followed the version for the right version of the game https://pzwiki.net/wiki/Mod_structure
I've got it in there
You're not showing us anything here dude
:|
We don't know what folder all of this is actually in
Nor can we see the whole folder structure
It's in the named modded folder in Zomboid/mods/mymod
What game versions ?
Current
That can be both B41 and B42
B42 unstable*
So that's wrong then
I invite you to go read the wiki page Albion sent
Mod structure
You're currently using the B41 structure
Also your poster is 0 KB, idk if that's normal
Not sure it matters either but if it's a blank png maybe the game won't like it ?
it's fine if the poster doesn't work, game won't break, mod won't disappear
I'm not sure, I was seeing it earlier then I changed something and now I can't see any mod I try to put
local LOG = function(m) print("[LRRP Vet] "..tostring(m)) end
local PROF_ID = "lrrp_veterinarian"
local PROF_NAME = getText("UI_prof_LRRP_Veterinarian")
local PROF_ICON = "LRRP_Vet_Icon"
local PROF_COST = -2
local FirstAidPerk = Perks.FirstAid or Perks.Doctor
local AnimalPerk = Perks.AnimalHandling
or Perks.Animals
or Perks.AnimalHusbandry
or (Perks.FromString and (Perks.FromString("AnimalHandling") or Perks.FromString("AnimalCare")))
local function ensureRegistered()
if not ProfessionFactory or not ProfessionFactory.addProfession then
LOG("ProfessionFactory not ready yet")
return false
end
local prof = ProfessionFactory.getProfession(PROF_ID)
if not prof then
prof = ProfessionFactory.addProfession(PROF_ID, PROF_NAME, PROF_ICON)
LOG("Created new profession")
else
LOG("Updated existing profession")
end
prof:setCost(PROF_COST)
if FirstAidPerk then prof:addXPBoost(FirstAidPerk, 2) end
if AnimalPerk then prof:addXPBoost(AnimalPerk, 2) end
LOG("Cost set to "..PROF_COST)
return true
end
local function applyStartingLevels(player)
if not player then return end
local desc = player:getDescriptor()
if not desc or desc:getProfession() ~= PROF_ID then return end
local function add2(perk) if perk then player:LevelPerk(perk); player:LevelPerk(perk) end end
add2(FirstAidPerk)
add2(AnimalPerk)
local inv = player:getInventory()
inv:AddItem("Base.Tweezers")
inv:AddItem("Base.Bandage")
inv:AddItem("Base.Disinfectant")
LOG("Applied +2 levels and starter kit")
end
local okNow = pcall(ensureRegistered)
Events.OnGameBoot.Add(function() if not okNow then ensureRegistered() end end)
Events.OnInitWorld.Add(function() ensureRegistered() end)
Events.OnGameStart.Add(function() ensureRegistered() end)
Events.OnNewGame.Add(applyStartingLevels)
Events.OnCreatePlayer.Add(function(_, p) applyStartingLevels(p) end)
What is animal handling called in game? I see animal care and handling flung around I want to give skills in both first aid and animal handling but I also want the occupation to make it so the player is at a 2 point deficit what needs changing here?
who tf would be dumb enough? wot
What is the proper way to implement admin tools, like say you wanted to change another player's thirst as an example.
That's toxic AF
What the actual- 
The comments are filling with Chinese(?) comments talking about exposing or smth?
If the translators online are correct these are some problematic comments wth-
There's also someone saying in those comments several of the biggest/well-known mods for PZ have been reported 
Probably a bot report attack.
Obvious ToS violation.
Does sound like it yeah if it's multiple mods
My coding music tonight: https://www.youtube.com/watch?v=BuH6CiaRTmk
Dark ambient focus music designed for late-night study sessions, deep work, and background BGMโan hour of immersive study music built for
sustained concentration.
Immerse yourself in the signal remnants of a collapsed system as we journey through shadowed corridors of consciousness with this 1-hour transmission from the Void Signal series.
...
Does anyone have any tips for me? I'm not asking for specific code or anything, just conceptually -- I understand how to write utilities like I have a UI window with sliders I made that lets you control all the player statuses. But what is important if one wanted to make such mods multiplayer friendly. How would I make the utility UI I made work on other players?
been listening for a bit it's working ๐
The void series is good
I've been waking up after midnight and spending some time writing a superset language and tokenizer.
you were telling me the other day
about that
i have a little shrine in the corner of my room
that's dedicated to appealing to the gods to influence you to update pipewrench instead
๐ค
Well Server / Client commands in Lua. That API + client-side ISUI stuff yeah
hehe
This is actually related
I consider all of my API / type-discovery code to be part of a larger project.
the jabbiverse
In this case I'm writing a language that doesn't run but compiles to Lua.
sure a transpile like ts
Coolua is the name of this one.
Coolua code -> [Lua 5.1 code with boilerplate baked in, Lua 5.1 type-annotations]
Very much like Typescript although inspired by Java.
what do you mean server/client commands? i would write some server/ code that is listening for some kind of command, and the client/ ui would need to send commands to the server (probably also doing some kind of authorization / permission checking), and I guess that PZ has a system for this kind of messaging already?
Events.OnClientCommand / Events.OnServerCommand is a comms API for Lua-side integration of multiplayer logic.
It's table-throwing with player args.
If you have Umbrella it should populate the function body with params to use.
OnClientCommand = C2S, OnServerCommand = S2C.
what i mean is, where / what does the sending api look like
That is what I'm answering.
It's an arbitrary KahluaTable / Lua table.
All you're doing is bouncing table data.
OnClientCommand and OnServerCommand seem like the events for setting up receiver handlers
how do you actually send those tables though
Use this with Lua files that checks if isServer() and isClient()
Is there a "SendToServer" function somewhere
sendClientCommand(..) and sendServerCommand()
You'll see these in Umbrella.
ahh ok perfect bless you
Grab lua language server extension on vscode and hit F1 and type install addon and then search for Umbrella
i do have that setup
Umbrella (Unstable) === build 42
More music
Planet: Aegron-9
System: Vallis Cephei
Sector: Fathom Reach
"Solitude is the salt of the wilderness โ it seasons the perception."
โ Tej Aravind, Explorerโs Codex, Vol. III
The transport touched down thirteen hours ago. The sandstorm hasn't relented since. The winds here carry not just dust, but memory โ as if the planet itself resists ...
Good for le code
Deep in the abstract
export type NumericLiteral = Expression & {
readonly type: "NumericLiteral";
readonly value: number;
};
export type ArithmaticOperation = Expression & {
readonly type: "ArithmaticOperation";
readonly left: Expression;
readonly right: Expression;
readonly operator: "+" | "-" | "/" | "*" | "%";
};
It's 5:20 AM and where's my 2nd cup of coffee?
Everything in life is a sequence of operative expressions in the organization of void statements.
Mkay
Is that a "stayed up until 5am and need more coffee" or a "woke up at 5am and need more coffee" situation?
2nd
In order to write the code I'm working on ATM I need to be up at night.
How do I do that exactly?
shared/NPCs/BodyLocations.lua
group:getOrCreateLocation("FullSuitHeadNew")```
then update the clothing to use FullSuitHeadNew
right?
Thank you, it works, altough the backpack is invisible with the clothing, I kinda like it xD
Any idea how I make the backpack to show? It's invisible for some reason
Hi guys, Im new here and trying to update square room data, trying to merge one room with the other. Through checking on the debug menu the squares are now merged into the same room, but when I quit and reload the save files the squares reset to its original room. Is this by game design?
local squ = squares:get(i)
print("squ: " .. tostring(squ))
if squ then
squ:setRoom(masterRoom)
squ:setRoomID(RoomMergerUtils.masterRoom.id)
slaveRoom:removeSquare(squ)
masterRoom:addSquare(squ)
moved = moved + 1
end
end```
Sadly I don't think you can create a new persistent room
Even though by merging room A to room B?
you probably can't yeah
i've tried to do similar things a bunch and never had any luck
๐ญ now that's sad
This is as far as I can get, but no it wont persist through a save and load
The question is do you need it to be persistent ...
Bcs if not, you could make something that recreates the interior room every time that area is loaded in
Also does the room disappear if you move away by unloaded then reloading the area ?
Vanilla BuildingDefinition is related to the map that is designed to be static. But you can still save (e.g. in global ModData) your overriding rules and re-apply those at reload time.
Steam Uploader tool
Standalone uploader tool for workshop items, you can individually upload different elements of the mod (content, description, preview...). The tool is still WIP and I will appreciate any feedback.
Currently untested for Windows but should work.
https://pzwiki.net/wiki/Steam_Uploader
https://github.com/SirDoggyJvla/Steam-Uploader
can be used to upload gif preview?
Yup
The only limitations are the Steam API ones, which are the norms compared to the in-game uploader
why do you need to merge rooms anyway
Hello! I am new to Project Zomboid and saw this mod is broken (and abandoned)
Is it too hard to fix this kind of stuff?
I am willing to give it a try
In this case I don't think it'd be too hard
How would I go about adding more barbed wire weapons to this within a custom module? Do I need to import base for it to work? Just add an item to the mapper?
/* BARBED-WIRE */
craftRecipe BarbedWireWeapon
{
time = 600,
tags = AnySurfaceCraft,
category = Weaponry,
needTobeLearn = true,
SkillRequired = Maintenance:1,
timedAction = CraftWeapon2H,
xpAward = Maintenance:10,
AutoLearnAny = Maintenance:3;Blunt:3,
inputs
{
item 1 tags[Pliers] mode:keep flags[MayDegradeLight],
item 1 [Base.Broom;Base.IceHockeyStick;Base.Plunger] mappers[BarbedWireMapper] flags[Prop2;InheritCondition],
item 1 [Base.BarbedWire],
}
outputs
{
item 1 mapper:BarbedWireMapper,
}
itemMapper BarbedWireMapper
{
Base.Broom_BarbedWire = Base.Broom,
Base.IceHockeyStick_BarbedWire = Base.IceHockeyStick,
Base.Plunger_BarbedWire = Base.Plunger,
default = Base.Broom_BarbedWire,
}
}
Well, any details?
I don't know the model ? How am I suppose to give you any detail ?
I suppose it wouldn't be too hard because first off:
- it's recent
- it's already B42 so most of the work should have been done
But that's if the mod worked in the first place too
Sadly there doesn't seem to be anything to modify itemMappers from the Lua
So uh ...

Your best method here seems to be to make your own recipe similar to this one
Oof, oh well guess I'll do that for now until hopefully a way to add to them will be added
As for using custom modules in a craft, I invite you to read this
https://pzwiki.net/wiki/Scripts#Typing_syntax
I just wanted you to continue
It worked by the comments
But now its broken
I tried it out as well
Instead of diving through the window, you just crash against it
Shattering it and injuring yourself severely
Am I ready for Louisville? ๐๐
Neat I did one for Your Only Move Is Hustle https://bustle.ldlework.com
Nice
So interesting finding. Even though I have a complete unique id and itemMapper etc. for a custom recipe, the game's acting as if I'm overriding vanilla's BarbedWireWeapon recipe 
But are you defining it in a new craftRecipe entry ?
Yup
Can you show your full script ?
Yeah one sec
recipes_improvised_weapons.txt (dunno if script file name might cause it)
module PNAdditions
{
/* BARBED-WIRE */
craftRecipe TestBarbedWireWeapon
{
time = 600,
tags = AnySurfaceCraft,
category = Weaponry,
needTobeLearn = false,
SkillRequired = Maintenance:2,
timedAction = CraftWeapon2H,
xpAward = Maintenance:10,
AutoLearnAny = Maintenance:3;Blunt:3,
inputs
{
item 1 tags[Pliers] mode:keep flags[MayDegradeLight],
item 1 [PNAdditions.PNABroomRed] mappers[TestBarbedWireMapper] flags[Prop2;InheritCondition],
item 1 [Base.BarbedWire],
}
outputs
{
item 1 mapper:TestBarbedWireMapper,
}
itemMapper TestBarbedWireMapper
{
PNAdditions.PNABroomRed_BarbedWire = PNAdditions.PNABroomRed,
default = PNAdditions.PNABroomRed_BarbedWire,
}
}
}
it would cause it yeah
make sure the path of any script file your mod adds is completely unique or it will override the vanilla file
this also affects things like lua files, models, textures, etc
Good to know ๐
In order to use it just extracting the files should work? or do I have to extract it on a specific folder or something ๐ค
(windows version)
You download the installer and extract it anywhere, it doesn't matter
I'll add this explanation to the README
Getting this trying to execute on windows 10, says "didnt find libstdc++-6.dll"
Full message says "The execution of the code cant continue because libstdc++-6.dll wasnt found. This issue can be fixed reinstalling the program"
You downloaded the .zip from releases right ?
Yeah
What command did you run ?
Ah wait you're not trying to open it as a classic .exe are you ? ๐
None didnt even get to use a command or anything
Oh wait I'm dumb sorry to late didnt notice lmao
that kind of error does imply it wouldn't work either way
Yea I guessed it, but I prefer to indicate the proper way to use it first off ๐
Tho I have no idea why that error would happen, I looked it up and apparently is linked to a library to install which seems to be used for compilation ? Which uh ... well you don't compile here
Yeah through command line same error
@bronze yoke have you tried running it ?
no i haven't had a chance yet
I suppose it's due to a package I was supposed to properly package in the soft, from quick reads
I really need to get to setup that virtual machine for windows on my PC I think lol
Im about to do the same but with linux ๐
If you need me to test something lemme know I'm down to help
I mean thx for your feedback at least, I need it since it's my first C++ program ever and I don't have any experience with compilers
I wouldn't know what to ask you rn if the soft doesn't even work in the first place
I didnt mean right now like if you want to test something of the program or anything @ me I'll be glad to help with it ๐
Alright thx !
For some reason the recipe name is not changing from the recipeID to the name in the translate file- Pretty sure I've followed the wiki on-point
Apparently it's Recipes_EN according to another mod-
The wiki has an error in it if that's the case
The first line doesn't actually matter but yea I need to change it to reduce confusion
As for your issue, you didn't name your recipe the same as another mod ?
Also where did you place the Recipe_EN.txt file ?
Also I'm interested in getting your feedback on the wiki pages you've read if you don't mind, always good to have some feedback from new modders especially
the file should be named Recipes_EN.txt though, that does matter
42\media\lua\shared\Translate\EN - it works now after naming the file "Recipes_EN.txt", it is indeed mentioning it wrong on the Wiki
Yea he did name it like that
Ah I'll correct that
Wait no what
Oh wait yes !
Oh god I see my confusion I think
Awesome
Other than that so far the wiki pages are nice and also well followable ๐
The examples are also very nice to have
Things seem a lot better explained than for Starsector that's for sure
Good news, that means I don't have to rewrite everything at least 

I'm not familiar with other modding wikis tbf
I will reformat a tiny bit the CraftRecipe page to take the new changes I've made to some stuff like in the inputs page
Using colors for parameters
That will reduce confusion on symbols that I tend to use to show parameters, that new modders sometimes end up keeping
like <RecipeID>
Starsector uses Wiki .gg and its a general Wiki, with a Modding category, but there's way more game wiki than useful well explained Wiki about modding ๐
Oeh smart idea yeah
Yea sadly making a modding wiki involves quite a lot of effort, and I'm lucky we got a good modding community too
The modding tutorial is also outdated by like, 6 game versions
Ah yea that doesn't help
Starsector also has a good modding community, just also lazy modders that don't want to spend time on teaching others with a proper modding tutorial and or wiki etc.
The ones that can make such a thing are all unwilling
That doesn't sound like a good modding community LMAO
It really doesn't indeed, I've had to point out discrepancies for quite some new modders
But yea making documentation isn't always fun, I can understand that
Ignoring the "mod mafia", it's good. Problem is, they are very present-
I see
Hi guys
quick question
In build41 debug mode, there's UI for player ModData
is it gone in build 42?
or it's found in some other place?
Ah, so it is hardbaked as guessed.
It just struck me that this game wont even merge rooms when I destroyed walls between room making those light switches go crazy
Tbf I never knew Starfarer has its own modding community now, last time I modded those game I was poking around their forums and most people are willing to help ๐คฃ But its a long way back then when its still Starfarer
Is there any way to customize the debug option, slow loading? It would be cool to have it only enabled while driving to load cells directly in front of the car, for the most part. It multiplies my fps by 10x, which is absolutely insane, so that's why I'm asking.
Oh it's massive, so big to the point the Chinese playerbase made a package that translates the entire game into Chinese, code base as well where possible, with also INSANE mods that do stuff the Western community hasn't even figured out yet 
Hey did you ever end up releasing this mod? I was just talking to someone today that mentioned wanting license plates and remembered you were working on it a while ago, but can't find anything in the workshop
I didn't even knew that was a thing
You can check how it's triggered I suppose and maybe trigger it on your own
You can right click objects and there's usually a button to see the asssociated data
Also I don't remember that in vanilla, only in the community debug tools
even for the player itself?
I think so yea ?
Not yet. I'm pretty bad at finishing projects... Got it pretty much done then and jumped to other projects. I'll try to release it soon even though it initially doesn't have every planned feature
You have to hit F2 and then click on the square that your player is on, and then select the player object in the top left window, then it will show the mod data
Haha I feel you, I tend to jump a lot too
I think even just a basic version would be interesting for a lot of people, gives a new type of collectible to chase for
Yeah. The main issue I wasn't happy with was automatic modded vehicle support, so important but not necessary for everyone
I would 100% this kind of stuff adds a cool touch to the game imo, a thing lot of games have forgotten these days 
ah!! ty
now i get it
Ah okay I see
i have a question, is it possible to create a mod based on the rage virus from 28 days later?
like have the virus turn someone into 10 to 20 seconds
have an animation of them turning
and have a different sounds
almost human-like sounds
Yes totally
Animation I'm not sure, possibly yes
That too yes that's possible
I just thought it would be a cool idea to make that animation and add it
I think you can yes
But all of that is possible yes
I'm also thinking about changing the lore slightly..
For the zombie sounds you have two solutions:
- modify the .bank files which hold the zombies but player have to manually install the modified file
- manually trigger the zpmbie sounds based on some actions
That's a lot more work
true
B42
Yea so modifying the lore would involve modifying every in-game items that add lore + all the media
The work amount is soooo much higher than the other things you want to do combined
mhm..
That's why do step by step first
Don't put too much on your shoulders to do, especially if you're new to modding
You won't see results and will demotivate yourself
Yay, I'm legit happy, managed to release my first mod, finally
๐ ๐ฐ
Sick! What is it?
So, you know Monkey's RV Spawn for B41? Yeah I tried to make something like it in B42 so people can use it with the RV Interior mod that released for B42 recently. I named it Vanvival
Planning on adding a few more features, so it comes at least anywhere close to Monkey's one lmao
Right now it only really allows you to spawn with a vehicle, in a few custom spawn points, and I added the purge function too so zombies around you get well purged. I also added support for a few custom vehicles that Mickey's included in the RV Interior Mod
Figured people would miss Monkey's RV Spawn and not sure if Monkey's is active anymore so decided to challenge myself to make it happen in B42
Ok I should have fixed it now ! I tested it on a VM too on my side and the app can be used properly !
I didn't test if it properly uploads tho, but there shouldn't be any reason for it not to
Aah nice, I saw your post on reddit actually ๐ I never played B41 so didn't get a chance to try RV interiors, but I can definitely see a starter mod like that being popular with B42 RV interiors
Steam Uploader 0.1.5
Fix for the Windows version
https://github.com/SirDoggyJvla/Steam-Uploader/releases/tag/v0.1.5
If someone on windows can test it out, I'd appreciate ๐
Hey great to see another fellow in reddit, also you totally missed the Nomad gigantic trend in B41 ๐ญ , both RV Interiors and Monkey's Spawn carried for a good while along with other amazing mods of course. Can't lie Nomad runs are pretty fun. I really hope it gets trendy again, it's so much fun.
What do you need testing?
Or to be tested really
Sup yall, I'm a novice when it comes to coding but I've recently started learning Unity and some basic game dev and I thought of a mod idea that could be fun and a challenging learning experience for me. How difficult is the UI to work with in PZ? I've done some simple stuff in Unity but I've seen plenty of complaints about the way Unity does UI stuff. I'm wanting to make some "skill minigames" and I'd imagine most of it would be UI work.
The app to be tested on Windows, to see if it can properly be used there to update mods content, description etc
I'll give it a look, will tell you if something pops up
Oh yeah for sure! I've been itching for b42 rv interiors, just need time to play the game now that it's out ๐ Will definitely try your mod when I do
I should fuck around with cars and see if I can make an attachable bike rack for the RVs/vans
The UI system is very flexible, you can do a bunch of stuff, tho not as much as having full freedom of course but it's really decent I'd say. Some people have created minigames in UI in the past, even making Doom lol
Thx !
Oh real shit? Do you have any in mind that I could try dissecting?
However there isn't really any UI guides. There's only one which doesn't go too much in depth
Uh sec
There's a very recent one
Wait
Yes it should be that one
Tho idk why he removed screenshots of it !
There were screenshots of it in-game and shit
@coarse sinew also did a looooot of UI work and made a lot of minigames in his computer system, tho I believe it's private for now
S'all good! I'll play around with it in-game a bit before digging through it's code. Thank you for helping!
๐
Testing time ๐
This is such a good mod. You would have literally no idea from looking at the description
Iโm guessing non English
And far from it
Yea I think it was already an AI generated description
But there were screenshots of it in-game before !
I don't understand why they removed it
Now their mod looks like AI garbage !
Either you know or you donโt
The author literally could not care less if youโre using his mod ๐
To each their own I guess
Even the mod preview wasn't AI generated
It was an in-game screenshot I believe, with a sort of screen border if I remember correctly and the name of the mod
Now it's just AI garbage :(
they had a trailer before
Oh yea I think you're right
So weird
@bright fog Alright so, not sure if it's me being dumb or not. But for PatchNotes and Visibility I'm getting no arguments found, can't really test for content and preview right now, I dont have any extra workshop project to test it on besides the only one I published. Title and description are working flawlessly
Mb
All parameters are empty*
Can you show me the exact command you're using please ?
-v is verbose
-V is visibility
Wait no
Sorry I'm wrong
Jesus I need to remove verbose
lmao
uh
yeah also did it with patchnotes, caps P, normal p, same error
Can you try
app-windows-latest -w workshopID -v 2 ?
sure
The patch note is needed only when you upload content I believe, but that doesn't matter tbf
wait isn't this literally the 2nd line I sent tho lmao
Yea idk if both do the same thing but yes probably 
It does get the appID, so that's a good sign
Ooooh !
I know my mistake !
Yea ok so if visibility is alone, it won't do jackshit lol
I'll fix that
Well glad to have helped out, wish I could try content and preview, but I do not really want to mess with the project i have on the workshop now ๐ญ
At least with stuff i can't easily revert
Yea that's ok thx ! At least I know you can use it, just got to test uploading something to see if it works fully but that at least means the fix I pushed works for others
Well whenever I have new content for the mod, which might be as soon as tomorrow, I'll use the tool to upload
Alright thank you !
Also if you need, my os version is Windows 11 Version 24H2
That'll be perfect to add in the details section
@bright fog Works fine so far, will try updating actual content and using other parameters to see how it goes, oh and my os version is Windows 10 Pro 22H2
Alright perfect !
Nearly perfect cross-os software lmao
<@&671452400221159444>
Hell yea
I wanted to make it work on Windows too since I made it for the modders and I know most are on Windows
Will you eventually make an UI for the program or just leave it as command line?
My first idea was making a UI
Buuuuut idk if I will
Honestly ^^^. UI would make it way easier for people that do too well with the command line
that do not*
Yea I suppose and I can keep the command line version
Tho that's my first C++ project ever so uh, going to go slow here LMAO
I'll see, I'll consider it
Thats awesome, a friend of mine works making UI and stuff so if anything I can put him in contact with you in case you consider doing so
Well if you need any help count me in, I'm a UI/UX designer by craft lmao
Ngl I would, if I had an idea of C++ at all lmao. My last C++ project was in unreal and was mainly using blueprints
Kinda cooked on that one chief
Thx, I wanted to learn a C language so that was a motivation too, tho I was going with the SteamCMD first but it's very limited
I've been building a reusable data-table in PZ UI and it's not the best system I've had to work with.
I remember someone was working on a TypeScript React based UI for PZ, that would've been bonkers.
were you using ISUI or XUI? XUI is a little easier to work with
The UI in PZ is actually very flexible compared to what you might expect. It's all Lua-based with the ISUI framework, so you can stack custom panels, draw primitives (rectangles, text, textures) in real time, and even bind them to custom logic. You don't have full 3D widget freedom like Unity's canvas system, but you can absolutely make interactive minigames from scratch.
For example, my terminal implementation - I made in it a super lightweight 'Doom' clone running entirely inside a PZ UI panel, built with primitive draw calls and a small set of input hooks. I also added a custom theme system for the terminal, including a rainbow mode where the colors update every render tick.
Point is: as long as you're comfortable manually handling input, rendering, and a state management, you can push the UI way beyond inventory windows and HUD tweaks.
Yeah, it's pretty much in the same state I left it back in March. I should probably get back to it somedayโฆ
One day one day ๐
Lol I thought about writing a mod for computers to have DOS
I have little frame of reference to go off of, but that looks frickin sick!
Someone make a mod where you can play PZ on a computer inside PZ, it would just be bonkers
True lol
Trying to identify "VehicleKnowledge" in b42.
It's not keying.
" local keenhearing1 = TraitFactory.addTrait("KeenHearing1", getText("UI_trait_keenhearing"), 0, getText("UI_trait_keenhearingdesc"), true)
TraitFactory.setMutualExclusive("KeenHearing1", "KeenHearing")
local eagleeyed1 = TraitFactory.addTrait("EagleEyed1", getText("UI_trait_eagleeyed"), 0, getText("UI_trait_eagleeyeddesc"), true)
TraitFactory.setMutualExclusive("EagleEyed1", "EagleEyed")
local vehicleknowledge1 = TraitFactory.addTrait("VehicleKnowledge1", getText("UI_trait_vehicleknowledge"), 0, getText("UI_trait_vehicleknowledgedesc"), true)
TraitFactory.setMutualExclusive("VehicleKnowledge1", "VehicleKnowledge")"
Eagle Eye and Keen Hearing all work, and Vehicle Knowledge follows the same format... yet it's not calling in the trait menu.
Here's the errors I'm getting:
"Callframe at: setMutualExclusive function: initProfessions -- file: HandleProfessions.lua line # 14 | MOD: Hearts OC Professions function: Add -- file: HandleProfessions.lua line # 58 | MOD: Hearts OC Professions Callframe at: se.krka.kahlua.integration.expose.MultiLuaJavaInvoker@13c1dbdb function: createAvatar -- file: CharacterCreationMain.lua line # 2240 | Vanilla function: create -- file: CharacterCreationMain.lua line # 233 | Vanilla function: instantiate -- file: MainScreen.lua line # 689 | Vanilla function: instantiate -- file: Disabl_Welcome_Message.lua line # 7 | MOD: Disable Welcome Message function: addToUIManager -- file: ISUIElement.lua line # 1368 | Vanilla function: LoadMainScreenPanelInt -- file: MainScreen.lua line # 2114 | Vanilla function: LoadMainScreenPanel -- file: MainScreen.lua line # 2004 | Vanilla "
If you want to poke around the code, here is the repo https://github.com/eI1on/pz-scrap-network/tree/main I just pushed the latest work on it.
Apparently, they reverted the Translation for those who are curious in the future and use Discord to find the history.
UI_trait_VehicleKnowledge is actually UI_trait_Mechanics again.
Steam Uploader v0.2.0
Added ability to update tags of the Workshop item.
Added checks stopping uploads of specific parameters if their limitations are not respected:
- description is max 8000 character
- preview needs to have a file size of less than 1 MB
- title is max 129 characters
https://github.com/SirDoggyJvla/Steam-Uploader/releases/tag/v0.2.0
Niceee.
can any send me there mod pack i have 4 hours and trying to get an easer experence on thjis game thanks so much
Sophie's modpacks are good
They have lightly modded versions too I believe
Tho idk if they have B42
b42?
ok thanks
anyone know where compost is controlled? i.e. how to configure items to be compostable and if possible if we can control the length of time for compost? (I know about config in game, I am asking where in the lua)
items need the item tag "Compost". not sure where the time is handled
it looks like the time is determined by a food compost time value set in java. this should be changeable with setCompostTime() and read with getCompostTime() with the food item
i'm not sure why my mod isn't showing up in the mods page? i was able to see it in the mods when it was name \ workshop structure, but i wasn't able to access my traits or profession in game, so i've moved it over to the mods folder. any suggestions?
ah, the wiki is saying to put it into the workshop folder. will check back if that doesn't fix anything during dev
possibly stupid question, though i'm not seeing any answers to it anywhere else, does my working folder in the Zomboid\workshop folder literally have to be named MyExampleMod?
no
I'm working on adding a new ring to my mod. I don't care much about what it looks like (currently, just a simple gold band would be plenty). I took the code as it is in vanilla for gold rings, added 4 variants for the ring slots, added xml clothing items files with guids.
When I spawn the item in using debug, it randomly shows different color variations and throws errors saying the visual is nil. Is there a mod that adds rings that I can look at the code of to get an idea of what I am doing wrong here?
workshop structure is deeper and has some extra files
mods\beefcake, when moved to a workshop mods goes into
Workshop\BeefCake\Contents\mods\Beefcake\
The mod doesn't work differently in the mods or workshop folder
But it is preffered to use the workshop folder for multiple reasons:
- has extra folders for you to store assets related to your mod without uploading them
- you won't have to make a copy of your mod in mods/ into workshop/ when needing to upload, thus reducing the risk of having two copies which can confuse you during dev and cause issues on your side
Is there a system like bepinex for .net that lets us load jar classes which hook the java code?
For Java mods ? No
If you want to do Java modding either you recompile the Java files every single game update and have users manually download the mod files
Or you use Leaf
So I'm working on a mod that (one of things it does) adds different bell peppers. Is there a way to allow only 1 type of bell pepper to be selected? It's for a recipe that has jarred bell peppers of the same variant/color. Is it based on item name, something else, or is it not possible (at this point in time)?
Yes
You mean in the 6 bell peppers have the same type right ?
IsExclusive Whenever multiple possible inputs are available but only a single type can be used, to not mix multiple different items.
This is a flag
You can also use ItemMappers to output the corresponding output item
That does work already afaik with this part of the craftRecipe
๐
Totally read over this exact flag apparently ๐
I checked flags but somehow missed that one
Someone recently told me it's what it does and it recently got its description on the page
Like a week ago
Ah fair
Tbf the list like that doesn't help finding specifically what you want
Bcs it was in the Unknow flags table
Riiight
<@&671452400221159444>
@bright fog Hey, just letting you know the content upload works flawlessly in windows, had to release a quick hotfix for my mod today. Forgot to test Patchnotes but oh well, amazing work!
NIce thx for testing !
Which version of windows ?
I told you yesterday ๐ญ Windows 11 24H2
Sorry someone else gave me a version of windows, wasn't sure if it was you
Literally had to ping mods, not even like 30 minutes ago
Poor mods being overworked lmao
Now they're back in force
I figured it out, so for anyone else encountering a similar issue, I was missing the fileGuidTable.xml. Once I added that, the errors disappeared
-_-
Do y'all want us to keep pinging you or like no need for a good while?
yeah
just ping, no need to create a ticket
my god...
Just asking since I mean it's obvious it gonna be for a while and pinging the mod role every 15 minutes might get a bit annoying lol
We handle mod pings quicker than spiffo tickets, so definitely ping the mod role (preferably replying to the offending content)
Hi! B42 made a lot of changes to Muldraugh, it also changed some parts of the city layout as well as the layout of some of the houses. Does anyone know whether they made similar changes to the other old vanilla cities (West Point, Riverside and Rosewood)? Or are they the same as B41?
there's some changes to the entire map but muldraugh is the only town that was reworked in that way
There's a bot invasion or something?
Not just here, plenty of servers im in are getting this bots spamming the same thing 
What is the message? Anything creative or just a boring steamgift thing?