#mod_development

1 messages Β· Page 509 of 1

sour island
#

just letting you know it's not as simple as changing a script file

plucky pollen
#

yeah im getting its not simple haha.. i just dont know how to do anything advanced lol..

it would just be the same text in the book nothing changing etc but.. thank you @sour island though i appreciate it

naive spruce
#

who needs peer approval when you can have all them fancy profile picks and effects spiffo

weary matrix
naive spruce
#

will definitely look into it, thanks for the link

#

only being able to watch for mod updates and trigger reboots on new releases is already a huge quality-of-life improvement

rigid dock
#

I would love a mod that gives realistic fog.. let fog also significantly reduce hearing, and let the fog actually affect both zombies hearing and vision. As much as the players. It's kind of silly They seem barely restrained by it at all

#

It would open up some awesome stealth play!

#

It is by far one of my favorite aspects of the game and a disappointing to see zombie is just charge me for miles away when they are invisible to me for no reason

willow estuary
#

LUA is the language used for almost all PZ modding.

naive spruce
#

yep, afaik base of the game is codded is java and an event api is exposed so you can use it with lua scripts

willow estuary
naive spruce
#

sounds like a cool mod, I wonder if affecting hearing radius makes sense in the context of realism, though

#

not sure, does fog really affect hearing that much?

#

(irl I mean)

rigid dock
rigid dock
naive spruce
#

TIL

rigid dock
#

What

naive spruce
#

we don't have too much fog where I live so that's something new I learned today

#

thus, TIL πŸ˜‰

rigid dock
#

Minecraft has a cool snow sound scape surprisingly, all you can hear is the crunch of your boots in the snow

#

While it's snowing that is

lime marlin
#

Anybody know how to fix JD-GUI not opening files on windows 10?

#

It just does nothing

rigid dock
#

Speaking of, snow should dampen noise too..

naive spruce
#

for sure, it's amazing how small details like that can improve immersion

rigid dock
#

@willow estuary I actually really wanted a mod similar to yours, but when the mists come, horrifying monsters spawn with cool loot. Kinda like the movie The Mist. But I don't see many people messing with models:(

willow estuary
# rigid dock If you're familiar with altering the weathers impact on the senses, could you ma...

Yeah, Night Zeds is what I call a "quickie" mod? It's actually really simple, it just regularly updates the sandbox settings for zombie senses & memory according to a set of parameters, with night being the worst and sunny mid day being the best?

But the idea is straight up hardcore/masochism/survival horror logic, not any sort of "realistic"-ish weather simulation? NZ is easy in that I can directly modify the zombie senses/memory, having the fog affect player senses would be more complicated?
||
if night == 1 or fog > 0.5 then
getSandboxOptions():set("ZombieLore.Memory",1)
getSandboxOptions():set("ZombieLore.Sight",1)
getSandboxOptions():set("ZombieLore.Hearing",1)
elseif night > 0 or fog > 0 or light < 0.5 then
getSandboxOptions():set("ZombieLore.Memory",1)
getSandboxOptions():set("ZombieLore.Sight",1)
getSandboxOptions():set("ZombieLore.Hearing",2)
elseif (hour < 12 and hour > 15) or light < 0.6 or sun < 0.85 then
getSandboxOptions():set("ZombieLore.Memory",2)
getSandboxOptions():set("ZombieLore.Sight",2)
getSandboxOptions():set("ZombieLore.Hearing",2)
else
getSandboxOptions():set("ZombieLore.Memory",3)
getSandboxOptions():set("ZombieLore.Sight",3)
getSandboxOptions():set("ZombieLore.Hearing",3)
end||

willow estuary
rigid dock
willow estuary
#

That's definitely cool! My thing is more making zombies insane asshole menaces for the most part πŸ˜„

#

But I did include the loophole where mid-day on sunny days is "safer"

rigid dock
young orchid
#

"True Actions. Act 2 - Lying" not working atm or am I doing something wrong

#

or maye just the wrong beds etc

willow estuary
#

I have toxic fog running, so having nast nasties come out to play when it's foggy makes sense for sure?
Having them despawn when the fog is over is a great idea.

willow estuary
rigid dock
#

I pictured like that..

young orchid
#

btw you modding guys are doing great. we started adding mods yesterday and really love it ❀️

#

@willow estuary sure, thanks

willow estuary
#

πŸ‘

willow estuary
# rigid dock I pictured like that..

I mean, you've got rigging clothing worked out, right?
So that means you can pretty much do what you like, within limits, with "humanoid-ish" specials?

rigid dock
#

But yeah, my picture them semi rarely spawning in the players general vicinity, and they have good loot like maybe fanny packs or an ammo belt stuffed with ammo so it makes it worthwhile to try to kill them when possible

willow estuary
#

Make "practical monster effects" out of clothing, and there you go :_

rigid dock
#

But they would be quite strong and fast and charge you and slash at you

#

But yeah, seeing those sword-like arms angling out of the top of the mist would be pretty terrifying

willow estuary
#

Yeah, I can see some possibilities for having them inflict deep wounds when meleeing players?
There's definitely some cool things that can be done withyour idea.

rigid dock
#

And of course it needs a bone chilling screech when it charges you

#

A screech that also alert other nearby zombies?

#

But yeah I kind of pictured it as leaving deep wounds, maybe with bone shards/teeth you have to pick out with tweezers instead of glass or something

#

I mean you rarely have a reason to use those awesome tweezers and suture needle as is!

#

It would also probably be something you don't want to attempt to fight with melee weapons unless you have very high skill

naive spruce
#

imagine that with the horror mods that make zombie heads glitch sideways...

#

"Afraid of Monsters Zed animations" that's the one

willow estuary
#

Or what I would do is start with broken glass working, and then get into trying to implement a new wound type?

rigid dock
#

Oh, I thought you might just copy broken glass and rename it haha

willow estuary
#

It's fussier than that πŸ˜„

#

I just started dabbling in medical stuff. Just wanted to point out that one, in that generally what you're proposing is "simple" in that all the individual pieces are "easy", except the tooth/bone splinter wound type?

rigid dock
#

Oh, I mostly said that because it is thematically cool, gives extra use to suture needles, and I thought it would be easy haha. We could just leave that part out and make it laceration instead.

rigid dock
# naive spruce "Afraid of Monsters Zed animations" that's the one

I was actually looking for that one, wanted to mention the mod that makes a super zombie that can't be killed. That always follows you, it looks like it actually has a new model for the zombie itself, big buff arms. I haven't really seen any other examples of new models. Unless that's that clothing thing

willow estuary
#

Yeah, the Nemesis special zombie in Soul Filcher's Turning TIme looks like a new model, but it's a "costume"

rigid dock
#

Which you never see on its body because you can't kill it?

knotty sandal
#

Oh hey, what if they made you cold?

#

A special zombie that inflicts temperature ailments would be kind of neat

rigid dock
knotty sandal
#

Like, standing within so many tiles of a special zombie causes you to freeze to death

willow estuary
# rigid dock Which you never see on its body because you can't kill it?

I don't know? Haven't messed with it, but it's not difficult to make clothing you can't "see" in the inventory window, you just don't assign it a display name in the item script? Look at Advanced Zombies VI for how I have extra code so players can't remove the zombie costume items from the inventory as well πŸ˜‰

rigid dock
#

Sounds like you are talking about a wraith

knotty sandal
#

Would you mind if I DM you about it?

willow estuary
knotty sandal
#

Fair enough!

willow estuary
#

Sorry, just too hectic nowadays to deal with it?? πŸ™‚

rigid dock
#

I actually just sent you a personal message as well to avoid clogging this chat haha.

knotty sandal
#

Yeah I like your no information, no bullshit approach

wild juniper
#

Does anyone happen to know why sounds would distort (audio swapping between ears) when custom sounds are playing? they're mono tracks, so I don't understand what could be causing it. Maybe a format issue? (using .ogg)

naive spruce
#

out of curiosity, what would be a "costume" as opposed to actual 3d models ?

willow estuary
knotty sandal
#

From what I've seen, it's possible to override the base mesh of the character with clothing models

willow estuary
#

Body models, and clothing models, are both models. The Hazard Suit clothing models completely replaces the character model, so it could be considered a "costume" or "model replacement".

knotty sandal
#

Your skeleton zombies use a clothing item, right?

willow estuary
#

So if you really wanted to make obese zombies, make a full body obese zombie model, make it into a clothing item, give it no display name, and maybe an inventory transfer override in lua, and there you go.

Nah, my skellies, they're actually "skeleton" zombies, that have the skeleton flag enabled, and not costumes?

knotty sandal
#

Oh wow, didn't realize that part of the base game

willow estuary
#

Body Appearance data, for players, zombies and corpses, has a skeleton flag?
That's how skeleton corpses are generated; they're a corpse with the skeleton flag.

#

Dunno if you can actually set the flag to skeleton for an actual player, there's a mod item that does player skeleton full body costumes however.

naive spruce
#

that sounds pretty cool, kinda like mixin models that other models can inherit

#

had no idea we could do something like that, thanks for the tip

willow estuary
#

Skeleton Zombies have some problems in that some clothing items and hairstyles don;t map to their geometry in any acceptable way πŸ˜„

knotty sandal
#

It also seems possible to add to or override animations, at least for players

#

You could probably make an animation such that the bones are in wild positions to look like a quadruped

willow estuary
#

Yeah, custom animation stuff has been beyond me since I'm fundamentally dumb and lazy and just play with lego pieces until they work? πŸ€ͺ

knotty sandal
#

Whatever you do seems to work, your mods are hands down my favorite on the workshop

willow estuary
#

Haha, hey, thanks a bunch πŸ™‚

