#mod_development

1 messages · Page 355 of 1

small osprey
#

I am working on something fun. Its far from ready and I know you'll probably hate how it reads Doggy 😄 so I'll just drop this here and then shut up for a while

Query.from(zombies, "zombies")
  :innerJoin(players, "players")
  :using({ zombies = "targetPlayerId", players = "id" })
  :where(function(row) -- only players in cars that get attacked
    return row.players.vehicleId ~= nil
     and row.zombies.isAttacking == true 
  end)
bright fog
#

Or what does it do ?

small osprey
#

Allow me to keep up the suspense until I made more progress and thought about how to express it simply as I struggle with that sometimes 🥹. I hope I am not coming across too cheeky or coy. I just wanna do this well.

raven epoch
#

guys

#

what is replicated automatically?

#

i've been reading some code of other npc mods and most of their npc stuff is on client

bronze yoke
#

you said you were using isoplayers right? isoplayer npcs cannot work in multiplayer

#

so the reason they're in client is because it doesn't matter 😅

raven epoch
#

so thats why they werent moving

#

its so over chat

#

nope bro still doesnt move

raven epoch
#

BRUUUUUUUUUUUUUUUUUUUUUUH

#

ok i was supposed to use a timed action

#

so many hours wasted

stable hearth
#

(Don't know if this is the place)
**Mod Idea: **A sound that plays intermittently when you're experienced anxiety or panic. Frequency of the sound increases with increasing anxiety/panic. At low levels it'll randomly occur on a range of 5-15 minutes. As it increases, it can get down to repeating randomly every 10-30 seconds.

I've been listening to The Dead podcast on Spotify, and the chapter intro for "Run Rabbit" has a creepy ass voice that says, you guessed it... "Run Rabbit." Gave me chills.

lethal tulip
#

Hello everyone! I am trying to interfere with container loot generation (to know the contents). I want to do this once per container. To do this, I need to get some sort of ID from the containers.
I hook to OnFillContainer(roomType, containerType, container). But I can't get any useful id from container. Refection.getField(container, "ID") always returns -1. I try getParent (IsoObject) then getKeyID but that also returns -1.

My questions are: Is there any kind of ID assigned to containers? If so, how can I get them?

Thank you in advance!

bronze yoke
#

what are you looking for from an ID?

#

if you want to identify the specific container you can use the X,Y,Z,I

lethal tulip
#

Thank you@ @bronze yoke ! I will try that approach.
In general, Is ID a reliable way to identify objects in PZ? Or I should rely on other properties (like location)?

bronze yoke
#

ID is not reliable, most objects do not have one

sour wave
mellow frigate
#

Hello there, can someone share with me some code example of iterating through every entry of a java.util.Map from lua ? drunk

frank elbow
mellow frigate
#

As another specific: I want to change some parameters of those entries in the map. These changes need to persist java side.

#

I expect to do something roughly in the form of: ```lua
local javaMapInstance = javaObject:getMap()--Vanilla returns an instance java.util.Map
for i=0, javaMapInstance:size()-1 do--this is incorrect: but I want to parse each entry of the map
local javaEntry = javaMapInstance:get(i)--this is incorrect: but I want to parse each entry of
javaEntry:getValue():setSomeBooleanValue(false)--I suppose the entry is some sort of Key/Value Pair
end

mellow frigate
#

The interface gives me a Map but it is always a LinkedHashMap in the end.

frank elbow
mellow frigate
frank elbow
raven epoch
#

do i need to do something to enable isoplayer damage?

raven epoch
#

right now my npc plays the animations fires the guns yet the zombies arent affected

#

except shoving

#

do i need to enable a setting for them to interact with zombies?

#

see

mellow frigate
frank elbow
#

Missed that you needed to modify it; yeah, the transform function just converts it as-is

bright fog
# raven epoch

You'll have to check the timed action for firing at something, to see how it triggers actually attacking and damaging

raven epoch
#

yea turns out u gotta add damage manually

bright fog
raven epoch
#

can u write an example

#

im very new to this modding stuff

bright fog
#

You'll have to get used to using the JavaDocs to properly mod with the Lua API

#

I invite you to go watch my video regarding the Lua API if you don't know how any of this works, I explain the Java-Lua communication

raven epoch
#

ye sure

#

im good at lua but dont know much about java

#

thank you

bright fog
# raven epoch im good at lua but dont know much about java

This guide explains how the Lua is able to communicate with the Java, how to use this behavior for your mods, and how to set up a basic Lua mod structure. It will also teach you how to use the JavaDocs, LuaDocs, how to search the game files and decompiled code to find what you're looking for, and also searching Lua events to implement specific b...

▶ Play video
drifting current
#

Coming (as) soon (as i'm finished/tired with making these) to a workshop near you!

These are part of a newly commisioned addon pack for the PZK VLC mod, I'm doing all the skinwork for these trucks.

#

from L to R:
Snyder (Ryder), GPS (UPS/UPZ), U-TOW (U-HAUL), Valutech (PZ Brand), Spiffo's (PZ Brand) Citr-8 Wave (PZ Brand), USPS (U.S. Mail Service), Best Electronic Goods (Into the Dead: Our Darkest Days Brand), BP Trucking & Shipping (Dawn of the Dead), Schwab Sheet Metal (PZ Brand), Cool Paint Co. (Matchbox), U-Moveit (PZ addon brand), Pop (PZ Brand), NHN Worldwide Express (DHL), Scarlet Oak Distillery (PZ Brand), Sun Ballz (PZ Brand), General Express (FedEx), Fizz (PZ Brand), Eggman Movers (Toy Story)

shy mantle
#

I haven't asked in a while, so I'll ask again in case someone sees this who knows: I'm still looking for something like, player:getForwardDirection():getDirection() for vehicles, without needing to simulate the player in the seat of the car. I've tried using the Y value in vehicle angles, long story short, that's a no go. I think it's tied to and used somewhere around the idle animation when sitting in a car (which uses seat number, so with no usable seat I can't use this, like for wrecked, burnt, or cars with no seats).

bronze yoke
#

the vehicle's angles might be in radians, have you tried converting to degrees

shy mantle
#

Also god forbid the vehicle is facing perfectly E or W, then the Y angle alone doesn't control the direction the vehicle faces

valid belfry
#

Anyone know how **BlockMovement **and such is handled on melee attacks? Still new to this and couldn't find much info. I'm evaluating what the best method would be for applying movement lock during combo attacks while retaining input. (Clip is a mix of regular BH punches + some new attacks I'm blueprinting).

main pasture
#

Well you don't need the -angle + 90 necessarily (that's for converting to worldItem Z rotation), but you get the point.

shy mantle
stable yew
#

Something is cooking in VLC - bigger update coming with new year 😉

tepid skiff
#

Hey guys.

#

I'm using ZomboidDecompiler to open IsoPlayer.java and then recompiling with javac.

#

I can edit IsoZombie.java, but for the life of me, any edits I make to IsoPlayer don't seem to apply once I overwrite the files.

#

Does anyone know why this might be, please?

sinful parrot
#

Quick question about workflow for seasoned mod devs. When working on mods for multiplayer, what's your workflow for testing and iterating on your changes quickly?

I'm assuming there's a better way than having to restart the server and reload every time I want to test a change. I know there's a /reloadlua command, but is that only client side or does that actually reload lua live on the server side?

bronze yoke
#

the biggest time save is the fact that, if you know how to structure a mod for multiplayer, almost all of your iteration and testing can be done in singleplayer even if you're ultimately targeting multiplayer

#

even a mod that involves interactions between players can be tested in splitscreen and this is way faster than launching a server every time

sinful parrot
#

My specific issue has to do with dynamically instantiating non-pvp zones so I can't test that in single player lol

bronze yoke
#

ah, good luck to you then 😅

sinful parrot
#

Thanks lol

#

I appreciate your answer though!

willow tulip
#

For example, Project summer car works great in splitscreen (IIRC), but doesn't work at all in MP (unoffical mod... so who knows what they are doing)

#

Or was B41's splitscreen more like MP?

bronze yoke
#

yes because it's one instance and no networking occurs

#

but networking is not usually that much of a design concern

willow tulip
#

Something im wondering, does the server really... exist in SP? Like if I have a server\lua file, can it access globals from the client\lua files?

bronze yoke
#

yes

willow tulip
#

Cursed, but somewhat expected...

bronze yoke
#

i design my mods around multiplayer architecture (even in b42) and only test multiplayer at the end of development

willow tulip
#

I wonder if throttle is synced between client/server.

#

It IS used for sound...

#

and changes the sound.. all of about.. 1%

#

if you listen really carefully, and hardcode the engine RPM to not change, you can just barely make out that throttle does infact influence sound in vanilla

#

... in an incredibly hard to notice way, and doesn't change the volume of the sound whatsoever.

#

I think I beat the pants off vanilla sound with just 2 pitchbent sound files and varying volume with throttle -_-

drifting ore
#

Hi guys, anyone can help me figure this out *Solved, wrong regex used *

local newMember = self.addMemberEntry:getInternalText():match**("^%s*(.-)%s*$")**
print(newMember)
sendSafehouseInvite(self.safehouse, self.player, newMember)

I passed down the username value on the newMember variable and for the second arg i passed the IsoPlayer but i'm getting below error when this is triggered. I navigated down to GameServer and the error was meant for UDPConnection

ERROR: General , 1765263277507> 571,228,873> GameServer.mainLoopDealWithNetData> Error with packet of type: SendSafehouseInvite for ARES
ERROR: General , 1765263277507> 571,228,873> java.lang.NullPointerException: Cannot invoke "zombie.characters.IsoPlayer.getOnlineID()" because "<local6>" is null
ERROR: General , 1765263277507> 571,228,873> at zombie.network.GameServer.receiveSendSafehouseInvite(GameServer.java:8559)
ERROR: General , 1765263277507> 571,228,873> at zombie.network.PacketTypes$PacketType.onServerPacket(PacketTypes.java:1022)
ERROR: General , 1765263277507> 571,228,873> at zombie.network.GameServer.mainLoopDealWithNetData(GameServer.java:1532)
ERROR: General , 1765263277507> 571,228,873> at zombie.network.GameServer.main(GameServer.java:800)

bright fog
drifting ore
#

it's still saying <local6> is null

#

maybe it's because the other guy is not online that's why it's null since it's asking for the onlineID

drifting current
bright fog
#

Is it a function ? If not why is it named as such ? And if it is, you're not calling it here

past radish
#

Hello

bright fog
#

Also I said you print newMember, well read what it prints in the console to see if it's the right value

bright fog
drifting ore
raven epoch
#

why is he holding the gun upside down

#

😭

bright fog
raven epoch
#

thats weird

#

i have to set the animation manually?

broken briar
#

can someone help me a lil?

#

been thinking about making a mod where it adds some early 2000s stuff

#

but idk how to model

topaz tangle
broken briar
abstract iron
#

hey guys can i get some help with something?

#

im trying to make a pre renderd tile sheet, i made a blender model then set the camra to isometric, then i saves the blend file as a .PNG file to whitch i took over to gimp to change the size to 156x512 and for some reason if i resize the image it also resizes the canvas

#

its actually frustraiting

lethal tulip
#

Hello! I need help with morequestions. How can I programtically set text to the Base.Notepad item via LUA script?
This is what I have at the moment

local function giveTestItemToZombie(zombie)
    if not zombie then return end

    -- code for chance to drop here

    -- Get the corpse inventory
    local inv = zombie:getInventory()
    if not inv then return end

    local item = inv:AddItem("Base.Notepad")
    item:setName("Ledger page #" .. 444) -- fix page number for now
    item:setDisplayCategory("LL_DiplayCategory_Rosewood_SchoolLib") -- fix display category for now

    local pageText = "Page 444\nItem A - Street 1\nItem B - Street 2\nItem C - Street 3\n..." -- fix content for now
    -- how to set the pageText as readable text for the notepad?
    
end

Events.OnZombieDead.Add(giveTestItemToZombie)

Also, my item is very dynamic (name, category, text content, and hopefully, only drops when Zs are killed inside a certain area). Is this a good way to do item generation and loot distribution (instead of using .txt file)?
Thanks in advance!

bright fog
bright fog
#

It's likely stored in mod data

#

In debug mode, you can check the mod data of an item in B42 I believe

shy mantle
bright fog
shy mantle
# bright fog Oh nice

I've just been spending most of today trying to figure out how to get it somewhat multiplayer compatible, just to find out the code I use to set up borders around the roof of the car can carry the player around lol

#

Looks so damn funny, maybe I can force the player into laying down as well

bright fog
#

It's a tile right ? What border are you talking about

shy mantle
#

That's mainly why I was so desperate for finding the front facing direction of vehicles earlier without needing seats

topaz tangle
#

‘89 ford econoline

drifting current
#

Fred and Jimmy in the...

#

This is the 20th Skin for the Chevalier NGT, there will be another 30 or so i wanna squish in before i release the car pack.

icy night
#

Loser spammers

left plank
#

Thankya

upbeat turtle
#

tyty spiffo

raven epoch
#

how do i open the

#

debugger that comes when something errors

main pasture
#

F11 by default (at least for me)

raven epoch
#

ok ty

#

ok im kinda stuck

#

so i got a table of npcs right

#

and i need to get the npc from this table

#

for that i need to loop thro the entire table to get the npc

#

and if i add this to an event its going to be lots of looping just to get the npc

#

so what else can i do

frank elbow
raven epoch
#

yes to both

frank elbow
#

Okay. Typically with this sort of issue you just want to change it from an array-style table into one that maps the table keys to something like true

raven epoch
#

hmm

#

aa yes

#

i can make a

frank elbow
#

That is, pretending you had to access 4 a lot, and duplicates aren't a consideration:

-- not ideal
local t = {1, 2, 3, 4, 5}

-- ideal
local t = {[1] = true, [2] = true, [3] = true, [4] = true, [5] = true}
raven epoch
#

IsoPlayer to NPCtable table

#

its going to be lots of values just for indexing

#

but better than looping i guess

#

ye ty

frank elbow
#

You'd be storing the values anyhow in the list, so hopefully not a huge lift

#

No problem, good luck

raven epoch
#

same table stored in 3 diff tables

#

hopefully not cause problems

#

ok for some reason

#

switching to another weapon when ur current weapon is mid animation breaks isoplayer

rose pine
#

Hello guys!
I wanted to that is there any chennel for commission?

bronze yoke
#

quick warning that after saying the c word in this server, you will get a lot of dms from scammers 😅 i genuinely recommend ignoring all dms and just using that job board, or at least ask there if it's fishy before paying anyone

topaz tangle
#

Also

#

does anyone here know how the random vehicle colors system works? ive decided i wanna do it for my future and past vehicles

drifting current
topaz tangle
#

ive done the same thing lol
surprisingly: lawn companies and construction companies probably wouldve been using box trucks, ive seen pictures of some and seen newer ones irl

drifting current
#

yeah, if they got lots of bulky stuff to transport around, they would probably use them

#

Schwab Sheet Metal and Citr-8 Wave are two B42 companies i've done at least.

#

but more will follow.

azure rivet
#

Hi!
How could I change the texture of an item in "WorldStaticModel" or "StaticModel"?
Im trying with setTexture(), but it only changes the icon.

bronze yoke
#

the model defines the texture, you can use a model with a different texture but you can't change the texture arbitrarily

azure rivet
timid harbor
#

How do I introduce a new mod idea and get feedback on what I have? I'm new here, and I don't want to break any rules.

timid harbor
#

Thanks @upbeat turtle, I'll head there.

bright fog
timid harbor
#

Excellent advice. I'll push to github now and edit the zip link. Thanks @bright fog!

rich reef
#

Hello,

I am working on a simple vanilla override of the 'Charcoal' Item, and for some reason it does not let me adjust it's 'Weight' setting.

I've changed the Icon just fine in the script, but when loading into the game it doesn't adjust the weight at all.

I have done overrides on other vanilla and modded items before and was able to change pretty much every value, but for some reason it's not working with this. While working on my mod, I was previously able to change the weight value though, so I am wondering if I have done something that possibly cancels the script override?

I am using InventoryItemFactory to spawn the item through code from an OnCreate function which works. Would that somehow reset the item to it's vanilla script? Kind of stumped here.

Does anybody have any idea what may cause this?

willow tulip
#

spawn new charcoal via debug menu to check if your mod works

#

(And im 99% sure InventoryItemFactory can't 'see through' mods)

#

your mod either works, or it doesn't work, theres no 'shadow copies' other then existing spawned items get their own copy of many (but not all!) values

rich reef
# willow tulip your mod either works, or it doesn't work, theres no 'shadow copies' other then ...

Thanks for the response.

It seems that the item override does work, as it successfully changes the item's icon as I expected. But the other values are not changed.

I've tried spawning in new items through the item list viewer, as well as programmatically from a recipe script, as well as from a basic recipe result, and the items all show the standard values.

It's strange, and I'm not sure what is going on with it.

willow tulip
#

chances are, its something like a typo.

rich reef
#

That's what I'm assuming, but I've stared at the the original side by side, and it doesn't seem to be anything obvious. I'll post them both for reference. One moment.

#

Original:

module Base
{
    item Charcoal
    {
            DisplayCategory     =   Material,
        Weight                =    8,
        Type                =    Drainable,
        UseWhileEquipped    =    FALSE,
        UseDelta        =    0.1,
        DisplayName        =    Charcoal,
        Icon                =    TZ_CharCoal,
        WeightEmpty         =   0.02,
        WorldStaticModel    =   Charcoal_Ground,
        ConsolidateOption   =   ContextMenu_Merge,
    }
}

Override:

module Base
{
    item Charcoal
    {
            DisplayCategory     =   Material,
        Weight                =    1.0,
        Type                =    Drainable,
        UseWhileEquipped    =    FALSE,
        UseDelta        =    0.1,
        DisplayName        =    Charcoal,
        Icon                =    item_Charcoal,
        WeightEmpty         =   0.02,
        WorldStaticModel    =   Charcoal_Ground,
        ConsolidateOption   =   ContextMenu_Merge,
    }
}
#

I can't see anything wrong with this. Have any ideas?

willow tulip
#

Not seeing anything offhand, unless weight is just ignored and only WeightEmpty and some other(?) factor matters?

#

You could try a full file override instead of just a single item override...

rich reef
#

I'm not quite sure. I've changed the weight of other items without issue, so I know it can be changed.

willow tulip
#
            this.setCustomWeight(true);
            this.setActualWeight((this.getScriptItem().getActualWeight() - this.WeightEmpty) * this.getCurrentUsesFloat() + this.WeightEmpty);
        }```
#

some of the java code...

rich reef
#

Hmm.. So it may be calculating the weight on it's own then. But it I did try it setting to 0.0 prior, and it didn't make a difference. I'll try again though out of curiosity.

willow tulip
#

mm]

