#mod_development

1 messages ยท Page 506 of 1

grizzled grove
#

the game already has a system for this, but you'd need to add shaders for film grain or whatever. It's how they set color grading and light changes for weather and uch

old blade
#

i see...

grizzled grove
#

Apparently people used one of the cheat mods to do this? I remember learning that was a thing when i first released my tile pack

old blade
#

how would you add shaders like that?

abstract raptor
#

but it couldn't do modded tiles unless you copied them

grizzled grove
#

not totally sure, tbh. There's a folder somewheres in media\ with shader files, but they're all associated with java code as well.

abstract raptor
#

I want something like the tilespicker but it allows you to place a tile just by clicking on t

old blade
#

tfw no java / lua experience

#

god it sucks having so many ideas that i just cant realize bc im too busy w shit to learn how to code

abstract raptor
#

I'm legit tho, I have $100 I'm willing to commission this mod with ๐Ÿ‘€

tacit ermine
#

there's no supported path to it, I'm just straight patching existing bytecode to make it run my code

chrome furnace
tacit ermine
quasi geode
#

<!-- Generated by javadoc (1.8.0_45) on Mon Jul 13 17:47:43 ADT 2015 -->

chrome furnace
#

Perfect, also hello Fenris.

abstract raptor
#

anybody? no takers? Plzzzz

opal wind
#

are you sure you should post this here? maybe you can try to DM the modders about buying things ๐Ÿ™‚

abstract raptor
#

Yeah I posted here cuz this is where all the modders mingle

opal wind
#

the mingle to help each other and learn mostly.. but anyway im not sure how to do what you are asking anyway

#

i woud take the 100 if i knew lol

abstract raptor
#

lol so

#

Basically what I'm asking for

#

is a sort of "creative mode" ala more build

#

But allowing you to place any tile

#

even modded ones

opal wind
#

yes yes i know what you are asking for i dont think its even possible, the other players on the server need to have have those files too

abstract raptor
#

No, it's been done before with necroforge, but it required you to clone an existing tile

opal wind
#

you cant just 'create' a item and put on a server without the ohter players having those models too

abstract raptor
#

I think you're misunderstanding

opal wind
#

i guess lol

abstract raptor
#

I'm talking about TILES not models

#

and they would be available since the server has them

opal wind
#

anyway im sorry i wish i could help ya, im kinda new on PZ modding, but if someday i learn it i let you know

#

you said there was a mod that did that, did you try to contact this necroforge guy?

#

maybe he can help you

abstract raptor
#

IT's been discontinued

opal wind
#

yes you said that, but did you try to contact him privatly?

rigid dock
#

Can we get a mod that lets at night time virals spawn from dying light? That would make for some awesome game play.

#

Are there any mods that add other kinds of zombies?

full snow
rigid dock
#

i want the threat of the odd sprinter all the time lol, but that is interesting

old blade
#

sometimes people dont want to be contacted privately about mods they make or have made

opal wind
#

i dont care, thats why i sugest him, period.

#

plus the person is offering $100 bucks im pretty sure necroforge would not turn his back on cash

lapis stump
#

do I need to do something special server side to change a players mod data ?

rigid dock
#

Can somebody make me a simple Hobby mod please?
I want one called Rat Catcher, +1 short blunt, +1 Sneaking, +1 Nimble, +1 Foraging.

And one called Rat Hunter, +1 short blunt, +1 Sneaking, +1 Nimble, +1 Sprinting.

Description for both- That's Charlie Work!

errant meteor
#

Sussy Baka

shy hearth
#

big dodgy

red panther
#

Are there any good gun expansions for multiplayer to be played with friends?

#

Looking for interesting options but not over the top militaristic

shell geode
red panther
#

Not at all, an automatic crossbow never crossed my mind. Having crossbows would be nice

#

Iโ€™ve heard of this Kitsuneโ€™s Crossbow mod and itโ€™s no longer on the workshop?

sweet idol
#

hello, i have a problem. i re-installed the game, and now my mods doesnt appear in my mod apart in PZ, but i am still suscribed to them

shell geode
# red panther Not at all, an automatic crossbow never crossed my mind. Having crossbows would ...

When you make non gunpowder weapons at home, you are usually restricted to single shot contraptions or manual repeaters at best. But of course the ultimate goal is to build a full auto machine gun style weapon!

That is by no means very easy. Muscle powered weapons are simply not quick enough for a true Brat-a-tat action. Gas powered engines are...

โ–ถ Play video
#

this would be so perfect in pz lol

undone crag
#

That crossbow may do too little head damage I imagine.

flint prairie
#

How can I add spawnpoints for custom maps on my dedicated server?

acoustic siren
#

hey @cyan halo did you figure out how to do it?

lapis stump
#

do I need to transmitModData() after changing player mod data ?

nimble warren
#

Hey all. Is there currently an NVG mod that works in MP? I've got the NVGs from the Brita pack, but can't seem to operate them.

craggy furnace
#

out

patent lake
#

How do I deal with special characters in translation of mods?
For example, I tried to translate the myclothingui mod and letters like ร‡, ร‰ are being shown as รƒ

agile swallow
#

Does anyone know why in game there isn't a space between spear and with when my display name is this?

DisplayName = Spear With Glass Shiv,

ebon skiff
#

Hey everyone, so i have quite a lot of mod installed on my server and it's just a hassle to restart my server everytime there's a mod update. i heard around that to mitigate this you can pack all the mod together to create one single mod. The problem is how can i do that ? can somebody teach me, i looked it up but can't find any tutorial.

opal wind
#

im doing thundercats cosplays now lol

opal wind
rigid dock
#

Can somebody make me a simple Hobby mod please?
I want one called Rat Catcher, +1 short blunt, +1 Sneaking, +1 Nimble, +1 Foraging.

And one called Rat Hunter, +1 short blunt, +1 Sneaking, +1 Nimble, +1 Sprinting.

Description for both- That's Charlie Work!

opal wind
#

you mean trait mod?

#

i did not mess around with new traits yet, but since you dont need blender or photoshop it might be real easy to do it

#

you talking about traits right?

rigid dock
#

ya!

#

Hobbys are things that are like jobs

#

jobs give the hobby, and hobbys are listed under traits

#

wiki lists them seperate

opal wind
#

dang i never notice that lol

rigid dock
opal wind
#

i will look into it someday prb, could not hurt add 2-3 new traits on my mod

rigid dock
#

you could basically just make it a trait really not sure theres a difference

#

i was thinking they could just modify the hunter one

#

rename and swap the 4 bonuses

#

you think you could make it?:P

opal wind
#

nah changing vanilla stuff is not nice, its better just add new traits/hobbies

#

yeah sure

rigid dock
#

Thanks a ton!

#

i was real annoyed at the lack of traits giving a +1 to blunt in particular lol, getting the other traits i like is nice

#

my friend in MP already has carpentering and mechanics so kinda waste for me. and i like the sneaky bonk build:P

opal wind
#

you know how to find the mods itself on your PC?

#

inside those 20020202 number folders i mean

rigid dock
#

not sure

#

i know little about modding:/

winter bolt
rigid dock
#

i can find them on workshop and put them in folders if need be

winter bolt
dark smelt
#

does anyone know how save/load data for a mod? i'm guessing register the save/load with OnServerStartSaving and OnServerStarted events respectively

opal wind
rigid dock
#

ya!

#

i saw one

#

let me get it

opal wind
#

DM me later i will go eat now

#

let me know

rigid dock
#

isnt your pic DBZ ginyu force? lol

opal wind
#

yeah lol

#

capt Gyniu

#

i made 400 dragonball mods for Sims 4 lol

quasi light
#

Anyone managed to track down adding new colours for the map system? (New pens with matching colours that can be applied to markers)

opal wind
#

hum prb nobody tried that yet

quasi light
#

Yeahh was figuring as such.. Spent the past 2 days hand drawing every symbol I could think of in vanilla style for the map, would love to finish off the mod by adding a white (To mark industrials/darker areas) and green (for ticks! :D).. Just found some stuff I'd missed in the pencil.x file so cross your fingers for me I guess ๐Ÿ˜„

warped night
#

That would be a neat little QOL mod

teal slate
#

So with my habit of trying to find and fix bugs, a lot of them would require modifying the vanilla Java code to test potential causes and solutions. Is there a guide to doing that? (For my own personal use in testing, not for redistribution or making mods.)

#
#

@weary matrix you might know, since you're familiar with java modding? Or at least more familiar than I am.

#

The most I've managed to do is rewrite the bytecode in a class file to change a false to true, so.

tacit ermine
weary matrix
#

@teal slate why not recompiling?

lapis nacelle
#

Someone know a mod that make unbreakable the tools?

weary matrix
#

@teal slate just do something like this: javac -cp /path/to/your/pz/install/folder Radio.java or something

teal slate
#

Nice, that works

#

Didn't know if there were any caveats

weary matrix
#

@teal slate sometimes it's painful cause you have to fix the broken java code from the decompiler, can be tedious for let's say LuaManager

teal slate
#

yyyyeah

weary matrix
#

but nothing too hard, it's mostly annoying

teal slate
#

the tool i had to edit decompiled code and bytecode in-place only worked for bytecode

#

recompiling will pppprobably be okay

weary matrix
#

when there's lambda too

teal slate
#

package not found

#

should i be compiling it against the pz install or the decompiled source

#

oh right