quartz forum
#

Heya, wondering if it's possible to make a custom discord integration mod? in game to discord probably can read the log files .txt, but not sure if there's an API to send message in game

knotty sandal
#

I play on a server that outputs in-game /all chat to a channel on their discord server

#

I could try and find out how they did that

quartz forum
#

I think the current discord integration does that, but it doesn't show the "x died" message

willow estuary
quartz forum
#

I also kinda want to link in game name is x and their discord name is y

willow estuary
#

Death notifications are precisely what we made it for too!

quartz forum
#

nice

knotty sandal
#

You'll need to verify the discord user somehow

quartz forum
#

thinking I can do it manually through sandbox vars

quartz forum
#

I've only looked into javadocs and community API, didn't find something like this

#

unless I missed it

willow estuary
#

DIscord integration, and chat channels, have got/are getting, do-overs I believe, so more might or may become more possible with that stuff?

quartz forum
#

alright, thanks!

#

I guess for now I'll have another bot exclusively emit "died" message and let the 2 way chat handled by the built in discord integration

willow estuary
#

I remember there were multiple weird little quirks we had to deal with? πŸ˜„

#

Sorry, I wish I could be more help, but like I said it was a while ago and not something I set up? I still need to reconnect with homeboy and get it working again.

quartz forum
#

knowing that it's possible is enough help, so thank you

willow estuary
#

πŸ€™

tacit jasper
#

anyone knows what vehicle's java class name is? thx

distant stirrup
#

I'm wondering... Can you add maps to existing map if it is on a rented server?

wheat hare
#

generally speaking, for mods that add new items will any be generated in already existing maps?

distant stirrup
#

Yes

wheat hare
#

yay \o/
is loot generated on a opening a container for the first time? (I assume I won't find anything in locations I've already cleared)

knotty sandal
willow estuary
#

It's vicinity based, not on opening containers.
Not sure about loot respawn however.
Lucky/unlucky apparently don't work in MP currently πŸ˜„

naive spruce
#

yeah, that makes sense. if we think about it, how would things work for traits like lucky if all items spawned at once when the world is generated? imagine globally altering item spawns based on a single character having that trait in a MP server πŸ˜…

#

also, does it really not work in MP? gosh...

#

just realized I wasted some points in previous char builds

willow estuary
#

Just to be clear, items ordinarily spawn in the vicinity of players as the explore the world and the world chunks are initially generated.
So it's neither when a container is opened/peeped, or at world generation (aside from the world close to the player when they first spawn).

naive spruce
#

yeah, I got it

#

just food for thought

willow estuary
#

I think the radius of the area may be 75 tile.

naive spruce
#

which makes me think if lucky trait for multiple characters within the same 75 tile radius would stack in MP once support for it is added

tulip narwhal
#

some progress on my potentially pointless site app

#

php reads data from the server and uploads it to database where its read by a reactjs app

#

still trying to do rcon for an online players list, and then i want to read playerdata to see how long each has surived

#

i figure a leaderboard for 'longest survivor' might be fun

naive spruce
#

this isn't pointless at all

#

a lot of potential for fun/useful stuff

stray siren
tulip narwhal
#

thats good to hear

#

i STILL cant figure out how to read the time though

#

drivin me nuts

balmy plover
#

Speaking of potentially useless. I'm building a site for myself that creates a random build for a new run. Would anyone even want to see that? lol

#

I feel like the fun for most players is creating their own lol

stray siren
#

Why not

#

We live to suffer

balmy plover
#

lol

tulip narwhal
#

maybe it should have sliders based on how much you want to suffer

#

how many points itll use

balmy plover
#

Maybe I'll post it up when it's finished then. Right now it just chooses a random occupation based on real occupation stats from the bureau of labor and statistics. Just a slightly (not really) fancy weighted list based on real stats

stray siren
#

max absolute trait value

#

so you add the negative and positive values by magnitude

#

and the greater the magnitude you set the whackier the possible build

tulip narwhal
#

ha! thats actually pretty good

stray siren
#

you could have it do rejection sampling to random a proper build

tulip narwhal
#

i like that

balmy plover
#

For my runs I was thinking of only generating negative traits to a certain degree, and filling in my positives.

tulip narwhal
#

using a weighted list on real stats

balmy plover
#

Thanks. It was fun to research and put together.

tulip narwhal
#

you could if you wanted to get weird, use info from a census in kentucky. and assign random names

balmy plover
#

I was going to do that. But head cannon in me says, that people could travel

tulip narwhal
#

from the list

balmy plover
#

oh hahaha, random names that's also funny

#

not random, but I see what you mean

stray siren
#

Only use real genuine Ohioan names

#

for real whacky builds

balmy plover
#

lol

#

I was born in Ohio (escaped) so I could be one of them.

#

Either way, the reason I didn't go with just Kentucky is that the stats are shoddier and also there's a bias. So I went with the entire US and decided that they must have been visiting family πŸ˜›

willow estuary
#

Apparently the random name generation in Vanilla PZ is based on real census data? Although I don't think it's weighed.

balmy plover
#

I didn't know that. That's awesome

tulip narwhal
#

i kind of like the bias - if we are going with the theory that youd be taking the spot of a real kentuckian during the apocalypse

#

is it? thats great

willow estuary
#

Yeah, there's no weighing of individual names, they all have the same odds of being applied.

balmy plover
#

At least lumber jack is balanced now with this. There are a shockingly (maybe not) low number of lumberjacks in the statistics. But getting burglars and fishing license data was fun.

#

Right now it's just a site. But ultimately, I'd like to build an in game GUI that does all of this. But I'm very very new to modding the game.

#

Translating my javascript to LUA will be interesting lol

naive spruce
#

well, you could just shift-tab and open the site using steam overlay for now...

stray siren
#

Fire Officer is just unbeatably based

#

Making a mod that's just a pack of professions with unique traits

#

seeing how the TraitAPI from the CommunityAPI makes that way easier

#

would be fun

balmy plover
#

yeah, for sure. I mean I could use rasProfessions (or my own I suppose but he did a great job it seems of modifying the original profession framework) and expanding it would take time, but ultimately the framework is there

#

I'm also coming up with a "lore" scripts as well. Adding an array of possibly "reasons" for your traits and tying them together to create a back story for your random character

stray siren
#

I'm using the MoodleAPI from CommunityAPI wrong somehow

#

but I'll figure that out tomorrow KEK

balmy plover
#

I keep wanting to put down this damn "mod" and just play. But it's hard to lol

stray siren
#

there's very few mods with custom moodles so it'll be fun to get one working

#

and then everyone can template the one I make for easy moodles dab

#

I'm trying to jack the 0-10 unhappiness range as "happy"

#

this will also be my first time using lua so that's why I keep fucking up its syntax KEK

lapis stump
#

why is my sound stopping after like 20 tiles but I have distanceMax in clip set to 10k ?

#

I play the sound with player:getCurrentSquare():playSound(sound) btw

rigid dock
sour island
#
    if not button.inventory:isExplored() then
        if not isClient() then
            ItemPicker.fillContainer(button.inventory, playerObj);
        else
            button.inventory:requestServerItemsForContainer();
        end
        button.inventory:setExplored(true);
    end