#
else if (string0.trim().equalsIgnoreCase("Weight")) {
                this.ActualWeight = Float.parseFloat(string1);
                if (this.ActualWeight < 0.0F) {
                    this.ActualWeight = 0.0F;
                }
#

from where they load weight..

#

no other side effects.

rich reef
#

So it seems 0.0 is the override setting for weight, otherwise it auto-calculates. If I'm reading that right.

#

I believe since this is a drainable, it works this way. Other items I've had no issue with were normal items. So maybe that explains it.

willow tulip
#

it means if its not 0.0 it does the thing

#

if it has an empty weight, it uses that first code to figure out it actual weight, but getActualWeight is actually just your 'weight' in the script

rich reef
#

That makes sense. Trying that change out now, we'll see what it does.

willow tulip
#

so it SHOULD be 0.02 to 1.0 depending on uses, after your override.

willow tulip
rich reef
#

Hmm, that's true. Well, setting it to 0.0 didn't change anything. 0.02 as per the original doesn't change it either.

willow tulip
#

from what I can tell, you'll get an item whose weight is WeightEmpty to its scriptItems getActualWeight, depending on its 'current uses' available

#

if weightEmpty != 0.0

rich reef
#

Hmm..

willow tulip
#

are you maybe spawning items with tons of uses or something?

#

you could try
Weight = 100,

#

see if anything interesting happens 🙂

#

when in doubt of something working, add more zeros.

willow tulip
rich reef
#

I am doing a single object override in this case. Don't particularly want to override the entire vanilla script file.

#

It seems to work for some of the script. The icon changes correctly, so it's obvious the script gets parsed in some way, just doesn't apply the correct changes for the weight.

willow tulip
#

so start by removing any lines your not changing.

rich reef
#

I was not aware of that, interesting.

willow tulip
#
module Base
{
    item Charcoal
    {
        Weight                =    1.0,
        Icon                =    item_Charcoal,
    }
}```
#

something like that.

#

btw, is another mod also patching this object?

#

are you testing with other mods?

#

theres ways to do things like patch weight via LUA, that will completely ignore mod load order

rich reef
#

I was going to use DoParams to change it if I couldn't figure it out, but was trying to figure out this issue, as these type of things boggle my mind and leave me unsettled feeling if I can't find reasoning behind them.

I am testing with a few other mods, but I've done a bulk scan of every file, including my entire workshop list, and none of them do an override of the item in any way.

willow tulip
#

btw I notice in your original it says Icon = TZ_CharCoal,

rich reef
#

Yes, that's from one of the sprite sheets in the base game.

willow tulip
#

TZ_ prefix? weird.

rich reef
#

Yeah. Not sure why they prefixed it with that

willow tulip
#

also you know when you set an icon, it prefixes item automatically?

#

Icon = item_Charcoal, looks for item_item_Charcoal.png iirc

rich reef
#

Yes, I actually was using a subfolder with this, just removed the foldername to avoid confusion, which didn't work obviously. haha

willow tulip
#

also, what PZ version are you using?

rich reef
#

B41

willow tulip
#

explains why my charcoal doesn't align with yours

#

Im seeing item Charcoal { DisplayCategory = Material, Weight = 0.8, Type = Normal, Icon = Charcoal, WorldStaticModel = Charcoal_Ground, Tags = Charcoal;IsFireFuel, FireFuelRatio = 2.0, }

#

as well as item CharcoalCrafted, and thats just.. cursed (WHYYY TWO TYPES TIS?!?! WHYYYY)

rich reef
#

Yeah, much more useful in that version

willow tulip
#

we don't need crafted versions of every item we can craft.. just.. reuse the normal versions..

#

So again, are you testing with any other mods loaded?

rich reef
#

Omitting the other details in the script causes it to fail to be recognized, unfortunately.

#

I am, but I have also tested this with just this mod, and its the same issue.

willow tulip
#

I was 99% sure 'partial' scripts where fully valid but maybe that is a B42 thing?

#

(partial for override only)

rich reef
#

To be honest, I believe I remember seeing that they had to be a carbon copy of the other, with changed values. But I read that a long while back, so I could be mistaken.

#

With the constant change/adjustments to items, could this possibly be an out of sync WorldDictionary causing this?

willow tulip
#

pretty sure that gets created when you load the save outta your current items..

rich reef
#

Thats what I thought too, but just curious if it somehow is referencing some previous version of the item and isn't updating or something. I'm not too familiar with WorldDictionary though.

willow tulip
#

Anyway, id make sure to test without other mods for this weight issue for now.

rich reef
#

Yeah, still not working. So strange. I can confirm it did work the other night when I was doing some testing. It seems like something is broken, and I can't put my finger on it.

#

Okay. I tracked down the issue. There was a mod that 'rebalances' weights of standard in-game items, and it does it with Lua. So yeah. I knew I wasn't crazy, just a stupid mod messing it up.

#

I appreciate your help @willow tulip

willow tulip
#

np 🙂

tacit shadow
#

Does anyone know how to make and replace combat music themes in game?

rich reef
#

And my DoParam override worked fine. So much time wasted on this. haha At least I know what it is now. Live and Learn!

iron salmon
iron salmon
#

Login

gilded hawk
#

Oh

#

Okay 👍

iron salmon
#

Sadly not feasible for us to make downloads available without it on the forums, I'll mirror them here in a minute

gilded hawk
#

Amazing, thank you 🙂

iron salmon
#

Modding Migration Guide (42.13)

gilded hawk
#

Interestingly enough, I can't make an account on the forum 😅

But thank you for mirroring the PDF ❤️

iron salmon
#

😄

gilded hawk
#

Oh shit shit

#

They found me out

#

Run

#

🤖

drifting ore
#

I just had to refresh

silent zealot
#

So, how broken is everything with the new update?

#

checks notes oh, they just broke anything to do with items no big deal. 😂

#

Also traits, professions, tags, body locations, moodles, weapons, and ammo...

#

This feel like something to put off until the weekend.

buoyant sandal
bronze yoke
#

almost every mod will need changes to work

#

think about how they broke nearly every clothing mod with 42.12, which broke almost everyone's modlist, then make that 10x bigger because this update's breaking changes reach *significantly* further than that

#

but they are universally big improvements and most of them don't require modders to change too much

upbeat turtle
#

this is absolute cinema: spiffo

small topaz
#

So
TraitFactory.addTrait(), ProfessionFactory.addProfession()
not working anymore?

upbeat turtle
small topaz
#

oh no why!!!???? 😭 😭 😅

upbeat turtle
#

my custom profession for the cat mod got nuked, so it likely was changed from an api perspective

bronze yoke
#

yes all traits and professions must be registered now

small topaz
#

but I want to keep my profession mod in a way so that people can disable modded professions in the sandbox menu! 😭

upbeat turtle
#

it's very nice that the registry system fixes mod compat issues... but yeah, every trait/profession/clothing/weapon/item/(etc) mod will need to be rewritten 😭

silent zealot
#

But the two big positives: 1) these are good changes and 2) we got documentation on how they work

upbeat turtle
#

i'm excited to see how they'll continue building on the registry system

small topaz
#

where can you find the documentation?

upbeat turtle
#

you'll need to register an account if you haven't alr 🙂

bronze yoke
#

it's also in a thread here

small topaz
#

Thanks!

shy mantle
icy night
#

MP is out. Very cool

small topaz
#

modocalypse 2.0 (or better 42.13)

tepid skiff
#

This is probably a stupid question, there doesn’t seem to be a ‘zombie’ folder in the Project Zomboid directory since today’s B42 Update. Am I being blind? Not sure how to decompile files anymore.

bronze yoke
#

everything is in projectzomboid.jar now

#

if you're using zomboid decompiler i released a new version a couple minutes ago that can handle the new version

tepid skiff
#

Oh god, I need to learn to read.

#

I do use Zomboid Decompiler. Thanks a ton for your help.

small topaz
#

BodyLocations:Reset() also not working anymore...

tepid skiff
# bronze yoke everything is in `projectzomboid.jar` now

Do you know the javac code to recompile please? I used the below in the previous Update:
javac --release 17 -cp "D:\Steam\steamapps\common\ProjectZomboid\lwjgl.jar;D:\Steam\steamapps\common\ProjectZomboid\lwjgl_util.jar;D:\Steam\steamapps\common\ProjectZomboid;D:\Steam\steamapps\common\ProjectZomboid\jars*;D:\Steam\steamapps\common\ProjectZomboid\java*;D:\Steam\steamapps\common\ProjectZomboid\trove-3.0.3.jar" -d "..\out" zombie\characters\IsoPlayer.java

Sorry for the silly question, I'm very new to this.

bronze yoke
#

you'll want to do javac --release 25 -cp D:\Steam\steamapps\common\ProjectZomboid\projectzomboid.jar zombie\characters\IsoPlayer.java now

tepid skiff
#

Thank you so much! Means a ton. 😊

oblique sequoia
#

so how do y'all like edit or customise textures

#

cuz I wanna add a post apoc military faction to a zomboid game with my buddies to clear out Louisville.

thin swan
#

Anyone manipulating character stats, you now have to use:
player:getStats():set(CharacterStat, value)
So for example I was setting the body temperature before using player:setTemperature(float), but now I have to do:
player:getStats():set(CharacterStat.TEMPERATURE, float)

tepid skiff
#

@bronze yoke Do I open ProjectZomboid.jar in WinRar for example, then overwrite .class files? Is this enough please?

#

Once I've recompiled them*

bronze yoke
#

yeah, jar files are literally just zip files with a different name

tepid skiff
#

Wonderful, thank you!

mellow frigate
#

Anyone got past Workshop mod update failure=2 today ? It looks like steam does not want my updates right now.

bronze yoke
#

i finished updating all of my mods about an hour ago and i didn't have any trouble

#

have you tried the usual 'restart steam/pc and see if it goes away'?

mellow frigate
tulip valve
#

java.lang.NullPointerException: Cannot invoke "zombie.inventory.InventoryItem.setAlcoholPower(float)" because "item" is null at Item.InstanceItem(Item.java:1843)

Im getting this when trying to update my mod to 42.13, I have updated the new Tags, ItemType and have a registries.lua file in media folder, anyone else get this?

#
ItemTag.register("SkillBookExpansionB42:BookAxe2")
ItemTag.register("SkillBookExpansionB42:BookAxe3")
ItemTag.register("SkillBookExpansionB42:BookAxe4")
ItemTag.register("SkillBookExpansionB42:BookAxe5")
ItemTag.register("SkillBookExpansionB42:BookAxeSet")
ItemType.register("SkillBookExpansionB42:BookAxe1")
ItemType.register("SkillBookExpansionB42:BookAxe2")
ItemType.register("SkillBookExpansionB42:BookAxe3")
ItemType.register("SkillBookExpansionB42:BookAxe4")
ItemType.register("SkillBookExpansionB42:BookAxe5")
ItemType.register("SkillBookExpansionB42:BookAxeSet")```
#

This is how my registries.lua looks like hmm

tame mulch
tulip valve
#
    {
        DisplayCategory =  SkillBook,
        NumberOfPages    =    220,
        Weight    =    1,
        ItemType = SkillBookExpansionB42:literature,
        Icon = Book_Generic,
        IconColorMask = Book_Generic_Mask,
        SkillTrained = Axe,
        LvlSkillTrained = 1,
        NumLevelsTrained = 2,
        StaticModel = BookBrown,
        WorldStaticModel = BookClosedTINT, 
        ColorBlue = 38,
        ColorGreen = 9,
        ColorRed = 23,
        Tags = SkillBookExpansionB42:ignorezombiedensity,
    }```
#
    {
        DisplayCategory = SkillBook,
        ItemType = SkillBookExpansionB42:normal,
        Weight = 4,
        Icon = BookSlipcase,
        IconColorMask = BookSlipcase_Mask,
        WorldStaticModel = BookSlipcase,
        Tags = SkillBookExpansionB42:ignorezombiedensity,
        ColorBlue = 38,
        ColorGreen = 9,
        ColorRed = 23,
        DoubleClickRecipe = UnpackSetOfBooks,
    }    ```
tame mulch
#

why ItemType not base:literature ?

tulip valve
bronze yoke
#

you shouldn't register itemtypes, use the base ones already registered by the game

tulip valve
#

Uh so I dont need a registries.lua for my skillbook mod then?

bronze yoke
#

only the mod that adds a tag (etc) needs to register it, if you're just using vanilla stuff you don't need to register anything

tulip valve
#

alright thanks ^^

mellow frigate
#

Tsar Comon Library B42 is updated. Item Types have been changed because Base module is not available to modded items anymore so your cars scripts will have to adapt (Base was replaced by ATA2 module).

willow mountain
#

getNumMoodles got removed?

thin swan
mellow frigate
thin swan
#

Oh okay gotcha, I was misunderstanding then 😄

valid belfry
#

Is move speed exposed now in B42?

thin swan
willow mountain
valid belfry
dull moss
#

shiiiiiiiiet time to figure out my own code KekW

hybrid tiger
#

lmao same here

#

and git being down not helping

mellow frigate
thin swan
tepid skiff
#

Does anyone know if it's possible to slow down, or speed up an animation WHILE it's happening?

#

For instance, swinging a weapon slower than normal, but about half-way through the swing, it returns to normal speed?

#

@thin swan Do you happen to know by any chance, please? You seem to know your stuff!

thin swan
tepid skiff
#

Thank you! @thin swan Would it be alright to send you a private message please? I won't spam you with questions, just working on something specific that I think you'd be able to answer within a couple of messages.

raven epoch
#

does anyone know if there is an event that handles guns hitting zombies?

tepid skiff
raven epoch
#

ok im having this bug

#

where switching to another weapon while ur swinging in the other

#

causes the character to freeze

bronze yoke
#

i've just got home so i'll look into it in a bit

bronze yoke
#

@willow mountain yeah no idea what that was about, rebuilt them and the pages are all there now, will push the new version but give it ~10 minutes, git and javadocs do not play nice

willow mountain
#

thanks!

sour wave
#
{
    character_profession_definition daemontraits:thief
    {
        CharacterProfession = daemontraits:thief,
        Cost = 2,
        UIName = UI_prof_Thief,
        IconPathName = profession_burglar2,
        XPBoosts = Nimble=3;Sneak=2;Lightfoot=2;Lockpicking=3,
        GrantedTraits = daemontraits:locksmith,
    }
}```Am I just stupid or something? Where do I define the descriptions or whatever? when hovering over it in the character profession menu it shows nothing
bronze yoke
#

UIDescription = UI_prof_Thief_desc,

sour wave
#

Yeah was about to say, I am, in fact, just being dumb

sour wave
#

Is there a list of base game perks somewhere so I have a less dreadful time guessing the perk names lol

#

By perk I mean things like Aiming, Shortblades, Running etc

#

I think I found it.

mellow frigate
sour wave
raven epoch
#

how different is b42 modding compared to b41

#

easier or harder

bronze yoke
#

about the same, it will be easier to find resources for b42 though

raven epoch
#

okey ty

sinful chasm
#

anyone have any good guides about how to update my crafting mods for b42? They crash when I try to boot them in 42

fiery pecan
#

did they break the process to add custom body locations, AGAIN?

sour wave
bronze yoke
bronze yoke
#

this game rarely does stuff like that though

fiery pecan
sour wave
#

It's generally pretty specific when it comes to image locations for items and whatnot, so I wondered

bronze yoke
#

i'll check that for you if nobody gets to it first

sour wave
#

In last update it was defined via translation text, but now it's changed it looks like.

sonic needle
#

(aiteron) Small request,

Some form of backward compatibility for ease of future compat,

So that older code made with the pre B42 MP release, "ITEM = weapon, " or " ITEM = weaponpart, "
system can still run, and weapons/weaponparts can be detected as they were,

in my case, coded, items detected with

item:getModData().weaponpart = item:getModData().weaponpart or {}
( this is custom in a framework for guns/gun part functions ^ )

this fails to function, as a result,
as it expects likely, base:weaponpart
as its replacement, & and i am not totally sure on my ability to patch for this alone.

drifting current
# drifting current Fred and Jimmy in the...

Another addition to this pack, one of Franklins attempts at sprucing up one of their econoboxes into a luxury coupe. Not very powerfull, but makes up for it with it's quirky styling.

drifting current
#

Except this is no Mustang

#

It's an escort in a fancy dress, the Ford EXP

sour wave
#

I need to get into making lowpoly cars, but Idk what are necessary parts for it tbh

#

plus, I hate, no, despise, UV Unwrapping

drifting current
#

fortunately, i'm just doing the texture tweaks, i can't model

sour wave
#

I can't for the life of me figure out the occupation icon so I'll just ignore it for now.

winter bolt
#

you can also cache the ItemBodyLocation when you register it

TestMod = {}
TestMod.ItemBodyLocation= {}
TestMod.ItemBodyLocation.TestLocation = ItemBodyLocation.register("modulename:TestLocation")

and then you can access it like this

group:getOrCreateLocation(TestMod.ItemBodyLocation.TestLocation)
fiery pecan
#

alrighty.
One last question...
How do I access these in the script files?

winter bolt
winter bolt
fiery pecan
#

k

#

thnx

winter bolt
sour wave
#

Well, we are close lol

sour wave
# bronze yoke i'll check that for you if nobody gets to it first

So, I've figured it out. Profession Images need to be placed within the media/textures/ folder, named whatever you want.
Then in the following professions.txt file entry

    {
        CharacterProfession = daemontraits:combatmedic,
        Cost = 2,
        UIName = UI_prof_CombatMedic,
        UIDescription = UI_prof_CombatMedicDesc,
        IconPathName = prof_CombatMedic,
        XPBoosts = Doctor=3;Sprinting=2;SmallBlade=2,
    }```you simply input the filename without extension. Images also have to be 64px * 64px
#

It's the little things.

valid belfry
thin swan
# valid belfry Ah ye. I might've misheard somewhere that B42 had some kind of scalar for player...

There is yeah, sorry I didn't give you a full reply, it's the m_Scalar and m_Scalar2 tags in the xml, you can use any custom variable as values for those and when you update it using Lua or an xml event, it will update the speed of the animation.

Only problem is that vanilla xmls use variables that get set onTick so whenever you try to update a vanilla var with Lua it will just get overriden right after before being supplied to the xml

valid belfry
#

Ahhh ok. Kinda new to all this. So that's the same issue with B41 and runspeed? Right now I have a couple toggled stances that mask vanilla locomotion (waist up), so I use a position handler to increase speed. For the fullbody stuff I just tweak scale.

**Edit: **The scalars are really promising. I'll probably set up a proper 8-way for my stance eventually and use that for speed down the line.

sour wave
# bronze yoke i'll check that for you if nobody gets to it first
#

Hopefully this helps someone in the future

bronze yoke
#

B41.13.0

sour wave
#

Jeebus fucked it

#

lol

#

fixed

#

It's a wall of text, but I think it explains fairly well

#

Figured I'd give a little back to the community where I can, even if its something so small

hollow wharf
#

Hello all, does anyone know where I can find an updated list of the sandbox variables?
I'm looking to change the random sprinter amount but it seems I'm not typing it correctly
first ever mod just looking to make CDDA better

fallow hollow
#

Hey guys
can anyone help me on how the print() method works in lua, please?

I got terrible issues with line truncation - I order some log for dev purposes and I get like a half 🙂

Ofc it depends on what I am sending, but still I'd like to ask if I can read something about it somewhere ?
Thanks!

bronze yoke
#

it gets truncated when you write a :

#

you can use DebugLog.log(str) instead until it's fixed

fallow hollow
#

print("[WoodysLib] Registered debug logger for: " .. prefix)

bronze yoke
#

consider adding to the start of your file local print = DebugLog.log

fallow hollow
#

you're awesome, thanks a lot!

bright fog
#

Also you can't pass multiple arguments to print spaced out

regal umbra
#

So Im assuming multiple traits go under the same module right?

#

Then to register each trait I just have to register each one of them individually

#

Right?

#

Cuz I managed to register 1 trait and not a secondary one

neat walrus
#

correct

regal umbra
#

weird cuz i did this

module Infirmities
{
    character_trait_definition infirmities:twbSchizophrenic
    {
        IsProfessionTrait = false,
        DisabledInMultiplayer = false,
        CharacterTrait = infirmities:twbSchizophrenic,
        Cost = -8,
        UIName = UI_trait_Schizophrenic,
        UIDescription = UI_trait_SchizophrenicDesc,
    },

    character_trait_definition infirmities:twbParkinsons
    {
        IsProfessionTrait = false,
        DisabledInMultiplayer = false,
        CharacterTrait = infirmities:twbParkinsons,
        Cost = -8,
        UIName = UI_trait_Parkinsons,
        UIDescription = UI_trait_ParkinsonsDesc,   
    },

}

and

CharacterTrait.register("infirmities:twbSchizophrenic");
CharacterTrait.register("infirmities:twbParkinsons");

and only the schizophrenic trait is showing up

bronze yoke
#

comma after the } should not be there

