#mod_development
1 messages ยท Page 130 of 1
You can technically
You can parse scripts in Lua as a string if you really hate scripts
sorry I was just watching a video on YT and seen that face when the ? was asked and I just lost it
you can also define items specifically I believe
i just need to define an InventoryItem to replace one that is in a vehicle
for example: there is a "metal" trunk barrier that separates the interior of a Humvee from the trunk. I want to replace it with a "net" trunk barrier that can used instead
i could just give the player the item but i need this to work server-side
nvm, i don't want to do it anymore
the mod?
So, I'm removing items from an inventory, and they get removed from the container, but after a few server ticks if any players that didn't start the timed action that removes the items opens the inventory, the items come back, then they come back for all players. So they're not actually getting removed. Has anyone seen that before?
You have to use removeFromServer
Just dealt with it
There's a whole slew of shit you have to do to properly remove an item
If you check around the transferTimedActions you'll see them
You may need to check it's not in the player first
biowastecontainer:removeItemOnServer(item)
biowastecontainer:requestSync()
ISInventoryPage.renderDirty = true```
and on the server side I'm running isohbg:sendObjectChange("containers")
Haven't used that one before
it may not be necessary
My issue was with removing items from containers and players returning to the chunk later and the item would be there
So it sounds similiar
yea, it's probably the same
I also made it so the item has to be within the player to do the function too
Atleast for some behaviors
oof, I didn't even think of that, I'm having the player put the item(s) in a container and they're doing a timed action
Could be done from the floor?
you're saying to transfer the items to the floor and remove them there?
Can anyone help me with some hair modding ?
No I'm saying don't allow floor or other containers to be the source - would eliminate a lot of issues
Hello fellows I am trying to learn more about ModData
You can also force a transfer if one of these is the case
it happens when from player inventory
That's good then
could anyone help me where I can learn more about ModData???
I tried to find it on Forum but no info comes about it
I want to see how datas are stored in it
and whether the data is stored infinitely
Since I now many mods store their data such as "player money, level, etc" in it
I want to open it up to see what is being stored and how data is being processed
does opening ModData . class show all the mod datas that is being stored currently in dedicated server?
Would this do anything?
i would just use onclientcommand event
to remove items from players inventory
if that's what you are trying to do
nope, that's easy, trying to remove items from a world container
back. time to continue trying to get the immunity chance to work
sounds difficult
i got a lot of help from ppl here. now i am just applying their advice and also seeing what works
Do you use ModData as well in ur mod?
yes that is what im trying to do
trying to use ModData to make sure players only get tested once for immunity
Can you explain how ModData work?
like how do people you it? or how can I edit what's in ModData? since i can just open the file
and edit it
i have no idea. i am a novice modder
moddata is a table that saves - it has no other special properties
i use function(playerIndex, player) and then do the thing
the two types of moddata are object moddata and global moddata:
object moddata exists on most IsoObjects and you can get it using object:getModData()
global moddata is sorted by key instead of object, you can get it using ModData.getOrCreate("key")
do i need to put my events in a certain order? when i added new events im trying to work with it makes bitten trait not appear in the traits list
should i put them in order by when they should happen in the actual game?
Thanks, so if I have a mod that saves player money amount on my server
or does it just mean i made a mistake in the rest of the code
yeah, you'd have to check the mod for what the table structure is exactly, but something like local money = player:getModData().money
yes, it never expires or anything
and does it have any .txt file or .class where i can open it externally?
global moddata is stored in a separate file but it's not human readable afaik
i see
i'm not sure where object moddata is stored but probably with the objects themselves, however that is done - so very unlikely to be human readable
i think there's a debug tool for examining global moddata though
ugh.. how much i wish i could just open its file and see all the data stored in it...
a mod called "online trade" saves players trading items and money in a mod data
but ther's no simple way to remove the items from the player uploaded items
so i was trying to understand how mod data work to see if I can just wipe out the player uploaded item data
from the moddata
thanks Albion, ill try to Loop and see if I can start something from there
can i start an if statement with if not?
yes
@humble oriole ```lua
item:getContainer():removeItemOnServer(item);
or
```lua
item:getContainer():DoRemoveItem(item);
i think
they're already using that
ow ok
oh wow i was using else if but changing it to elseif made the trait visible again
if isClient() then
biowastecontainer:removeItemOnServer(item)
end
biowastecontainer:DoRemoveItem(item)
if item:getWorldItem() ~= nil then
item:getWorldItem():getSquare():transmitRemoveItemFromSquare(item:getWorldItem());
item:getWorldItem():removeFromWorld()
item:getWorldItem():removeFromSquare()
item:getWorldItem():setSquare(nil)
return
end```
found the last half of that in a debug script
i should just test from here before doing anything else then
if it's spaced, you need two ends
if it's spaced you're essentially writing```lua
if condition then
--code
else
if condition then
-- code
end
end
Also threw a biowastecontainer:setDrawDirty(true) instead of ISInventoryPage.renderDirty = true
oh wait
or i actually just needed the second end
i see
but elseif can be used without it
using elseif is usually better
it's more common as well
when you use else if you're creating two new scopes, which usually isn't what you want
if you're passing playerIndex and player into that function then it probably isn't needed
i'm guessing this on OnCreatePlayer
yea
for that OnCreatePlayer tells us which player is being created, so we don't need to grab all four players for it
okay
if it was EveryTenMinutes or something, that doesn't pass a player so we'd loop through all four players
so i can remove that for my bitten trait as well
After further testing, it's this guy that's making the sync happen correctly biowastecontainer:setDrawDirty(true)
really?? i thought that was just a ui thing
same, but the only changes I've made is an if isClient() and that DrawDirty
to be clear, this didn't work ISInventoryPage.renderDirty = true
yes, any lua type except functions and objects
gotcha thanks
How do i get server time using getSeverTime()??? What is the proper way to call its function?
I know the function is in GameTime . class
So i thlught just typing getServerTime() would return long number but debug shows i tried to call a nil
try print(getGameTime())
I tried a= getGameTime()
Print(a)
And this produced nil error
Would just doing directly in print make diff?
I guess trying wouldnt hurt haha
GameTime.getInstance():getServerTime()
Wow... why is gametine.getintance()? While spawnzombienow is using .instance??
i don't really get why, but GameTime.instance gives you a buggy instance
even though GameTime.getInstance() should do exactly the same thing
Sup my brothers, how does one make the "unboxing" spawn more than one of the dollar bills randomly?
local WalletL={"Base.5DollarBill", "Base.5DollarBill", "Base.5DollarBill", "Base.5DollarBill", "Base.5DollarBill", "Base.10DollarBill", "Base.10DollarBill", "Base.10DollarBill", "Base.20DollarBill", "Base.50DollarBill", "Base.100DollarBill",}
Wallet = function(items, result, player)
player:getInventory():AddItem(WalletL[ZombRand(0, #WalletL)+1])
end
(And yes, there's multiple entries of the same note to make them more common)
I see.. so confusing.. ty for ur help
TomaroTrait.newSubject = function(playerIndex, player)
if not player:getModData().tested then
if player:HasTrait("Immune") then
player:getModData().tested = true
elseif player:HasTrait("Bitten") then
player:getModData().tested = true
else
player:getModData().tested = false
end
end
end
using this information, can i use if player:getModData().tested = false to do something to the player and then set it to true?
i'll try coming back to it later with a new angle
@faint jewel was looking for client clock know anything abt that albion
wdym
at least i was able to make the bandage spawn on the player for my other trait
Cool hope he sees this
Hi there! Very new to modding in that I've downloaded them and used them in game, but never made my own. I would like to change that ๐ So where do i start? I have my idea for my first simple mod I want to make, but where would be best to go and learn? Any and all help is appreciated and cheers in advanced โค๏ธ
read pins in this channel
also in User/Zomboid/mods there is an examplemod folder that you can use to help set up your mod folder
also look at other mods and have an idea of what you want to do
look at other mods, like just in general?
look at a mod similar to what you want to do
i wanted to make a mod that added traits with items, so i looked at banjo's item kit traits
for example
so if i wanted to do something that added a small inventory, i'd look at backpacks for example?
ye, kinda ๐
I want to add pockets to pants ๐ its a nothing burger of a first mod, but I wanted to try something i thought would be simple.
try looking at mods that add pockets to things too
there are also some mods that add a bag within a bag such as smokin joe's rucksacks
I'll look into that! Cheers ๐
vests with pockets by PA
thank you! ๐
is there a way to check if an event is running
poor man's solution: add a function with a print statement
true
that's how i've been figuring out if my shit works
(as of today)
is there a way to change the status of ModData back to a certain state?
for example, my thing when it tests if ur immune, it does player:getModData().tested = true
i wanna test it multiple times in a row but it only works when player:getModData().tested = false
oh okay i got it
IT WORKS!!!!
AHAHAHAHAHA
now to make it take time to find out if you are immune
by the way GameTime.getInstance():getServerTime() also shows nil error
YAY
now im gonna do some work to separate them so i can have the test happen at every hour while still letting immunity work instantly
interesting
i'll try to understand making it skip hours later
so i could make it a 5 hour wait after being bitten for example
GameTime():getIntance():getDay() no good either
GameTime.getIntance():getDay()
is this tsarzones mod conflict?
@humble oriole
have you tried the global command before, to send the server items to clients?
sendItemsInContainer(IsoObject,ItemContainer)?
*doesn't look good for syncing
I haven't, I saw it, but I didn't know what it did. I restructured my code doing most of the work on the client side and setting the container to dirty which seems to have fixed it
if it works, don't mess with it
It worked in testing, we'll see what it does on the live server, 4am on the east coast so most people have logged for the night
ok it wasnt working so i reverted to something that works for now
how can i make two of my own trait mods compatible with each other without requiring the other?
can i do this?
since i already have it contained within the bitten trait? or would it cause an error if a player isnt using a mod with that data?
or would it just return a nil and then ignore it
okay well it at least works while in the same file
player:getModData().tested is compatible with all mods, but also not compatible in the sense that tested could be anything that a mod considers to be a valid tested value
it's too generic
okay i will change it to something less generic
but thanks for also verifying that it would be compatible
okay now i added something so it will give you the immunity trait if you are already bitten and not infected, but you havent been tested for immunity yet
and at first it was causing 6-12 errors every time i tried to reset the test data to false and remove the trait, but now i can reset the status of a player without causing any errors at all
function ISZoneDisplay:updateData()
local gameTime = self.gameTime;
local climateManager = self.climateManager;
local season = climateManager:getSeason();
self.timeOfDay = gameTime:getTimeOfDay();
print(self.timeOfDay)
i found this in vanilla
nice work
they use gameTime
but still
gameTime:getTimeOfDay()
is bringing me nil
Well...
GameTime:getInstance():getNightsSurvived()
This worked
GameTime:getInstance():getServerTime() but this doesnt
so.. i guess the return value of getServerTime() is diff.
this looks like a static, try
GameTime.getServerTime()
This worked
maybe i need to study more about static..
can i make it so a function takes time before it continues?
like a wait 1 second or 1 hour
i think so
it returns server time in long numbers
like that number after Server
so i guess one can record its number and use it to one's taste
got an issue now
the player body is not infected at the exact time they are bitten, so it makes them immune if i try to give them immunity if they have an uninfected bite
could be solved by adding time between the check, but idk how to do that
i want to keep this, but the player is considered not infected since it happens so quickly
i also tried with just checking if any body parts are infected
maybe you can try event every one minute, 10 minute,
and use in game time or users time, to only proceed if greater than specific time
i tried those events but it makes the function not work at all
so i cant do that until i learn how to separate the immunity check from removeinfection
i guess i can put a pin on it and just not have existing immunity compatibility for now
to be able to work in different moment, continues from where i stopped, i used an instance approach
check the firetrail.lua, maybe can help you to call and keep state
to the nexts ticks
i suppose that the function didnt works, because was not saving the previous state, that was not trivial when i was trying to do this
my code is probably full of flaws so it is understandable if u dont have the same issues as i
to me happens easily to be a new state (empty) when triggering the mod code later
i might add some separate mod data that is able to operate on timed intervals instead
and then plug those into the immunity test instead
like the player?
only primitive values
mine is related to the player
if they are bitten and they are not infected, then can't i add mod data to create an override the same way i have a bitten trait add player data that says they are bitten?
here
ah
but i was able to store bitten information under the function for the bitten trait
or is it because it was done OnCreatePlayer?
would not be able to do the same if i wanted something similar for EveryHours?
well anyway, i will try tomorrow or something. thanks!
im not sure
i'll probably end up trying it anyways
i've attempted much more sacreligious things with my code
Muchas gracias

With valueTranslation being used in that way, does it make sense that the "translation" field could be omitted?
Ah, no, from SandboxOptions.class:
public String getValueTranslation() {
return this.valueTranslation != null ? this.valueTranslation : (this.translation == null ? this.getShortName() : this.translation);
}
As well as
public String getTranslatedName() {
String var10000 = this.translation == null ? this.getShortName() : this.translation;
return Translator.getText("Sandbox_" + var10000);
}
Yeah, the translation field is used for the sandbox option name on the sandbox options screen
I love how you drop it with spoiler and shiz
Congrats
Im curious what was the msg? Hehe
thank you!
it was same function, just with extra steps to make sure there are no errors.
Did you figure out the ItemPicker reset? @ancient grail
Havent started with that.. we still have bunch of queue
there is an easy way to show text on screen? like display fps does?
Tho gravy gave me permission to use his work as reference but jist not take everything which we dont want to do that anyways we just need the getter function
they way i have my trait now, it does all the checking within the immunity trait function
i could probably make an event for all of it to happen outside of the trait function, add a wait period, then create mod data for true or false immunity. and then use only the mod data to deliver the message
Give the ability for doctor to check if other player is infected
that sounds like a p sick idea actually, but i'll have to put a raincheck on that for now
then it would only require something like if player:getModData().immunityConfirmation == true then
or if false
Its hard to do i bet
i dont know anything about modding with skills, so im focusing on what i can do atm
still havent even bothered with my own sandbox options
but honestly, checking if another player is immune sounds like the highest incentive for first aid i've heard.
That would require something like:
Click on other player
Click on context menu for check
Walk to other player
Face the other player
Do a TimedAction to make it beautiful
After TimedAction is finished you can display a message of infected or not infected
yea and all while operating within my own immunity trait's parameters
But you wouldn't just need to check what you mentioned above?
if player:getModData().immunityConfirmation == true then
or if false
That can be done in the perform of the timedaction
but that might be another reason why i should try using ModData instead of putting all my if-then conditions together
yea
if i do it that way, i think it would actually be great for many reasons
I'm working on custom animations, they are working but the movement speed of the player seems timed to the animation in some way. Some of the animations are incredible slow and the walk animation freezes the player in place.
Anyone have any ideas? I've been stuck on this for days and can't proceed.

could be easier to implement new features as well as for other ppl to add their own mod compatibility
thanks for the brilliant ideas!
i havent tried anything outside of traits and occupations yet but it sounds like a great venture
A while ago I was doing a code to interact with trees and be able to get branches from them. The code sequence seems pretty similar, instead of checking if it is an IsoTree what you're clicking it should check for an IsoGameCharacter I think.
i see
I'm in my working PC so I don't have the code here but later if you ping me I can give it to you and you see if it works for you
i was actually thinking of doing things with the health panel anyways
that could be on the list of things i can do
ok thanks! i am actually going to bed but i like brainstorming
i'll take your recommendations to heart tho!
going from the most basic immunity trait mod with no extra features to a fully fleshed out mod with all kinds of complex features
What are you using to be able to get intellisense?
ayyy
The script parser seems a little clunky since it apparently requires a trailing comma on the end of a property definition (at least for options)
i.e.
option ItemSearcher.SearchMode
{
type = enum,
default = 1,
numValues = 3,
page = PZISTitle,
valueTranslation = PZISSearchModeOptionValues,
translation = PZISSearchMode, -- trailing comma required!
}
there is a way to know if user click the pause button? there is SpeedControlsHandler.lua for key inputs only
where is the onclick lua for it? and for joypad too
solved:
local spcontrol = UIManager.getSpeedControls()
local isPaused = spcontrol and spcontrol:getCurrentGameSpeed() == 0
Hey !
I'm looking for a way to bind "/say" command and i wonder if i need to tweak my game's folder to do so?
Like... When i press "L" key, my char say "Hello !" Without opening the tchat, do you have any info about that?
Ping me for answers, i don't have notification on
Okay serious question, if there something in any of the java code that can be improved. there anyone/where it can be submitted to? ie like a git pull request..
You want improve vanilla java code?
if that means PZMath etc if I see something I'd like to offer to do so for like review. yes I wouldnt mind doing so.
You can do suggestion on tis forum and maybe we will improve java code by your idea
okies, would you have a link that would be the right forum. only asking havent looked at them yet.
Got things you want to see in PZ? Post here! Tip: search to see if there's already an existing thread.
tyvm
xml
I have a project for adding to the client's Java code so that's an option.
I shelved its release because project-priority was overtaken by things you see me mention in here periodically.
I was more just looking for a place to offer improvements to whats there if I come across them just didnt know where to offer it at.
Ok.
If pz is written in Java, would be possible to write mods in kotlin?
Yes. I wrote my anti-cheat patch in Kotlin last year.
Not the animation speed right?, the walk speed.
yes, but players will need put files manually to game (not possible easy share mod by steamworkshop)
the rig has abone called translatedata
it actualy governs position
you can just translate the move ment or just keep it still
also the xml is what actually controls the whole behavior
meaning you have the raw file setup but will still be subjected to changes made by the xml file calling it
I have an XML configured, but I was just staying completely still when I should be moving, and moving when I shouldn't be
I was totally lost
i suggest you take peek at how masking animations work... the thing is called aim with torch left hand or something like that
but the character isnt actually aiming at all
its just the left arm which is being manipulated so in short your animation file isnt really doomed you just lack 1 more step
yeah just move the translate it will work
Cheers. That did it.
you almost gave up?
Nah, I have a group of guys counting on me lmao
share the mod link when youre done ๐
Absolutely
It's going to be a hilariously fun addition if I can get it working to our expectations
lmao
New update for Save Our Station from @steep cloak , adds sandbox options and temporary interruptions in addition to the existing fatal faults: https://steamcommunity.com/sharedfiles/filedetails/?id=2398274461
Mhm, been a blast working on it over the last few weeks :)
More to come in the future!
question, how i can use the full WaterPot in a recipe without changing it for Pot when use all water?
@nimble spoke @winter bolt https://steamcommunity.com/sharedfiles/filedetails/?id=2944937297
mentioned you guys
๐ซก
ooops typo let me correct that
Hey, good to see you got that working
i need help in adjusting the rarity of items from a mod 
i have no prior experience with modding PZ
which mod
in the mod files, go to media\lua\server\items\ and look for a distributions file or something like that
already found it
into the chat?
yeah just drop it
alr gimme a min
would be cool if you could teach me what numbers to edit 
no, it is simply a weight on the "roll" the item gets
basically 100 is 100% and 1 is 1%, but they are not actually percentages, and work relatively
a loot table with only one item that is like 0.0001 will still spawn that item every time
oh i see. i might actually run with the halved rarity too
since i was gonna reduce it anyway
reducing it in half is always a good start
are you gonna finish it or do i do it myself 
im like 40% of the way through atm
oh cool.
can you teach me how i can make it a "patch" unlisted workshop thingie?
you give me a reason to procrastinate on my own mod ๐คฃ
no pic no click
finished
to make a patch, go to C:\Users\YourUserName\Zomboid\Workshop
and copy the ModTemplate folder, and name the copy whatever you want
done
go into the new folder you made and go to media
also rename the second ModTemplate folder to something else
in Contents
done and done
delete everything in media. you don't need it
make new folders like this: media\lua\server\items\
you are basically copying the folder structure of the Umaboid mod
to double check, are the Umaboid distributions in items? sometimes mods don't do that
they are in Items, yes
okay good
now put the new lua file into items
what you are basically doing is replacing the entire file that Umaboid uses for your own
in mod.info, you need a require line to safeguard the mod from running before umaboid itself
lemme find the mod id, brb
okay, in mod.info, add this line above description:
require=UmaBoid
that is the mod id of the umaboid mod you linked
now you can change whatever you want in mod.info, maybe add an authors=Souv line, and you are ready to upload the mod thru the game
it is also ready for you to use in-game, you don't need to upload the mod and subscribe to use it
sure
i recommend testing it out before you upload. maybe it is still spawning too much
now, back to text editing Tsar's translation files...
hey, you from the future, if you are looking a boolean to be true when climbing over fence, you are looking for this
character:isCurrentState(ClimbOverFenceState.instance())
character:isStrafing() --aiming and walking
today i release a new mechanic, that disables pause in-game and replace it to slow motion, you can pause only on menu (ESC),
you can shoot, aiming, loot, climb fences in slow mo
No Pause, Reifel's Slow Mo instead
https://steamcommunity.com/sharedfiles/filedetails/?id=2945021187
if zombies gets too close the slow mo is turned off
lol. nice
is the zombies getting close to you a limitation of the program or intentional? cuz it would be kinda badass to swing an axe at a zombie in slow mo
how do you group / position the description like that?
the table one?
you can make tables?
*found it
Steam has their own markdown.
[table]
[th] headers
[tr] rows
[td] data
How much of a pain is it to add new fonts to project zomboid? I want to experiment with some both in typical UI panels and in the Map

It's a little bit of a bother, however you can do this.
Look up "AngelFont"
The UI draw API doesn't support custom fonts however the font object you load can be called and drawn manually onto the screen.
This is something I suggested to @tame mulch To add API support for UI draw calls.
Since I've seen this brought up multiple times in the past month or two, I'll spend tomorrow making a guide for doing this.
This is very helpful info, please ping me when you've got the guide ready!
So for putting custom font on a map, i'd be good to go, if I wanted to put it on a UI panel, I'd need to manually draw the images and lay them out and handle any kerning etc my self?
Is that about right?
would be cool to kill zombies in comic sans
Nevermind, don't tell us how to do it, it's been ruined
Riko Prushka has released quite a few font mods, I'd look at those
hey i have an issue with my mod
it doesnt spawn ingame
but its in the lootpool
the item is ingame too
I've been trying to see how much slower a coroutine is and it seems to have unnoticeable effect. I'm going through an ordered table and doing a) everything in the same function, b) use closures, c) use coroutines.
*increasing table objects vs loops shows coroutine disadvantage.
what is the size of your test pool
ProceduralDistributions["list"]["string"] is wrong
how come?
this is the same system another modder told me about
it works fine for him
local containerData = ProceduralDistributions.list[containerName]
table.insert(containerData.items, itemName)
hm?
follow this format
why that one though
if it works the same for another modder why doesnt it work for me
small potato ๐

because it is not ["list"], it is .list
it can't be working for another modder, the syntax is incorrect
unless they are not doing it on Build 41.78
can i make immunity a 0% chance using zombrand by doing if ZombRand(99) <= 0 then ?
hm
these are the same
in Kahlua?
Lua, Kahlua
if it hadnt work it would be brought up in his commetns
well then I am not sure why your item doesn't appear
What is the module of your item?
i forgot where that is
Roundmeal will work if it is Base.Roundmeal
in the scripts folder
where you defined the roundmeal item
yeah do MM_roundmeal.Roundmeal
so that was the issue?
btw your icon name here has a typo
Does anyone know how the game assigns a color to a vehicle when it spawns?
Or where, specifically.
roudmealtexture
Double check that your icon is named the same, in case you are having issues with it
oh damn
ah well at least its working ๐
i actually havnt tested it yet
ill get back to you if it does/doesnt
@glass basalt it spawns now
but changing the icon name fucked it up
alpha test release No Pause, Slow Mo mod
https://steamcommunity.com/sharedfiles/filedetails/?id=2945021187
did you rename the icon and the icon name in the script file
the script file
there both the same
what I meant by typo is that it should be roundmealtexture, not roudmealtexture
or better yet roundmealicon if you want to follow naming conventions
what does it do?
mortar mod Exploding animated tiles
it destroystuff
i somehow missread it as spotter animation
like your spotting smth
did you make the rpg mod btw?
sprites look similar
for explotion
yeah thats not yet implemented.. the animations for the character fkd up for some reason idk wwhy but atleast the tiles work
nope
it looks good tho
ah
but i made these tilesheet digipainted it
thats why it looked similar
imade a photoshopbrush long ago that makes fire effects easy to do so i used it
oh thats cool
improved the icon
it used to be a shitty shitstain of a picture
is there a way i can add crafting recipies to like cut it in half
you'd need to add another item that is essentially "half" of that
but since it is food you can technically already do that. you just eat half, but it remains one item
you could add it to the recipe that makes stir fry, if that's what you want to do
thats what ill do
Made a mod that changes up the names in all of the Tsar mods
https://steamcommunity.com/sharedfiles/filedetails/?id=2945062151
does if not player:getModData().immuneTested then mean if .immuneTested is false, or if it is nil?
would it be better to do if player:getModData().immuneTested ~= nil
Ouch that might hurt iBrRus dont you think?
It might, in which case I'll respect his wishes if he does not appreciate it
best to do so
i mean i wouldnt want somone using my mod
for there own mod
It requires the mods it edits though
can i use mod data to set an integer?
iirc mod data is just a table. you can set anything in there
so the same way i did true or false, i could set it to 0? and then when the event occurs again, it can increase by 1?
moddata is literally just a table that saves, not sure why everyone expects it to have crazy properties
anything you can do with a table you can do with moddata
this is the best im gonna get for a jar when im tired
i dont know coding at all. i am just taking information bit by bit
its the solution to attaching information to an object, as opposed to using global variables or your own object
i dont think it looks half bad tbh
pretty high res tbh but that's a nitpick lol
ah
it doesn't matter, the game handles everything for you
you are doing great .
i will just make something and then i'll ask if it makes sense
that do be how we learn, I ask dumb questions all the time
we do all start somwhere
i had no clue how to code like 6 weeks ago
and now from a really sleep deprived night
i can sort of code
i think the java method to grab it throws people off, but moddata is a completely normal lua table
would scanning the moddata off of an object and printing it be a smart idea or will it flood the console
i doubt any one object would have a crazy amount of moddata
@glass basalt is this better?
yep
so that should be fine
if you have a lot of mods players might have a bit but not too scary of an amount
can i make something be true/false but also have a number value at the same time?
so i dont need to make a bunch of labels for starting the testing process and then during the testing process?
not a normal variable. either use two or make an object
i'm not sure what you mean by that
like myThing["bool"] & myThing["num"]
for a table
immuneTested = false
immuneTesting = 0
you can test things like if player:getModData().immuneTesting == 0 then
yeah just change immune into a table and have tested and testing as two parts
that too
ohh so immune.Tested and immune.Testing?
if you want, but like what albion said, use as little variables as possible, check for the variable itself
i see
just quality of life and cleaner
cuz i need both for different things (i think)
unless you need to store like a boolean outside of a function, i'd use only one there
if they're separate entirely then yeah you need both
What are the different things?
i need immuneTested so that it stores information if a character is immune or not
and i need immuneTesting so that it will tick every hour until it reaches a certain stage that it can trigger to complete the test
If you use
if not var then
Its going to check for false or nil
So thats better than actually using ==
Unless u want to look for false or nil specifically
i think for that particular situation i would want nil
seems better to keep them separate then
Just opacity
ah alr
how?
or am i too tiered to understand if that was directed at me
oh ok
of my png in my editing softwhere?
are
ware
or blender
But omar is 100 right
You will get better answer from modelling asking modeller than here asking coders
alr
my model is invisable
oh nvm
the modu was wrong
hm
still invisible
ahh
this is pissing me off
in debug?
my bad, yeah i read some more context
true
Question for million bux: How do you guy serialize and store data about specific vehicles on the map?
My trouble is that I somehow need to have control over vehicles regardless if they are currently loaded into some square or not
setVariable/getVariable is a permanent thing for objects?
Anyways still trying to figure the optimal way to even return vehicles when they load
That's the biggest issue so far.
i think the init lua function on parts is called every time they load
More specific?
Is that event or?
OnSGlobalObjectSystemInit ?
no, the lua functions the part scripts point to
like oncreate functions for recipes if you are familiar with that
perhaps I might get more attention here. No spam intended, just sharing, check it out
https://steamcommunity.com/sharedfiles/filedetails/?id=2945060824
lua function part scripts?
Recipes is abstract thing and onCreate is an event called within that layer
When vehicle is an IsoObject? that has to be constructed, but alas reliable way to create one is call /addvehicle from server that doesn't return the vehicle itself, as example.
I can create vehicle, but I don't see any proper event or hook on how to return and serialize one.
Probably have to create some event listener myself, loop vehicles and check the list size for changes I dunno
if you just want them on creation hook Vehicles.Create.Engine
but if you need it every time they load you need an Init function, there isn't one for engine in vanilla but another part's might work
Vehicles are one of the systems in desperate need of more exposing and more events triggers
the exact part is irrelevant - i just go for engines since every vehicle has exactly one and they can't be removed or anything
does EveryHours work in lua/shared?
even when i make something as basic as a print statement it doesnt do anything
with EveryHours, EveryTenMinutes etc
i think im misunderstanding the concept of the event as a whole
it should
oh my god finally yes
at the end i have Events.EveryTenMinutes.Add(testingProcess)
Question
Any way to accurately detect what kind of grass is being targeted when a player uses the Remove Grass action?
Specifically, need to be able to differentiate between long, medium, short grass 'clumps' being removed.
Does anyone knows whether adding the modifiers like "(Cooked)", "(Fresh)", "(Rotten)" etc. to food is controlled somewhere via lua code? I am trying to add a new modifier into brackets but all I am able to do up to now is this:
Would prefer if the "Poisonous" is in the same brackets as the other modifiers.
shared is the same namespace as client and server its not even divided between them and you need to do isServer() checks or etc.
The only difference is that shared is load order, shared is loaded first AFAIK
this is how i have done something similar:```lua
local metatable = __classmetatables[Literature.class].__index
local old_getName = metatable.getName
function metatable.getName(self)
if getNumActivePlayers() == 1 and Literacy.PlayerHasReadBook(getPlayer(), self) then
return getText('IGUI_ReadIndicator', old_getName(self))
end
return old_getName(self)
end
Nope . U would have to makr a table and pick the grass manually
Could you... elaborate on that?
in vanilla those tags get added during the java Food getName() method, so this is the best way of replicating that
some names get swapped during a lua function (like mushrooms being renamed to poisonous mushroom) but you can't hook into it easily (changing the name before that function does nothing, changing it after causes problems) so even if you're doing that i would recommend doing it this way
This gave me hint towards it, thank you ^-^
Now I just need to figure out which sprites count as short, medium, and large, then make arrays/tables and check each against the detected sprite lolz
okay! now i just need to squash errors!
im getting an error whenever i try to undo the results, which didnt happen before
You can look at tile zed and count off the grass . Alternatively you van use ingame tilepicker
To spawn and when you right click the copy tile will indicate the tile name
You can also install community api
I belive rightclicking will instantly show you the name
Or you can write a function that copy to your clipboard
Just dont forget that tile sheets array starts with0 and always have _ added to the sheets name
Sample my tilesheets name
Mortar
So the first sprite would be
Mortar_0
Thats the left thing on the sheet
Goodluck
Hey! New to PZ modding and ive read through a lot of things on the pzwiki Modding page and I'm a little bit confused atm. A lot of it has different sometimes conflicting info, some havent been updated in a really long time and some link to interesting but seemingly abandoned Java modding projects like Storm which if they still work I assume wont with B42 anyways if nobody is maintaining.
Is there a good single source that will get me started with fundamentals and also some of the more advanced possibilities of modding in PZ that is current? Been just reading through existing mods and base code so far.
Bonus points if it covers best practices and project structuring/build tools and such
reversing effects errors are now SQUISHED
now i gotta make sure it actually works when i change it to everyhours
Give an example of conflicting info
Thats still the same big list of stuff I was talking about. I see it links to the Fenris guide specifically which I was reading and it seemed solid
For tools
#1070858800501891172 message
Fenris is up to date
His is very active and has recently got employed by TIS
Okay thanks yeah, maybe conflicting info was the wrong way to put it, except the stuff about Java and that Storm project, idk if thats still anything
works
It was just an overwhelming amount of sources that all phrased stuff differently
The wiki is up to date
Aiteron updated it . Like a huge update.
players have to wait 5 hours until they know if they are immune or not
Yeah diving into something new always feels like that. But the thing you would want to do first is build a simple mod
Thats it
Then after that you feel a sense of achievement to push higher
Then just go for the next bigger thing
now i wanna add something that will make them increase stress while they are waiting for results
Yeah I'm not new to modding in general, I guess just used to the resources being organized a different way or somethin idk
thanks though the fenris one definitely seems like the one ill reference back to
@ancient grail right, right.
I actually have the action outputting the sprite name to console at the moment, so I'm not worried about getting the name; I'm moreso just looking at the names going: "these are not logically named at all" lolz
The names come out to e_newgrass_1_x with as you said x indicating their position on the tilesheet. They're just... all mixed together aha
and the tools
๐
Its ill-advised to try and do big or complex stuff first time around cuz you wont know for sure if what youre doing is working or not . But this is just general advise. Im mean i only said this cause you mentioned "overwhelming amount of sources"
Phrased diffrently..
In the past
our problem was lack of documentation..
Frustrated to know where we can find stuff
Now its gathered and alot of people made guides and tools
Everything is alot easier i bet
You can organize it for the community if you want..
Thats what we do . We see something we dont like we improve on it everyone benefits from it
oh yeah, I'm not making anything big off the start. Just that I expect to get comfortable pretty fast and obviously have bigger sights than just an item or two
im still new to the community ๐ maybe with experience
Between the Java docs, the wiki for the modding section, and Daddy Dirkie Dirks YouTube vids, it's been.. okayish learning, IMHO
oh yeah, lots of info available. my main thing was some is updated last 2-4 years ago so I wanted to double check
some of the forum posts etc
the java modding scene is very small, you won't be able to find much help there
I definitely am disappointed about the lack of Java modding, but it def seems not worth the hassle trying to get in to it
this server is one of the biggest resources for modding really
mmhm I figured it might be
Fun thing; age of information is somewhat irrelevant to accuracy. I've looked up stuff even in this Discord and tried it, even though t answer was from like 2016... and it worked haha... others from like not even a year ago, sometimes don't.
when i first played zomboid it was pretty different, just came back recently that was mainly why i wasnt sure how much would be accurate
but you are right
a lot of info is good for years no problem
...it also doesn't help that sometimes the things I'm looking up aren't even something anyone has done since like 2013
there's a fair bit of pervasive misinformation, so it's possible some of the stuff you tried just never worked LOL
For example, not being able to dynamically generate things upon map load...
Didn't do it exactly as I had thought, but I have a working system, minus the objects generated being interactable, but that's more of a problem with the other mod itself, rather than the generation system.
General consensus though is that it isn't possible.
And yet, here I am, doin the impossible I guess ๐
how are you doing that? loadgridsquare?
my outlook on modding is that nothing is impossible
mhm, alongside the squares ModData to check if that square was already processed or not
just depends how much work u wanna do
Thereby reducing the overhead by running that check first
the reason i often claim that that's impossible is because most people mean to literally place the objects as a one-and-done thing when the map loads, which just isn't possible
Question.
Yeah, that's true enough; though I wonder if that'll change with the b42 updates
if i have a bunch of materials that have no texture and are just colors, would that work in zomboid or would i need to create textures for zomboid to use
most things that are impossible are possible to fake
The layer itself is called a texture
The colours are your texture layer; you would export that layer with the colours as a png, and use that as the texture in the model definition.
no, i mean that i literally have zero texture files
no pngs, no dds, nothing
Wtf would i do with that, given that Zomboid requires a .png to be named and specified (its location) to be used as a texture?
Okay
How do i export all of them at once into one png XD
Well, I'm guessing that answer will be based on how your particular app you're using handles exporting layers.
Roughly speaking, you would combine them into one layer in whatever way your app allows that, and export that one layer.
I can't guide much more than that though; the few models I've made are either edits of existing ones, or, very simple ones where I only used one layer with a solid colour in the first place (stack of five stones for example).
That discussion might be better suited for #modeling
Def more people that know modeling there >.>
Dunno how many of them check this channel lolz
You export the UV right?
Ye 
How would i do that?
Why can't we have e_newgrass_short_X for example? lolz