```- ISInventoryPage.lua
#

Would be insanely costly to generate loot as the cell is loaded

naive spruce
#

hm, yeah. even more so for MP with a high player count

willow estuary
#

From my custom code for testing spawning

LOG  : General     , 1641963611090> Lighter - 1 - livingroom - sidetable
LOG  : General     , 1641963611092> Player at 10838.8125/9463.5322265625 - Item spawned at 10753/9529 - Distance 151.2802734375
LOG  : General     , 1641963611094> Matches - 1 - livingroom - sidetable
LOG  : General     , 1641963611096> Player at 10838.8125/9463.5322265625 - Item spawned at 10753/9529 - Distance 151.2802734375
naive spruce
#

ok, now I'm confused

willow estuary
#

Used to test how common lighters/sledges/gas cans etc spawn for MP.

#

The onFillContainer event fires it off; this all went off when I was on that road there.

LOG  : General     , 1641963726214> Sledgehammer - 1 - warehouse - crate
LOG  : General     , 1641963726216> Player at 10590.689453125/9416.38671875 - Item spawned at 10618/9321 - Distance 122.697265625
LOG  : General     , 1641963726217> WoodAxe - 1 - warehouse - crate
LOG  : General     , 1641963726218> Player at 10590.689453125/9416.38671875 - Item spawned at 10618/9321 - Distance 122.697265625
LOG  : General     , 1641963726923> WoodAxe - 2 - warehouse - crate
LOG  : General     , 1641963726924> Player at 10590.689453125/9401.8759765625 - Item spawned at 10620/9315 - Distance 116.1865234375
LOG  : General     , 1641963726938> WoodAxe - 3 - warehouse - crate
LOG  : General     , 1641963726939> Player at 10590.689453125/9401.8759765625 - Item spawned at 10624/9315 - Distance 120.1865234375
LOG  : General     , 1641963727645> Sledgehammer2 - 2 - warehouse - crate
LOG  : General     , 1641963727646> Player at 10590.689453125/9389.6142578125 - Item spawned at 10624/9305 - Distance 117.9248046875
#

Not sure how distance is calculated; just using local distance = sourceGrid:DistTo(player)

#

It's repurposed code from Filibuster's WIP gun mod; it used onFillContainer to modify our guns as they spawn?
But I used it as a tool for evaluating how many sledges/axes/gas cans/lighters spawn?
It's useful to testing how many of a mod item spawn as well, if you modify the code πŸ™‚

#

Now, how does this work with loot respawn? That I have no idea.

tacit ermine
#

the game periodically scans all chunks that have ever been loaded, all their objects, and checks if they're containers that have been looted

#

then it just does fillContainer again if it needs to

willow estuary
#

I am shocked lookign at this output in that the distances are further than I assumed πŸ˜„

tacit ermine
#

it's when the IsoGridSquare is loaded (32x32 tiles? maybe bigger?) or the container has been opened for the first time, and it wasn't populated by loot distribution

#

having a hard time imagining what containers wouldn't be filled when the grid is loaded

#

maybe containers inside containers

willow estuary
#

Well, even containers inside containers fill on OnFillContainer when I had recursive code for the gun mod?

#

I imagine that container check might be a safeguard, or archaic?

tacit ermine
#

yeah maybe it's legacy

willow estuary
#

I'm actually surprised that containers are populated before a building is entered, as there's flags to track them and individual rooms having been entered or not?

tacit ermine
#

that's only considered for respawns

#

population happens in LoadGridsquarePerformanceWorkaround

willow estuary
#

Ah! There are also corner case circumstances where a container can come to exist after a chunk/square is loaded?
That happens with some of my custom loot cache mod stuff; it creates a container in the vicinity of the player in a loaded square, and it still gets populated with distro table loot for it?

#

Somewhere in here or after this the container is populated:

local newBarrel = (IsoObject.new(getCell(), square, "greensupplybarrels_1"))
local container = ItemContainer.new("SupplyBarrel", square, newBarrel, 1, 1)
newBarrel:setContainer(container)            
square:getObjects():add(newBarrel)
square:RecalcProperties();
#

Or probably at the check when the player peeps the contents.

grizzled grove
willow estuary
tacit ermine
#

looks like it doesn't

#

unless you get the case where a container has been added to the world after the grid was initially loaded for the first time

verbal ivy
#

Why is the command createZombie() only spawn a zombie on the local player? somehow in MP other players can't see the zombie that spawned in, what a weird mechanic

tough stone
bleak grotto
#

Hi

I opened a server for Project zomboid. It's been open for 20 days and a lot of players are playing. No mods are installed. vanilla. I found a mod with multiple different features in it. One of these features is the reset area system. Resets other locations outside of spawn zones and safehouses. But I guess they do this by restarting the server and deleting the map_x_y_.bin file. I wasn't sure.

Is there anyone who can help me with this?

white cradle
#

How would you go about making animations for PZ?

rich wagon
#

Has anyone played around the IsoThumpable file ? I suppose this dictated if zombies can thump and destroy objects in the world

drifting ore
#

Hi, would someone be tempted to help me fix bugs in my mod for MP ?

#

Je sais @weary matrix tu t'es dΓ©jΓ  proposΓ© mais c'Γ©tait il y a plus d'une semaine donc je redemande mais si tu es toujours dispo, ca sera avec plaisir

drifting ore
weary matrix
#

@drifting ore of course, but right now I have to go to an appointment, should be back home in about 3 hours or so

weary matrix
rich wagon
#

what do you all use to open .class files ? I can't seem to open them

weary matrix
#

@foggy anchor you should ask in #mod_support, your question is off-topic here

foggy anchor
#

Dangit. sorry co

rich wagon
weary matrix
#

@foggy anchor sorry if I sounded rude, we're just getting way too many of those questions in here πŸ˜…

foggy anchor
#

No, no, you're just fine.

weary matrix
#

good πŸ™‚

foggy anchor
#

Flaming would have been completely acceptable in that scenario.

drifting ore
weary matrix
drifting ore
#

That's why I'm doing this mod, it keeps me busy ^^

weary matrix
#

ah good πŸ™‚

barren kindle
#

This is probably a stupid question, but is the modding exclusively done through lua? Or can you write stuff in Java?

hardy garnet
drifting ore
#

I use onPlayerUpdate(), do we know the in-game time between each update? Is it stable as a parameter?

pine vigil
rich wagon
#

on multiplayer server, there is an admin option to enable "pvp-free zones". Is there an easy way (lol) to implement the opposite ? specific zones with pvp enabled ?

rich wagon
#

i guess it can be done my making a file similar to ISAddNonPvpZoneUI.lua but i'm not sure where to go from here

pine vigil
#

It's been a while and maybe I'm crazy, but I thought I remember there being a server option flag to invert the zones.

rich wagon
#

there is a similar file called IsPvpZonePanel.lua but i can't find anything in there neither

pine vigil
#

It's been a while, it's statistically probable that I'm wrong.

rich wagon
#

unfortunately it's not there, maybe it was though

pine vigil
#

No, I'm probably thinking of the safety system or something.

weary matrix
rich wagon
#

i guess i could try and create non-pvp zones where i don't want pvp zones but the game makes it super laggy

tacit ermine
#

best case for OnPlayerUpdate is 60 fps, worst case is 3 fps

#

it adjusts based on load

#

players always get scheduled at 60 fps actually, only other objects get staggered

tacit ermine
#

oh hm, but someone with safety off can still attack someone with it on I think...

#

might not be something you can do without core changes

rich wagon
tacit ermine
#

in what case?

rich wagon
#

what i mean is that the game allows certain region to have "no-pvp"

#

why would the opposite need core changes ?

tacit ermine
#

because it's not something the game supports

#

code was written to make non-pvp zones work, there's no code to make the inverse work

rich wagon
#

i understand

tacit ermine
#

the check is done inside SwipeStatePlayer#checkPVP(...), if you wanted to change how non-pvp zones work you'd have to change that

rich wagon
#

where did you find this line ?

#

sorry for all the questions i'm very new to this

tacit ermine
#

it's part of the Java code

rich wagon
#

alright thanks again

analog umbra
#

going through the pins and couldnt quite find what i was looking for. Does anyone have a link to a tutorial from start to finish in creating a mod? Would like to see the process from the beginning to uploading.

#

I'm in school for software development so coding is coming to me slowly but surely lol

rich wagon
tacit ermine
#

they're stored in the binary map_meta.bin file

hardy garnet
#

modding PZ is time consuming

#

scattered across so much stuff

rich wagon
verbal ivy
#

Air-Crews rise up

rich wagon
#

what should i use to look at a bin file ? I'm using hexeditor but the file is just random stuff like this :

stiff urchin
#

<@&671452400221159444> Spam and malicious link above this

#

Bless the mods

weary matrix
rich wagon
#

"funny" thing is that if i take a similar bin file i get actual readable results

#

this is the map_meta.bin and if I take map_sand.bin i can read it

smoky jewel
#

does anyone know the name of the mod that allows me to dismantle crashed cars (not wrecked car) on the street?

rich wagon
#

sorry once again i'm a beginner here

winter ermine
weary matrix
weary matrix
rich wagon
#

i'll do my best

weary matrix
#

@drifting ore I'm available if you need

tacit ermine
#

it is data

tacit ermine
#

if you want to decode it look at IsoMetaGrid.savePart(...)

weary matrix
hardy garnet
weary matrix
#

@rich wagon have you found an answer about IsoThumpable?

rich wagon
verbal ivy
calm depot
#

So, I've made a mod of sorts for save games, though it's just a technical preview right now. If anyone (technical) has feedback, let me know.

https://github.com/Olipro/ZomboidDB

weary matrix
#

@calm depot that's nice! Would it scale for big pz servers?

calm depot
#

yeah

#

if you're hosting on Linux, my plan is to do the hooking with just a lib and you can LD_PRELOAD it

tulip narwhal
weary matrix
#

@calm depot interesting, wondering how hard it would be to do it in plain java directly

calm depot
#

get IntelliJ IDEA, it can decompile the class files

drifting ore
tulip narwhal
#

Ty

weary matrix
calm depot
#

@weary matrix well, the Java bytecode could be patched, but that would be more troublesome IMO than doing the interception at the OS level like this does

tulip narwhal
#

Thanks

weary matrix
#

@calm depot I load java code in the engine without actual patching πŸ˜‰

calm depot
#

sure, you're loading new code, in this case you want to alter existing behaviour

#

also, they use SQLite for players.db so there must be a reason they're not using it for everything from Java land - my guess is performance issues

weary matrix
#

@calm depot no clue but that was the target of my initial question πŸ˜›

tulip narwhal
#

Players.db,vehicles.db, and then a db for whitelists

weary matrix
#

@calm depot have you considered using Redis?

#

instead of sqlite3

calm depot
#

O_o

#

I'll have some of whatever you're smoking

tulip narwhal
#

I dont know if you want any

#

Half his head is off

#

And hes lookin a little green

weary matrix
#

@calm depot sounds like an offensive answer

#

are you on crack? πŸ˜‚

calm depot
#

it was a humourous answer πŸ˜›

weary matrix
#

@calm depot I'm pretty sure Redis could be used, like using the map coordinates as keys etc

calm depot
#

that would imply a total rewrite of PZ's Java code that loads the save games and deserialises the binary files that currently exist

trim kraken
#

What to do when i try to host and it says : workshop item different than the server

weary matrix
#

@calm depot doesn't have to be a full rewrite, just need to intercept the requests to DB, which if I understand correctly is what you're doing

calm depot
#

you can go to steamapps\workshop\content\108600 and then into whatever ID the game gave you to see what it is

#

@weary matrix no, not really. They're currently just on-disk binary files using their custom format, essentially opaque blobs - but if you think you know better, go peruse the code and point me at what you see

trim kraken
#

how to update mods ?

calm depot
#

Unsubscribe and immediately resubscribe

trim kraken
#

do I have to find every single one of them by hand

#

aight

calm depot
#

yep πŸ˜„

trim kraken
#

f m

calm depot
#

I know

winter bolt
#

cant you just delete the workshop download folder

calm depot
#

maybe, try it and let us know

#

I would, but the re-download would be annoying

#

some of us have 512Kb hotel wifi to contend with

weary matrix
calm depot
#

if only it really were that easy eh?

weary matrix
#

I wish it was

#

But it should be! πŸ˜‚

#

@calm depot hmm but your writing the data to sqlite3 db, if you can do that it could be send to Redis

calm depot
#

yes, it could be, but what makes that a remotely good idea?

weary matrix
#

Performance?

calm depot
#

it won't be faster

#

the SQL queries are already precompiled into bytecode

weary matrix
#

Sqlite is on disk, redis is memory based

#

Also sqlites suck with big databases

calm depot
#

that's a bit useless when your server goes down

tacit ermine
#

you presumably want your save games to be persistent

calm depot
#

also, sqlite uses mmap

#

so it's not actually true that it's "on-disk"

#

it's just on-disk insofar as it guarantees your shit doesn't get corrupted

weary matrix
#

@tacit ermine redis is a separate processs, and it can save data to disk

calm depot
#

also, the SQLite connection is 1DB per save game

#

it's not all getting chucked into one instance

#

each one can execute on its own thread

#

yes, the fact it's a separate process means you have a network connection or unix socket

#

this is entirely in-process

weary matrix
#

Whats the problem with unix socket?

calm depot
#

there's no problem with it, other than the fact you think it would be faster to go across the kernel boundary to something that's single threaded

weary matrix
#

@calm depot I do think so because it's the case πŸ˜‚

#

you should check redis

calm depot
#

I know all about redis

weary matrix
#

how can you believe sqlite3 could achieve faster access then?

calm depot
#

I've even used it

tacit ermine
#

why do you believe it can't?

calm depot
#

tell you what, go implement it for Redis and we'll have a benchmark contest

#

my LTO C++ app vs whatever you come up with

#

I can run a separate SQL DB per game instance, per thread. You've got 1 redis instance using just one thread of however many cores you have

tacit ermine
#

once sqlite has mapped the file into memory and the relevant pages have been touched it's doing almost the exact same thing as redis, searching a sorted set for a key

weary matrix
#

@tacit ermine sqlite is quite slow

tacit ermine
#

no, it isn't

calm depot
#

no, it isn't

#

osnap

#

I find myself reminded of that "MongoDB is Webscale" meme

#

Only Devops people will know the pain

weary matrix
#

hmm I kind of remembered sqlite3 sucked for multithreaded apps, but I guess that's wrong indeed

calm depot
#

it depends entirely on your scenario

#

if you're sharing a DB amongst threads, yeah, that can encounter contention

#

although it also depends heavily on whether you're more read or write

dreamy chasm
weary matrix
#

@calm depot @tacit ermine any clue what could be responsible for pzserver to freeze sometimes on exit?

#

different people told me about it but had no chance myself to reproduce the issue yet

calm depot
#

no, but if you're curious, run Process Monitor and see what it's calling

tacit ermine
#

would check with jstack

#

hasn't happened to me

#

consistently shuts down in <10s

weary matrix
#

nice, didn't know about jstack

#

@calm depot I'm only aware of people having this issue on linux servers

#

but yeah I would investigate the process if I could just reproduce the issue

tacit ermine
#

what does frozen mean, though?

#

the server isn't interactive during shutdown

spark plank
#

hey fellas, I'm having trouble understanding how to add a new slash-command to the game via lua;
I've added a folder to the mods/[name]/media/lua/server/[name]/[name].lua with this code, https://pastebin.com/yV5gXaWG -- still, when issuing the command it ... returns "unknown command" -- which is.. understandable as I've never introduced the command to the game - just the function

weary matrix
# tacit ermine what does frozen mean, though?

well from the logs I've seen, the freeze occur before quit, but after the saving process has finished. Then the server is not not responding to any commands, whether it is through the console directly, or through RCON

#

that's all I know for now

tacit ermine
calm depot
#

after you've told it to shutdown, I imagine the RCON listener is one of the first things to go

tacit ermine
calm depot
#

@spark plank so is the command argument not what you're looking for?

#

print it and see what you get

tacit ermine
#

there's commands, server commands, and client commands

#

server commands and client commands are part of a multiplayer state sync system

#

commands are the actual chat commands

spark plank
spark plank
tacit ermine
#

you can't add a new chat command without changing java code, unfortunately

#

but you can look at how campfires work if you think client/server commands might work for you

spark plank
#

nah, I think I can hook on the "onKeyPress" :D

#

as long as I can have that player "/say" something, I'm good

tacit ermine
#

oh, right, I see what you're doing

#

chatManager:sendMessageToChat("my player name", ChatType.say, "my text")

#

maybe

spark plank
#

can't we access getPlayer().Say() ?

tacit ermine
#

I don't see that in my method list

#

oh, there it is

#

yeah, you can

#

or SayWhisper, SayShout, etc

spark plank
#

one doubt: is the correct notation dot (Object.method()) or with : like (Object:method()) ?

calm depot
#

depends

#

in lua, :stuff() is just syntactic sugar

tacit ermine
#

object:method() = object.method(object)

calm depot
#

^that

spark plank
#

Hah! Makes some sense. Thanks :)

calm depot
#

it creates an implicit first parameter called self

spark plank
#

(yep, same as .bind or .call(this)) on js

calm depot
#

so function tbl.a(self, stuff) end is the same as function tbl:a(stuff) end

weary matrix
#

there's also the case of java static methods, in which case you should use a dot

spark plank
#

awwyeah :)

#

thanks fellas :)

brittle jewel
#

Are you doing that with ':Say()'?

spark plank
#

yep, getPlayer():Say('string')

#

got the random with ZombRand instead of math.random()

brittle jewel
#

I'd imagine you're making this for MP? I couldn't get 'Say()' to show for others, when I tried it. I tried it lots of ways as well. If you have issues with that, you may want to replace it with 'processSayMessage()' - that one is global function, so no 'getPlayer()'.

spark plank
drifting ore
thick bobcat
#

hey there. i tried to write some code. took much from other mods so i could get into learning lua or scripting in general. Now i have an OutofBoundsException with my script and i didnt manage to fix it. Also i am not really sure if i used arrays correctly at all. Would someone be willing to give it a look? maybe its a simple fix :9 thanks in advance

lapis stump
#

playerIndex = 0 lua arrays start at 1

thick bobcat
#

oh

#

thank you very much

#

i feel dumb now xD

tacit ermine
#

playerIndex isn't used as an index into an array, it's passed to getSpecificPlayer

#

which takes an index beginning at 0

edgy star
#

Is there a list of working mods for mp

willow estuary
#

It's confusing sometimes in that the lua code will use player and playerIndex interchangeably for the playerIndex value, while also using player and playerObj interchangeably for the actual player object.

willow estuary
# edgy star Is there a list of working mods for mp

#mod_support is probably the better place for that sort of inquiry, as this is a channel for mod making nerds to work out mod making stuff? πŸ™‚
But nah, "the list" isn't anything that exists, and TBH, given all the confusion and misinformation, I wouldn't put any faith in one?

rain pumice
#

Can I install the pz libraries into visual code?

#

I've been learning lua for the past 2 weeks so I'm pretty new to all of this, I just really wanted to get into modding lol

tacit ermine
#

the Java code, you mean?

rain pumice
#

Not the java

tacit ermine
#

then no, there's nothing more helpful than what you get when you open Lua in vscode normally

rain pumice
#

Will doing reverse engineering the best thing to start modding myself then

#

Bc I see that the GitHub post doesn't really say much

tacit ermine
#

GitHub post?

rain pumice
#

There's a modding "guide" on github

drifting ore
#

How do I import the functions of a game file into one of my .lua files? require "ISHealthPanel" don't work. My file whant the function in media\lua\client\XpSystem\ISUI\ISHealthPanel.lua and is inmedia\lua\client\XpSystem\ISUI

tacit ermine
#

try require "XpSystem/ISUI/ISHealthPanel"

drifting ore
#

Already try

#

Or maybe I tried "XpSystem\ISUI\ISHealthPanel", I will check

drowsy cobalt
#

Is there a way to create just a server side mod? I'm looking to make something simple for my server that will announce when a player joins and leaves the server.

rain pumice
drowsy cobalt
#

I found that in the pins, wasn't sure if that was my starting point. ty

rain pumice
#

Sorry I didn't mean to reply to you with that

#

I'm on the subway and I was just trying to send that before, but I just caught a glimpse of internet my bad πŸ˜‚

#

@Doggus#5520

weary matrix
thin hornet
#
local onlinePlayersList = ArrayList.new();
--- OnScoreboardUpdate
local function onScoreboardUpdate(usernames, displayNames, steamIDs)
    local connected = ArrayList.new();
    for i = 0, usernames:size() - 1 do
        local username = usernames:get(i);
        if username then
            connected:add(username);
            if not onlinePlayersList:contains(username) then
                triggerEvent("OnPlayerConnecting", username); -- custom event for my stuffs
            end
        end
    end
    
    for i = 0, onlinePlayersList:size() - 1 do
        local username = onlinePlayersList:get(i);
        if not connected:contains(username) then
            triggerEvent("OnPlayerDisconnected", username); -- custom event for my stuffs
        end
    end
    onlinePlayersList = connected;
end
Events.OnScoreboardUpdate.Add(onScoreboardUpdate);
#

all client side

drifting ore
#

Nop require "XpSystem/ISUI/ISHealthPanel" don't work, I find this rly weird

nova berry
#

Any good example of a mod that can add or remove traits ingame?

#

for example, consume an item to add a permanent trait

tacit ermine
#

it's just player:getTraits():add("trait name") iirc

willow estuary
#

This is what I use, which is the same as the above with more steps. I dunno if SynchXp is necessary? πŸ˜„

local traits = player:getTraits()
traits:add("trait name here")
SyncXp(player)
tacit ermine
#

nah, that only works for admins/mods

gleaming valve
#

how do I set the condition on a crafted item?

willow estuary
tacit ermine
#

it's used for the UI panel where you can edit another players stats

#

yeah exactly

willow estuary
#

I'm not joking when I say I just play with the lego pieces until something works!
Ah, it's on account of the player being modified being a different entity than the client player object?

lapis stump
#

is clothing:getCondition() always in range of 0-10 ?

tacit ermine
#

no, but 10 is the default max

#

you can set it with ConditionMax in the item script (and get it with a var of the same name)

lapis stump
#

so for most vanilla clothes the condition will be max value of 10?

#

i thought it would be 1.0 or 100 kinda confused

tacit ermine
#

doesn't seem like it

#

a quick search gives me some shows with a max of 24

lapis stump
#

oh boy t_t

willow estuary
#

I believe if an object doesn't have a defined conditionMax, it defaults to 10?

tacit ermine
#

yeah

#

why do you care about it being 10?

drifting ore
#

Can I recover the isoPlayer from one of its BodyPart?

lapis stump
#

im drawing overlays based on condition

#

i will just use getConditionMax() instead

willow estuary
#

Fun little side note, all objects have a condition value, even items that don't degrade the way weapons and clothing does.

tacit ermine
#

item:getCondition() / item:getConditionMax() normalizes it to [0, 1)

#

if that's what you need

tacit ermine
drifting ore
#

Damn it

tacit ermine
#

do you only care about doing it for players?

#

if so just go over every player and their body parts until you find the same instance

drifting ore
#

No I'm stupid, the variable is stored in the table of the other arguments

willow estuary
tacit ermine
#

no

#

the Java code has access to it, but the field is private

#

there's no getter function exposing the field

long sun
#

hello is it advisable to put a lot of mod on a multiplayer server?

drifting ore
#

No getParent(), I also thought of that, funny that it is not available

drifting ore
drifting ore
#

Going to use my monkey brain to change some loot tables

#

I need advice for making things reasonable

#

Here’s the problem I’m trying to fix

#

Problem: β€œalarms and motion detectors and ridiculously hard to acquire”

#

Inb4 just raid an electronics store bro!

#

I could use less gasoline to make thrice the amount of bombs as an engineer making the trigger mechanisms a moot concept

#

I was thinking about adding timer ⏲ to the loot table of digital watches

#

And burglar alarms to the loot table of doors with windows (front doors)

#

I need advice on what would be reasonable

#

I was thinking 1/20 chance to find either?

#

Maybe less for burglar alarms because doors are harder to farm?

#

Like a 1/12 for doors?

#

I don't make mods, but someone should make craftable needles a thing, because I can never find needles

#

Forgot to mention that it would be the loot table of disassembling said items

drifting ore
#

oh that's rad, thanks man

weary matrix
drifting ore
#

Anyone any advice at all?

weary matrix
#

also 1/12 is more than 1/20, not less

drifting ore
#

I’m aware

#

I was thinking 1/12 because doors take much longer to take apart

#

And have added scarcity

#

Compared to watches

#

But yeah I worded it poorly

#

how can i make hand held models ?

#

i made ground objects

#

but i don't get how hand items are like

neat kayak
#

It might have been a while ago, but have you been able to make any new custom containers with bigger capacity? Or anyone, for that matter?

For a while I've been trying to add a new tile item through the Modding Tool on Steam, but TileZed doesn't let me increase the actual ContainerCapacity property more than "100"....
My goal would be to add a tile container with just a huge inventory for mass storage.

P.S.:

  • when I editied the *.tile file through VS Code, even when I reversed my changes, TileZed would just suddenly close on me when I try to load my custom tile-set
drifting ore
verbal ivy
#

Anyone knows about the sendcommandtoserver function? There is werid report that when run this function in MP, a random client side player will ger the error of "don't have right to run the command". Why is this happening?

#

Why is sendcommandtoserver causes a random client player to try run the command? No clues why does this happen

drifting ore
weary matrix
#

ah nice

weary matrix
verbal ivy
#

If a server side run the sendcommandtoserver(), does it randomly choose a client player to run the command?... werid.

blissful heath
#

Hey y'all, brand new to modding here and just dipping my toes in, I tried to create a model and texture for a new item, but I'm experiencing that the item goes invisible when dropped (it's still there and can be picked back up). No error logs I can see in console.txt. Any advice or does anyone know what causes this? I assume it's something wrong with my model, I'm very inexperienced in 3d work.

drifting ore
#

I knew it was obvious

soft valley
#

@blissful heath you may find this useful

#

and i believe it covers creating the clothing item into an actual item

#

to prevent it being invisible

cedar vault
#

Hey can some one help me out with good modlist for a server, i kinda havent ever moded a MP server and im having issues finding good mods that are compadible. DM me if your keen to help out

blissful heath
#

I think I am pointing the models.txt file in the right direction to pick up both (I've tested using a different mesh with my texture and that works).

soft valley
#

Oh my bad

blissful heath
#

But using my mesh, it always shows up invisible.

soft valley
#

Yeah i must've read that wrong, just woke up and am on my first cup lol

blissful heath
#

lmao no worries

#

I have to assume I changed the mesh I was working with in some way which is invalid. Are there some unspoken rules that meshes must conform to? Or any way to see more detailed logs than are in console.txt?

brittle jewel
#

Have you created a unique guid for it and added fileGuidTable.xml? If not, look at that section in the linked tutorial above.

winter bolt
junior flame
brittle jewel
#

Ah, you're correct. I misunderstood and thought they were doing clothing.

blissful heath
#

I can always go import the squirrel again and try making infinitesimal changes at a time until I identify what breaks it lmao.

junior flame
blissful heath
#

I can pick it back up and everything else works.

junior flame
#

Is your model one, single object or is it composed of several objects? I ran into problems when I forgot to join my scene down into a single object.

Models with no textures are also invisible.

Double check pathing and file names. There's a lot of little places for hiccups to happen lol

blissful heath
#

oh

#

well

#

hm

#

That sure is a raccoon

junior flame
#

in the model definition, scale it down

#

but hell yeah

blissful heath
#

esfnnj

#

Wait help me, why is this happening now

#

I just took the squirrel, didn't resize it

#

Used the same 0.4 scale

#

Did Blender change the scale when it imported, hang on

#

wait was this actually appearing the whole time and I didn't see that the giant raccoon was there because it was outside of the house

drifting ore
#

been fiddling around trying to understand how hand held models work

blissful heath
#

holy shit

drifting ore
#

got no idea

junior flame
#

it can, yeah. in the object properties i use XYZ Euler set to 1.0, and then i export at a scale of 0.01

#

then tweak as needed when defining the model

#

it can do some really fun stuff

blissful heath
pine wharf
#

how do i get mods to work on a gportal server

#

i added the names and the workshop id

#

but they wont load in

#

its just bedford falls and katana

drifting ore
pine wharf
#

got it thanks

lapis stump
#

does getPlayer() always get the local client even in mp?

blissful heath
junior flame
#

Nice work, happy to help πŸ™‚

drifting ore
#

i made the ground ones already

junior flame
#

for those same items?

drifting ore
#

yes

#

been trying to look at the scissors trying to get an idea on how it works but no results so far

junior flame
#

Does it work if you set StaticModel equal to the same thing as your WorldStaticModel?

brittle jewel
# lapis stump does getPlayer() always get the local client even in mp?

I think that is one of the lines that will specifically cause issues in MP. If it's a clientside script, getSpecificPlayer(0) will get the player. (1) would get the split screen 2nd player if they were playing coop. If you need to do something serverside, you'll need to pass the player's ID with player:getOnlineID() and then on the server you can do getPlayerByOnlineID(id)

lapis stump
#

does getOnlineID work in splitscreen/coop ?

brittle jewel
#

It's not necessary in splitscreen/coop. I don't think it works there. You'll need to do getSpecificPlayer in that case.

#

It's not very elegant, but for defecation, I just added a couple of extra functions to check for getSpecificPlayer(0) and (1) to handle a 2nd player.

lapis stump
#

the devs really made it complicated to make mods work on all game modes :/

brittle jewel
#

That's the nature of networking, unfortunately

rain merlin
iron junco
#

Hello everyone! A newbie here. I am really interested in trying out modding and already have a few ideas. I have almost little to no experience, therefore I want to start out with a re texture. I would like to ask, if anyone has any tips for it. What program should I use? Or should I start out with something different?

lapis stump
#

What am I doing wrong? The sound completely cuts out after moving away ~10 tiles.

 soum:PlayWorldSound(_sound, square, 1.0, 10000.0, 1.0, false);
    sound test.ogg
    {
        category = World
        loop = false,
        is3D = true
        clip
        {
            file = media/sound/test.ogg,
            distanceMax = 10000,
            volume = 1,
        }
    }
iron junco
weary matrix
#

Any clue how to have some kind of ModData associated to the steam user instead of an IsoObject?

drifting ore
#

its flipped tho XD

naive spruce
#

Something I usually do in the rare occasions I decide to model something is to first import a native model of similar dimensions to what I want to create that already exists in the game (you can do that in blender by installing an extension if I remember correctly) and then I use it as a reference to match both scale and orientation. Most here probably already know that, but oh well...

spiral plover
#

@sour island you got any documentation on your sandbox easy config mod?

dim pawn
#

is there a mod where I can put a gun to my own head and execute myself? So my bitten player doesn't turn.

spiral plover
#

There was @dim pawn called like Suicide With Gun or something, dunno if it still works

sour island
spiral plover
#

Damn, I've been trying to add a simple sandbox check for Facility-7 to allow for the Insurgent mode in MP, any idea where I should look?

sour island
#

I mean modoptions is pretty good from what I hear - I just like to torture myself I guess

#

I'll let you know once I figure out how to pass information back and forth consistently and have it show up on the UI

spiral plover
#

Awesome, thank you

brittle jewel
#

@spiral plover I'm not sure what you're working on, but is there any reason you can't use the regular sandbox options? Those are pretty easily modded.

spiral plover
#

I need to add custom ones, in preferably a custom tab

brittle jewel
spiral plover
#

Oh? I'll take a look then, thank you

brittle jewel
#

If you throw that in your mods and activate it, you'll see the new tab and it also shows how to add to an existing tab - 'ZombieLore' in this case.

spiral plover
#

Sweet, alright

sour island
#

Oh you wanted sandbox options - I should have read better

#

myb

spiral plover
#

Ahaha all good

opaque tartan
#

Ya know I was recently looking into modding of Zomboid and a big thought came to me.

#

Like if the modding gets more and more popular it can kind of be similar to SS13 in the capacity of what's available to do. Just a thought.

naive spruce
#

I was playing around with spawns and came across the following: Max #ZONES on one chunk is 19. Apparently each region table can have a max of 19 sets of spawn points (zones). I wonder if there's a way to get around that other than creating multiple separate spawn regions, each having 19 zones.

spiral plover
#

Anyone happen to know what "java.lang.RuntimeException: __le not defined for operand" means in regards to multiplayer?

#

My mod works just fine in singleplayer and splitscreen, but when trying to access some player data in MP it breaks

#
if SandboxVars.Facility7.ToggleInsurgentMissions == true then
        if player:getHoursSurvived() > 8 and modData.insurgentObjIndex <= 0 then
            local infobox = ISModalRichText:new(getCore():getScreenWidth()/4 - 100, getCore():getScreenHeight()/4 - 50, 200, 100, getText("Challenge_Facility7Ops_ReminderBox")..(FacilityDynamicRadio.channels[1].freq/1000), false, nil, nil, 0);
            infobox:initialise();
            infobox:addToUIManager();
        end
    end```