neat walrus
#

in your trait defs remove the trailing comma

#

yep

regal umbra
#

oh lol

fallow hollow
#

🙂
btw. it wouldn't tell you on game start? that's syntax error

bronze yoke
#

the script parser doesn't really tell you anything ever 😅

neat walrus
#

it likes to just sit silently lmao

bright fog
bright fog
fallow hollow
#

ty, good idea
the files on the forum today were just a link, prolly not persisted anywhere (yet?)

ionic crown
bright fog
bright fog
neat walrus
#

anyone know how to spot if a player has a custom trait now? hasTrait(CharacterTrait.HERBALIST) works for base traits, but replacing herbalist w/ a custom one does not. my traits are registered and work properly, just can't identify them atm

dull moss
#

yoinking it from SixthSense

function SixthSense.hasSixthSense(player)
    if player then
        return SixthSense.Trait and player:hasTrait(SixthSense.Trait)--check within character known traits range
    end
    return false
end
neat walrus
#

ahh, so we don't use charactertrait, instead use the module

#

time to check

dull moss
#

Question, I had a mod that was overwriting trait names via TraitFactory, is it not possible anymore with how new registry system? aka I had

if getActivatedMods():contains('\\2914075159/EvolvingTraitsWorld') then
    altNames.AdrenalineJunkie = true;
    altNames.Agoraphobic = true;
    altNames.AllThumbs = true;