#

they use uhhh, java 15?

weary matrix
#

oh

#

sorry

teal slate
#

Java 13 uses major version 57

#

java 13

weary matrix
#

you also need to supply the jars

teal slate
#

aren't the jars in the pz install?

weary matrix
#

so assuming your path to zomboid install folder is /steam/ProjectZomboid just try this: javac -cp /steam/ProjectZomboid/*:/steam/ProjectZomboid YourClass.java

#

yes they are but jar file have to be explicitly specified, or using a wildcard

#

but java won't try to list the folder to find jar

teal slate
#

ah

#

exact same errors

#

wait

#

.class?

weary matrix
#

ah no sorry

teal slate
#

hm

weary matrix
#

hah

#

also you're using a crap OS that decided to change every standard available ๐Ÿ˜‚

teal slate
#

i noticed

weary matrix
#

so for example on windows : is not a correct path separator because of the drive

teal slate
#

i like Using Software though

#

aghhhhgdfggdfgdf;h of course

weary matrix
#

so you have to use ;

teal slate
#

and now i need to use java 13

weary matrix
#

really? ๐Ÿ˜ฎ

teal slate
#

since this is the error i'm getting now

#

yeah

#

rather

#

java 15

weary matrix
#

aaah

teal slate
#

Java 15 uses major version 59

weary matrix
#

just do -target 13

#

or something

#

hold on

#

mm no

#

@teal slate try this --release 8

teal slate
#

same

#

will just upgrade to java 15

weary matrix
#

ah it's really your java that is old ๐Ÿ˜‚

#

I thought it was the other way around

teal slate
#

i did too :P

#

then i realised

teal slate
weary matrix
#

@teal slate also I'm not sure but you might want to set that --release flag at the beginning of the command

teal slate
#

ah, good news

#

the only errors left are the ones i made

#

i swapped var7 and var6 in my code

weary matrix
#

nice ;D

#

it might hide other errors though

#

but at least it probably means you got passed the import step which is good

#

Going to bed, cya

teal slate
#

thank you for the help!

#

looks like it's probably working.

quasi light
#

Took longer than I would have liked but I finally found it...

#

Incoming QOL map marker mod ๐Ÿ˜„

snow jolt
#

so how do i access the mod making thing

shy hearth
#

unless you're adding just basic recipes/items you'll need to learn a bit of lua and get to grips with zomboid lua events to get started

cyan halo
#

How are you all testing server/client interactions in-game? do I setup a server with my mod? do I host a game from menu and start another client? (I tried the latter but every time I join it gives "Already Authenticated")

cyan halo
#

Nevermind, I got it working. You need to run PZ in non-steam mode if anyone is curious

feral musk
#
    {
        DisplayCategory = Household,
        Type    =    AlarmClock,
        DisplayName    =    Alarm Clock,
        Weight    =    0.5,
        Icon    =    AlarmClock,
        AlarmSound = AlarmClockRingingLoop,
        SoundRadius = 10,
        MetalValue = 25,
        WorldStaticModel = AlarmClock,```
Is there anyway I can edit how long the clock alarm will ring?
cyan halo
#

OnConnected and OnDisconnect do nothing serverside and clientside??

zealous wing
# quasi light

FWIW Soul Filcher's Relaxing Time also adds green colors to the map.
When it works that is. ๐Ÿ˜›

weary matrix
cyan halo
#

mp

#

I have a server running with my mod

#

super simple setup

#

but it never gets called

cyan halo
#

I've had to do it a hacky way

#
local players

local function OnConnected(player)
    print("OnConnected:", player)
end

local function OnDisconnected(player)
    print("OnDisconnected:", player)
end

Events.OnTick.Add(function()
    if players == nil then
        players = getOnlinePlayers():clone()

        for i = 0, players:size() - 1 do
            OnConnected(getOnlinePlayers():get(i))
        end
    else
        for i = 0, players:size() - 1 do
            local player = players:get(i)

            if not getOnlinePlayers():contains(player) then
                OnDisconnected(player)
            end
        end
    end
    
    for i = 0, getOnlinePlayers():size() - 1 do
        local player = getOnlinePlayers():get(i)

        if not players:contains(player) then
            OnConnected(player)
        end
    end

    players = getOnlinePlayers():clone()
end)
#

@acoustic siren if you're interested

quasi light
zealous wing
#

IDK, if you just added new colors to the map it'd still be worth it. Relaxing Time adds a bunch other stuff too.

cyan halo
#

Does the server not know what is in a player's inventory??

#
for i = 0, getOnlinePlayers():size() - 1 do
    local player = getOnlinePlayers():get(i)

    local items = player:getInventory():getItems()

    print("items", items:size())
    for i = 0, items:size() - 1 do
        print(items:get(i))
    end
end

prints 0

atomic stream
#

Do I have to place my mod folder in Zomboid's mod folder? Cuz it is not showing up for some reason. I need to test my mod

quasi light
#

@zealous wing I meant I can just look at how they achieved it ๐Ÿ˜› I plan to do a "Vanilla map markers expansion" which will only be new markers drawn to look like vanilla ones, i thought the green and white pens would be a nice addition. So more lightweight/streamlined than what others are going for - less a random box of stuff.

thin hornet
#

Anyone having trouble loading into server with -Ddebug?
i get that error:

java.lang.RuntimeException: Cannot override modID. ModID=pz-vanilla
WorldDictionary: Warning: error occurred loading dictionary!
ERROR: General     , 1641381100007> ExceptionLogger.logException> Exception thrown zombie.world.WorldDictionaryException: WorldDictionary: Cannot load world due to WorldDictionary error. at WorldDictionary.init line:255.
weary matrix
thin hornet
#

@weary matrix no i mean like, my client trying to connect to the server (as admin access account)
After the loading it just crash

#

well not crash but

#

I used to be able to join my server in debug mode but its been a while since i had it enabled

weary matrix
#

Nothing special in console.txt?

thin hornet
#
LOG  : General     , 1641381099904> WorldDictionary: Checking dictionary...
LOG  : Network     , 1641381099970> Delay processing packet of type IsoRegionServerPacket while loading game
LOG  : General     , 1641381100001> ===================================

ERROR: General     , 1641381100003> java.lang.RuntimeException: Cannot override modID. ModID=pz-vanilla
ERROR: General     , 1641381100003>     at zombie.scripting.objects.Item.setModID(Item.java:3223)
ERROR: General     , 1641381100004>     at zombie.world.DictionaryDataClient.parseCurrentItemSet(DictionaryDataClient.java:37)
ERROR: General     , 1641381100004>     at zombie.world.WorldDictionary.init(WorldDictionary.java:213)
ERROR: General     , 1641381100004>     at zombie.iso.IsoWorld.init(IsoWorld.java:2296)
ERROR: General     , 1641381100004>     at zombie.gameStates.GameLoadingState$1.runInner(GameLoadingState.java:260)
ERROR: General     , 1641381100004>     at zombie.gameStates.GameLoadingState$1.run(GameLoadingState.java:217)
ERROR: General     , 1641381100005>     at java.base/java.lang.Thread.run(Unknown Source)
LOG  : General     , 1641381100005> WorldDictionary: Warning: error occurred loading dictionary!
ERROR: General     , 1641381100007> ExceptionLogger.logException> Exception thrown zombie.world.WorldDictionaryException: WorldDictionary: Cannot load world due to WorldDictionary error. at WorldDictionary.init line:255.
ERROR: General     , 1641381100007> DebugLogStream.printException> Stack trace:
zombie.world.WorldDictionaryException: WorldDictionary: Cannot load world due to WorldDictionary error.
    at zombie.world.WorldDictionary.init(WorldDictionary.java:255)
    at zombie.iso.IsoWorld.init(IsoWorld.java:2296)
    at zombie.gameStates.GameLoadingState$1.runInner(GameLoadingState.java:260)
    at zombie.gameStates.GameLoadingState$1.run(GameLoadingState.java:217)
    at java.base/java.lang.Thread.run(Unknown Source)
LOG  : Network     , 1641381100100> Delay processing packet of type IsoRegionServerPacket while loading game
#

I dont have any mod with id pz-vanilla im confused xD

weary matrix
#

Corrupted save maybe?

thin hornet
#

as an admin, i do skip checksum

#

without -Ddebug set it works

#

ill try without workshop dir

#

meh same error

#

guess that could be because i need the default admin account with username admin

weary matrix
#

Try to reset your user profile

cyan halo
#

Why does server not contain inventory information for players?

weary matrix
#

On client side

cyan halo
#

@weary matrix you replying to me?

thin hornet
#

@cyan halo if it doesn't it could be because player are saved on the client machine.

cyan halo
#

That's super confusing

weary matrix
cyan halo
#

and unsafe

thin hornet
#

@cyan halo i feel your pain lol

cyan halo
#

I thought at least some things would be authoritative

thin hornet
#

lot of thing is not safe in the pz

cyan halo
#

but this means I could edit my own save file for a server and get many items

#

I'm trying to make a mod so that when a user goes offline they become lootable in a sleeping position

thin hornet
#

if i had one wish it would be that it is rewritten with authoritative in mind. But that would mean too much changes and work I believe.

#

it been this way since mp in old pz

cyan halo
#

wow

thin hornet
#

i do think there is some protection (encryption) applied

#

for save editing

willow estuary
#

Players aren't saved on the client anymore? That was b40 MP.

weary matrix
willow estuary
#

Well, maybe a copy of the players is saved on the client.

cyan halo
#

@willow estuary I can't seem to get the server to print items in a player's inventory

thin hornet
#

well thats how it was if im not mistaking. But i do not know if it changed today.

#

havent looked at that yet

cyan halo
#

but it works on client

willow estuary
cyan halo
#

@willow estuary if that were the case, the server would load the inventory and send it to the client, and I'd be able to access what's in a players inventory

hushed cloud
#

anyone have a compatibility patch for britas and scrap guns for disassembly?

cyan halo
#

@willow estuary even picking up items and the server still sees nothing, seems this is handled completely clientside

#

that sucks tbh

willow estuary
#

I don't even really know what you're trying to do here, but it's not something I can help with?

I was just clarifying that in b41 MP, vs b40, the player data should be saved on the server, and not the client? Albeit there may be a player side copy.

thin hornet
#

@willow estuary I've had some player roll back after restart.
Only one player was rolled back on all the players.
Not sure if it server sided but doesn't look like somehow.

willow estuary
#

But if you're trying to access the player data of offline players as if they were a player, that shouldn't work as that player shouldn't be instanced, they just exists as a record on the server and not as an actual player object until the player connects and a player object is made using the recorded data.

ebon peak
#

is there a bug with loot moving right now? after some time in game i can't drop big stacks of stuff, just drops like 20 , and i cant loot stuff

atomic stream
#

Anyone knows what this means guys?

#

ignoring invalid ItemPicker item type

#

Why can it be wrong item type?

willow estuary
# atomic stream ignoring invalid ItemPicker item type

Unless it's associated with a STACK TRACE, "red numbers", or crashes, those sort of Error/Warn messages relating to "itemPicker", "missing translations", "tildef must be from 10-1000", or "missing cont distribution for" can almost always be ignored.

It's just "developer nagging" regarding something that might have been an oversight in the assets, and not indicative of anything that generates actual errors, crashes or other significant issues.

atomic stream
#

Thanks, it was my fault about the id of the mod. I'm trying to get the game's feel on modding currently ๐Ÿ˜„

weary matrix
#

@teal slate Hey, any luck checking out that bug?

willow estuary
# atomic stream Thanks, it was my fault about the id of the mod. I'm trying to get the game's fe...

Oh! If you're trying to mod, and not a mod user, I can give a more detailed explanation? Sorry, I'm used to dismissing concerns about those messages, but there is one instance where it could be relevant when modding? ๐Ÿ˜„
Usually, IME, that invalid itemPicker type message comes up when an item distribution table is consulted, and there's an item in the table that doesn't exist in the game instance?
This happens in vanilla with older, removed items that are still in the tables, for example.
So, if you are making a mod, and it's related to your item, then it may indicate that your item script might not be loading; that there's an error in the item name, or the module, and such?

atomic stream
# willow estuary Oh! If you're trying to mod, and not a mod user, I can give a more detailed expl...

Haha ๐Ÿ˜„ I can understand the automated system. I just started trying out adding a new item. Actually I saw somewhere from forums someone wanted a swiss army knife, so I went ahead and tried creating it. That error was because I have changed the id of the mod but forgot to change it on the item txt file. Right now I can see it in game.

Another issue I'm seeing rn is, I could make it count as a screwdriver together with the function of a can opener however, multiple tags or attachmenttype s seem to have issues. I'm thinking if adding a dummy invisible item on the inventory could work?

willow estuary
atomic stream
#

however adding another line did

willow estuary
#

    item SAK
    {
        
        Tags = Screwdriver;CanOpener;Corkscrew,
atomic stream
#

ahh

willow estuary
#

Look at how vanilla does it for stuff like that ๐Ÿ™‚

atomic stream
#

didn't know a multipurpose item existed

#

do you know by any chance what tag does slice breads

willow estuary
#

That doesn't have a tag yet ๐Ÿ˜„

#

In regards to making a Tag and reciper overhaul for slicing bread and such, I would just wait, I'm sure better use of the tag system is gonna be one of the things they touch on when they get back regular updates and polish to b41?

rich wagon
#

Hey there, hope I'm not interrupting your discussion... I'm trying to freely build (non carpentry or metalworking stuff) as an admin on a MP server, but I'm not sure if it's possible in the base game... I've looked through the game files and I'm kind of stuck. I wondered maybe somebody found a solution to this ? Is there a mod I'm missing that would allow me to do what I want ? Thanks in advance !

atomic stream
willow estuary
#

It's not that great right now ๐Ÿ˜„

drifting ore
#

anyone here tried the True music mod on MP?

atomic stream
tight blade
#

Is it actually possible to modify a player's speed/damage?
I've been trying with a method of mine, but it either doesn't work or too unnoticeable even despite trying to set them to insane values.
Tried "_target" to manually apply sethealth and well, damaage zombies more but that doesn't seem to work.

Doesn't seem any workshop mods have achieved this goal either so I'm also doubting it, but I want to hope it's possible to do for traits and such.

fleet smelt
#

now, you could make a function around the following line:

getPlayer():getPrimaryHandItem():setMinDamage(3);

Where you get the damage of the item in hand(s), then multiply it by whatever you want it to be increased by.
could possibly do it on item pickup, or item equip

tight blade
#

I was about to ask if I was going to have to modify EVERY item individually, but I actually forgot the primary hand item was a thing in the code.

fleet smelt
#

as for speed, the sneakers give an increased modifier, i'd find what code causes that, then do the same as above and increase it depending on footwear

fleet smelt
tight blade
#

As funny as it may be, yeah.
Although it would test if player has the trait, just after if it's true the player has it I have to put everything in it.

fleet smelt
#

so i'd hook it into on equip, characters get a modifier, then it pulls that modifier and applies it, and on unequip does the opposite, so it sets the items damage to damage/mutliplier, rather than damange*multiplier

teal slate
weary matrix
#

sweet

tight blade
#

Would getPrimaryHandItem apply to double handed weapons? Or would I use "getUseHandWeapon"? Or something along that line

fleet smelt
#

I don't know

weary matrix
#

@teal slate since you seem to be in the mood for bug fixing, what about this one? ๐Ÿ˜„

Error with packet of type: 56 for <player name>.
java.lang.NullPointerException: Cannot read field "OnlineID" because "this.player" is null.
   at zombie.network.packets.SyncClothingPacket.write(SyncClothingPacket.java:85).
   at zombie.network.GameServer.receiveSyncClothing(GameServer.java:4253).
   at zombie.network.PacketTypes$PacketType.onServerPacket(PacketTypes.java:290).
   at zombie.network.GameServer.mainLoopDealWithNetData(GameServer.java:1535).
   at zombie.network.GameServer.main(GameServer.java:797).
tight blade
#

Just the primaryhand will do for now, but ensuring it can apply to all weapons in general would be ideal.

teal slate
#

Oh god it's networking. Maybe, I'll take a look

weary matrix
#

the more player the more frequent the bug occur

teal slate
#

Could be something like uh, the reason radios all show up as 0.-1MHz in chat

#

player just doesn't get set sometimes

#

๐Ÿค”

#

time to get coffee and check the code

weary matrix
#

wondering if this bug was always there or introduced recently

teal slate
#

I looked into the heavy item duplication bug and couldn't make heads or tails of why it happened

mint sphinx
#

is there a way to remove the debug timer while in debug mode? want to see if the timer feel correctly when debugging the code ?

teal slate
#

Netcode and inventory code is cursed tbh

weary matrix
#

I'd say spaghetti cursed ๐Ÿ˜‚

teal slate
#

Spaghetti code is something I'm used to, as an SS13 fork dev

#

I've worked on code that's old enough to drink.

weary matrix
#

heh

teal slate
#

We celebrated the 10th birthday of some code on the day we ripped it out

#

Anyway, biggest issue is probably actually a lack of documentation and the awful decompiler var names

#

The one I used doesn't even do stuff like int1, string1, etc

mint sphinx
teal slate
#

Just var1, var2, var3

weary matrix
#

I replace the shitty names with a name based on the type

#

still not that much helpful for primitive types, but for the rest it's quite helpful

shrewd patio
#

guys what are your suggestions for top hardcore, hard af, no kids allowed, kick in the balls mods that sends dark souls experience to bed?

teal slate
#

I haven't

teal slate
balmy ravine
#

If anyone is playing with the 'family manor' mod. Where the hell is the key from this house?

teal slate
#

also, vanilla or modded?

weary matrix
#

and I'm also pretty sure it's related to the bug where the player is missing sometimes

weary matrix
balmy ravine
#

ty

teal slate
#

aaaaaaaagh there's no windows binary for beautifuljava is there

mint sphinx
#

@weary matrix do you know if there any lua script or is it the zomboid server there look at the variable "sandbox_fuel_optionN"

teal slate
#

wonder if i can run it with git bash lmao

mint sphinx
#

where n is the N is the option from 1 to 8

teal slate
weary matrix
#

@teal slate it's a not a binary, it's just bash script, and yeah you should run it with git bash, that's what I use for testing it on windows

#

@mint sphinx good question

teal slate
#

i realised that maybe it wasn't a binary, but the lack of a .sh extension threw me off :P

weary matrix
#

@teal slate well my thought was most windows users don't make the difference between a .txt and .exe so... ๐Ÿ˜‚

teal slate
#

wowwwww

#

and how many of those most windows users would be running BeautifulJava? ๐Ÿ˜ค

weary matrix
#

@teal slate but it's in the README.md anyway ๐Ÿ˜›

teal slate
#

i did, but i just assumed that because of your apparent disdain for windows, you just didn't include a binary :P

weary matrix
#

@mint sphinx well I don't have that variable anywhere

teal slate
#

i tried it in git bash anyway

#

maybe?

weary matrix
#

@teal slate well I think windows is a crap OS but I also know most people around the world use it, and I wanted my tools to help pz modders, most of which use windows too

#

and you can't imagine how hard it is to write bash scripts that runs on Linux, Mac, and Windows ๐Ÿ˜‚

#

I got the base script working for linux in a few hours, then it took me like two extra weeks to make it work properly on windows and mac

teal slate
#

usually people just provide two or three separate scripts :P

weary matrix
#

@teal slate but where would be the challenge? Also I would have to maintain 3 separate scripts

mint sphinx
#

@weary matrix thx anyways hmm also i think there is bug in it and couldnt just find out where the thing is set at all. going to report it and then they can try to have a look at it xD

weary matrix
mint sphinx
#

the reav variable name im looking for is this Sandbox_FuelStationGas_option7
which i only can find in the translate.txt and i think the code somewhere have the enum swapped around for Sandbox_FuelStationGas_option7 and Sandbox_FuelStationGas_option8

weary matrix
#

hmm maybe you meant Sandbox_FuelStationGas_option as suggest my JadeLavenza?

#

this one I have

#

oh ok

#

let me check

#

@mint sphinx it's defined in the scenario/sandbox settings, look:

$ luagrep -R FuelStationGas
client/DebugUIs/Scenarios/Multiplayer.lua:        SandboxVars.FuelStationGas = 4;
client/OptionScreens/ServerSettingsScreen.lua:                    { name = "FuelStationGas" },
shared/Sandbox/Survival.lua:    FuelStationGas = 4,
shared/Sandbox/Survivor.lua:    FuelStationGas = 4,
shared/Sandbox/Apocalypse.lua:    FuelStationGas = 4,
shared/Sandbox/Beginner.lua:    FuelStationGas = 7,
shared/Sandbox/Builder.lua:    FuelStationGas = 4,
shared/Sandbox/FirstWeek.lua:    FuelStationGas = 5,
shared/Sandbox/SixMonthsLater.lua:    FuelStationGas = 4,
mint sphinx
#

yea also the only place i can find it more or less which annoring. because i thing fuelstationgas = 6 do what fuelstationgas = 7 should do and inverse..

weary matrix
teal slate
#

constantly reminded of how intellij is the worst thing ever ๐Ÿ’€

teal slate
#

it's incredibly, incredibly slow

#

slower than eclipse, for sure slower than vsc

weary matrix
#

ah yeah

teal slate
#

and my new computer parts were delayed to thursday

#

so i just have to deal with it

mint sphinx
#

like 6 give infinity fuel in the pump pumps and 7 give full fuel in the gas pumps

weary matrix
teal slate
#

it seems less slow but i haven't done any huge searches yet

weary matrix
#

so you can use whatever editor you're used to

teal slate
#

oh wait

#

it specified to have intellij

#

not necessarily use it

#

fair enough, but now i have it open :P

weary matrix
#

yeah

teal slate
#
    public void sendClothing(IsoPlayer player, String string, InventoryItem inventoryItem) {
        if (player != null && player.OnlineID != -1) {
            SyncClothingPacket syncClothingPacket = new SyncClothingPacket();
            syncClothingPacket.set(player, string, inventoryItem);
            ByteBufferWriter byteBufferWriter = connection.startPacket();
            PacketTypes.PacketType.SyncClothing.doPacket(byteBufferWriter);
            syncClothingPacket.write(byteBufferWriter);
            PacketTypes.PacketType.SyncClothing.send(connection);
        }
    }
weary matrix
#

hah

teal slate
#

well, this isn't causing it

#

it has a null check

weary matrix
#

yeah I know

teal slate
#

ahhhhhhh

weary matrix
#

@teal slate isn't it more enjoyable to read the code now? ๐Ÿ˜„

teal slate
#

i see it.

#

ummmmm

#

public boolean isEquals(IsoPlayer var1, String var2, InventoryItem var3) {

#

is it,

#

should i not be using the decompiled folder

weary matrix
#

decompiled folder is the raw decompilation result from intelliJ

teal slate
#

ahhh

#

sources is much nicer

weary matrix
#

hmm but what you pasted was already from the source folder right?

teal slate
#

time to reopen just that folder in vsc, then

#

nah

#

wait

#

yes

weary matrix
#

heh

teal slate
#

somehow i'd accidentally opened both :P

#

but i was explicitly searching the decompiled folder, i think i may have used go to file

weary matrix
#

I still have a bug I have to fix, like sometimes some variables get a name that's just wrong, not sure what's the reason

teal slate
#

zombie.network.packets.SyncClothingPacket.parse doesn't call set

#

so this.player is just never set

#

wait

#

no, i just didn't read

weary matrix
#

it's not calling set but it still set this.player

teal slate
#

okay, packet format is...

weary matrix
#

problem is here I believe:

    static void receiveSyncClothing(ByteBuffer byteBuffer, UdpConnection udpConnection, short short1) {
        SyncClothingPacket syncClothingPacket = new SyncClothingPacket();
        syncClothingPacket.parse(byteBuffer);
        for (int int1 = 0; int1 < udpEngine.connections.size(); ++int1) {
            UdpConnection udpConnection2 = (UdpConnection)udpEngine.connections.get(int1);
            if (udpConnection2.getConnectedGUID() != udpConnection.getConnectedGUID()) {
                IsoPlayer player = getAnyPlayerFromConnection(udpConnection);
                if (player != null) {
                    ByteBufferWriter byteBufferWriter = udpConnection2.startPacket();
                    PacketTypes.PacketType.SyncClothing.doPacket(byteBufferWriter);
                    syncClothingPacket.write(byteBufferWriter);
                    PacketTypes.PacketType.SyncClothing.send(udpConnection2);
                }
            }
        }
    }
#

see how it gets the player from the current udp connection

#

but then this player instance is not used so...

teal slate
#

yeah, but syncClothingPacket.parse should ensure that the packet's player it's non-null

#

it's used for nullchecking

weary matrix
#

it does, but it takes the player from another place

teal slate
#

we don't wanna waste time sending to a dropped/non-in-game connection

#
  • short onlineID
  • UTF location
  • bool hasItem
    • serialised item?
  • serialised HumanVisual
  • serialised ItemVisuals
#

wait

weary matrix
#

it should add the player to the byteBufferWriter

teal slate
#

it shouldn't, i think

#

player on the packet is the source of the packet

#

this is distributing it to other players

weary matrix
#

hmm maybe

teal slate
#

it goes client->server->client, i think

#

this.player = (IsoPlayer)GameServer.IDToPlayerMap.get(short1);

#

this must be failing, then

weary matrix
#

problem is parse() is getting the player from (IsoPlayer)GameServer.IDToPlayerMap.get(short1); while receiveSyncClothing is getting it from the UDP connection directly

teal slate
#

because that's the player the packet is being redistributed to! :P

#

they're supposed to be separate players

#

for (int int1 = 0; int1 < udpEngine.connections.size(); ++int1) {

weary matrix
#

guess you're rigth

teal slate
#

it's just broadcasting it

#

that said

#

receiveHumanVisual seems to have more guard conditions

#
        byte byte1 = byteBuffer.get();
        IsoPlayer player = getPlayerFromConnection(udpConnection, byte1);
        if (player != null) {
            try {
                player.getHumanVisual().load(byteBuffer, 186);
            } catch (Throwable throwable) {
                ExceptionLogger.logException(throwable);
                return;
            }
#

could be worth just adding this? that'd check the incoming udp connection and ensure that there's a player

#

likewise with receivePlayerAttackedItem

#
        IsoPlayer player = getPlayerFromConnection(udpConnection, byte1);
        if (player != null) {
#

yeah i think the issue could be that by the time the packet is processed, the OnlineID is invalid

noble pebble
#

I donโ€™t want to interrupt but was hoping I could get a quick opinion
How hard would it be for someone who has no modding experience at all to do a clothing mod? Iโ€™m pretty sure I saw a mod that just gives the barebones of what is needed code-wise (or whatever) but likeโ€ฆ if you were to model something and not just reskin anything in the game
What would that be like?

teal slate
#

I think you can do that entirely with scripts, no Lua involved except for maybe translations?

teal slate
#

the issue is keeping track of player at all

#

stuff like SyncInjuriesPacket just keeps track of the ID

#
    public boolean set(IsoPlayer player) {
        this.id = player.getOnlineID();
        this.strafeSpeed = player.getVariableFloat("StrafeSpeed", 1.0F);
        this.walkSpeed = player.getVariableFloat("WalkSpeed", 1.0F);
        this.walkInjury = player.getVariableFloat("WalkInjury", 0.0F);
        return true;
    }
#

so i'd probably just rewrite SyncClothingPacket

#
    private short id;
    private String location = "";
    private InventoryItem item = null;

    public void set(IsoPlayer player, String string, InventoryItem inventoryItem) {
        this.id = player.getOnlineID();
        this.location = string;
        this.item = inventoryItem;
    }
#

in the instances where we use something in player other than getHumanVisual we should probably be getting player from onlineID

#

some of the reasons we keep a reference to player is for debug info?

noble pebble
#

Thank you! This is Greek to me, now, but Iโ€™ve saved it for when or if I try to add more clothes.

teal slate
#

so i suppose we could probably keep it

#

oh, the rest of this is just me trying to fix a bug

noble pebble
#

Oh

teal slate
noble pebble
#

Oh ok

#

Thank you anyway! ;v;

teal slate
weary matrix
teal slate
#

the interesting thing is that the guard condition exists

#

it's just... inside the for loop

weary matrix
#

if it works I'll submit a bug report to TIS with the patch (unless you're willing to do it of course)

teal slate
#

which is weird; you should probably only check it once, prior to entering the loop

#

but either way, it IS checked... which is double weird

#

wait

#

... can there be multiple players on one UdpConnection?

weary matrix
#

mmm I doubt it

teal slate
#

i mean there's code for it

weary matrix
#

oh

teal slate
#

the difference is:

#

IsoPlayer player = getAnyPlayerFromConnection(udpConnection); for receiveSyncClothing

weary matrix
#

maybe when playing with coop/ splitscreen?

teal slate
#

IsoPlayer player = getPlayerFromConnection(udpConnection, byte1); for basically everything else

#

can you play splitscreen on remote servers??

#

i wouldn't be surprised that that's an untested edge case causing disappearances and errors

weary matrix
#

still has to use the server part in that case right?

teal slate
#

host or client

#

if it's possible at all, really

weary matrix
#

dunno

teal slate
#

the issue is that the server part isn't checking for the possibility of multiple players on one connection

#

or like

#

i guess multiple players at the same house, potentially?

#

same source, same destination?

#

if two players shared the same UdpConnection and one disconnected, it would probably result in these errors

#

hmm. i might just make id a public field on SyncClothingPacket

#

oh wait

#

getHumanVisual also does getAnyPlayerFromConnection

#

weren't characters disappearing?

#

a lot of these use getAnyPlayerFromConnection

weary matrix
teal slate
#

what i asked was if that's a possible scenario on a regular dedicated server :P

#

and i think it could be

weary matrix
#

hmm

teal slate
#

i.e. two players sharing an external IP might have the same UDP connection; idk, i'm not a networking person

#

the only other thing i could think of is uhhh

#

IsoPlayer is deleted when it dies, no?

weary matrix
#

they might share the same IP but would still use different UDP connections

teal slate
#

so if a HelmetFall is triggered by death, that'd do it

#

or a hole being torn in clothes simultaneous with player death

weary matrix
teal slate
#

doesn't have to be the player it occurs for

#

i'm not good with networking though :P

#

and by not good i mean i know nothing about it

weary matrix
#

@teal slate well I know how to write networking code, but struggling reading crap networking code basically

#

I don't even know how it's supposed to work in that case which is clearly not helping

weary matrix
#

I think the network architecture is much more complicated than it should, maybe I'm wrong though

fickle oriole
#

Hey guys! Anybody have a "Distributions.lua" with only food spawn?

ivory perch
#

Does anyone know if thereโ€™s a mod to change the default timed action scale? Like the dexterous trait but applied server wide?

drifting ore
#

Does anyone know a way to obtain the list of "dropped" items in the world?

drifting ore
#

Or where the Render3DItem gets called when loading into the game to render all the items?

warm bough
#

Has anyone made any visual studio code snippets for lua modding? Only thing Iโ€™ve found thus far is pz-mod for intelij

mint sphinx
#

@weary matrix do you have an code example on that you require an item on you before it addoption to the context menu ?

grave topaz
#

There is some way to be able to create constructions in a "creative" way to put zones on a server

#

It would be something like mapping an area but without having to enter the map editor

#

Which I have no idea to use

drifting ore
#

to know, a friend put mods in heberegent his server but since that saving does not work any more. Why?

mint sphinx
#

thx i guess going to have so long if statement lol..

see if the player distance is to far away. if the player have this item , and if this items is this isomatic item ^^

mint sphinx
stray kestrel
#

is there a mod for temporary power and water shutoff?

#

the game isn't that lively without water and power, but i don't like it being infinite either

teal slate
weary matrix
#

most of the recent bugs I've seen are network related though

teal slate
#

drat...

#

i'm taking a network security class this semester, so maybe i'll learn a thing or two and be able to poke at it :P

weary matrix
#

nice!

#

btw just managed to get javassist to work in my javamods framework!!!!

#

it means I can hotpatch the game!!!

#

no need to do stupid replacement of .class that breaks for each game update!!!!

teal slate
#

nice!

weary matrix
#

@teal slate just have to do this for example:

public class JavaModTest extends JavaMod {

    @Override
    public List<Patch> getPatches() {
        return Arrays.asList(
            new Patch("zombie.network.GameServer", "main", "System.out.println(\"w00t\");")
        );
    }
}
teal slate
#

oh, that's basically mixins, huh

#

kinda

weary matrix
#

how so?

#

I only know mixins in the context of Python or Ruby, same thing?

teal slate
#

absolutely no idea! it's a java library/framework for runtime code modification used primarily for minecraft modding

weary matrix
#

ah I see

teal slate
#

it's similar to, uh. harmonylib for C#, used by rimworld and caves of qud

weary matrix
#

I guess mixins is using javassist too?

teal slate
#

oh, is it?

#

it uses ASM instead of Javassist

#

but it's the same idea, yeah

tulip narwhal
#

Is there any write up of how save data is stored? Specifically, what time it is on the server in game. Id like to make a little web app thats shows game info

old blade
#

log4j the zomboid server

#

lol

deft jacinth
#

I have a request for a mod. Idk if I'm allowed to seek commission work here, but here I go:

#

I'm willing to pay 50 bucks, but the price is negotiable

#

Essentially, I'd like an antiviral drug mod that spawns in the same loot tables as other medical equipment.

old blade
#

kind of already exists

deft jacinth
#

If you're infected with the zombie virus, you'd have to keep taking these drugs every day or two

#

The drug doesn't cure you

#

But it stalls the virus until you have to take it again

#

So once you're infected, you're infected. And if you can't find any more of the drug, you'll die

deft jacinth
#

They don't seem to be the kind of thing I'm looking for. Also don't work for the most recent build. Thanks, though

#

I don't really want an expansive solution with skills, research and books etc.

#

Really just a single antiviral drug that can keep the infection at bay until you have to take it again

lapis stump
#

~~how would I detect if a player is wearing pants? ~~

gleaming storm
#

Would I be able to make a new local sqlite db in java and also use methods from classes from project zomboid to make mods?

#

I was looking and it seems java modding is available, but want to make sure I could also create a custom db to put data into and pull from with for modding

deft jacinth
willow estuary
deft jacinth
cursive junco
#

I have been trying to change the ZombieSurprisedPlayer sound but just changing it is not the issue I am running into. I want the sound that is played to be randomized between multiple sounds. I know what the suedo code would look like but if someone can either show me how to do rands and if statements in this language or just tell me what language all these txt files are then I could look up what I need to.

module Base
{
    sound ZombieSurprisedPlayer
    {
        category = Zombie,
        clip
        {
            file = media/sound/whatever.wav,
        }
    }
}
teal slate
#

That is not Lua. That's a script file.

#

It's not an interpreted language, or a language at all, really.

#

As far as I know it's a glorified config file.

weary matrix
#

I call it the bastard son of JSON ๐Ÿ˜‚

deft jacinth
#

I'll see myself out. I assumed, and I shouldn't have.

cursive junco
teal slate
#

Well, there's this;

#
    sound MaleZombieCombined
    {
        category = Zombie,
        clip
        {
            event = Zombie/Voice/MaleA,
        }
        clip
        {
            event = Zombie/Voice/MaleB,
        }
    }
#

So you could maybe try:

cursive junco
#

Do you know if that only plays one randomly

teal slate
#

I don't know, but I think it does.

#

The thing is, I don't know if file is an actual attributeโ€”all I see is event, which uses the fmod sound banks, which are a pain to work with

#

Ah, wait, there's code for it.

#
    private static void loadNonBankSounds() {
        if (BaseSoundBank.instance instanceof FMODSoundBank) {
            Iterator iterator = sounds.iterator();
            while (iterator.hasNext()) {
                GameSound gameSound = (GameSound)iterator.next();
                Iterator iterator2 = gameSound.clips.iterator();
                while (iterator2.hasNext()) {
                    GameSoundClip gameSoundClip = (GameSoundClip)iterator2.next();
                    if (gameSoundClip.getFile() != null && gameSoundClip.getFile().isEmpty()) {
                    }
                }
            }
        }
    }
#

... except it looks unfinished

cursive junco
#

Is that a .lua file though?

teal slate
#

I'm mostly just trying to process the code and thinking out loud to see if what you're doing is possible.

weary matrix
#

@cursive junco why not adding different sounds and just choose randomly from Lua? Don't know if that's possible

cursive junco
#

The mods on the workshop I am looking through for that sound are .txt files that just have one sound. Most of the .lua files are server side I think. I've only looked through the files a little.

teal slate
#

Either the decompiler is broken or there's no code for actually using the file attribute in sound scripts.

teal slate
cursive junco
#

I think it is something you would need to test in game

teal slate
#

it's also broken in the raw decompiler output so it's def. not beautifuljava

#

aha

#
            } else if ("file".equals(string)) {
                gameSoundClip.file = string2;
#

there it is

#

okay, so thaaaat works. what else

#

GameSoundClip gameSoundClip = gameSound.getRandomClip();

#

AHA

#

Yeah.

#

You just define multiple clips @cursive junco

#
module Base
{
    sound ZombieSurprisedPlayer
    {
        category = Zombie,
        clip
        {
            file = media/sound/file1.ogg,
        }
        clip
        {
            file = media/sound/file2.ogg,
        }
    }
}
#

And it picks one of the clips at random.

cursive junco
#

That's awesome and the files just need to be different names?

teal slate
#

Yeah, I think so.

gleaming storm
cursive junco
gleaming storm
#

That's the main reason I'd like to use a db if possible

quasi kernel
#

I haven't quite entered the Zomboid modding scene yet, so I'm curious if there's any method of telling how many days an item had existed in a world?

#

I have a peculiar idea I wanna experiment with when it comes to alcohol.

#

Also, apologies if I may stop by to ask questions here a lot in the future, this is my first time modding a game.

gleaming valve
#

@quasi geode I'm having an issue with pf:
> I set removedefaultraits to true
> I add the vanilla traits (by your example file), with modified costs & skillpoints
> ingame the description is doubled
> costs are not altered
> skillpoints are not altered
> functions for spawning new items are run

cursive junco
quasi geode
gleaming valve
#

github

quasi geode
#

ah well then your playing with experimental features i havent truely finished or properly tested. why that version still isnt released XD

gleaming valve
#

dag naggit

quasi geode
#

not sure how the vanilla ones are still overriding though, since if the flag is set it wont call the vanilla function that declares them

brittle jewel
# cursive junco Lastly does anyone know if there is an easy way for me to test this to make sure...

I like to put my test stuff triggered by a key press, in this case it's the comma , key. This should play the sound when the comma key is pressed, I think. Haven't tested it though.

local TestFunctions = {}

TestFunctions.testKeyUp = function(keynum)
    local specificPlayer = getSpecificPlayer(0)
    
    if (specificPlayer ~= nil) then
        if keynum == 51 then
            specificPlayer:playSound("ZombieSurprisedPlayer")
        end
    end
end
Events.OnKeyPressed.Add(TestFunctions.testKeyUp)
teal slate
#

If you're planning to put it into a database, is it in normal form already?

gleaming storm
#

I've got a few ideas but was going to start with player position over time

#

So there could be a lot of data points for a player over that player's lifetime

#

I could probably get away with writing everything to a csv file, but sql would be more robust

#

Just need to figure out how I can create a sqlite db or add a new table to the player.db using lua. I'd assume it would be pretty easy with java but can't find much on how to actually make mods using java for zomboid

low yarrow
#

Is there a list of possible modifiers on items somewhere?
Like Speedmodifier but for more specific stuff like "10% less likely to get spottet" etc.

brittle kernel
#

My Mod won't show in the Mod selector, Its in the right directory and has the right files. I've restarted the game multiple times yet still its being weird

#

Here's how it looks

cursive junco
weary matrix
#

@cursive junco awesome, btw -This mad currently has-

cursive junco
#

Yeah... I saw that right after I posted it but I can't be bothered to change it until I equalize the sound effects and add a few more.

dusky goblet
#

Does anybody have any knowledge on how the ZedDmg textures are actually being used in the game and how they appear beyond zombies spawning with them?

#

I've redone 9 textures so far, but i'd like to know if some of them aren't being used at all to save me some time.

golden plover
#

I am new to this whole modding thing, i have two questions: How do I set a precise position for wheels and other stuff for a car inside the text file inside the mod? What is the tris limit for models in pz?

old blade
#

i think its around 3000

#

for geo

golden plover
#

o no

#

ok but is there any way to add more than a single mesh to a vehicle? As in not only base but additional parts to counter this tris limitation

old blade
#

i think the tires are seperate

#

idk

golden plover
#

tires are separate yes

#

I am guessing this is too much

weary matrix
opal wind
#

hey guys on the script files, the jewels carry this entrance

#

Cosmetic = TRUE,

#

anybody knows what this do?

weary matrix
opal wind
#

hum what does it change u know?

dusky goblet
#

Does anybody have any starter tips on how to preview your textures ingame? It's kinda tough to reskin the zombies when they keep walking with their heads drawn down when they look so radically different from the angle than they did in blender.

drifting ore
#

Is there a way to create "custom" events? For when specific calls are done to some functions or player actions?

#

@weary matrix would you happen to know how to do something like that?

weary matrix
#

no special behavior or anything, just drawing things differently

weary matrix
drifting ore
weary matrix
#

just check the Lua source from vanilla, look for triggerEvent and LuaEventManager.AddEvent

dusky goblet
#

Is there a line to make zombies T-pose ingame?

drifting ore
#

I guess the manual trigger is a pain in the ass since i want it to trigger when ISDropWorldItemAction is queued

weary matrix
#

like hooking this one for example: ISDropWorldItemAction:perform()

drifting ore
#

ohhh perfect! Will look into that too! (Basically i need to register when I drop items to the ground and this is, for now, the easiest way i've found)

weary matrix
#

might be the only way yeah

drifting ore
#

The perform hook sounds like what i need! thanks

weary matrix
#

@drifting ore hmm your question made me realize I could make it possible with my javamods framework to add events for any java function, at the beginning or at the end of any function

thorn bane
#

Can someone hit me with a guide on how to create a UI Panel upon loading in? Similar to that of the small tutorial that opens on first boot.

drifting ore
weary matrix
weary matrix
drifting ore
thorn bane
#

@weary matrix @drifting ore Noted. I'll have a look and see what I can find :)

neat umbra
#

K so i had an idea, but not sure if it is in the game already: what if you could cut sacks to make a sort of make ship mask? Or even an Undermask

steady sparrow
#

is there a way to log a variable and its values to the lua console in the game?

undone crag
#

print(something, something2, soomething3etc)

steady sparrow
#

hm

#

does that print to the ingame lua console? i have that currently and it's not printing

#

and the function is definitely being invoked

undone crag
#

What is the ingame Lua console? :O

steady sparrow
#

debug mode

undone crag
#

:o

steady sparrow
#

does print() just go to console.txt?

thorn bane
#

Is there a tutorial somewhere to turn an item into 3D? I've got an item that uses the Money sprite, but despite having a WorldItems file and whatnot, still can't get it to work

undone crag
#

It also goes into /logs
How about trying to print right at the start of the function?

thorn bane
#

Fat fingered my enter key >_ >

steady sparrow
#

yeah i did; the printout is in console.txt, but i don't see it in the LUA debug console in game

undone crag
undone crag
#

I know not the answer you seek.

thorn bane
#

It seems like static models are used for clothes

undone crag
#
    item Money
    {
        DisplayCategory = Junk,
        Weight    =    0.01,
        Type    =    Normal,
        DisplayName    =    Money,
        Icon    =    Money,
        WorldStaticModel = Money,
    }
#

WorldStaticModel = Money,

thorn bane
#

Wait

#

Give me a minute

undone crag
#
    model Money
    {
        mesh = WorldItems/Money,
        texture = WorldItems/Money,
        scale = 0.6,
    }
thorn bane
#

Still nothin' :/

undone crag
#

How about renaming the model in /scripts and picking a model you know works like money like this

    model Money2
    {
        mesh = WorldItems/Money,
        texture = WorldItems/Money,
        scale = 0.6,
    }
    item Money
    {
        DisplayCategory = Junk,
        Weight    =    0.01,
        Type    =    Normal,
        DisplayName    =    Money,
        Icon    =    Money,
        WorldStaticModel = Money2,
    }

To see if it works then?

undone crag
#

It does not reload .x model entries in /scripts while the game is running to my knowledge, but it loads new model entries in /scripts.

thorn bane
#

That was probably the big issue, will let you know inabit

undone crag
#

:o

thorn bane
#

prolly need to scale it down now >_ >

#

welp, thanks for your help! <3

steady sparrow
#

where do you place a mod's requirement for another workshop mod?

undone crag
steady sparrow
#

ah yes

kind forge
#

hello friends, pretty new to the whole modelling thing and i can't seem to find any documentation on the "skinningData is null " issue. any pointers to how i should remedy that? seems to be my only handicap at the moment

vale musk
#

how do i tell what game version im on if ive never opted for a beta?

lapis stump
#

should say version in bottom right corner

vale musk
#

ah thanks

#

wasnt at the main menu

#

41.65 is current most updated or?

lapis stump
#

yep

vale musk
#

now im working on a dedicated server right now thru g portal, eventually wanting to move to ovh for bare metal, whats the best way about going about finding people who already know how to mess with this game XD

#

is their any info for setting up rented dedicated bare metal servers for this game anywhere i can be directed to? how many mods are too many? im looking at around 32gb of ram on the server with a 500gb nvme drive

half robin
#

When checking character XP multipliers.
Does public float getMultiplier(PerkFactory.Perks perk)
take into account skill books and profession multiplier in one combined value?

worthy hamlet
#

Anybody up to answer a potentially stupid question?

#

Iโ€™m running the game in โ€œ-nosteamโ€ mode and was wondering how I might add mods to my personal dedicated server on it? Reason Iโ€™m running it this way is because I kept getting an error stating that the server was offline even though I could see it had started. Any help would be much appreciated

thorn bane
#

How do I add my own custom catagory?

modern scarab
#

What mod should I install for adding npc for singleplayer?

tacit ermine
#

@worthy hamlet they go in your zomboid cache dir, which is Zomboid in your home dir by default. So ~/Zomboid/mods

#

you can also stick them in mods/ in the dedicated server installation nvm that only works in steam mode

blazing radish
#

do the model script only in Base

#

IDK why but that made my tiems turn into 3d instead using the icon as sprite

thorn bane
#

Dw! Got that all fixed now :)

#

@blazing radish

blazing radish
#

oh sorry, nvm then

#

๐Ÿ˜…

thin hornet
#

Hi guys, starting a world sound with PlayWorldSound start it for everyone around
but trying to stop it only stop it for the person running stop
anyway of stopping it for everyone

#
audio = getSoundManager():PlayWorldSound(...)

audio:stop() -- dont stop for everyone
getSoundManager():StopSound(audio) -- still dont stop for everyone

so weird:

self.character:getEmitter():playSound("sound");
self.character:getEmitter():stopSound(audio) -- its stop it for everyone

yet getEmitter() of player is the same type of a regular emitter

Ah ok so stopSound send a stopSoundPacket only if the emitter parent is an IsoMovingCharacter
Not cool.

Player disconnecting and sound keep playing too.

@iron salmon would it be possible to ask to TIS for a way of stopping a WorldSound on the network like from a character sound emitter.

narrow urchin
#

Hello,
I'm trying to add sandbox options to my mod, but I would love to wrap them under a feature toggle, like "Zombie Lore" section has "Proper zombies" toggle. Is this possible? And if so, can anyone share a config sample, or perhaps name of mod that has such feature?

royal chasm
#

Mod suggestion = When you insert a battery in your flashlight it remains in your hands.

Mod suggestion = When you are afk, you can leave your character playing with a rubik's cube and never get bored

river plinth
river plinth
drifting ore
#

Is anyone familiar with the "project humanoid" mod

candid sonnet
#

Are mod branches for workshop mods possible to implement by TIS? if so that would fix the annoying workshop update fiasco with modded servers. Just a thought

#

imagine a prod. branch + dev branch. would be sick but it may be too technical for Steam and for normal end users

winter bolt
#

you can kind of do that by uploading a new version of the mod as a seperate workshop page and making it unlisted and just including a link in the description of the original mod i think

patent breach
#

Does anyone know how tsarautotuning mod works??
Tried using cheat menu to learn all recipe but it keeps requiring me to learn advance mechanic and basic tuning

vivid flare
#

you could add multiple mod folders inside the workshop item.

#

and name them update_1, _2, etc. but very annoying to do and i doubt many would actually do that

#

also for people who don't run servers it means more work

fleet smelt
low yarrow
#

I rip my hears out while trying to get some custom outfits spawn on zombies.
I studied the "Authentic Z" mod and some others but i dont really understand what is really neccessary to make them appear.

For debug reasons i try to spawn some custom zombies in the trailerpark with a high chance, since the trailerpark is big it should be easy to find some.
Basically i have made 2 LUA files. One defining the outfit, and one defining the spawnzone.
What do i miss i wonder

#

(The Outfit i copied for now from the pilot to make sure in case something is wrong with my custom outfit)

fleet smelt
winter bolt
fleet smelt
#

perhaps, but i'd try changing those

winter bolt
low yarrow
#
#

Seems like those are just random default tops

winter bolt
#

i'd also recomment using ZombiesZoneDefinition.Default instead of trailer park so theyre easier to find

low yarrow
#

is default = everywhere?

winter bolt
#

yeah

low yarrow
#

Ah good to know. Thats also what i want. Thanks

winter bolt
#

its the basic civilian zombie spawn zone

#

well not just civilian zombies but

whole garden
#

can we get a mod that let us see eachother at a long distance?

#

like a tracker

#

for example like terraria

#

when u choose a team

verbal ivy
#

Hi, I tried to make some new attack animation, I know how to use Blender and making animations, but don't know how to add them in. Does anyone know how to adding new animations?

whole garden
#

u can see how long ur are from eachother

low yarrow
#

Getting alot naked zombies

#

I wonder if they are supposed to have this outfit on

#

Switching the random tops and pants to "true" make them dissappear. So it seems like the game tries to load the custom outfit

worthy hamlet
#

Or would I also be able to get them from the workshop as long as I copy data to the ~/Zomboid/mods folder?

tacit ermine
#

you can copy them from the workshop

worthy hamlet
#

Awesome. Last question, how would I do that? Find the mods folder in the Steam Zomboid folder, then copy them to that directory? Or would it be the directory Iโ€™m running the server fromโ€™s mod folder?

winter bolt
pliant flame
#

ok so is there anywhere that passwords are stored when a player joins my dedi? he forgot his PW
I mean his account pw, its surely stored locally

tacit ermine
#

not in plaintext, no

#

on a client they're saved as plaintext in ~/Zomboid/Lua/ServerListSteam.txt

#

on the server they're stored in a SQLite database as hashes

stuck forge
#

is there a mod where you can wear clothing covered in zombie blood which makes you less detectable from zombies?

worthy hamlet
#

Hmm. Am I gonna need a third party app to do it? Or is going the nexus route easier? I wish there was some kind of video walkthrough of it haha @tacit ermine

tacit ermine
#

if you youtube search "how to find mod files steam workshop" you'll probably find one

worthy hamlet
#

Okay that works. If I need additional help Iโ€™ll @ you again if thatโ€™s alright?

tacit ermine
steady sparrow
#

hey folks, they only resource that i have not been able to understand is how to decompile the jars of the game; I have the decompiler but i just need a bit more information on the process. Any recommendations?

low yarrow
winter bolt
#

literally all of the clothing items that you use in your outfits need to be listed in your mods guidtable

#

even vanilla ones

#

so you'd need to copy all of the items you want to use from the vanilla table into your own

devout rock
#

Hi everyone
I'm trying to change the size of an image that I'm placing as the UI element on screen, but I can't seem to change the size of the image, even though I can change its coordinates. No matter what I put as the width and height parameters the image stays the same size of the original texture. Does anyone know what's causing this?

low yarrow
winter bolt
#

np lol

#

when you start adding your own stuff to the outfit you should use comments to document everything because its a nightmare without it lmao

low yarrow
#

Yep ๐Ÿ™‚

steady sparrow
#

does anyone know of a mod that focuses on multiplayer interactions? I am looking for a reference to implement something akin to the medical check in multiplayer

late hound
winter bolt
tacit ermine
late hound
winter bolt
#

the people who work on clothes definitely hate themselves then lmao

steady sparrow
steady sparrow
#

also, maybe i'm just too stupid to find it but... where are all the vanilla item definitions? are they in Lua? or are they in a db file somewhere?

winter bolt
steady sparrow
#

my huge massive dumb ass

steady sparrow
#

weird; debug mode doesn't list specific VHS versions?

#

in the item list?

neon tinsel
#

are there any mods i could use to get rid of a infection

winged lotus
#

Evening all! Any leads on how to create a recipe without result but only XP?

steady sparrow
neon tinsel
#

do you know of a simple command mod? i dont have enough time to make a vaccine in game

ionic robin
#

Are we able to edit the games combat code?

worthy hamlet
#

Question for you guys, if I add a vehicle mod to an existing server, will it spawn those vehicles in undiscovered regions or will it only spawn them at the game's initial generatioun?

ionic robin
#

The first one

worthy hamlet
#

Awesome so then I won't need to make a new server. Thanks

molten basin
#

Anyone know how to add the decompiled files to intellij properly ?, The methods are not showing up in suggestions even though I added the decompiled folder into my global libraries. (I used beautiful-java to decompile)

eager kraken
#

Has anyone made any ui inventory mods?

tulip valve
sleek saffron
#

Hey people, quick question. When developing a mod for Multiplayer, what is the difference between lua code executed in the /server folder and lua code executed in the /client server? I got reports of a mod I made working for the host but not for a client, and I'm thinking it has something to do with this.

winter bolt
sleek saffron
#

Thanks I'll try that out.

worthy hamlet
#

I have my mods loaded into my non-steam version of PZ, do I just enable them then launch my dedicated server and have access to them? Or is there a folder in the dedicated server folder I need to put them in as well?

molten basin
worthy hamlet
#

I think I've got it

#

Unrelated to that conversation sorry

steady sparrow
devout rock
weary matrix
#

@molten basin what are you trying to achieve?

molten basin
weary matrix
#

@molten basin so you just want the source files available in IntelliJ?

molten basin
weary matrix
#

(BTW the decompiled folder is only the raw output of the decompilation, the sources folder is what you should use)

#

guess I should change the name of the decompiled folder to make it more obvious ๐Ÿ˜…

molten basin
weary matrix
molten basin
brittle jewel
#

I was trying to use sendNonPvpZone. I've found a workaround now, but I was curious if you were able to figure anything with getGameClient() out?

weary matrix
brittle jewel
#

Essentially, I want a moving non-pvp zone. When it's created it seems to sync with client, however when it's moved it does not. I'm just deleting it and recreating instead of moving it. Probably a lot less efficient, but that's a workaround, afterall.

weary kernel
#

hey, does anyone have a good reference for stuff like player:getinventory because i cant find anything online

brittle jewel
weary kernel
#

oh thanks ๐Ÿ‘

crude mantle
#

Is there a tool for checking if mods are trying to modify the same things, and if so resolve the conflict? for example by changing the load order. Something like LOOT for skyrim

amber fossil
#

i wish

crude mantle
#

That sounds like a no ๐Ÿ˜›

steady sparrow
#

Anyone got any advice for spawning specific VHS videos? When VHS_Retail is spawned in, it is changed to be a different type of media.

crude mantle
#

Would it be possible to make something like that? Going through the console I see that it's already showing if mods are overriding anything.
Is it even possible to force mods to load in a different order?

steady sparrow
#

likely not until they make a change to how the base client loads mods; right now i think it's mostly alphabetical

#

you can use "require" in the Lua, import in the Lua, and require in the modinfo, to make sure you have another mod loaded

crude mantle
#

Right now you can force mod loading order by first loading one mod, applying and than loading the other mod I think, but don't know for sure

golden plover
#

What is the max texture size for project zomboid?

old blade
#

im not sure but i usually just stick with 1024 x 1024

golden plover
old blade
#

then again, ive never put any of my models in the game yet since idek how to

#

and im lazy

low yarrow
golden plover
low yarrow
#

256 and max 512 is a good size

#

I create textures in 4096 and scale them down to 256

#

The advantages of working in 4k is that the scaled down version gets some kind of anti aliasing

#

Booth are 256 pixels

#

But the left one was 4096 and then i scaled down to 256

#

The right one i exported in 256 directly

#

This way you can do alot of details in the High poly mesh and when scaled down it still looks good

golden plover
#

o

#

good to know

#

thanks

low yarrow
#

No problem. It was a gamechange to me when i found that out ๐Ÿ˜„

golden plover
#

just straight up random lines going through the whole texture, intersecting with other uv islands

low yarrow
#

Seems like some UVs are overlapping

golden plover
#

but they arent

golden plover
low yarrow
#

Very weird indeed... mh

golden plover
#

it's a some kind of bug inside 3.0.0

low yarrow
#

Havent painted for a long time in blender

golden plover
zenith smelt
#

I found getGametimeTimestamp

        if getGametimeTimestamp() - zone:getLastActionTimestamp() > 50000 then

What is the timestamp? A millisecond?

#

        if getGametimeTimestamp() - updateZone:getLastActionTimestamp() > 20000 then

also this

golden plover
opal wind
golden plover
crude mantle
plain jungle
#

Anyone know any nice mod lists that are working in multiplayer ?

drifting ore
#

Anyone know which file manages the health menu?

fleet smelt
#

Worth it? Probably not.

frosty stirrup
#

Hello guys, I am trying to make a modmod to make MetalWorkbench from The Workshop mod a moveable item. Right now you place it in 3d world as 3d object, and it's used in recipes because of "keep MetalWorkbench", so it's a hacky solution and it doesnt really block tiles, you walk through it. I wanted to make it a proper furniture.

Now as an example I looked at LabWorkbench from Vaccine mod by Dr Reaper.

It looks like there are only two things needed to make a static furniture item

  1. type = moveable
  2. worldobjectsprite = somedata

Now I am at complete loss where to find tutorial how to properly make what goes into worldobjectsprite. Can someone help me? I assume it has something to do with .tiles file packaged with the mod? Is there a tutorial for this kind of object making?

Also did I miss, or it's only (1) and (2) that is enough?

#

And sorry if the question is stupid, today is the first day I started trying to learn modding

fleet smelt
frosty stirrup
#

oh

#

well if thats not a common way... How would you normally make something like a table?

#

I will check that too, 1 sec

#

But it explains why I couldnt google it, Thank you Elpine ๐Ÿ˜„

fleet smelt
#

you are using notepad++?

frosty stirrup
#

Yep

#

but it seems to exist in vanilla

#

look

#

WorldObjectSprite = appliances_television_01_8,

#

It looks like it references something in custom tiles, which I dont know how to make and came to ask for a hint or direction ๐Ÿ™‚

fleet smelt
#

Oh I just searched in Lua directory

frosty stirrup
#

yeah, this is a part of item definition

fleet smelt
#

and I checked the java stuff

frosty stirrup
#

something that every furniture has

#

so it's in scripts

fleet smelt
#

do the above just change the folder you're searching

#

A sprite tends to be how the thing appears, and doesn't contain any information about how it should exist physically in the world

frosty stirrup
#

Sorry, I dont get it. I am not trying to figure out where the modder defined this value. I am trying to understand how to edit the .tiles file that contains it

fleet smelt
#

I'm trying to guide you toward finding out how the game developers use it

#

So you can then compare, learn, and replicate

frosty stirrup
#

Yep, I found this value inside of modname.tiles file

fleet smelt
#

Your issue is that the object appears, but doesn't interact with the physical world, correct?

frosty stirrup
#

However if I open that file in tiled - tile properties, the icons for tileset are question marks, so I assume i am doing it incorrectly

#

No, my issue is that I have

  1. Existing mod where another object has moveable type
  2. another existing mod (The Workshop) where the item is just a normal item with 3d object

I try to convert 2 into 1. But I dont know how to take existing 3dmodel and turn it into tile

#

All I found is that for mod (1) the tile is defined in .tiles file, and named worldobjectsprite as a property of the item

vapid moat
#

Mod idea.....automatic garage door opener....it would be awesome to drive up to my double gate and be able to open and close it with out leaving my vehicle

fleet smelt
frosty stirrup
#

what's xy problem?

#

my problem is that the item in question has no tile

#

I dont know how to make it ๐Ÿ™‚

fleet smelt
#

But from what I can make out; The properties we see on the wiki entry for the TV mostly determine how the item is displayed. The worldobjectsprite points to the .tiles file where there is more information that determines how it will behave in game; This might help
https://pzwiki.net/wiki/Tile_Properties

frosty stirrup
#

I want to MAKE it moveable, so I need to make tiles for it, in 4 directions, and make it twotile

#

This is what I was looking for

#

Thank you so much ๐Ÿ™‚

fleet smelt
#

You're welcome. an xy problem is where someone is trying to make x do y, when x can't (or shouldn't be used) to do y and there are other solutions. Just a problem with conveying pertinent information on the internet

opal wind
drifting ore
#

Is there a place with all the zones for ProceduralDistributions and SuburbsDistributions?

drifting ore
glass ravine
#

anyone got a hair mod tutorial?

drifting ore
glass ravine
#

how would i look at it

#

preferably

frosty stirrup
#

Guys, I cannot for the life of me find "Broken Glass" as an item to spawn/use. I also dont know its ID to use as an item in a recipe. Can someone tell me why is it so different from all other items?

covert atlas
#

Is anyone having issues with Zupercart on MP right now? It updated this morning and now all my carts/trolleys are gone

frosty stirrup
#

@covert atlas Updates can do that, I had that with mod updates with other items

#

in fact there's a chance all of them on the map are gone, in the locations that you visited

covert atlas
#

Gotcha, just wanted to make sure the mod was still working. I saw one before in a place and went to check it out and didn't see one, no

frosty stirrup
#

you can try spawning new one and seeing if it works

copper grotto
covert atlas
frosty stirrup
#

yep, login as admin and you can do that

covert atlas
#

I haven't ever spawned one before, is there a list you can choose from ?

frosty stirrup
#

you can also test in SP in -debug mode

junior flame
#

Hmm, I must have a misunderstanding of something; an item that I have setWet, setWetCooldown, and setItemWhenDry on doesn't seem to ever actually begin to dry out. Is there something else I need to do?

#

@frosty stirrup Broken Glass is a moveable

thorn bane
#

Would anyone know how to make a custom catagory?

drifting ore
frosty stirrup
#

@junior flame But you should be able to have ID even for basegame movables, right? What would be the name to use in the script?

#

And thank you for answering!

junior flame
frosty stirrup
#

like, a couch is a movable... You can have it in inventory

#

you can also have broken glass in inventory

#

is there a way to check for its presence and amount?

junior flame
#

I safely overrode the TimedAction for picking up broken glass, and created my own broken glass moveable

frosty stirrup
#

I probably misunderstand the concept

#

ah

junior flame
#

And also created recipes for creating broken glass from other objects

undone crag
#

Maybe it's like how myFunction is a variable which can be passed as a function argument, while myFunction() is a function call, and what it returns is what is passed as a function argument. So if HelicopterSandboxOptions returns nil, you are effectively doing Events.OnCreatePlayer.Add(nil). Maybe you could instead make a new function, like a local function or stored in a table somewhere, and do it like this

local myString = "OnCreatePlayer: ";
local function HelicopterSandboxOptions()
  local myString = myString;
  ---Your other things
end
north junco
#

How difficult would it be to do a sound mod for Zomboid? I'd like to change the zombie noises. I haven't tackled any modding previously, but I figured you guys might have some insight.

late hound
north junco
#

That's disappointing.

covert atlas
#

Does anyone know (or know where I can look) for the item string for zupercart trolley/shopping carts?

tranquil reef
#

is there like a print or Debug.Log method thing I can use, my mod is screwed up and I need to pinpoint where the code stops working lol

#

Also I'm new to lua and zomboid modding so forgive my potentially really stupid question

nimble spoke
somber mortar
#

Guys, do anyone have a " essential ", aka too good to be left out mod list for MP?

tranquil reef
#

It's not very helpful if I can't see when it's actually happening lol