#

it breaks at the second if

#

Is there any specific way I gotta be checking these? what changes do I need to make for MP?

#

modData is attached to gametime in this case

quasi geode
spiral plover
#

This function is being called in a script inside the client section of the lua folders, this isn't an issue is it?

sour island
#

you should move it to shared

spiral plover
#

Ah, alright I'll do that

#

Does the folder really matter?

#

That would be important to know lol, I'd assume so

sour island
#

I'm still trying to figure that out honestly

#

I've been told different things

spiral plover
#

My issue is that this is set at 0 on new game ```function FacilityInsurgentObjs.OnNewGame()

--local gt = getGameTime();
local gt = GameTime:getInstance();
local modData = gt:getModData();

modData.insurgentObjIndex = insObjIndex;
modData.insurgentObjMaxIndex = 5;
print("Insurgent Objective Index is"..tostring(insObjIndex))
--modData.insurgentObjs = insObjs;

end```

sour island
#
  1. that the "client" entity and "server" entities don't have access to eachothers files*
#
  1. that the server's scripts overwrite the clients in load order
spiral plover
#

and I print it and it sets it to 0 correctly, but when I try and call it, it doesn't exist

#

then that must be the issue

sour island
#

so it's like server's server folder > client's server folder, etc

spiral plover
#