...
end

local old_addTrait = TraitFactory.addTrait
---Overwriting TraitFactory.addTrait() to insert ETW logic to modify trait name during generation
---@diagnostic disable-next-line: duplicate-set-field
function TraitFactory.addTrait(type, name, ...)
    if altNamesSpecial[type] == true then
        name = name .. " (P/D)";
    elseif altNames[type] == true then
        name = name .. " (D)";
    end
    return old_addTrait(type, name, ...)
end

this shit won't fly anymore, ye?

#

ThinkNitro actually trait factory shoudl still be there I guess?

#

@bronze yoke do we have plugin for IDE updated yet? PepeLaugh flushge

bronze yoke
willow tulip
bright fog
#

See the EmmyLua and Umbrella wiki pages

bronze yoke
#

i don't know how long i'll keep updating the addon manager tbh, probably for a little while but i already almost forgot this time 😅

dull moss
#

I rememeber having some problems with EmmyLua back when I was actively modding aka 9 months ago

bronze yoke
#

if you used it a couple years ago it was infact a piece of shit back then

bronze yoke
#

but now it's actually a lot better than luals is

#

as of a few months ago

dull moss
#

i dont remember

bright fog
#

Check out the wiki page, it's fresh from this week

dull moss
#

yep ty

ionic crown
#