You can if you make em
#modeling they should know
Im not a modeller sorry idk tbh
I just know that thats the process but i havent done it
Well crap... there's 90 different tiles in the newgrass tilesheet...
how does this look?
can i have some personal opinions about the panic, stress, fake infection levels, and the % of immunity and time it takes to get results?
i'll also probably do sandbox options for it in the future
and also organization. how does it look in terms of that?
tbh the server version is still a big mystery to me, I use the vanilla one more than it
the server version is specifically for adding mods to a server
what boggles my mind is that the first time I made my changes - everything worked, magically
it's not super well made cuz u cant look at previews or use presets you made in the other version
so i have to cope by giving all the mods im gonna use in the server a tag so it is easy to copy the list
everything is locally stored, would be an extra PITA to transfer files automatically but it could've been all stored in Mod Manager for the server
there is a way to transfer lists, no? its on the page
LOG : General , 1678516075848> Grass Length: long
LOG : General , 1678516080081> Grass Length: long
LOG : General , 1678516083481> Grass Length: long
LOG : General , 1678516086830> Grass Length: medium
LOG : General , 1678516088614> Grass Length: medium
LOG : General , 1678516091714> Grass Length: medium
LOG : General , 1678516096464> Grass Length: medium
LOG : General , 1678516098599> Grass Length: medium
LOG : General , 1678516101123> Grass Length: short
LOG : General , 1678516106498> Grass Length: medium
LOG : General , 1678516108514> Grass Length: short
LOG : General , 1678516110615> Grass Length: short
LOG : General , 1678516113131> Grass Length: short
LOG : General , 1678516115631> Grass Length: short
LOG : General , 1678516117531> Grass Length: medium
LOG : General , 1678516159648> Grass Length: short
LOG : General , 1678516163314> Grass Length: medium
LOG : General , 1678516166262> Grass Length: medium
LOG : General , 1678516168348> Grass Length: short
LOG : General , 1678516170515> Grass Length: medium
LOG : General , 1678516172800> Grass Length: medium
LOG : General , 1678516175930> Grass Length: medium
LOG : General , 1678516178048> Grass Length: long
i have deleted so many saves of characters standing in a pool of blood
from testing, and breaking my immunity mod so many times
I was asked to convert my treee despawn code to grass despawn code.
Yeah luckily there was a removegrass function forgot what it was called
Other wise ill be in your position like categorizing grass and not the herbal kind
mmm... all that was literally just to determine the range to be used, to give the player "grass clippings" when they remove the grass lolz
Literally a "harvest some grass" function, based on length of grass removed 
function despawnGrass(rad)
local pl = getPlayer()
local x, y, z = pl:getX(), pl:getY(), pl:getZ()
for xDelta = -rad, rad do
for yDelta = -rad, rad do
local square = pl:getCell():getGridSquare(x + xDelta, y + yDelta, z)
for i=0, square:getObjects():size()-1 do
local obj = square:getObjects():get(i)
local args = { x = square:getX(), y = square:getY(), z = square:getZ() }
sendClientCommand(getPlayer(), 'object', 'removeGrass', args)
end
end
end
end
-- paste this code on debug console and it will despawn the grass around you configure the radius
--sample:
despawnGrass(5)
It was this one
Wrote for our modding servers admin debug tools
surpassed 100 lines on my mod
big boy modder now
I thought u wre a girl ..
im non-binary. big boy is an expression
Evolved into binary code
i am now binary ๐
๐
Made an update to one part of Mod Manager that I personally needed:
https://steamcommunity.com/sharedfiles/filedetails/?id=2945221351
im thinking next i can add something like a dialogue line for when the immunity test results are in
player:Say("I'm immune!")
Hi guys, quick question, is there a way to ignore "BodyLocation"? im developing a mod that adds more cosmetics, and i want to make my own "BodyLocation" so i can prevent cosmetics to be worn at the same time but also made some compatible to be worn at the same time, hope somebody can help me!
other mods that want to add a bunch of cosmetics just use the Ring slots
it is that simple
Thank you @rancid panther i'll use the ring slots
i think Say is clientsided
ah
it's what vanilla uses for stuff like the dialogue when you try to read a book you're too high level for
just wondering, which mod adds a bunch of cosmetics? i was looking but i cant find anything, so i started developing mine, but maybe the job is already done?
though if you want it to be translation friendly (even if you don't plan on translating it yourself, other people likely will) it's better to put it in a translation file, and use player:Say(getText("NameOfTranslationString"))
idk, but the undead survivor adds feathers that go on the ring slot even tho they are on the head, and there was another mod for hair ribbons or something
ok thanks i will probably do thay
thank you!
np!
say is lcient side only
im looking for that! can i help/join the development phase? amazing concept of cctv
in No Pause, Slow mo mod
about the slow mo turning off when zombie getting too close
(that causes the current incompatibility to melee fight in slow mo) i suppose that is a game limitation hardcoded or run a code in a place that i dont manage to find yet, to reset all game speed modifiers to default value
if someone knows a clue, hint to solve that incompatibility or change that behavior, let me know please (in any ways, dm me, respond this, comment, mention me...)
A not advised solution for these situation is to reset the change OnPlayerUpdate, OnTick. Not sure if it will work here, but you could try.
what does that mean?
quantum computing vs standard computing probably. For anything else, use other channels.
Do OnCreatePlayerand OnPlayerDeath fire on the server?
Or is one or both of these exclusive to client?
If they are exclusive, you can always make a server command.
Also.. Good morning!
How to check that a player is invisible? I guess this should work...
local function isInvisible(player)
return player:getAccessLevel() == "Admin" or player:isGhostMode()
end```
Is there an easy command to get the number of days since the outbreak began?
I love how you handled that
Hey its star how are you
Can someone point me a good direction to how does server respawn the items? I want to respawn items only in a selected area.
Where can we find the mechanics for throwables
Like what if i want to make the projectile go straight ?
Use lootzed
Go debug chest . Its second to the last
Then right click on the icon
amazing mods do you have! star
can i talk to you later in dm about excrementum reuse in new concept?
i love your releases
sandbox in game
simple status edited: (you partially participation)
read while walk
mod options
always favorite
Simple Status is not really mine, I'm just leeching credits.
aah okay
@undone elbow are you still open to have excrementum reapplied in a new context? / code reused for new feature
I'm not sure what you means
can i dm you?
i was planning to talk to you, after i watch the last of us
i think today is the day
How do you guys intelissense with PZ? So you can se the functions and get the colors in the editor etc?
Visual Studio Code
IntelliJ
This is also a must
I don't think admins are necessarily invisible, but I'm unsure. I'd assume the isGhostMode bit would suffice
Thanks! I guess player:isInvisible() is the right function...
invisible is invisible to players
ghost mode is invisible to zombies
to my understanding
Ghost mode is for silence and going through objects. But in my tests toggling invisible mode doesn't work, and toggling ghost mode toggles invisible mode too.
I guess it's a kind of the game bug that may be fixed in the future.
there is a noclip mode separate from ghost mode
Do you mean lore-wise (dunno), or since the world began (getWorldAgeHours in GameTime)?
Preferably lore wise
But world age hours might help me generate an estimate
Thanks regardless
Oh I had to do this for EHE
Gametime has start month/day but you still have to grab the sandbox option info for "months since apoc" and do some math to get it accurate/supporting of that option
Let me grab the snippet
---Check how many days it has been since the start of the apocalypse; corrects for sandbox option "Months since Apoc"
---@return number Days since start of in-game apocalypse
function eHeli_getDaysSinceApoc()
local monthsAfterApo = getSandboxOptions():getTimeSinceApo()-1
--no months to count, go away
if monthsAfterApo <= 0 then return 0 end
local gameTime = getGameTime()
local startYear = gameTime:getStartYear()
--months of the year start at 0
local apocStartMonth = (gameTime:getStartMonth()+1)-monthsAfterApo
--roll the year back if apocStartMonth is negative
if apocStartMonth <= 0 then
apocStartMonth = 12+apocStartMonth
startYear = startYear-1
end
local apocDays = 0
--count each month at a time to get correct day count
for month=0, monthsAfterApo do
apocStartMonth = apocStartMonth+1
--roll year forward if needed, reset month
if apocStartMonth > 12 then
apocStartMonth = 1
startYear = startYear+1
end
--months of the year start at 0
local daysInM = gameTime:daysInMonth(startYear, apocStartMonth-1)
--if this is the first month being counted subtract starting day date
if month==0 then
daysInM = daysInM-gameTime:getStartDay()+1
end
apocDays = apocDays+daysInM
end
return apocDays
end
@thick karma
There's probbly a cleaner way to do the math part of it
using daysInMonth you also account for leap years and such (I believe), but more importantly months with 30/31/28 days
I seeeeee thanks a lot, I'll check this out
Does anyone know what grow reference is in the Hairstyles lua ?
we modified the procedural distribution to exclude an item. it does not appear in the list of possible items and yet it still spawns frequently. i only had to reroll the loot twice to get this item. what could be causing this?
Anyone got a flow chart for Timed Actions?
You're probably removing the item after ItemPicker starts, so you see the change in LootZed which uses the Lua table, but not the actual parsed Java tables.
is there a solution?
I'm assuming you're looking for the order of which things run. Not sure if there's a list out there, but here's my understanding of it.
After you new it and add it to the stack:
isValid() -> [begin() -> create()] -> isValidStart() -true-> waitToStart() -loop until true-> start() -> (while running - update() and animEvents() are called) -> perform()
There is also forceComplete() which will result in perform() being called regardless of time left
forceStop() will call stop(), stop() is also called when the action isn't able to complete after it has started for other reasons.
the begin() and create() probably shouldn't be touched, why i wrapped those in brackets.
hope that makes sense. ha
forceStop() will call stop()
Thank you, that exactly what I needed
So something like this: TimedAction flowchart
yup!
anyone know the translation naming format for when i want a player to say something?
when i did
player:Say(getText("UI_immunetrait_Messages_Immune"))
and changed that to say something in EN, it still made them just literally say "UI_immunetrait_Messages_Immune"
there must be some kinda naming conventions cuz sometimes not following the naming convention will end up with the file or translation not being used
This is what I have for one of my mods.
self.character:Say(getText("IGUI_PlayerText_FSDissectEureka" .. (ZombRand(3)+1)), 0.55, 0.55, 0.55, UIFont.Dialogue, 0, "default");
The ZombRand is just to select between IGUI_PlayerText_FSDissectEureka1, 2, and 3
what is ur local definition for self.character
This is in a timed action, so it's just the player object
ah
i'll try IGUI_PlayerText then
or was it something that didnt matter for you? what does your translation file look like?
IG_UI_EN.txt:
IGUI_PlayerText_FSDissectEureka1 = "Hmm, I see...",
IGUI_PlayerText_FSDissectEureka2 = "Thank you for your contribution to science.",
IGUI_PlayerText_FSDissectEureka3 = "Your death wasn't in vain.",
}```
when defining a new item, is it possible to give it an empty space as a display name in it's script.txt entry?
I've never tried but you could try a non-breaking space
dang, dsicord ate it
If the game isn't letting you use a space I'd try this instead
https://www.compart.com/en/unicode/U+00A0
U+00A0 is the unicode hex value of the character No-Break Space (NBSP). Char U+00A0, Encodings, HTML Entitys:ย ,ย ,ย , UTF-8 (hex), UTF-16 (hex), UTF-32 (hex)
No clue if it'll work
technically, no. You need to use setDisplayName in Lua, the parser ignores any value you out in that line.
that moment you get a 3% gain in execution speed and wonder if its even worth it.
i might try an alternative approach to the immunity thing
as in immune to Z?
yes in my mod
cheat mod I use basically just has it on a constant event curing ya
not that Im saying thats good either..... 
i made it so they are technically not immune until after they wait for the results of a bite
but i could make it so they are already immune the whole time but won't know until they are bitten
for immersive reasons
me I'd look see if making an event when they bit if that was possible
then ya can work it from there.
i already made a working mod that does this all, but you gain immunity 8 hours after the bite, rather than on spawn
meaning that even if you would have ended up immune, if u die before the results, you will become a zombie
and you also have infection symptoms the whole time, meaning that once you become immune u lose the symptoms and the infection
well makes sense immunitt isnt something instant
hmm ur right
the other thing was that it would be easier to implement a doctor test if they already have a hidden immunity tag
Does there happen to be more reference sheets like this? As someone who is new to PZ modding I think this would be a great help!
Not that I know of, I made that jsut now while working on a mod
when/if i were to add that
dunno how much of a help but on that front check out superb they got a healthcheck thing you can do to the NPCs
Could be good to add it to the wiki somewhere
all good I been digging in .class's
Yea I was thinking that. I'd want to fancy it up a bit and prove the flow with a test first though.
If for whatever reason you make more, is it fine if you share them here? If not, that's fine, too. Just think lots of people would benefit.
Ye I'll share!
Does anyone know of a way to detect when/what a player is eating?
Eating is a timed action, so you can override a function of the timed action to check/do things. e.g.:
function ISEatFoodAction.perform(self)
if self.item:getType() == "Whatever" then
--Do Something
end
originalEatPerform(self)
end```
I'd like to find a way to create a mod for zomboid where I can create random events like the car crashes, random tents on the side of the road n shit but idk where to learn how to do that from
would that be done through mapping?
Thank you!
Is it possible to change a script.txt parameter for a single item of that type? For example, for a specific food item which is already in game, I would like to change the script value
IsCookable = TRUE
to
IsCookable = False
without affecting all other items of that type? One idea would be trying to use smth like item:doParam(string) but this command seems only be defined for the class "item" and not for "InventoryItem".
InventoryItem:setIsCookable(false)
there's no doparam equivalent and some rare values are just read directly from the Item but most things have a setter
i wouldn't expect a lot of stuff like this to be persistent though
oh thanks! I already checked the javadoc searching for such a command but must have overlooked this. now I see! many thanks!
persistence isn't an issue for me. I use it just temporary and restore the original value shortly afterwarts.
I'm having an issue embedding images into the Steam Workshop mod page description, specifically the mod permissions images with Spiffo. Does anyone have an updated version of what the embed should be?
all of my embedded images appear as broken images (the broken image icon specifically)
it seems that image embeds have to be from tenor or imgur. That's so stupid
or not. I'm so confused
Okay, I solved this dumbass problem myself. Here is an Imgur link with all of the images and their Steam Workshop embeds ready for you to use.
https://imgur.com/gallery/YI54Od0
Hello, what line of script does spawning percentage customization in mods
distribution files
in LUA?
in \media\lua\server\ for items and \media\lua\shared\ for vehicles
nvm\items\ if it is items and \vehicles\ if it is vehicles
yes, but I recommend putting --[[ at the top of the file and ]] at the bottom to comment them out (makes them useless)
you still need the file to exist if you are making a patch
like this ?
yes
got it thanks.
ItemSearcher modes ๐
Do you think it'd be possible to include regex searches? ๐คฃ
yay:
make your search method/string a public value then one can set it on the command line 
how would I get a list of all the safehouses on the map and who owns them
Can anyone confirm if the devs have in fact stated they plan to add archery to the base game?
I'd rather not spend too much time on working on parts of the mod I'm doing now. if I can skip archery-related stuff and have them do most of the work instead :p
i don't know if they've explicitly stated it but it'd seem like a really silly omission with b42's goals
I mean, that's a fair point.
Welp, I'll adapt one of the existing mods for now for my purposes, and drop archery support entirely once they have it in the base game; or alter it if needed, when that drops.
Fixed KI5's mods to only use one crafting category:
https://steamcommunity.com/sharedfiles/filedetails/?id=2945800750
question
how do you get custom gun sounds to work
i have these all set up but it seems to be ignoring only the fire sound
no errors in my log regarding the gun itself
on a side note, its transparent, but only on one side. this isnt the case in blender, so im not sure whats happening here. does anyone know a fix for that, as well?
the game seems to be ignoringa ll my custom souinds
i dont understand why???
i made a gun mod a while ago and the sounds on that one work, so i genuinely dont understand why it would be deciding to ignore my gun sounds. >-<
i rewrote my mod so players are now immune or not immune on spawn, but they will be fake infected if they are bitten, until they examine the bite for long enough
when i get time i can create an actual action to make them examine the bite rather than just standing there for 4 hours waiting
k i fixed transparency
was a texture size error
now does ANYONE know why the sounds aren't working? ._.
for reference
thats what it should sound like
and then this is what it does sound like: ^
that and it seems to error when i shoot zombies
but they still die
so theres the two things i need answers too ๐ญ