I'm calling it on the wrong client

#

makes sense

sour island
#

wish there was a bit more documentation with out having to deep dive into the java

spiral plover
#

Okay, so then If I want to access gametime on the server I have to put it in server or shared

quasi geode
sour island
#

yes that's true - from SP experiments

#

I think server doesn't have client stuff

quasi geode
#

cant remember if server parses client folder, but its been a while since i dug through all that

sour island
#

I've had to move stuff out of client for MP - so it would follow

quasi geode
#

even if it does, its mostly useless stuff for the server anyways

spiral plover
#

Now how about trait related things, as my main trait script is in client

#

should I move that over to shared?

sour island
#

traits and profession would probably have to be in shared or server

quasi geode
#

entirely dependent on whats in the script, if your defining traits or professions, shared

#

its best to just follow where the vanilla files are for similar things

#

ya looking at my old dedicated server files (b40, havent run a 41 dedicated yet) client folder is skipped

torn root
#

Hello, I have come seeking mods as this game looks kinda cool id like to know what kind of player model mods can be done for this game.

spiral plover
#

smh I moved it but it still doesn't work, this is gunna be a pain

verbal ivy
#

Anyone knows why SendCommandToServer() would return "player has no right to excute 'command' " error? it seems to only happen in dedicated server, in my p2p multiplayer it doesn't show up