My mod is not loading onto the server.

LOG : General f:0, t:1765492701669, st:6 433 332 880> ERROR: mods isn't a valid workshop item ID WARN : Mod f:0, t:1765492701678, st:6 433 332 890> ZomboidFileSystem.loadModAndRequired> required mod "testmod_registries" not found

fallow hollow
# bright fog

required mod "testmod_registries" not found

Is this now required by default ? I didn't start working on 42.13 yet but I know for sure it's a zip on forum (and now thanks to @bright fog ) even here on discord

the mod is in that zip, as an example

upbeat turtle
#

considering the api changes, it’s highly likely that using the registry system is now a must-have

bright fog
#

That'd be also very limiting for mods to just force a registry file

upbeat turtle
#

any mod which plays with the system(s) outlined in this file will probably need it 🙂

bright fog
#

Oh yea definitely

upbeat turtle
bright fog
#

But that would kind of limiting to force every mods to need that file when they don't need it

upbeat turtle
bright fog
#

It's confirmed working without a registry ?

sonic needle
#

do you mean MP specific? or SP too

bright fog
#

Overall

lusty anvil
#

this line in .txt in script folder of a mod is to load the texture for the icon right ? I have a ? in game

Icon = TRIZIP,

lusty anvil
#

The icon file name must start with Item_.

#

okkkk

bright fog
#

yup

lusty anvil
#

I'm fixing a mod ^^'
so icon done.
there is another bug, a backpack is turning alpha channel full black of other items

small topaz
#

In the profession system, did they change things so that you cannot change a vanilla profession anymore? Like changing their skill points or traits?

cinder storm
#

they fucked with the tags apparently

bright fog
#

Yea

#

Read the guide guys

cinder storm
#

no ive been reading it

#

Tags now require the ItemTag registry.
also this provided example for craftrecipe

craftRecipe CreateBobbyPin
{
timedAction = Making,
Time = 40,
Tags = InHandCraft;CanBeDoneInDark,
needTobeLearn = true,
inputs
{
item 1 tags[base:screwdriver] mode:keep
flags[MayDegradeLight;Prop1],
item 1 [Base.Paperclip],
}
outputs
{
item 1 TestMod.HandmadeBobbyPin,
}
}```
#

so all tags in craftrecipe have to just have "base:" added onto them?

lusty anvil
#

any idea what can cause this alpha texture issue ? -> bag item equip or not in the screenshot

small topaz
#

So in pre-42.13, it was possible to change an existing profession like this:

tailor:setCost(-4)
tailor:addXPBoost(Perks.Tailoring, 3)```
Does the new 42.13 system provide an equivalent for this? Wasn't able to find anything by looking at the game code and albion's updated java doc so far.
bright fog
finite scroll
#

oh jesus christ

#

everything's broken

cinder storm
#

also, i went into debug successfully, they ended up removing foodSicknessReduction from fluids

#

but that was the only fix i had to do for my mods

finite scroll
#

did they change trait/profession factory

cinder storm
#

the game runs fine now but whenever i try and go into the itemlist

finite scroll
#

i think they did

cinder storm
#

it fucking dies

cinder storm
#

yup they did

finite scroll
#

fuck me

cinder storm
#

but this time

#

they were nice enough to offer us something as a guide

finite scroll
#

oh thank god

#

every single attachment is marked as unavailable 😭

cinder storm
#

you gotta login

finite scroll
#

shiiii

cinder storm
#

based off the changes they didnt do anything major to craftrecipe at least, which is what most of my mods are based on

#

as an example:

craftRecipe OpenBoxOfCaffeinePills
    {
        timedAction = OpenAmmoBox,
        Time = 60,
        Tags = InHandCraft;CanBeDoneInDark,
        category = Packing,
        inputs
        {
            item 1 [Base.BoxOfCaffeinePills] flags[Prop2],
        }
        outputs
        {
            item 24 Base.PillsVitamins,
        }
    }```
#

i cant do anything to test it though because the items list is dead

#

bugged out on me when i tried even in sp

finite scroll
#

oh fuck this seems like actually meaningful changes

#

am i gonna have to rewrite my whole mod 😭

cinder storm
#

depending on what it is yes

finite scroll
bright fog
#

Depends what it is

cinder storm
#

this is what i mean by the items list bugging out

#

there is nothing

#

likely because of my mods but i'll just go and run it back real quick

#

see what the console says

frank elbow
#

Haven't looked closely at it enough to know what the equivalent to your code snippet is

cinder storm
#

alot of mods are going bye bye tonight

#

🫡

bronze yoke
small topaz
# finite scroll did they change trait/profession factory

Yes. The whole system is new. 😭 😅 Basically, you now have to define your profession in a script txt file and then adding them to game via a new registries.lua file. See here: https://theindiestone.com/forums/index.php?/topic/88499-modding-migration-guide-4213/&_fromLogin=1 the MigrationGuide.pdf

As others have probably explained already. But I also started working on it. So I noticed you post.

bright fog
#

Oh so new script type

#

Didn't even realize it lol

cinder storm
#

i actually used display name for alot of my items

#

because it was easier at the time

#

luckily i did do translations later on

#

im guessing thats the issue here with the item list geeking out? displayname got got?

bronze yoke
#

there are afaict no actual changes to professions or traits, just that they are a script now

bright fog
#

Also can we appreciate the inconsistency between the snake and camel case for script type names lmao

small topaz
#

OMG guys! I have one mod called ra's Copy Clothing Colors. It has only 228 subscribers and it is the only one of my mod which still works flawless. lol 😅

bronze yoke
upbeat turtle
bright fog
bronze yoke
#

never seen them use snake case before

cinder storm
#

new guys fucking them up i guess

frank elbow
#

A secret snake case enjoyer is among the devs

bright fog
bronze yoke
#

no, you don't need a registry for items

#

you only need a registry if you are adding a new thing that is subject to registries, such as tags, professions or traits

#

the full list is in the migration guide

small topaz
cinder storm
#

i also have a dependency thats out of my control (from nepenthe)

#

so that might also be an issue, that dependency has to do with distributions

upbeat turtle
frank elbow
#

Odd that cost was made final for professions and traits

bronze yoke
#

i think starlit's hooks are still working but it was a while since i checked on that

small topaz
#

also, defining or deleting profession during runtime of the game is not possible anmyore (not directly at least)

bronze yoke
#

so you can probably still change them that way

bronze yoke
#

you do not need a registry entry to add an item

cinder storm
#

item list works fine without it

#

display name is borking it?

bronze yoke
#

ItemType is actually wholly useless, if you use a non-vanilla one spawning the item raises an exception

#

(and i don't really know what purpose we would ever have for it anyway, it doesn't allow you to do anything new and item types are already a deprecated concept)

frank elbow
silent zealot
cinder storm
#

is display category also dead

cinder storm
#

did you do anything with easy distro yet or no

bright fog
silent zealot
#

I havn't even started Zomboid up to see how much it has exploded

cinder storm
#

good for you and good luck

bright fog
#

I don't have time xD

frank elbow
#

We can run the game? We can... play it?

cinder storm
#

i wanted to play war thunder or some shit tonight

cinder storm
silent zealot
#

Easy Distro... it might be OK, because it doesn't actually add or remove items but just edits loot tables. But that assumes teh loot table system is 100% unchanged

cinder storm
small topaz
# frank elbow In theory, or from testing? From my skimming it seemed like the analogue would b...

The registry seems to be loaded when game starts and professions are fixed then from what I understand. For the old functions like setCost() or ProfessionFactory:Reset() and stuff, there seems to be no equivalent in 42.13 and those old functions don't work anymore.

But yeah, maybe we can use register during runtime and at least make new professions. However, I have no idea how we might change an existing profession or deleting one during runtime now.

silent zealot
cinder storm
#

im ngl i used to play zomboid all the time

#

and then i published my first mod

#

and now i

#

dont

#

once in a blue moon

#

its a curse

bright fog
#

Kind of lol yea

cinder storm
bright fog
#

The PZ game became the modding

silent zealot
#

Screenshot of me playing Zomboid

cinder storm
#

HE USES COMMENTS!?!?!?!?!

#

hold on is DisplayCategory also gone

#

i would assume based off the migration guides examples

thin swan
#

Also if you have Tags that aren't updated with identifier:tag, which if you're using a custom tag you have to add it to the registries file first

cinder storm
# thin swan It happens if you have item scripts that aren't updated to use ItemType instead ...

so lets say we have this humble item script excerpt, which worked fine in 42.12 and earlier

item BoxOfAlcoholWipes
    {
        DisplayName = Box of Alcohol Wipes,
        DisplayCategory = FirstAid,
        Type = Normal,
        Weight = 3,
        Icon = GenericMedicalParcel2,
        ConsolidateOption = ContextMenu_Merge,
        WorldStaticModel = MedicalParcel_Green,
        Medical = TRUE,
    }```

displayname is gone i know that, does this mean that i have to merge `DisplayCategory = FirstAid,` and `Type = Normal` or just change `Type = Normal,` to `ItemType = base:normal,`
cinder storm
neat walrus
#

Say() is client-side and server can't use it, correct?

silent zealot
cinder storm
#

i just spray and pray

#

also, everyones favorite pop-up showed up

#

im guessing the condition inheritor for the boxes got broken too

cinder storm
#

probably my other mods? ill check them

ionic crown
cinder storm
#

TIS warned us on the post not to use mods

#

and guess what we're doing here

pearl prism
#

Oh my God, this update is driving me crazy, so many things are broken.

cinder storm
#

ok good news

cinder storm
#

aaaand they changed timing i have to change that now too

#

mod works fine otherwise

#

🎉

#

so most of our problems come down to that

mellow frigate
#

I do not understand, but am pleased with the amount of mod downloads today. Here is MoodleFramework B42:

cinder storm
#

until mp came out

#

so thats where thats coming from

#

also, how did they change time? time = 60 now goes by instantly

silent zealot
#

If your mod gets added to a popular modpack it will instantly get huge numbers of downloads. Though this spike so far will just be the "peopel are back because they were waiting for multiplayer"

sour island
#

Its for sure people not updating PZ until now lol

#

Like you can pause the game to download updates - and workshop updates occur after

shy mantle
#

I always wondered how those numbers were tracked

sour island
#

Some of my newer mods don't have a spike - but anything a bit older and a bit more popular has one

shy mantle
#

I've said it several times now, but I'm going to keep saying it, do not risk your steam workshop page by using the revert button, it really broke things on my page and updates couldn't be sent out for a while :P

cinder storm
#

ive got a little bump

#

but nothing crazy like it was at launch

cinder storm
#

god dammit

#

no it isnt apparently

silent zealot
#

No need to fix anything, people love my broken mods!

cinder storm
#

win!

#

arendameth gave me permission a while back to update c&k rations and i did

#

had to update that aswell

#

but most things seem in order besides that time problem

silent zealot
#

Best workshop comment so far: someone reminding me of a note I put in a lua file a year ago.

cinder storm
#

dubs

small topaz
#

subscriber numbers for one of my more popular mods are constantly decreasing since 42.13. I am quite afraid to see how it looks tomorrow. 😭 😅

cinder storm
#

well thats what happens if you dont update in time

shy mantle
#

You can see exactly where I clicked the revert button and it nearly dropped to 0 lol (just before november)

small topaz
#

😭

cinder storm
#

there is no way on gods green earth i have 94 different items

#

thank god for ctrl f

hollow wharf
#

Hi guys. Is there anywhere I can find a full list of SandboxVars? I want to add sprinters to CDDA can't get it to work

queen oasis
#

and this is the one that worked out of the box in 42 MP

hollow wharf
#

all the other setting work fine. It just wont recognise the randomsprinteramount line. I think they added it recently so can't find any documentation

silent zealot
#

To find out what the spirnter variables are, make a custom sandbox/save the settings/ look in c:\users\<you>\Zomboid\Sandbox Presets

small topaz
bronze yoke
#

don't worry about this

#

there's some weird thing about how steam counts the statistics

#

the last day always looks lower than previous days

hollow wharf
sour island
#

Almost as many as peak launch woah

shy mantle
#

That's easily the strangest graph I've ever seen

autumn sierra
#

anyone else have an issue with base.belt2 throwing an error on the character creation menu? im trying to update vanilla clothing expansion

#

nothing in my entire mod even interacts with the belt so i have no idea why this is happening

#

i mean i heard that you dont spawn with a belt anymore which i imagine is a bug but in this case it's not allowing me to even get into the game

small topaz
# sour island

My laugh emojis were in no way meant in a negative way. So sorry here. But your statistics are really... kinda special. Don't know how to say...

cinder storm
#

ok my mods are working fine i forgot i had the timed action cheat on

hidden compass
#

@iron salmon
Developers, thank you for the fantastic update, I'm really excited that B42 is getting even better.
I've made some suggestions in the Modding Reports/Requests thread, so please take a look if you have a moment.
#1318920979581501502 message

cinder storm
#

do i just move shit to shared

#

i have never made an mp mod ever

autumn sierra
cinder storm
#

blame it on mods or the devs

#

because this is still unstable

autumn sierra
#

it def is a mod because im running with only mine (trying to test and see if it works with B42 MP, which it clearly does not) and it works fine every time i turn it off

#

it happens every time the char customization screen appears, and none of the buttons are there

cinder storm
#

im trying to run through b42 mp aswell

#

i just got it to work for SP

autumn sierra
#

i cant even get that far

#

ugh

cinder storm
#

if you have items

cinder storm
#

that might be part of the issue

autumn sierra
#

it's weird cause my mod doesnt actually add anything, just variants of existing vanilla stuff

#

ill see if something like that is causing it, thank you

cinder storm
#

they also removed displaynames

#

but at the moment it doesnt cause it to die

#

so i just didnt bother

#

ill go check out some other mods that work for MP and see what they're doing

finite scroll
#

how do you do mutual exclusive traits?

#

it doesn't seem to be in the migration guide

lament oracle
#

I'd like to request someone remake the helicopter event expanded they so fire

finite scroll
cinder storm
#

im sure someone will get the balls for it

lament oracle
#

Sad

cinder storm
#

alot of things can just be reused

lament oracle
#

Bro they was so fire thoo

#

One of my favorite mods

cinder storm
#

i know this from experience; i worked on remaking c&k rations

#

models remained the same alongside the general concept of things

#

you just had to rewrite things to match the current syntax

cinder storm
neat walrus
#

are vehicle alarms secretly client-side only? I can't trigger them in my timedaction:complete() and I'm looking at it in ISOpenVehicleDoor:complete(), can't seem to trigger it either

sour island
#

EHE hasn't been on B42 at all to be fair - the development on it has been delayed due to irl stuff

finite scroll
#

has checking if a player has a trait changed at all?

sour island
#

Unfortunately, job comes first

neat walrus
finite scroll
cinder storm
#

i agree with the administrator though; if you dont have time with delays it may be nice to give someone temporary permission to try and update it themselves; which can then be reflected onto the actual mod once theres room to integrate and then polish things, because its likely going to be a hot mess to convert and there will be alot of crumbs left over

#

but if it functions as intended, most people will be content

finite scroll
#

angler shows up above custom occupation now lol???

#

surely that can't be intended

willow tulip
finite scroll
cinder storm
#

all you actually fucking need is the client side folder

#

doesnt have to have anything in it

#

and you have to add it as a workshop item aswell if you have it as a mod

#

boom

#

works

#

compatible

#

🎉

#

here let me share how i did it

#

these 3

#

even if you dont have anything to put in them

#

good idea to have them

cinder storm
#

yeah im good

#

works on sp and mp

wintry tree
#

Sorry if I'm blind, I don't use discord much. Is there another source for the 42.13 modding guides? I can't download as they seem to be for memebers of the forum only. I can't sign up for the forum because the security check doesn't appear for me.

wintry tree
#

Thanks, I got the guide from Daemon

outer crypt
#

obviously this doesn't work anymore thisObject:getSprite():getProperties():Is("CustomName") I did not see anything in migration that was specific to sprites, has anyone run into this yet with a work around?

distant inlet
#

does anyone know if objects/items have IDs in latest beta?

bronze yoke
outer crypt
#