sour island
#

you'd need to be an admin to use that

#

hosting locally would consider you to be an admin by default I imagine

#

If you're trying to run client-to-server stuff you'd be using sendClientCommand

verbal ivy
#

Werid, by hosting locally I print "isAdmin" and "getAccessLevel()", they both return false and empty. So I thought I'm still a non-admin

#

I will try sendClientCommand() and Event.OnClientCommand. thanks

sour island
#
local function onCommand(_module, _command, _player, _args)
    --serverside
    print("onCommand: _module:".._module.."  _command:".._command)
end
Events.OnClientCommand.Add(onCommand)
``` in server/
#
sendClientCommand(module, command, {args})
```in client/ (or shared/ if you use isClient())
verbal ivy
#

wow, thanks for the details, will try soon.

sour island
#

no worries, just passing on info others gave me

torn root
#

Is there anyone here who knows how to port characters into this game or if its possible?

sour island
torn root
#

Thank you

spiral plover
#

Damn even my dynamic radio isn't working on the server...

#

I literally copied that one super closely from vanilla smh, its in the same folder section and everything

verbal ivy
# sour island ```lua local function onCommand(_module, _command, _player, _args) --servers...

Hi, I ran the SendCommandToServer() inside of OnClientCommand but get errors that I can't read. Any clues of what the problems are? Does server just can't run sendCommandToServer()? (I ran the function in normal client side function just fine)
Callframe at: SendCommandToServer
[13-01-22 12:45:25.066] ERROR: General , 1642049125066> 6,983,197> ExceptionLogger.logException> Exception thrown java.lang.reflect.InvocationTargetException at NativeMethodAccessorImpl.invoke0 (Native Method)..
[13-01-22 12:45:25.066] ERROR: General , 1642049125066> 6,983,197> DebugLogStream.printException> Stack trace:.

verbal ivy
#

No matter what I do, the command just simply doesn't work in OnClientCommand, maybe server really just can't ran SendCommandToServer()

#

Then does server can't run admin command? what a strange mechanic

verbal ivy
#

God... what is wrong with PZ, client doesn't has admin access to run command but has function to run command, server doesn't has function to run command but has admin access. What is happening with this thing.

boreal stag
#

Was wondering if someone had some tips. Trying to have a zombie created (outside of view of the player), and then get aggro'd to the player. Like in the state where if a player aggros a zombie, and then runs in a house and closes the door behind them. Sight is lost, but aggro and pathing is still there(?)
Tried to mimic it like this:

      zomb = createZombie(x, y, 0, nil, 100, IsoDirections:getRandom())
      zomb:spotted(firstPlayer, true)
      zomb:addAggro(firstPlayer, 50) -- No clue what this number does
      zomb:setTarget(firstPlayer)
      zomb:pathToCharacter(firstPlayer)
      print("oioi zomboi", zomb:getID(), zomb:isTargetLocationKnown())

And I get this:

LOG  : General     , 1642054197957> 433,867,847> oioi zomboi    0       false
LOG  : General     , 1642054197958> 433,867,848> oioi zomboi    40      false
LOG  : General     , 1642054197959> 433,867,849> oioi zomboi    41      false
LOG  : General     , 1642054197960> 433,867,850> oioi zomboi    42      false
LOG  : General     , 1642054197960> 433,867,851> oioi zomboi    43      false
verbal ivy
#

Zombie will quickly lose their aggro and tratget if they don't see the player, you need to keep adding those aggro in OnZombieUpdate

boreal stag
#

😩
So it really was as simple a solution as I thought. I'll give that a try, thanks!

verbal ivy
#

a little side hint: createZombie() on clinet will not work on MP, if you want the zombies to exist on MP, make sure to call the function in server side.

boreal stag
#

Yep, I have this in /media/lua/server

verbal ivy
#

the folder doesn't mean anything, it's just a way to organize file, client will still run the lua inside the server folder

boreal stag
#

Oh, maybe this part I'm not catching. I have this in /server on both my local PZ game and my local hosted server.
Following the structure of this: https://github.com/FWolfe/Zomboid-Modding-Guide/blob/master/structure/README.md
had me believe that client side execution of scripts are on /shared, /client; and /server is specifically for the server

GitHub

Guide to modding various aspects of Project Zomboid - Zomboid-Modding-Guide/README.md at master Β· FWolfe/Zomboid-Modding-Guide

quasi geode
#

hrm i probably should clarity that there

pearl notch
#

does this apply to modpacks as well?

boreal stag
#

I guess to that point, how does one ensure that something executes specifically on the server?

#

or is it just good enough that the script exists in the server, and the client ignores the script because it's 'not client-side available'

quasi geode
#

throw the file in the server directory, add this to the top of the file:
if isClient() then return end

boreal stag
#

(reminds me of dayz modding)
roger that πŸ‘

Thanks for clarifying this for me!

#