Thank you, Albion, always the savior 🙂

neat walrus
#

so I've given up trying to trigger vehicle alarms server-side. tis has self.vehicle:triggerAlarm() in ISOpenVehicleDoor:complete(), but I've been trying to trigger it for the past several hours. works sp, but not mp. I'm pretty sure its client-side only.

outer crypt
#

this version worked: thisObject:getSprite():getProperties():has("CustomName")

#

looks like the Val option also changed: thisObject:getSprite():getProperties():Val("CustomName")

wintry tree
#

I don't suppose anyone could help me find an example of how the game assigns clothes to professions in character creator in this new version?

late hound
#

ok so where is the guide to update mods

late hound
#

the steam post's links and attachments are not working for me

silent zealot
neat walrus
wintry tree
#

Okay, thank you. This is what I had before but it doesn't work anymore. Still trying to figure out what's wrong.

late hound
#

how major is this update in terms of breaking mods

neat walrus
#

if you have timedactions, traits, professions, or items you have plenty of things to change

late hound
#

"or items"

#

💀

neat walrus
#

tbf, none of it was too difficult with the exception of timedactions

#

just spent the last 5 hours or so tweaking mine and just got them working

bronze yoke
#

almost every single mod is broken, most don't need major changes

neat walrus
#

my items are fairly basic, but these were my changes

Type = Normal, -> ItemType = base:normal, and if you had DisplayName it gets removed

wintry tree
#

There's something I'm not understanding. I have a custom occupation that I've managed to get back into the game but I'm not longer able to select the clothing items I defined for them in character creator. They are not new items, they are available in the base game. My definitions file still looks like the one in the games install folder.

wintry tree
#

omg..I figured it out

dull moss
#

Or give a tldr

buoyant violet
#

guys how are we meant to do this???

#

I get a crash on loading, black screen pointing at line 2

neat walrus
hidden compass
#

How should I specify the ItemTag object for custom tags in containsTagRecurse?

public boolean containsTagRecurse(ItemTag itemTag)
hidden compass
#

It worked, but is this specification correct?
By the way, the custom tag I added is “P4PrismPower:mirror”

inventory:containsTagRecurse(ItemTag.get(ResourceLocation.of("P4PrismPower:mirror")))
dull moss
midnight turtle
#

Hello guys, I have a question, idk if that the right channel but, one of my biggest complain about PZ is the lack of variety for the props / assets of the game and interiors (there is always the same tables / beds / fridges / etc... like 5-6 of them for like 10 000 interiors, always look the same...) so I was wondering, is this possible to create a mod where I can create my own custom Tiles and Assets / Props and REPLACE the Vanilla ones (not just adding new ones) or it's impossible ? And if that is possible, why no one did it ? :/ I don't ask to create 50 000 assets but at least add more variety to the World / Interiors lol, if that kind of mod is possible I will probably learn the tools to create it and add overtime more and more diversity to the environment ! Also if possible maybe I would even motivate myself to update some areas of the map like they did with some buildings / houses for B42, adding more exteriors details, make some building bigger etc... that possible too ? And ALL of that in ONE Single Mod that would make the Entire map just more unique would be so sick ! Just wanted to know if it's possible ty ! ❤️

kindred walrus
#

Ok, now that display name is redundant, how do I name my items anything else but "Base.WeaponName"

thin swan
potent loom
#

adding some extra guide that reflect my recent discoveries with migration to b42.13, might be useful for others: https://docs.google.com/document/d/1szxFHaFGcyIUAojnc817b59yPkzpp7Y-8IqxPT9OOk8/edit?tab=t.0. I will be updating it

cold skiff
#

I have a couple of errors in my mod regarding bodylocations:
ERROR: General f:0, t:1765544201449> KahluaThread.flushErrorMessage > expected argument of type ItemBodyLocation, got String
ERROR: General f:0, t:1765544201451> KahluaThread.flushErrorMessage > dumping Lua stack trace

STACK TRACE

Callframe at: new
function: LK_BodyLocations.lua -- file: LK_BodyLocations.lua line # 8 | MOD: Legendary Katana
ERROR: General f:0, t:1765544201452> ExceptionLogger.logException> Exception thrown
java.lang.RuntimeException: expected argument of type ItemBodyLocation, got String at MethodArguments.assertValid(MethodArguments.java:128).
Stack trace:
se.krka.kahlua.integration.expose.MethodArguments.assertValid(MethodArguments.java:128)
se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:182)
se.krka.kahlua.vm.KahluaThread.callJava(KahluaThread.java:183)
se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:793)
se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:167)
se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1756)
se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1560)
se.krka.kahlua.integration.LuaCaller.pcall(LuaCaller.java:69)
se.krka.kahlua.integration.LuaCaller.protectedCall(LuaCaller.java:109)
zombie.Lua.LuaManager.RunLuaInternal(LuaManager.java:1334)
zombie.Lua.LuaManager.RunLua(LuaManager.java:1288)
zombie.Lua.LuaManager.RunLua(LuaManager.java:1277)
zombie.Lua.LuaManager.LoadDirBase(LuaManager.java:1179)
zombie.Lua.LuaManager.LoadDirBase(LuaManager.java:1099)
zombie.Lua.LuaManager.LoadDirBase(LuaManager.java:1215)
zombie.GameWindow.init(GameWindow.java:1182)
zombie.GameWindow.mainThreadInit(GameWindow.java:690)........

#

I created a registries.lua file in media with the following content:
ItemBodyLocation.register("LegendaryKatana:KatanaSheath")
ItemBodyLocation.register("LegendaryKatana:KatanaSheathHip")
But my LK_Bodylocations file continues to fail:
local LKLocations = {
"KatanaSheath",
"KatanaSheathHip",
}

local group = BodyLocations.getGroup("Human")
for _, location in ipairs(LKLocations) do
local bodyLocation = BodyLocation.new(group, location)
group:getAllLocations():add(bodyLocation)
end

Would someone be so kind as to guide me on what I need to change to make it work on 42.13?

buoyant violet
#

ok I was able to narrow down the issue with custom ammo

#

altho I manage to register my new ammo like this

AmmoType.register("vfe:bullets_762", "762Bullets")
#

the issue now is that a fucntion calls for a tracer file that is on media effects folder

pliant citrus
#

Quick small question, if I update my poster mod to be B42 MP version compatible, will all those who use it on B42.12 crash with it?

drifting ore
pliant citrus
#

Ah alright thanks, is there a doc or guide for that how steam workshop processes the folders and specific naming conventions?

ionic crown
#

ERROR: mods isn't a valid workshop item ID

#

wtf

pure magnet
ionic crown
pure magnet
#

Ah then i dunno

bronze yoke
#

this error always happens to everyone and does nothing

#

it has been an issue since b42 released

blissful sorrel
drifting ore
blissful sorrel
#

have other manage to get mods working in dedicated server setting?

pure magnet
#

I have

#

Enable steam in batch file

blissful sorrel
#

"-Dzomboid.steam=1" is this what you mean

pure magnet
#

Yessir

blissful sorrel
#

yeah thats on

#

still nothing

pure magnet
#

Format for ini:

Mods=\tsarslib;

blissful sorrel
#

i don't have the \

#

is that new to 42

pure magnet
blissful sorrel
ionic crown
blissful sorrel
pure magnet
mellow frigate
dreamy birch
#

sure

frank elbow
#

Thank you moderator

dreamy birch
#

idk what happens in here so if thats useful to keep pinned then great

frank elbow
#

We plan your downfall here

#

Carry on

quasi kernel
#

Wait, so are mods disabled entirely in latest or just in the multiplayer side of things?

pure magnet
#

mods are disabled for feedback

#

as in, they aren't disabled entirely. just not enabled

frank elbow
#

I was able to run a hosted game with mods just fine yesterday, but that was without anyone else joining

#

i.e., worked fine for testing. I'll have to see this evening whether multiple windows with -nosteam works but based on that I'd imagine yes

quasi kernel
#

I need to overhaul my stupid lootbox mod with some new features, along with accomodations to the new changes.

frank elbow
#

I imagine you're familiar with the multiple nosteam windows thing then, I'd try that out

#

Adding the mods to the hosted settings was a bit wonky for me at first, but after deleting outdated stuff it was fine

quasi kernel
#

I actually haven't been aware of that, I did most of my multiplayer testing through agonizing means.

pure magnet
frank elbow
pure magnet
#

probably 2000

quasi kernel
#

Also, does anyone have any experience using individual cells / chunk data?

#

Reason I'm asking is cuz I need to redo how the system converts items to account for containers not caught by latest function hooks, and also to account for items on the floor via stories.

#

I figure you could probably retrieve containers on cells, world items I imagine you could do with effort, cars will be.. interesting.

mellow frigate
sour island
#

I expect to see the same eventually as I don't have much time to work on stuff

#

My best guess is if your mod is preventing the server from starting they're tossing it out the window

#

So some mods might see a spike if they're still on mod lists with alot of players coming back (who may have never used your mod / haven't played from before it's publishing)

#

While other mods will get dunked

pure magnet
#

Total Unique is a better stat

fallow hollow
#

hey guys
thanks for the tip about logging yesterday, I was able to finish my prox inventory tweak

Also hello to so many famous modder names I am seeing here, nice spiffo
Then I am gonna start with ports to 42.13

What are you playing ? I am planning to stay with 42.12 on my modded SP and I don't have anyone to play a fresh MP 42.13

#

I wanted to ask what approach you're choosing to your mod updates.
Only forward compatibility ? You just port to 42.13 and feel sorry for guys who wanna stay 42.12 with their saves?
Can you even make mod compatible with 42.12 and 42.13 at the same time ? I noticed some mods are like duplicated inside, that's what, that's multiple times mod.nfo ?

#

Spiffo 🥰

clear aurora
#

Hi everyone, im interested in making a mod, and after looking the guides i made the mod structure, but im having some problems, like no poster showing (i have it in the media folder)

fallow hollow
bronze yoke
fallow hollow
#

i see, thanks a lot
Do you have any tip for a mod that does this ? I vaguely remember a mod for B41 and B42

bronze yoke
#

mods have to have a different version for b41 and b42 because b41 uses a different mod structure

#

the b42 mod structure supports multiple versions properly but few modders will have actually used it because so far there has been no reason to

fallow hollow
#

let me find that example, I got one like this subscribed.. it's about erosion

mellow frigate
#

Hello there, I need to update encoding for translation txt files (those files pre-exist, but I need to change the content). where can I find the encoding for each language ? (I need those for CN / DE / EN / ES / IT / RU) My notepad++ tells me eithe utf8 or utf8+bom but I fear I'll messup if I go blindly.

fallow hollow
fallow hollow
#

😮

bright fog
noble fossil
#

How do I get my mod to work on a dedicated server? I updated it to 42.13 and it works perfectly fine when I host the game myself but if I do dedicated, the mod doesn't appear in-game.

small topaz
#

So we now have to add new body location via the new register system? But when doing so, how can we add a new body location before a vanilla location?

bronze yoke
#

currently, you cannot

#

it's been reported as a regression and will be worked on in a future patch

small topaz
#

that's really bad. this breaks my whole mod. 😭

bronze yoke
#

hey actually i think i spotted a way to do it

#

you will need to be able to read fields, you can use starlit library for that

#

instead of calling group:getAllLocations(), read the field group.locations instead

#

after adding your location the normal way, you can remove your location from that list and insert it into the proper place

#

@primal schooner have you tried this?

primal schooner
small topaz
bronze yoke
#

you probably could still do that but it's a very expensive and unnecessary way of doing it

#

you can use that field to get the list and just remove/insert specific elements where you want instead of rebuilding the whole thing

mellow frigate
small topaz
small topaz
bronze yoke
#

it's a List<BodyLocation>

mellow frigate
fallow hollow
small topaz
tulip valve
#

Where do I find the traits and profession in B42.13? They are not in MainCreationMethods anymore lol

buoyant violet
tulip valve
tranquil reef
#

Am I misremembering how to install this

bronze yoke
#

yes

bright fog
# fallow hollow

That mod.info file which is on the same level as the versioning and common folder is only recognized by B41, which you don't support in your mod currently so you can remove it
For mod options, see the wiki page regarding those

bright fog
#

I might need to make a notice about this on the Umbrella wiki page lol

fallow hollow
tranquil reef
# bright fog That's not Umbrella 😅

I figured after looking at it lol, but I do remember just typing it in somewhere and not manually downloading from a github repo. Am I hallucinating or is that actually the way to do it

bronze yoke
#

there was another way to do it but we don't recommend it as strongly anymore

bright fog
#

I also explained in my latest video how to install it, tho it's about the LuaLs version

#

Now we suggest using EmmyLua instead

small topaz
#

Das anyone already managed to define a new bodyLocation via the new register system?

Does not yet works for me. I use
ItemBodyLocation.register("rasBoMo:Skin")
in the registries.lua fine which is in the media folder. Is there anything else I have to do?

bronze yoke
#

you need to create the bodylocation the same way as before using the registry instead of the string name, the registry is just an identifier for the body location

#
--- media/registries.lua
MyModRegistries = {}

MyModRegistries.Skin = ItemBodyLocation.register("rasBoMo:Skin")

--- another file
local group = BodyLocations.getGroup("Human")
group:getOrCreateBodyLocation(MyModRegistries.Skin)
sturdy silo
#

Hey, has anyone found out how to find if the player has one of your new traits or not? I've tried a lot of combinations of player:HasTrait("traitmenagerie:tgamblersfolly") or player:HasTrait("tgamblersfolly").

bronze yoke
sturdy silo
#

Thank you so much

tranquil reef
#

anyone know any mods that add body locations

small topaz
#

is there a way to get the bodyLocation object by it's id? like
local location = getBodyLocationById("base:Shirt")

bronze yoke
#

you really should not do this, the entire point of the new system is to use the registries

#

however, if you *have* to:```lua
local location = group:getLocation(ItemBodyLocation.get(ResourceLocation.of("base:shirt"))

tranquil reef
bronze yoke
#

scroll up just the tiniest bit

#

oh, to reference it in the script you write whatever you wrote in register(), so for the example i posted you would want BodyLocation = rasBoMo:Skin,

small topaz
shy mantle
#

Does creating a split screen player in a self hosted online server treat them as a unique player? I ask because it gives the secondary player a user name as, which is different.

bronze yoke
#

i guess it was too much to hope for that everything would be updated 😅

#

i don't know for sure if this works, i haven't seen anyone doing this yet

small topaz
#

Yep. That's what I am going for. Hope it works somehow.

bronze yoke
#

MyModRegistries.Skin:toString() may be preferable over hardcoding the string

#

but that's if this works at all

fallow hollow
#

I am trying to port 42.13 mod to 42.12 again
please let's skip the why 🙂 but point is I am **unsubscribed **from workshop on this mod.
I've
added it back to /workshop folder
added it's name into zomboid/mods/default.txt
but it's not showing up in game.

Is the subscribed id saved somewhere ? What am I not finding..? Thanks!

bronze yoke
#

if the mod uses a version folder, make sure it is not 42.13

fallow hollow
#

it's not like that.. I am trying to get mod which is already "gone" for me in 42.12 back, it's pretty standard atm

#

it's just that I am not subscribed currently

drifting ore
#

Ope didn’t mean to ping

bronze yoke
#

they can, but they're trying to backport to 42.12 so if it's 42.13 it wouldn't show up

#

but that's not the issue here

bronze yoke
drifting ore
#

🤦🏻‍♂️ Yeah I just read that

bronze yoke
tranquil reef
#

Previously to remove an item from being viewable by the player, it'd have no DisplayName. Now without DisplayName in general, is that possible

bronze yoke
#

hidden = true,

#

the displayname trick hasn't worked for a patch or two already

tranquil reef
#

Haven't updated my mod in a patch or two lol. but thank you

fallow hollow
#

I don't want to spam but it looks like it's the correct format
It's not "source" but "installed", so it's missing /content etc.. or you noticed something else ?

fallow hollow
#

ty for your willingness to help

bronze yoke
#

oh this is in your workshop downloads folder? the game only checks the folders in here that steam tells it to, so if you're not subscribed to a mod with that id it won't see it

#

i would move it into the regular mod folders, if you don't plan to upload it the easiest way is to just copy the GiveMeSomeTime directory into Zomboid/mods

fallow hollow
#

exactly my thought 🙂
Yeah I symlinked mods to workshop, so that I have workshop as a project in Idea and don't have to run around

C:\Users..\Zomboid\Workshop\Symlinked\3145971646

#

Zomboid/mods is the way to go with your local testing ?

bronze yoke
#

yeah that won't work, it doesn't match the structure expected in Workshop

bronze yoke
fallow hollow
#

I should've started there, with Zomboid/mods, sorry
Thanks a lot

peak furnace
#

quick q, with mod scripts, can you use the extension .lua? or do they need to be .txt
i'm looking to define some new recipes

#

i just ask for convenience's sake, i'm using notepad++ and i'd rather it autoselect the proper language

small topaz
#

Is there again a new way of creating items? Maybe Item.InstanceItem("MyModule.MyItem")?

bronze yoke
#

instanceItem() should be fine, what issue are you having?

peak furnace
#

what are they?

bronze yoke
#

an original format called zedscript

small topaz
# bronze yoke `instanceItem()` should be fine, what issue are you having?

using this gives me a call frame:

function: manageMalePrivatePart -- file: RasBodyModCharacterCreation.lua line # 191 | MOD: ra's Body Mod
[irrelevant stuff]
ERROR: General      f:0, t:1765580292075> ExceptionLogger.logException> Exception thrown
    java.lang.reflect.InvocationTargetException at DirectMethodHandleAccessor.invoke(null:-1).
    Stack trace:sing this gives me a call frame:
bronze yoke
#

i'd have to see the stack trace to know for sure, but the most common cause of new stack traces when instantiating items is because the item does not have an ItemType set

drifting ore
small topaz
bronze yoke
#

yeah, that's the ItemType error

#

in all item scripts you need to change Type = Normal, to ItemType = base:normal, (or the equivalent ItemType)

small topaz
#

Thanks!

peak furnace
marsh fractal
#

Welp I made more cursed mods less go

small topaz
#

oh wow! ItemBodyLocation:toString() converts everything to lower case letters

small topaz
#

naming body locations in the translate folder feels somehow off now
UI_ClothingType_rasbomo:chesthair = "Chest"

azure rivet
#

Is 'ISItemsListTable' broken
Or did it become corrupted?

modern vapor
#

does anyone know where/what CraftRecipeCode has moved to? I see now a bunch of references to RecipeCodeOnCreate, but I cant find where that is anywhere. My mod Preventative Maintenance was modifying CraftRecipeCode.GenericFixer() a lot. EDIT: its now in the java 😭

willow tulip
#

So wish I could actually spawn a SELECTED car in MP

#

Getting tempted to just give up on MP support, just because actually spawning stuff and testing is so damn hard in MP

#

can't even fastmove to FIND a car, ughhhh

tacit aspen
# mellow frigate Tsar Comon Library B42 is updated. Item Types have been changed because Base mod...

Hi, thank you so much for your mod. I have a question: is it possible to get the version for 42.12 Legacy? I've been playing a Nomad series for a long time, and I have my entire base in that trailer. It's a super difficult run with extremely rare loot, very few cars, and 99% of them are destroyed. It was really hard to get the parts, but I'd like to have some luck getting my items. The problem is, I keep getting errors and the game crashes. But if I disable the mod, it works perfectly. Is it possible to get the previous version of your mod so I can save my items and car parts?

mellow frigate
tacit aspen