Guarantee I would've encountered a phantom bug related to this in the future

uneven thunder
#

As someone who will be attending a bachelor's program for computer science focusing on software engineering, and developing games outside of work, is self-teaching/learning to code via modding (PZ specific) a nice segue into some of the work I'd be doing in early classes with programming languages?

#

I have some, but very little, experience with Lua and C#.

cunning hare
#

hey I'm setting the panic stat in my timedAction:Update() so you get progressively panicked and its working however when I use the time controls it doesn't take them into account and I'm wondering how I could check if the game is being sped up so I can adjust the amount to increase panic accordingly?

junior flame
#

UIManager.getSpeedControls():getCurrentGameSpeed() will return current game speed as an int

boreal stag
# uneven thunder As someone who will be attending a bachelor's program for computer science focus...

Any introduction to programming prior to class will help you out for your first (couple?) semesters. At least for my curriculum, we were given java and started with the basics: types, conditionals, loops, scopes, object oriented programming The second semester focused on data structures, which you may not get too much insight into with Lua (https://www.lua.org/pil/11.html).
Just doing whatever project that keeps you motivated to learn is good stuff.

zenith smelt
#

πŸ€” Anyone know something like this: How to fix a car part with a script?

#

or damage it

cunning hare
#

having an issue where IsoObjectPicker is being blocked by grass and other objects does anyone know how i could fix this because base timed action context menus are not affected by this.

dim pawn
#

Are there any mods or config changes I can make to have positive food moodles last longer?

fiery hollow
#

quick question, how do you make your own challenges? Like choose the spawnpoint, starting loot, objective, etc.

drifting ore
#

Are there any zombie cure mods that are still challenging?

swift breach
#

Anyone know if there’s a mod thattl let you crawl

iron junco
#

Does anyone have any information on making custom textures? I am new to modding and have been trying to find the info for quite a while now, but it hasn't been successful yet. Thanks in advance!

dusky goblet
iron junco
dusky goblet
#

First step is to get blender or another software that might entice you, Blender is available on steam for free.

Next step you need an image suite, i prefer photoshop and i'm kinda out of the knowledge on what free software is actually out there. But Gimp has been around for quite a while.

drifting ore
#

Hey guys question, if i add mods on an ongoing PZ game in multiplayer with friends

#

Will it work ?

dusky goblet
#

Depends on what mod it is, this should probably be posted in mod_support next time

spare girder
#

hi guys, do you know of that mod where if you create a new character during a long playthrough it will start with more skills

iron junco
winter bolt
#

uv mapping is how you unwrap parts of a model so that you can add a texture to it

iron junco
#

Can it be done in blender or it needs a separate software?

tough igloo
#

is there any way to get delta time?

#

cause i need to increment a value over time on player update and i need it to not depend on ticks

#

or updates per second, or whatever its called, im new to modding pz

drifting ore
tough igloo
#

alright, that makes sense, how often does OnPlayerUpdate happen though?

verbal ivy
#

Hi, do anyone know if there is a reliable way to calculate days since the spawn day in MP? getDay() only return the day of the month, getDaysSurvived() always return 0 when on dedicated server. Anyway to calculate the days since the world spawn in?

verbal ivy
#

Find it myself, it's getWorld:():getWorldAgeDays(), although it seems to start counting at spawn day 7:10, don't know why

drifting ore
weary matrix
#

any clue how to associate data to a steam user? A bit like ModData but for the SteamUser class (which is not an IsoObject so no ModData)

#

I need my data to persist even if the player is creating a new character

weary matrix
mint sphinx
#

@hollow shadow did you ever find the icon btw? sry i made a rouge on you just had some importen stuff happen around me

tame veldt
#

Hi! I was wondering if someone could me understand why my very simple code isn't working in-game. It seems to only work when I remove the function, but then it only grabs the first line and ignores the elseif. The print works and shows changing values. So i'm very confused

hybrid surge
#

Willing to pay up to 10 dollars over steam for a mod where birds can be on your shoulder (clothing mod)

mint sphinx
hybrid surge
#

Birt

#

Bird

#

I cam also pay someone to teach me

mint sphinx
#

also guess it more like modeling you need aswell and not really that much coding

hybrid surge
#

I can model, I can't code

#

Thats the help I need

noble zinc
#

DROPKICK MOD

drifting ore
weary matrix
#

@tacit ermine isn't there a global object or something in the world I could attach my data to?

hidden estuary
#

are there any mod templates or guides on how to create medicine items? involving the health menu and the like?

#

finding this hard to figure out

pine vigil
noble zinc
#

DROPKICK MOD

mint sphinx
#

png or .pack for icon what is best?

verbal ivy
#

I would like to make some new animation mod if the game's animation flie can be open with Blender

noble zinc
drifting ore
willow estuary
drifting ore
#

Does global mod data stay when the server is down?

weary matrix
weary matrix
indigo spire
#

Hi all. Is there a mod to reduce the amount of blood splatter?

winter bolt
indigo spire
#

Oh ok, thank you πŸ™‚

drifting ore
gleaming valve
#

@river plinth you maintain the professionframework on the workshop right? will you update it?

weary matrix
drifting ore
#

And then make tables with the variable nickname and check when someone connects if they have data in this player

weary matrix
#

hmmm but what if the admin is not connected, then I wouldn't have access to the IsoPlayer of the admin I guess :/

drifting ore
#

Mmmm but I think it should be connected all the time, that's the problem

drifting ore
weary matrix
#

I think it's crazy that you can't store global data, there has to be a way

drifting ore
#

There is global mod data, what wrong with that ?

weary matrix
#

just not sure how to use it

willow estuary
#

You can store global mod data and it is persistent between restarts.

I thought a link was easier to Google, but the patch notes for the build that released with it lists the functions used for it and how they work.

river plinth
drifting ore
#

How to use global ModData :

- Global ModData

Registers moddata tables with a given String key.
When Global Moddata is initialised during world loading it triggers the event "OnInitGlobalModData" with parameter: boolean isNewGame.
LuaTable ModData.create(String key) creates and returns the table with given key, returns null if the table already exists.
String ModData.create() creates a table with a random UUID key, note: returns the string key.
LuaTable ModData.getOrCreate(String key) gets or creates the table with given key.
LuaTable ModData.get(String key) returns the table with given key or null.
boolean ModData.exists(String key) return true if table with given key exists.
LuaTable ModData.remove(String key) removes the table with given key if exists and returns it or null.
void ModData.add(String key, LuaTable table) store the table with given key (overrides any existing table).
ArrayList getTableNames() returns a list of all registered tables.
Networking

Global ModData is not synced between server and client as depending on what the moddata is being used for this may not be required or even unwanted.
Syncing of data where needed is up to coder/author. There are however two methods for networking:
void ModData.transmit(String key)
- this will attempt to transmit the table with given key, when called on server this is send to all clients, when called on client send to server. (see note on receiving moddata below)
void ModData.request(String key)
- client only, this sends a request to server to send back the table with given key to this client.
When the server or the client receives a moddata packet it is not automatically added to the local register.
Instead the packet is read and the event "OnReceiveGlobalModData" is triggered, the String key and LuaTable table are passed as arguments.
NOTE: the table argument can be 'false' when moddata packet replied to a ModData.request.
weary matrix
#

looks perfect ❀️

#

I was looking for GlobalModData so didn't find much πŸ˜‚

drifting ore
#

Could maybe be nice to pin my last message or something similar @willow estuary

weary matrix
#

yeah would be nice indeed

tacit ermine
#

oh you found it

weary matrix
#

yeah thanks to @drifting ore

#

looks like exactly what I need

tacit ermine
#

there's a handy debug UI for it too

#

ctrl+f3 I think

drifting ore
weary matrix
#

hehe

willow estuary
#

Okay, so the pins are a mess, aren't good for people looking for information, and the more pins there are the less use they are individually? The information would be better organized on the PZ wiki.

I'll make a deal though, I will pin posts for people after they or someone else makes some sort of link or reference in the modding section of the PZ wiki

Is that fair?

weary matrix
#

well no πŸ˜‚

#

I wish I had found this info in the pins

#

I agree the wiki should be updated though, but please don't make it a prerequisite

tacit ermine
#

no one wants to write technical documentation on mediawiki

drifting ore
#

A bit of sorting in the pinned massages already would not be bad, like the one with just The link for notepad ++ may not be useful

willow estuary
#

Pinned messages are just straight up terrible as a resource, all the feedback has confirmed it, and the plan is eventually to have just one pinned post linking to the modding section of the PZ wiki.

#

I've done some work migrating stuff to the wiki, and yes, it's not fun,but it is simple.

weary matrix
#

a terrible resource is still better than no resource at all

drifting ore
#

There is not even a modding section in the wiki

weary matrix
drifting ore
#

So where, I found nothing

tacit ermine
pine vigil
tacit ermine
#

you wouldn't guess from the URL, but that's where it is

elder kelp
#

i think he understood the message once

drifting ore
#

Indeed, I find nothing from the main menu

tacit ermine
#

yeah it's not linked from the homepage

#

probably should be

pine vigil
#

I can change that.

#

After work though

weary matrix
#

@pine vigil would you please pin to this channel the message from MrBounty about the global ModData?

drifting ore
pine vigil
drifting ore
# pine vigil Not sure what you mean

It's not an English expression too? It means that not linking the wiki will not help to highlight it, not help make article and therefore less chance of link it

pine vigil
pine vigil
drifting ore
#

Oooo ok mb

noble zinc
#

DROPKICK MOD

weary matrix
#

@pine vigil that's so unfair

#

I really don't understand your reasoning

#

like it's not on the wiki so we're not allowed to know this information exists basically?

#

I just spend 2 days looking for that information, if it was pinned here it would have spare me of all this lost time

#

@willow estuary @pine vigil don't be like this please, just pin the message

drifting ore
#

I agree that bad documentation is better than no documentation. The information may be forgotten when updating the wiki in addition

winged lotus
#

Good evening all, I managed to access all decompiled code to help myself modding, now I search for a ways to access all graphical resources and I can't find a way to recover all item icons and moodles, does anyone knows how I could access those please ?😁

hidden estuary
#

yeah feeling you there, I wanted to make a different kind of smoker and my week's been a mess cause I guess no one ever tried and there's nothing on it

drifting ore
formal stone
#

Yeah that's sorta ridiculous that it isn't pinned @pine vigil ??? Why would we keep info from the community

#

thank you @drifting ore

noble zinc
#

DROPKICK MOD

weary matrix
#

@willow estuary a terrible resource is still better than no resource at all don't you think?

pine vigil
#

@noble zinc stop spamming

weary matrix
#

@willow estuary @pine vigil it's already hard enough to do pz modding without keeping information away from the modders?

willow estuary
pine vigil
#

I’m not trying to be an asshole here, I just prefer to defer to someone who’s been around this channel more, but I agree with him on the wiki part. It’s a better place to collect this information and is specifically made to be edited by the community.

winged lotus
weary matrix
#

@willow estuary ah now it's on the wiki, so we can have the message pinned right?

drifting ore
#

can i ask a question?

weary matrix
drifting ore
#

how to do PZ anims?

#

what softwares should i use?

weary matrix
#

what's PZ anims?

pine vigil
tough igloo
#

is there any way to check a tile's brightness?

drifting ore
tough igloo
#

i wanna know if a player is standing in the dark and vice versa

pine vigil
weary matrix
drifting ore
#

Cause I don't know how and like git hub, never edit a wiki

#

And the wiki sucks, accept it and do something new. It's no use carrying around corpses for years

hidden estuary
#

but, Steve the pocket skeleton

hidden estuary
#

I'm trying to make a trait thats essentially smoker but with its own moodles and mechanics

#

and god, I'm not familiar with this code at all

#

so I'm having a joyful amount of drinks

#

it doesnt help that smoker is really something else

#

cigarettes are food

tacit ermine
#

ultimately it's just recording the time when you use an item

hidden estuary
#

but I want to tie it to a moodle that kills you

#

and its medicine related

#

so you can see the spaghetti stacking up

#

its a smoker that relies on different types of medication and will kill you with moodles similar to hunger or thirst

winged lotus
#

Hi again, I am looking into recipe code these days, I managed to create many recipes that needs to be learned using NeedToBeLearn:true, but this does not seem to work when applied to fixing recipes, the ones starting like fixing Fix DoubleBarrelShotgun. My guess is that I will never be able to make a fix recipe learnable but before giving up I thought I should ask here. Anyone has leads on how to make learnable fix recipes?

drifting ore
tacit ermine
hidden estuary
#

there's an API for it, and its what I've been trying to figure it out

#

but I personally dont see how else would I do this

#

cause I need to kill the player if they dont take medication

tacit ermine
#

moodles arent the only way to kill a player

hidden estuary
#

I dont see how else would I go about this without moodles

#

specially from a design perspective, moodles work as an alert too, like a warning before you suddenly die from it

#

my name got a plunger

drifting ore
#

In the player's modData, you put a variable that reduces over time. It increases if you take the medicine and kills you if you are at 0

#

But hey, I get the alert thing

tacit ermine
#

can use overhead chat to signal the alert like getting a cold does

#

there's examples of custom moodles though AFAIK

#

look at the happiness one, someone posted it here a couple days ago

#

it uses the same MoodleAPI that I think you're referring to

drifting ore
#

he he boi hand models go burr

gleaming valve
#

Yes I'm great at art, why do you ask?

frosty stirrup
#

Guys, who can advise me on how to open the .tiles file properly with TileZed? Every time I do, it never shows me the pictures of actual tiles

#

what I am trying to do is to open a .tiles file from existing mod and modify it, I can obviously change values and that works, but I need to know why pictures are not shown, as I am stuck making my own .tiles because of weird behavior of the tool

junior flame
# frosty stirrup Guys, who can advise me on how to open the .tiles file properly with TileZed? Ev...

https://www.youtube.com/watch?v=Fbvb6LeX0Sw Dirkie linked me to this one when I was having problems setting it up - this sorta stuff is more quickly answered over in #mapping

Quick video on getting custom tiles in the project zomboid editors (buildinged, tiled and worlded)

If you like what im doing please consider donating to my Patreon.
https://www.patreon.com/DaddyDirkieDirk

β–Ά Play video
frosty stirrup
#

Also if I open any of vanilla game .tiles files, as shown on screenshot, it's an issue too

#

Ah, I saw that, but it tells you how to use custom tiles for mapping. I need to know how to work with actual .tiles file, not use someone's

willow estuary
#

#mapping is the channel where the tile experts hang out FYI πŸ™‚

junior flame
#

oh duh, i got the wrong channel lol

frosty stirrup
#

I am not in a need of mapping, I am trying to make in-game tiles for objects (movables), would it still be a proper channel to post in?

junior flame
#

I was having the same issue.

willow estuary
junior flame
#

Moveables functions/capabilities are determined strictly through tilezed

willow estuary
#

Yep, and movable scripts reference that tile.

As long at the movable script is properly referencing a working movable tile, the script item will work.

    item Mov_FoldingChair
    {
        DisplayCategory = Furniture,
        Type            = Moveable,
        Icon            = default,
        Weight              = 0.5,
        DisplayName        = Moveable,
        WorldObjectSprite    = furniture_seating_indoor_01_60,
    }
#

WorldObjectSprite = furniture_seating_indoor_01_60 is the important part there.

frosty stirrup
#

I learnt that, my problem is getting my .png file from photoshop into a working file, and also I dont understand why opening vanilla .tiles throws red ??? instead of pictures.

#

Every time I try to open someone's .tiles, I get these red question marks instead of pictures

#

I assume because the tileZed doesnt load actual tiles

#

only the definition

willow estuary
#

Yeah, okay, that's where the tile wizards in the mapping channel will be able to help you? That's definitely their sphere of expertise πŸ™‚

frosty stirrup
#

I will go ping them, thank you for the direction!

willow estuary
#

Np, and good luck!

junior flame
#

his problem is that the tiles don't hold the sprites, the .pack does and those are not accessible by default. you have to crack them open for tilezed to read them lol

#

custom tilemakers give you the opened files too - since for most of them that's the purpose of them lol

drifting ore
#

Made that quickly

junior flame
# drifting ore Made that quickly

That'll be widely useful - I'm not sure anyone had compiled timedaction knowledge anywhere, been working with them a lot for my project and it would have been nice to have that when I started lol

drifting ore
#

Btw, Is there a doc to make a custom job, trait or perks ? Otherwise I will do it too

keen temple
#

Is it possible to create a skill with an XP bar?

drifting ore
keen temple
#

Please do because I was thinking of learning how to mod and do stuff for pz but I've got an ultimate idea for a mod.

#

Chemistry!

drifting ore
#

It would be nice, send me a message if I forgot to send it to you

keen temple
#

Al

#

Alr*

limpid vine
#

anyone have any idea why the item icon over my head is the full path to the texture instead of the actual sprite? i'm going insane trying to fix this

winter bolt
#

i'm pretty sure the texture also needs "Item_" at the start of its name

thin hornet
#

Isn't there anyway of loading into MP server with debug enabled?

WorldDictionary: Checking dictionary...
LOG  : General     , 1642096984122> ===================================

ERROR: General     , 1642096984123> java.lang.RuntimeException: Cannot override modID. ModID=pz-vanilla

I get this everytime, with local workshop on or off doesnt matter.
Trying to log in account with admin role.

the source code where this error happen:

public static void onLoadItem(Item var0) {
      if (!GameClient.bClient) {
         if (!allowScriptItemLoading) {
            log("Warning script item loaded after WorldDictionary is initialised");
            if (Core.bDebug) {
               throw new RuntimeException("This shouldn't be happening.");
            }
         }

         ItemInfo var1 = (ItemInfo)itemLoadList.get(var0.getFullName());
         if (var1 == null) {
            var1 = new ItemInfo();
            var1.itemName = var0.getName();
            var1.moduleName = var0.getModuleName();
            var1.fullType = var0.getFullName();
            itemLoadList.put(var0.getFullName(), var1);
         }

         if (var1.modID != null && !var0.getModID().equals(var1.modID)) {
            if (var1.modOverrides == null) {
               var1.modOverrides = new ArrayList();
            }

            if (!var1.modOverrides.contains(var1.modID)) {
               var1.modOverrides.add(var1.modID);
            } else {
               log("modOverrides for item '" + var1.fullType + "' already contains mod id: " + var1.modID);
            }
         }

         var1.modID = var0.getModID();
         if (var1.modID.equals("pz-vanilla")) {
            var1.existsAsVanilla = true;
         }

         var1.isModded = !var1.modID.equals("pz-vanilla");
         var1.obsolete = var0.getObsolete();
         var1.scriptItem = var0;
      }
   }
limpid vine
winter bolt
limpid vine
#

no idea as to why it wouldn't work

willow estuary
thin hornet
#

Yeah without debug it works correctly.

#

It does connect, but when the black screen this is how you die start, it kill the game with the error message.

willow estuary
#

Well, then the good news is that your server isn't bricked?
Just get worried when I see that world dictionary business πŸ˜…

thin hornet
#

hehe yay

#

I wonder if loading as debug is only allowed with username = admin

pine vigil
winter bolt