#mod_development

1 messages ยท Page 382 of 1

bronze yoke
#

i didn't actually realise at the time that the b40 player was even a 3d model

dull moss
#

started b41 wicked

bronze yoke
#

i thought it was a sprite, that was how it looked and how many animations there were

dull moss
#

ayo @bronze yoke do you know sometihng about this? flushge

bronze yoke
#

wearing clothes didn't change your character's appearance, every weapon looked like either a baseball bat or a fire axe

dull moss
bronze yoke
#

there were no 3d models other than the characters whatsoever

dull moss
#

oh nooo

bronze yoke
#

the zombies looked like green aliens

bronze yoke
dull moss
cloud marten
#

yea i remember crowbar placeholder, played way before vehicles, new lighting its nice, but its still like pixel mess with some brocade. For me this is should be possible via scalling, even Factorio for example whitch is also image based not model, updated graphic in recent years a lot. Even in games from 1999 you can upscale textures like cs 1.6, so i would say its design flaw

willow tulip
#

B42 has proper depth buffering too and depth sprites

#

no more weird tile overlap when you drive near a wall

lavish gulch
#

Is there anyone here who knows how the spawnpoints.lua works and how the game handles spawn locations?

TLDR I am one of the admins of one of Australia's largest PZ multiplayer communities, and I'm tinkering around trying to make a very simple mod that adds spawn locations to all of the named towns on the B42 map (not including LV).

I'm confused by looking at the spawnpoints.lua files though for the existing spawn towns, because they specify spawn points by occupation. However I want to simplify it and just have spawn points regardless of occupation.

#

I'm also a total novice at any type of modding so forgive me if this is a dumb question. But yeah, just a bit confused about how to specify spawn locations that cover all/any occupation

bright fog
#

idk why you are so closed on the textures and refusing to see all the visual tweaks around that clearly improve the game a ton

bronze yoke
#

so just define them for unemployed only

bright fog
#

Yes other games like Factorio had visual updates, but you seriously think the only thing they did to improve it is double or quadruple the texture size lol ? They did so much more

#

Just the details of lighting and stuff like that they did on textures improved things a lot

lavish gulch
bronze yoke
#

it should yeah

lavish gulch
#

Thanks - i'll be back later with more questions but for now I'll concentrate on getting all my coordinates for my desired spawn locations etc. Much appreciated.

cloud marten
# bright fog idk why you are so closed on the textures and refusing to see all the visual twe...

I know game its game is not about graphic, but if graphic is nice you can feel more immersed into the game, also for now project zomboid missing any big concurention,

Maybe some day with help of AI we will see this pz_thinking :
https://www.youtube.com/watch?v=Lru3Esv2Ya8

Project Zomboid with ultra-realistic graphics using Gen-3 video to video Runway ML #ai
Project Zomboid REIMAGINED BY AI
Project Zomboid AI
OVERLAY AI OVERLAYS
GAME TO VรDEO
#projectzomboid #dayz #dayzstandalone #dayzgameplay #zombies #zombiesurvival #Sakhal #GTA6 #gta #gta5 #gtaonline #ai #runway #runwayai #artificialintelligence #gta6...

โ–ถ Play video
bright fog
#

That's so bad

#

Has no texture, it's disgusting

silent zealot
#
function SpawnPoints()
return {
  unemployed = {
    { posX = 3905, posY = 12254, posZ = 0 }
  }
}
end

This was what I used in a mod to have everyone spawn at 3905,12254. I assume multiplayer B42 works the same as single player

vast pier
#

Any big breaks from 42.16 that I should check my mods for ?

bronze yoke
#

you do guns right? any custom reload animations?

vast pier
#

yes...

bronze yoke
#

they don't work anymore ๐Ÿ˜…

vast pier
#

wh...

#

why

bronze yoke
#

weaponreloadtype was replaced with an enum, so custom ones aren't working currently

vast pier
#

why would they do that

bronze yoke
#

enums are a lot easier to work with for them, breaking mods was an oversight

vast pier
#

one of my most installed mods is literally just the lever action animation replacer

#

surprised I haven't gotten any comments about this

#

11k current subs, not a single comment today about it being broken

#

strange

vast pier
bronze yoke
#

i don't think so

vast pier
#

any other big issues ?

bronze yoke
#

not that i know of

mellow frigate
#

The game does not log a crash error anymore when you stop a server with the quit cmd. joy.

red tiger
#

I remember seeing that a long time ago and asking for it to be fixed lol

#

Some of my older patches included this fix

#

zombie.GameWindow got some better try/catch logging lines which made me jump for joy.

#

Good hands touching the older code again.

red tiger
#

I'll be thrilled if I see java.io API properly formed in conditional checks and not voided boolean returns. :D

#

Less yellow tabs in my IDE.

#

the right way to do mkdirs is something like:

if (!fileDirectory.exists() && !fileDirectory.mkdirs()) {
  throw new RuntimeException("Failed to mkdirs: " + fileDirectory.getPath());
}
#

The zombie Color API is a lot nicer now.

#

Nothing recent. I needed this stuff back in 2017.

dry stone
#

Somehow the PZDos mod I'm working on didn't break with the update.

#

I got a few new things... Multiple disk drives + hard drives work now; multi-filesystem. Added a full set of 286 and 386 class hardware. Made dosbox try to mimic your actual build

#

And now DOOM runs at a healthy ~9fps on a maxed out 386

red tiger
#

Are you doing this all in Lua?

dry stone
#

I've got a ton of lua stuff for the computer building UI, but the dos emulation is all Java side

red tiger
#

Ah ok.

#

What did you need to do it?

dry stone
#

The whole trick is.. i used JDosbox. It's a Java-based fork of Dosbox which you can use to emulate retro PCs

#

and it's all based on this vision of making in-game computers actually work just like they did in 1993

red tiger
#

Oh so you have an emulator wrapper.

dry stone
#

Basically that, yeah

red tiger
#

I thought about making a similar mod, emulating assembly in Lua.

dry stone
#

I kinda have my doubts how far you could go in lUA for writing an emulator, but I'm not great at LUA.. still learning

#

Something like a Commodore 64 mod would be pretty cool. Same idea as mine - millions of classic games there, too

#

I think players who like collecting might really get into this

red tiger
#

Lua 5.1 and binary don't get along well.

#

I'm going to re-insert my bitwise ops API exposer from Java in my patch.

dry stone
#

But if someone jumped to tell me Lua had stuff like python's numpy and i just didn't know - I wouldn't be that shocked

#

there's ways to do big heavy operations in simpler scripting languages.. Python become the go-to for this

red tiger
#

Lua 5.3 introduced proper Integers.

#

I added Jython to build 41 out of curiosity but it's 2.7.3

#

Also isn't sandboxed. :(

dry stone
#

If zomboid used python instead of lua you could do insane things

red tiger
#

Oh yeah and it's fun too

dry stone
#

but probably not dosbox, at least not as easy haha. I lucked out there

red tiger
#

Yeah. Right now I'm writing a wrapper API for drawing onto textures.

dry stone
#

You might actually be able to solve one of my biggest problems

red tiger
#

There's a lot of smaller utilities that I'll need before advancing to drawing HTML and CSS in PZ UI.

dry stone
#

I'm hijacking dosbox's frame buffer and making it in to a zomboid texture java-side.. Lua polls for updates to the texture, thats how I display it in game

#

But I have to make a NEW texture every frame, which is just .. slow. and ugly.

#

I tried using dynamic textures, which I think zomboid has java APIs for, but I couldn't get them to work.

red tiger
#

You'd need to hook into the render thread and where the SpriteRenderer goes through the ringbuffer of TextureDraw instructions.

dry stone
#

Dos games are low-res, though. Usually about 320x200 pixels. Making new textures is still like heavy even if the textures aren't huge, but that does make the copy a LOT less bad

rich reef
#

Bumping this, to hopefully get some insight into B41 AddItem/addItemOnServer syncing. Thanks!

dry stone
#

If I hook that would I be using a zomboid texture or just making my own through my own OpenGL code?

#

I've done Opengl a lot, but I'd probably need their gl context

red tiger
#

There's no system that would allow this with the way PZ works atm

dry stone
#

oh no, I'd be doing it in pure java if I had a good way

red tiger
#

I have added async into my Java mod for Lua workers as an API with callbacks and workers but not for rendering.

mellow frigate
#

God mode and invisible debug cheats are not working on my new solo games in B42.16. Is it working for someone ?

outer crypt
#

I was just using invisible okay

#

has set(IsoFlagType.waterPiped) changed again? all of my plumbable furniture no longer has the option nor do they have water connected in 42.16...

#

did not see anything in the notes about it...

wintry tree
#

I googled how to make mods wait for other mods to intialize. Since I can't trust anything it says anymore. Do you know if this is correct? local function onModsBuilt()
if getActivatedMods():contains("OtherModID") then
print("OtherMod is loaded! Initializing MyMod patch...")
-- Patch logic here
end
end

Events.OnModsBuilt.Add(onModsBuilt)

#

nope, nvm. Just answerd my own questions. OnModsBuilt is not a valid event

alpine zenith
#

im trying to add my own furniture item with a custom script on it so it does things but there is no wiki page for adding furniture can someone point me in the correct direction with a writen or youtube tutorial. sorry if asking much

bright fog
wintry tree
#

Does anyone have an example or instructions on how to make mods wait for others to intialize?

alpine zenith
bright fog
bronze yoke
#

look in the generated folder

bright fog
#

The entity script used to define these is a module block

bronze yoke
#

the xuiskin is manually written so it's in a different file

bright fog
#

Yes

#

Currently that's the only doc about it but a lot of these are not detailed at all for now

alpine zenith
#

like the size

bronze yoke
#

i think that's still defined by the sprite

bright fog
#

Yea that's a tile flag

silent zealot
bright fog
#

Or property

alpine zenith
#

try modding build 42. there is more documentation about it they said

silent zealot
silent zealot
bright fog
#

But there's even less doc for B41 man lmao

alpine zenith
silent zealot
bright fog
#

Before I worked on the wiki the documentations was inexistent, you relied on asking around or knowing how to search for things in existing mods

silent zealot
#

A lot of things are harder than they really should be because technical debt from a decade ago has become the foundation of everything that came after.

bright fog
#

Yes there's no docs for entity scripts, bcs it's a pain in the ass to doc and I haven't gotten around it yet

silent zealot
#

A few people in this channel have done a lot for documenting modding... but it's a huge undertaking

bronze yoke
#

the majority of existing documentation is literally written by one guy (sim) so there's a limit to how broadly it can cover things

#

it's quite impressive how much he's gotten done

alpine zenith
#

hmm damn. anyways i have an idea for an mod but i first wanna get some experience do you guys have an idea like help me get some experience and feel comforteble modding?

bright fog
alpine zenith
bright fog
bright fog
alpine zenith
bright fog
#

Tho I don't know if I am I never did any medical diagnostic

silent zealot
bright fog
alpine zenith
silent zealot
#

Think of something you wish was slightly different in-game

#

And make a mod to change the existing thing.

bright fog
#

We can't really help you on that, it's up to you to find smthg

#

We all started modding bcs we wanted to add, improve or fix smthg

silent zealot
#

You'll also pick up different skills with different types of mods; if you want to add a new gun then you're looking as basic blender use & item scripts, if you want to change the way foraging works you probably are dealing with lua scripts, mapping has it's own set of tools, animations break my brain...

#

But a personal tweaks mod that adjusts the game for your taste is a good start. Mine does lots of trivial stuff like making alcohol have a display category of "Booze" so it's all together when I sort by category, for example.

wintry tree
# silent zealot What exactly are you waiting for? Most of the time you can just have your code a...

I'm trying to see if there is a way to gather all rules traits and occupations into a framework mod from multiple occupation locked traits mods and then do the work all at once because once I access CharacterProfessionDefinition:getProfessions() and use addGrantedTrait() it can't be accessed again for the session. So one occupation at a time entering all rules traits. It works sometimes but other mods seem to race eachother, one finishes first and then the second can't access right.

#

Mod 1 and mod 2 can work together to lock traits, Mod 2 and mod 3 can work together to lock traits. Mod 1 and mod 3 will not work together. which is loaded first wins

silent zealot
#

This is probably due to mods being coded badly and replacing something completely instead of modifying it.

wintry tree
#

they are all sending the same tyhpe of thing so I don't get it.

silent zealot
#

Are you doing this on B41?

wintry tree
#

B42

#

The framework mod is probably coded badly, so I'm trying to fix it.

silent zealot
#

getProfessions() returns a new ArrayList which is made from a LinkedHashMap, so I expect you can't alter anything in that output - just use it for reference.

#

Or maybe you can alter the objects in it but the references will change if stuff is added/removed... this is the messy undomented stuff that will need some looking into the java behind those functions

wintry tree
#

I think I have the orignal function for angler traits.

#

proAnglerTraitsLock.lockAnglerTraits = function()

local allProfs = CharacterProfessionDefinition:getProfessions()

for i = 0, allProfs:size() - 1 do 
    local prof = allProfs:get(i)
    if prof and prof:getType() ~= CharacterProfession.FISHERMAN 
        then prof:addGrantedTrait(NOTANGLERGV)
    end 
end

end

So the problem was if any mod does this same thing after mod, fisherman would be the only thing left in the list.

silent zealot
#

You're adding a trait to every profession except FISHERMAN?

wintry tree
#

Yes. It's adding a trait that holds mutual exclusive information with the other traits I'm adding. So it only shows for the angler. Then another script hides that rules trait in the selected traits list. And then the rules trait is removed when a non fisherman enters the game.

silent zealot
#

And how is that conflicting with other mods?

wintry tree
#

It only conflicts with any other mod that does the same thing. I'm trying to make another locked traits mod. But if it runs after proAnglerTraits, only the angler is modified.

#

And the weird thing is, I'm trying to make a framework mod that does all this work at once. I have 3 mods that can lock traits, mod 1 works with mod 2, mod 2 works with mod 3, mod 3 and 1 will not work together. One will beat the other depending on load order.

#

So I'm trying to see if there is someway I can make the framework mod wait until all mods are intialized. If that makes sense.

silent zealot
#

There is no single "initialised" for mods

#

When exactly does your code run? When the Lua is first loaded, or when a certain event triggers?

wintry tree
#

One thing that's kinda fun is mod 2 that works with both mod 1 and 3. as long as it's loaded after the framework it's irrelevant what order it's in

#

On main menu enter

silent zealot
#

No, I mean the lua

#

You have Lua code

#

What triggers that to be run?

#

When the Lua file is first loaded or something else?

#

Like an event or callback

wintry tree
#

sorry, you don't mean Events.OnMainMenuEnter.Add(applyRulesToOccupations)?

silent zealot
#

Yes that

#

All the mods trigger on that same event? And they all do something like the loop you shared earlier?

wintry tree
#

LockTraitFramework.AddRule = function(traitVar, excludeJobsTable)
if type(excludeJobsTable) ~= "table" then
excludeJobsTable = {excludeJobsTable}
end
table.insert(LockTraitFramework.Rules, {trait = traitVar, skips = excludeJobsTable})
end

local function applyRulesToOccupations()

local allProfs = CharacterProfessionDefinition:getProfessions()

for i = 0, allProfs:size() - 1 do
    local prof = allProfs:get(i)
    if prof then

        local currentHandle = prof:getType()
        
        for _, rule in ipairs(LockTraitFramework.Rules) do
            local shouldSkip = false
            
            for _, skipHandle in ipairs(rule.skips) do

                if currentHandle == skipHandle then
                    shouldSkip = true
                    break
                end
            end
            
            if not shouldSkip then
              if not prof:getGrantedTraits():contains(rule.trait) then
                    prof:addGrantedTrait(rule.trait)
               end
            end
        end
    end
end

end

Events.OnMainMenuEnter.Add(applyRulesToOccupations)

The traits mod sends this - LockTraitFramework.AddRule(NOTANGLERGV, {CharacterProfession.FISHERMAN})

#

that other bit is from the framework

silent zealot
#

Put ```lua above your code

#

And ``` below it

#

Makes discord format it

wintry tree
#
LockTraitFramework.AddRule = function(traitVar, excludeJobsTable)
    if type(excludeJobsTable) ~= "table" then
        excludeJobsTable = {excludeJobsTable}
    end
    table.insert(LockTraitFramework.Rules, {trait = traitVar, skips = excludeJobsTable})
end

local function applyRulesToOccupations()

    local allProfs = CharacterProfessionDefinition:getProfessions()
    
    for i = 0, allProfs:size() - 1 do
        local prof = allProfs:get(i)
        if prof then

            local currentHandle = prof:getType()
            
            for _, rule in ipairs(LockTraitFramework.Rules) do
                local shouldSkip = false
                
                for _, skipHandle in ipairs(rule.skips) do

                    if currentHandle == skipHandle then
                        shouldSkip = true
                        break
                    end
                end
                
                if not shouldSkip then
                  if not prof:getGrantedTraits():contains(rule.trait) then
                        prof:addGrantedTrait(rule.trait)
                   end
                end
            end
        end
    end
end
#

Then the traits mod sends this - LockTraitFramework.AddRule(NOTANGLERGV, {CharacterProfession.FISHERMAN}) The rules trait and the occupation I don't want it applied to.

silent zealot
#

And where is it going wrong on the second application?

#

Is getProfessions not giving you all the professions?

wintry tree
#

It will apply the rules trait for either one or the other mod, whichever is first in the load order. Which is confusing because of the mod that actually works with both does the same thing and it doesn't matter what order it's loaded in

#

and actually sometimes it will look like an occupation has the rules applied but I'll click off of it and back on and it won't have it anymore.

silent zealot
#

So the goal is the framework loads, each mod calls a function in the framework, then the framework stores those requests and applies them at once?

wintry tree
#

That's the goal yes.

silent zealot
#

Easy!

#

In the framework, define a table to hold requests

#

And a addrule function that puts stuff in the table in whatever format works for you

#

Other mods load after the framework

wintry tree
#

this is what I put in the registry for the framework. it might be wrong though-

LockTraitFramework = {}
LockTraitFramework.Rules = {}

silent zealot
#

They call framework addrule, but they do so immediately; not later because of an event.

#

Then in the framework you have a ApplyRulrs that is called by an event like mainMenuEnter that processes the requests

#

That way the requests are made and stored as Lua files are loaded

wintry tree
#

I thought that's what I was doing, but honestly I struggled to do this much. So I'm doing something wrong somewhere

silent zealot
#

What is the full Lua code in one of the mods that calls the framework? (Assuming it's short enough to post)

wintry tree
#

it's litterally just this - LockTraitFramework.AddRule(NOTANGLERGV, {CharacterProfession.FISHERMAN})

silent zealot
#

Good, that will run when the Lua loads

#

So debug why applyRulesToOccupatuons does not work. Easiest way is add print statements so you can look in console.txt and confirm things are what you expect at various points in the function.

#

E.g: print out the stored rules to make sure that input is correct, print at the start of each loop, print when an action is about to be taken etc

#

Then you look at the print statements and can see what the function was actually doing

wintry tree
#

That's probably better than my method of fucking around, then loading the game and seeing if it works.

silent zealot
#

In theory you can use the built-in debugger, in practice I find print statements easier and more reliable.

silent zealot
wintry tree
#

I will insert prints then to get a closer look. I'm sorry that I always talk to you after I've taken my medicine but I really must sleep now.

#

Thank you though.

#

I will check tomorrow, or the next day. And probably be chatting up here.

#

err, later today or the next day based on the time here.

silent zealot
#

Not a problem, I'm more likely to be hanging around online this time of day.

neon saffron
silent zealot
#

Sydney Australia.

#

Also, a messed up sleep schedule.

neon saffron
#

so i'm assuming it's late evening for you

silent zealot
#

11pm right now.

civic zinc
#

I'm trying to create a mod where I create a spawn location in a hospital for B42 but get an error when trying to create a game which freezes me before the screen where you pick your spawn location. I have a spawnregion Lua in media-lua-shared and in maps in my room folder I have a spawnpoint lua with a map.info as well but im not sure what im missing or if I probably have things in the wrong locations. The region text matches the folder text I called room. I don't see anything spelled wrong or missing caps but my Lua code could be the issue as well. Any help would be appreciated.

silent zealot
#

Check console.txt to see if that gives a clue as to what it is hanging on.

civic zinc
#

I did do that but I have no clue what im reading really lol

worn cloak
#

I am looking to spawn 1 custom vehicle object in a distant place across the map. What is the best way to do it? Currently i do it in onTick and check if chunk is loaded and then spawn it but it doesn't feel like it's a good solution.

bright fog
cunning kestrel
#

Oh god for real? Much impact on the mods/Lua side if things or not sure yet ?

Also it was probably some attachment script causing issues. Slowly working through it all.

brittle swift
#

Question, is there a way to load a mod onto a dedicated server without the workshop and if so, how would that work for end-users connecting to the server? I'm trying to figure out how to be able to test a mod update without publishing the update to the workshop first to avoid rapid workshop updates for subscribers.

long cloud
#

Hello. does setting ConditionMax to more than 10 make it so the item durability becomes infinite?

red tiger
#

@dry stone I might need to copy snapshots from JavaFX to LWJGL textures haha

long cloud
# willow tulip no

then is item durability only governed by Condition Max and ChancetoLowerConditionOnein?

long cloud
#

cause when i set my Condition max to 15 and keeping the ChancetoLower value at 200, my item seems like theyre not breaking?

#

maintenance skill is at 0

willow tulip
#

Yes, that means it would take 200 strikes on average before it takes any damage

long cloud
#

ive shot like thousands of rounds through the m16 and it doesnt lose condition?

willow tulip
#

Aiming is what matters for guns.

long cloud
#

TIS has it at 200 by default

#

but condition max is at 10

willow tulip
long cloud
#

oh.........

willow tulip
#

It was working in like.. B42.13?

long cloud
#

my aiming also reset to 0 for every change i made

willow tulip
#

but I dunno since I haven't played in awhile and TIS loves to just randomly hardcode disable features.

long cloud
#

ok thanks for your help

willow tulip
#

Like.. forward acceleration since B42.11

#

try setting it to 2 or something

bronze yoke
dry stone
willow tulip
red tiger
#

I was already going that direction. I can't justify strapping WebKit itself to Java to get anything rendered correctly. It's too much.

willow tulip
#

New PZ theory: Instead of one electron, the one bullet theory. Every gun only has one bullet it recycles, Hence why hitting soft zombies damages the gun while missing and hitting.. concrete buildings doesn't...

willow tulip
dry stone
#

The zombie isn't dead until you collapse it's wave function

red tiger
#

The good news is I've made a LuaGraphics wrapper of making images-to-textures using Graphics2D

#

So I can do dynamic texture rendering and caching from Lua

#

Requires my patch but works like:

--- @module "java.awt"
--- @module "sickle"
--- @module "sickle.io"

if not sickle then return end

Events.OnMainMenuEnter.Add(function ()

    local name = "test_texture.png";
    local width, height = 512, 512;
    local lg = LuaGraphics.new(width, height);

    lg:setAntialias(true);
    lg:setColor(Colors.White);
    lg:fillRect(0, 0, width, height);
    lg:setColor(Colors.Red);
    lg:fill(Ellipse2D.Double.new(50, 50, 100, 100));
    lg:setColor(Colors.Black);
    lg:drawString("Hello, Project Zomboid!", 200, 200);

    local image = lg:getImage();
    local texture = lg:toTexture(name);

    print("Caching texture..");
    LuaGraphics.saveAs(image, name, Cache.Sickle);
end);
dry stone
#

Are you planning to make like an improved UI in the game? Or a library with better UI features

red tiger
#

Been planning it off and on for years.

#

Old screenie from 2016-2017:

dry stone
#

You mentioned webkit - will people be doing UI like html/css style?

red tiger
#

Was doing stuff in the ISUI there

red tiger
#

And yes.

dry stone
#

If you did support JS though then you have a billion dependencies people can pull in ๐Ÿ˜„

red tiger
#

I'm reading papers and W3 documentation to get a full grasp on how to model my engine.

dry stone
#

And yesterday I heard one node.js package with 100 million downloads per day got compromised.. there's that whole topic again lmao

red tiger
#

So HTML5, CSS3, and Lua

#

All local.

#

I'm FOSSing the engine and writing an adapter for my PZ patch and renderer.

dry stone
#

I do know one thing about css that I've learned very well every time I ever had to touch it

#

It's to run away screaming

red tiger
#

Nah. I embraced the void.

#

Everything is a flex

dry stone
#

But it's it absolute? Relative? So we adjust the padding? The margin? Why isn't it even showing up! Heeelp

willow tulip
#

and !important

dry stone
#

That's my css experience as a noob

red tiger
#

I'd love it for UI stuff for mods.

#

It'd be funny if PZ mods used tailwindcss and shadcn-ui

dry stone
#

Yeah people should never look down on web dev that stuff is legit super confusing and the tech under you moves insanely fast

red tiger
#

It all has reasons for being the way they are. Some of them are legacy bandaging but

dry stone
#

And it also requires some artistic knowledge a lot of the time

red tiger
#

It's mostly sensable when you read through it.

#

Most people want cliff-notes documentation for such a vast system.

#

And it's culturally-driven so that adds dimension to how to use CSS professionally.

#

I want responsive and flex designs though. :D

dry stone
#

Even AI is able to super confidently write horribly broken CSS these days. It's on par with humans (me specifically)

red tiger
#

Someone more insane than me should come along and rewrite React for PZ using it.

#

JSX + TypeScriptToLua

dry stone
#

React is something I've always been curious about but my fundamentals in that whole area are too shaky. I'm not hopeless at JavaScript anymore at least

red tiger
#

I'm a Svelte guy

#

To get 95% of CSS features wouldn't take too much time beyond layout calculations.

paper ibex
red tiger
#

I am oldhat modder.

silent zealot
dry stone
#

I used to do the monthly sub on Claude... That's why I stopped lol

silent zealot
#

I'm finding (free) claude useful, and much nicer to deal with than ChatGPT.

#

That's just text chat; I'll ask it coding questions but I'm not letting it write code in my IDE/run an agent with any power to do stuff.

#

Helpful when you jump between so many languages for work/modding that sometimes you just can't be bothered to look up the syntax of a for loop in python or other trivial stuff.

#

And it's as useful as random people on the internet when getting advice on growing chili plants from seeds or other non-critical, non-technical stuff.

cloud hawk
bright fog
#

And that one isn't exposed in this case

cloud hawk
tacit crag
#

Hey, I'm trying to make a mod to update a component of an entity using lua overrides, but the wiki doesn't have any documentation on this. Does anyone know where to get info on this, or does anyone have experience with doing this?

willow tulip
tacit crag
#

so I need to make a java mod?

willow tulip
#

yea

tacit crag
#

do soft overrides work?

#

or do i need to use java for those as well?

willow tulip
#

soft overrides?

tacit crag
#

Ive been learning from the video on the wiki

#

added timestamp

willow tulip
#

oh nm I thought you wanted to change HOW an entity updated

tacit crag
#

I want to change one of its components

willow tulip
#

Soft overrides may or may not work due to how blocks/components are handled.

tacit crag
#

The scripting for items seems to work well, but for entities its so confusing

tacit crag
willow tulip
#

Yea you can try and post the component/script your trying to change

tacit crag
#

Ok thanks! Bear with me a sec while i get it

silent zealot
#

Zomboid is... slightly janky. And some of us have spent far too long modding it, gone insane, and can now offer suggestions on where to start for most ideas.

tacit crag
#

I want to make rain collectors give untainted water.

The relevant part of entity_raincollector in scripts\generated\entities\outdoors\

{
    entity RainCollector
    {
        component FluidContainer
        {
            ContainerName = Collector,
            Capacity = 400.0,
            RainFactor = 0.4,
            InitialPercentMin = 0.0,
            InitialPercentMax = 0.0,
        }
        
        ...
    }
}```

From my understanding of looking through the decompiled game files, im 90% sure that if `FillsWithCleanWater = true`, then the water will be untainted. Therefore, I would like to add that to the `FluidContainer` components
#

I can show all the code snippets I looked through to get to this conclusion if its helpful, but im pretty confident itll do that

willow tulip
#

if all it does is the rain collector anyway

#

(name file in your mod the same name, in the same subfolders as the vanilla file and it will fully replace it)

#

99% sure soft overrides won't work, it will just try to add another FluidContainer component

tacit crag
#

Hmm ok

#

I was trying to avoid that since I dont want it to interfere with any other mods

#

I guess its a small file though so it shouldnt affect too much

#

If you think you have a way to do it with lua or soft overrides though, thatd be very nice

#

Tysm though!

long cloud
#

Maybe that explains it cause I was just running bullets through my gun and just shooting at the trees

bronze yoke
#

it's an oversight yeah, made a bit more sense when guns weren't aimed

silent zealot
silent zealot
#

Confirm it works first.

tacit crag
#

ok!

silent zealot
#

I'm not convinced that field works, as opposed to having functiosn to save/load it and parse it but nothing to actually use it.

#

media/lua/server/rainbarrel/SRainBarrelSystem.lua:

#

that always adds tainted water.

bronze yoke
#

that's not used anymore

#

the global object is the pre-rework system, rain filling is handled by the entity's fluidcontainer component

vast pier
#

Are you still able to add new dropdown boxes to character customization ?

silent zealot
#

ah... so it would be FluidContainerUpdateSystem.java

private void updateEntity(GameEntity entity, FluidContainer fluidContainer, boolean doSync) {
...
        if (ClimateManager.getInstance().getPrecipitationIntensity() > 0.0F
            && fluidContainer.getGameEntity().isOutside()
            && !fluidContainer.isMultiTileMoveable()
            && fluidContainer.canPlayerEmpty()
            && fluidContainer.getRainCatcher() > 0.0F) {
            FluidType waterType = FluidType.TaintedWater;
...
            if (fluidContainer.isFilledWithCleanWater()) {
                waterType = FluidType.Water;
            }

...which should make use of the FillsWithCleanWater property on the entity definition.

tacit crag
#

wow

#

it is magic to me how it took you 2 minutes to find what took me hours trauling through the game files to find

#

Do you know then if id be able to change this with lua or soft overrides?

silent zealot
#

It comes with experience with the codebase, and having a VSCode open with both media and decompiled java for searching.

tacit crag
#

at this point ive spent hours going through the java docs and i cant find anything that seems to work

silent zealot
#

The FillsWithCleanWater property is from the script (not each object) so... probably.

#

The issue with javadocs it it can only tell you function/parameter names and types, not what they actually do. Also it will only show public methods/fields, not all of which are lua accessible

#

Still immensly helpful for searching but you will find times when it it too limited

tacit crag
#

Im so sorry, i hate to ask, but I think ive reached my current limit looking through them, would it be at all possible for you to have a quick look to see if theres anything?

silent zealot
#

But... try making a script (with a different tfilename to vanilla) containing:

module Base
{
    entity RainCollector
    {
        component FluidContainer
        {
            FillsWithCleanWater = true,
        }
    }
}
#

But, I'm not sure that soft overrides will work within the fluid container.

#

So the next test would be

module Base
{
    entity RainCollector
    {
        component FluidContainer
        {
            ContainerName = Collector,
            Capacity = 400.0,
            RainFactor = 0.4,
            InitialPercentMin = 0.0,
            InitialPercentMax = 0.0,
            FillsWithCleanWater = true,
        }
}

and after that the entire entity... just to see if it works.

#

Otherwise... have to figur eout where the entity scripts are stored and grab the raincollector one and modify it after everything is loaded/before the game begins.

vast pier
#

bad example cuz masks, but ykwim

#

better example would be for knee pads

tacit crag
#

So, the only thing that works is overwriting the whole file, with the added component.

#

I've managed to find the path to the fillsWithCleanWater component: zombie.scripting.entity.components.fluids.FluidContainerScript
(May also be related to zombie.scripting.entity.GameEntityScript.componentScripts[1], but I'm not sure what the difference is)

#

But I cant find a lua method to edit this at all

#

Thanks sm for your help though! If anyone else had any idea how to do this it would be much appreciated

dry stone
#

Getting closer to a full database of items for my usable computers mod. Today I added a range of SCSI hard drives, controller cards for them, some MCA cards, a pretty decent set of 486 motherboards and CPUs. Up to 155 computer parts in my mod now

#

for items, all that's left are early pentiums and probably tons of "oh that's wrong" and fixing.

vast pier
#

Okay but is there any noticable difference between said motherboards and cpus, or is it just different names

#

because 500 identical items sounds kinda,,,,

dry stone
#

DOOM runs like crap on an old 386, but this new 486DX 66Mhz I put together runs it like a dream

#

it actually matches classic benchmarks

vast pier
#

I think I misunderstood your message

dry stone
#

You basically build a computer from parts you find.. and better computers increase the emulation speed and feature set

vast pier
#

155 different parts still seems a bit much?
Are the differences between them important in game ?

dry stone
#

like you can't play a VGA game if you have an old CGA monitor

vast pier
#

and these items are loaded per computer in game ?

dry stone
#

Thing is, they're mostly real parts and you put them together more/less the same as you would in reality back in 1993... It IS a bit complex, but it's also kinda educational. I'll make a screenshot

#

Think of it like the vehicle UI .. but for computers

vast pier
#

I just worry about how many items will be generated in the game data if you walk into an office skyscraper

dry stone
#

The plan is to make loose parts pretty rare. When you first use or interact with a computer, it'll generate a randomized machine appropriate to where it's found

#

that randomized machine exists within the mod data of the furniture item

#

nothing becomes actual items unless you start uninstalling parts

#

you also don't HAVE to build your own. You can just find a good computer, carry it back to your base

vast pier
dry stone
#

Eh, are you remaking britas or something?

#

because if so you're my new best friend.

vast pier
#

haha no no

dry stone
#

friendship ended ๐Ÿ™

#

but yeah haha this kinda IS a britas level computer mod...

#

I didn't want to just make it kind of a toy mod, I wanted something to give actual goals and things to look for and collect so you have more to do in game

vast pier
dry stone
#

And the collection.. Computer parts and software. There's 100s of old games I can distribute with the mod

vast pier
#

Also includes in real time mag recognition and animated firing cycle(s)

dry stone
#

...what you're making looks more terrifying than britas...

#

friendship reinstated lmao

vast pier
#

also includes melee attachments

dry stone
#

Yeah, I'd install that.

vast pier
#

It's technically released right now, but it has some issues in multiplayer and I haven't tested it on 42.16

dry stone
#

I do have my mod working completely (afaik, might have bugs somewhere) in MP...

#

and it was kind of a total nightmare.

vast pier
#

Here's a video demonstrating the cube mag variant.
It holds 35 rounds, and has to be racked every 5 rounds.
When the mag is empty, the next time it's fired will cause the magazine to eject

dry stone
#

was already watching that haha

#

how do you have so much ammo? are you reloading clips in there?

#

If I may suggest, you need some kind of ammo counter on screen

vast pier
#

It's a cube mag based off of a prototype

#

It's made of several smaller mags essentially.
The rack action is you chambering the next magazine into place

dry stone
#

that's a bit crazy with a huge attention to detail

#

though I think I can understand.. you can see I'm kinda the same

vast pier
#

You don't make a gun with 1 mil+ variations without paying attention to the details

#

Like I said though, the mod should be 100% functioning as intended in singleplayer, but due to how I have it checking and setting stats in real time it causes desync in multiplayer

#

It's functionally 6 guns smushed into 1

dry stone
#

Do you handle weapon condition like per-part?

vast pier
#

Can be
bolt/semi
and
single shot/magfed

vast pier
dry stone
#

Like 95% of my playtime was in B41 so I'm less familiar with how weapon condition works now

#

I kinda stepped away from zomboid thinking B42 stable any day now.. years ago

vast pier
# vast pier

This chopper attachment can be used as both a spear and axe

#

I'm very proud of the work I've done on the mod, but I likely won't add anything new until I make my metallurgy mod

#

I want to add in a bunch of alloys, and melee weapon materials

#

I've even toyed a bit with the idea of metal percents in a weapon changing the stats through modData

#

Meaning ratios are determined by the player and are important to the integrity of the item

#

I've got a lot of plans and ideas that are primarily held back by the fact I'm doing all of this on a prebuilt dell desktop from 2014 with an integrated graphics card

dry stone
#

One thing I think PZ devs need to realize about metal, and how society will revert to medeival times... Even if it did, there's metal lying everywhere all over the planet - already mined, processed, and there for the taking.

vast pier
#

it will be used in many ways, sure.
But most survivors aren't going to understand how to effectively run a forge, or what is required to actually smelt steel

dry stone
#

I'm just saying... The entire idea of mining is kinda.. no, that would never happen

vast pier
#

well that depends on what is being mined, and where it is geographically

#

some stuff like limestone is used for a lot of things anywhere from glue, to clothes, to baking soda

#

Not to mention that raw materials will have good use, and would likely be traded through caravans

#

the manmade stuff will degrade over time, the raw materials will be in the same condition as they were before the apocalypse

dry stone
#

sure, but I think the thing people miss is that when the world ends, the world has resources to support ~5.5 billion people on earth in 1993. Now there's less than a million, and the leftovers are all just sitting there...

#

some of it will decompose, but most won't. There's just no using it all

vast pier
#

I theorize that it would more than likely cause a second bronze age, mixed with a new iron age

#

If you're not already versed in smithing, it would need to be learned through context and decaying literature

dry stone
#

I think it depends, if you're dead set on living as far away from society/zombies as possible, then things get a good bit more like ancient history

vast pier
#

If it's not properly maintained in libraries or through word of mouth, it will decay and be lost to time

dry stone
#

but if you're anywhere near old civilization, you'll have enough steel for a lifetime

vast pier
#

Sure but how do you work that steel?

#

What tools do you need?
What techniques are used?
Do you need other materials to work it easier?

#

What about the grade of steel?
Not all steel is equal

dry stone
#

it does get harder for sure. most modern forges you wouldn't be able to power

#

so I do think blacksmithing would kinda make a comeback

vast pier
#

You could certainly cut it up and shape it a bit, but that's what the welding skill represents

dry stone
#

and the other thing about industrial equipment is you wouldn't be able to maintain it

vast pier
#

I think there would be 100 steel weld-smiths for every steel forge smith

#

It would become a sought after technique, and knowing how to work it could even go as far as putting you into slavery

#

This was also present in medeival times.
Experienced smiths would become indentured servants to kings in time of war.

dry stone
#

well, it depends if you have access to a vast amount of propane. I'm sure there's some spot on this planet you could point at and say some astronomical amount stored there, but this stuff gets shipped long distances

vast pier
#

true

dry stone
#

there's also electric welders, but that's another issue

#

see, one thing zomboid does NOT model is gasoline

#

gas goes bad

#

after a couple years, basically all gas on earth becomes unusable

vast pier
#

I mean they do more than they did before.
Gas now evaporates in open containers

dry stone
#

you could, through some complex processes, fix the gas up to make it work again.. but after about 5 years it's too far gone even for that.

#

even stored properly, gasoline degrades... it has a shelf life

vast pier
#

Well without capitalism in the way, solar energy would thrive

dry stone
#

I do love the solar mod and all but.. solar tech was awful in 1993 heh.

vast pier
#

electricity would possibly be more accessible than it is now

dry stone
#

now you COULD get wind and hydroelectric working

dry stone
#

you might also be able to get geothermal going if you find the right spot

#

like an already-dug out shaft for it

vast pier
#

When you don't have to pay anything and can just break into department stores, a lot of stuff suddenly becomes a lot easier lmao

dry stone
#

That's another big one why the world would never fully revert.. because somewhere there's a guy who survived and has engineering skills. people aren't going to let that knowledge go

vast pier
#

I myself would have fuck-all idea how to do any of this though

vast pier
#

History very much shows that the more that survival is dire in day to day life, the more slavery that occurs

dry stone
#

even if they did the knowledge will survive in records. most books would eventually wither but I'm sure there's plenty of info stored in more durable ways people could find for centuries

vast pier
#

I could see zombies being enslaved too, as mules.
TWD touched on this a bit

#

There would be a lot of manual labor being thrown onto zombies

dry stone
#

well, zombies kind of don't really make any sense either

#

even if you accept the idea that a virus can keep a corpse moving

vast pier
#

Depends on if the virus kills you or just controls you

dry stone
#

Basically zombies defy conservation of energy and in pretty much all media they ignore natural decay

#

so even if the virus is real and works.. no way they'd still be moving after like a month at most.

silent zealot
#

It's very hard to discuss how zombies work when they are 100% made up and non-sensical.

dry stone
#

but I ignore that because it's a zombie game and I like it lol

vast pier
#

Assuming zombies need to eat, maintaining a zombie slave workforce with human meat that you harvest from

  1. Other zombies
  2. Insubordinates
  3. General casualties
    Would not be that difficult
dry stone
#

but yeah, if you were going to make electricity generation? Zombie in a hamster wheel.

dry stone
#

not even joking that's a perpetual motion machine

vast pier
dry stone
#

if you accept zombies, you accept zombies as hamsters to power my new in-game gaming rig.

silent zealot
#

Once you have rotational power you can convert it to other useful forms.

vast pier
#

I think using them for electrical work would be a waste of their potential for packmuling and mechanical work like a millstone

#

A well kept zombie is an extra backpack or more

silent zealot
dry stone
#

keep in mind too, even if gasoline has a shelf life.. coal doesn't. and people WOULD reclaim coal resources. you'd probably find near endless amounts at any power plant

#

and you can 100% use coal to make a steam engine - and that can also function as a generator or as an engine for a boat or train

silent zealot
vast pier
silent zealot
#

No arms or jaw == they follow passively and conceal you from other walkers HOW IS THAT SOMETHING YOU FORGET!!!

vast pier
#

Anyway, check out this misc survival crafting mod I'm making lol

dry stone
#

I remember that scene from the show. AND from the comic book.

silent zealot
#

You didn't make glue a fluid?

#

So we can mix it with whiskey?

vast pier
vast pier
dry stone
#

if I were one of those zombies, I would head-butt the crap out of someone.

silent zealot
vast pier
silent zealot
#

I'd make it like Dwarf fortress - when you dismember a zombie Necromancers just animate the seperated parts and soon it's a nightmare of random mobile bodyparts.

#

Invisible Necromancer == so damn hard to deal with

vast pier
dry stone
#

dwarf fortress is a PITA about that stuff though lol

#

toady went too far

silent zealot
#

And what are teh optic nerves connected to? Not a functional brain.

vast pier
#

Yeah they don't see with their eyes, except when they look at you I guess

silent zealot
#

It's all back to "Do what you want, it's made up magic... just be consistent and have your characters react in an sensible way"

#

...like undead hamster wheel powerplants.

dry stone
#

well, no matter how much you want to, it's impossible to make zombies make sense.

vast pier
#

I understand not being able to differentiate through sight, but surely they could still see that you exist

silent zealot
vast pier
#

TWD (Tv show at least) does not give a fuk about decay rates so I have no reason to believe those zombies don't have functional eyeballs

silent zealot
#

Shamble around, randomly violent, no self-preservation

vast pier
#

I am legend vampires are neat

dry stone
#

yeah they'd all be skeletonized within a year

vast pier
#

in the book they become their own race of human technically

dry stone
#

nature don't care if you're a zombie, bacterias gotta eat

silent zealot
#

Zomboid would not be as popular if the zombies were replaced with something more accurate like fentanyl addicts.

vast pier
#

idk man, a game where you fight off a horde of fent addicts sounds funny asf

willow tulip
#

replace zombies with door to door salesmen

vast pier
#

Also something that y'all wilderness survivalists might actually be interested in.
A cooking pot that doesn't require smithing

vast pier
#

Currently only supports stew and soup evolved recipes, but later on I will (probably) add the rest of the pot food variants like pasta and rice

silent zealot
#

Can you make clay bowls as well? I remember addinga recipe to carve bowls once because I was having zero luck finding any, but that was a long time ago and hopefyully bowls are craftable now.

vast pier
#

just lazy atm and wanna get the mod in a stable release functionality

vast pier
#

It's a little strange to me that the items that use sand in their clay mixes, don't use water

silent zealot
vast pier
#

From what I can tell, sand is used in pottery recipes where an object is supposed to sustain high temperatures.
Only affecting the Crucibles and ...Teacups ?

willow tulip
#

You don't take your tea at a brisk 2100f?

vast pier
silent zealot
#

If your tea isn't 400ยฐ it's not real tea - Tea Drinkers in Kentucky

silent zealot
vast pier
vast pier
silent zealot
#

I thought itt was vanilla, it was something I did on the way to makingg a full blacksmithing setup

#

clay cement

vast pier
#

ah

silent zealot
#

I knew it was somewhere!

vast pier
#

how do you even get grass cuttings, and why does it give more hunger than bugs

silent zealot
#

You can use sand or grass for it, but if you're building a furnace I'd suggest not uisng grass...

#

hahahaha

#

right click ground -> gardening -> remove grass

vast pier
silent zealot
#

I think only animals can eat it

#

and... it still makes no sense.

vast pier
#

wait why, I can definitely go out and eat a handful of grass

silent zealot
#

You're not going to keep a cow fed by hand-cutting your lawn with a knife for grass clippings

vast pier
#

hell I can go pick onion grass and make a meal with it

#

it's everywhere

silent zealot
vast pier
#

(if you pick onion grass off public property and eat it then you're a psycho who isn't afraid of licking the bottoms of people's shoes)

vast pier
willow tulip
#

(TBH, puking does usally settle my stomach so it would work that way..)

dull moss
silent zealot
#

I wonder how much crossover there is with Rimworld players & Zomboid players.

#

On one hand, such very different games.

#

On the other hand, for me they fill a similar gaming niche

dull moss
#

And which one is that?

vast pier
#

I never learned enough of rimworld modding to make it lol

silent zealot
#

Rimworld is excellent for modding; there is a clear design pattern of putting functionality into modular components that are configured via XML instead of just hard-coding everything in C#, proper XML inheritance and XPATH manipulation instead of zero inheritance and a half-functional "soft override" system.

#

C# so it's easy to see the game's code and add/modify it via harmony, and an art style that means adding new things just needs simple 2D art

#

Mental Break: compulsive Cleaning would have been a fun mod!

bronze yoke
#

xpath is wonderful

#

fun fact: i am genuinely not sure that 'soft overrides' are an intended feature

#

the way that feature is set up in the code makes it look very accidental

silent zealot
#

lol

#

makes sense, since there is zero use for it in vanilla

#

And TIS probably didn't put it in for modders.

bronze yoke
#

script types can be flagged to either add or reset when encountering a duplicate -- most of them (such as items, recipes, etc) *are* flagged to reset, but their reset methods aren't actually implemented and do nothing, so nothing actually gets reset

#

the b41 behaviour of replacing the original definition entirely is probably what was intended

silent zealot
#

Accidental huge improvement. ๐Ÿ˜›

#

I wish more bugs were like that!

vast pier
#

https://steamcommunity.com/sharedfiles/filedetails/?id=3697629742

Adds in various items and recipes meant to improve low loot survival and wilderness orientated gameplay.

Adds in:
Renewable school glue
Renewable wood glue
Clay/Ceramic cooking pot
Duck Tape (Not to be confused with Duct Tape)
Four handmade umbrellas

Future inclusions may contain:
Renewable baking soda
Renewable sugar ?
Renewable salt ?

Workshop ID: 3697629742
Mod ID: SaltysSurvivalAdditions```
bright fog
bright fog
# vast pier

Fun fact, you can use the mod preview both for poster and icon

silent zealot
#

You know how XML is structured?

paper ibex
# vast pier

Do you work with TINT textures to create multi-color item variants from a single grayscale texture? ๐Ÿ˜

silent zealot
#

Imagine a simple set of rules to find things and add/remove/change them.

#

A proper standard, not a made-up-by-a-game-dev-and-half-done standard.

#

Very simple example:

<?xml version="1.0" encoding="utf-8" ?>
<Patch>
    <Operation Class="PatchOperationSequence">
      <operations>
        <li Class="PatchOperationReplace">
          <xpath>Defs/ThingDef[defName="ShipLandingBeacon"]/displayNumbersBetweenSameDefDistRange</xpath>
          <value>
              <displayNumbersBetweenSameDefDistRange>5~25</displayNumbersBetweenSameDefDistRange>
          </value>
        </li>
        <li Class="PatchOperationReplace">
          <xpath>Defs/ThingDef[defName="ShipLandingBeacon"]/comps/li[@Class="CompProperties_ShipLandingBeacon"]/edgeLengthRange</xpath>
          <value>
              <edgeLengthRange>5~25</edgeLengthRange>
          </value>
        </li>

      </operations>
   </Operation>
</Patch>
paper ibex
#

im not family with xml but xpath also popular in web automation test

silent zealot
#

The matching can include wildcards and conditionas, you can have conditional patches... it's all very cool and very well documented

#
<?xml version="1.0" encoding="utf-8" ?>
<Patch>
    <Operation Class="PatchOperationRemove">
              <xpath>Defs/ThingDef[
                defName = "Darktorch" or
                defName = "DarktorchFungus"
                ]/comps/li[@Class="CompProperties_Refuelable"]
              </xpath>
    </Operation>
</Patch>
#

That removes any components of type CompProperties_Refuelable from DarkTorch and DarkTorch fungus.

#

Comp_Properties are where things get shared functionality like "this is a refuealable item" as opposed to IsoFirePlace being hardcoded to be a special refualable item and nothing else can use that functionality to make a generator with fuel, a turret with ammo, etc.

#

Like B42's FluidContainer.

#

But... consistant.

red tiger
#

I forgot that XML schemas exists.

silent zealot
#

And inheritance! I miss that so much in Zomboid, it's insane how cumbersome the item definitions are because of it.

bright fog
#

I only know PZ's xml

willow tulip
#

though not all values are valid -_-

buoyant violet
#

Ammo box rating

silent zealot
shut robin
#

I love it

vast pier
paper ibex
#

Ive spent weeks on this. Learn from what TIS has done with Rubberducky.

buoyant violet
#

wonder what causes to turn the inside side of the cardboard to turn green when I place the box in the world

shut robin
#

Usually it's just a little mistake at spawning rate

#

How I remember from b41 coding

#

Here it is suppose to be a little same

buoyant violet
#

never heard of any issue like that

#

its affecting just one color in specific, if it was afecting the whole image, the whole model would look bork?

shut robin
buoyant violet
#

dawg this is bs lol. my gf has photoshop, and I was like, let me test the ai thing, ask him to give the colors some material like an AR and did this

not gonna use it but got surprised by the result

(still looks mid compared to a real artist)

shut robin
#

@buoyant violet Btw what are those lines ?

buoyant violet
shut robin
#

Hmmmm...by the way Marz are you gonna do only guns or something else ?

buoyant violet
shut robin
silent zealot
#

I wonder if Zomboid can't handle that... it looks a bit like rendering two planes on top of each other and z-buffering being being weird.

#

Maybe the "render 3D image -> low res spite in texture atlas" rendering is not working properly

silent zealot
#

Or did it actually have the 3D model to look at and figure out the textureing for?

winter bolt
#

you have to make the boxes have actual thickness

buoyant violet
#

Thats it then

#

It is a single face

buoyant violet
silent zealot
#

Interesting that it managed to get some of the edges "edge like" though maybe that's just a bit of luck with how it unwrapped

#

Then there is this:

#

Good old AI, making shit up

bronze yoke
#

so the back face is fighting with the front face

#

you can see thin flat objects fight with the ground too

buoyant violet
silent zealot
#

Id assume there are AI models that can generate and texture 3D models

#

If not, they will be under development.

#

So studios churning out slop can churn out more slop for less effort., but also (hopefully) so good 3D artists have new tools

vast pier
quiet rain
#

Not sure if this fits here 100%, but I imagine some of you might enjoy it. Had a little April Fools mod on our server where you'd have to sleep to regenerate an energy bar ala Runescape Classic, except with more, uh, interesting captchas.

main pasture
#

Any ideas why getText would work in SP but fail in MP and print the key instead of the translation?
I'm spawning items and setting their name in OnCreate with a static part from IG_UI.json using getText and a randomized part. All the other translations from the same file work fine in other parts of the game, like the context menu (B42.15 & .16)

hollow oriole
#

Does anybody know what exactly the WithoutDrainable parameter does? the gas mask have this parameter for example aiming to the id of another item called "Hat_GasMask_nofilter", however, when removing the filter from the gas mask the original gas mask remains as "Hat_GasMask" instead of "Hat_GasMask_nofilter".

#

I've checked the documentation, however, it doesnt exist yet

main pasture
#

getAlternateModelName only tests gas mask, respirator and SCBA specifics and returns alternate model name for others, so WithoutDrainable seems useless for anything else

hollow oriole
# main pasture It seems to be only used for the gas mask, respirator and SCBA for getting the c...

Oh i see, thanks a lot for the clarification! Im working of adding custom gas masks and im trying to figure out a lua script to be able to modify them only when the filter is removed. Regarding of why your translations arent working, Maybe either the "OnCreate" or "getText" part arent outputing values correctly? I had some similar issues with translations before, however, at my end it was due to a small typo

#

I still need to test my translations from the mod im making in MP, maybe i'll stumble with a similiar issue

main pasture
#

The translation issue is weird, because it works just fine in singleplayer and only the very specific case breaks in multiplayer. Not really sure what could cause that

willow tulip
#

function MakeImprovisedGasMaskOnCreate(craftRecipeData, character) local mask = craftRecipeData:getAllCreatedItems(); mask:get(0):setNoFilter(); end

#

is the onCreate function I made for properly setting created gas masks to the 'no filter' state\

#

Dunno if it will work for modded gas masks

noble token
#

Hello someone can help me please, i develop a mod who you can load alternative ammo for your gun, but the new ammo don't want to load in the magazine, here is my lua code for the reload part :

exotic patrol
#

Has anyone tried making a more unified gun base for PZ to help modded guns and attachments less.. isolated? Like more distinct tags for guns to help the process of using multiple gun mods and making them interact with each other, like in gmod

#

Like I know I could just go into the files and edit the mod txt files myself but that means Iโ€™d have to manually update the files every time one of the mods updates, and if I wanted to distribute these fixes Iโ€™d have to make like, 50 individual mods to allow a bunch of different mods to work together

hollow oriole
# willow tulip Dunno if it will work for modded gas masks

They do work normally from what i tested, the only issue im having atm is when trying to use the mask as an ingredient in recipes, like i want the masks that im working on updating to be able to be attached to some custom hoods, the thing is that when executing the recipe, instead of the hoodless mask being removed and replaced, it creates a new one, with new filter with random condition. I've tried many ways to attack this problem but so far no luck

willow tulip
#

Use the mode:destroy tag on the ingredient for the recipe?

hollow oriole
willow tulip
silent zealot
topaz pendant
#

hmm thee temptation to get into zomboid modding but i dunno where to start

mellow frigate
willow tulip
silent zealot
#

...which probably means if a multiplayer server has players with different language settings the book titles will be wrong for some of them.

#

Also, it's not like making it available would take up a lot of resources.

mellow frigate
silent zealot
#

In that case I'll agree.

#

Which would be helpful for multi-language servers

willow tulip
silent zealot
#

The title includes dates for a lot of things, don't would need a little bit of UI adjusting to allow multiple translation keys
I.e. one for main name, then the optional month, year is just a number but would need storing...

#

Definitely possible without huge drama.

willow tulip
#

yea, would need to add like a subname that is passed to getText when it translates the item name

#

would be ignored if the item name doesn't have a %1 or whatever in its string

bright fog
main pasture
#

Is there a way to do it the right way and have the translation key part of the custom name localized client side? Does any item work like that in vanilla

main pasture
#

If I put the unique part only in the tooltip, it wouldn't show in the vehicle menu. If I leave the localized part out it would be kind of confusing

willow tulip
#

I dunno if 'custom name' supports localization at all, im almost sure its all locked to english

main pasture
#

Well I quess it's just forced to english server side then. Better than the other options

willow tulip
#

Lisence plate mod, but didn't add several million unique icons, sad /s

#

j/k of course. cool idea

main pasture
#

Guess I'll have to generate them then. Just a couple of gigs worth of images

#

But yeah I would have liked to do procedural icons, but no way to do it only in lua

willow tulip
#

40gigs for 10 million 32x32 raw icons. Less in PNG of course.

#

but 10 mil is prob an underestimate.

#

stupid letters.

willow tulip
#

hes adding new rendering apis and stuff. especially render to texture

main pasture
#

7 slots with 37 supported symbols, so 95 mil? Plus the different backgrounds and sizes multiply that

willow tulip
#

not saying you should for such a minor detail but... you could.

#

Realistically jab's render to texture stuff would likely work

#

(without generatinge very combo)

#

and you could prob detect for it at runtime to make it optional

main pasture
#

That would be interesting. If it could be used for worldItem textures, it would be even better to have them actually show the correct text

willow tulip
#

I mean hes patching the java soo

#

show a good enough use case, maybe submit source for the changes you want... And bingo bango.

bright fog
main pasture
willow tulip
#

Could override the rightclick menu with a hook?

main pasture
willow tulip
#

to display custom text when its a lisence plate.. since no other mod adds lisence plates

willow tulip
#

But IIRC hes already commited to render-to-texture stuff

#

procedural lisence plates seems like a dead ringer for an application

#

And you could likely detect if his mod is installed and only have custom plates if it is, ie soft dependency not a hard requirement

main pasture
willow tulip
#

Yea there should be some lua callback you can override IIRC

main pasture
#

CapturingISVehicleMechanics:doMenuTooltip(part, option, lua, name) and updating the name to include data from the part should do it

#

BTW any suggestions how I should handle vanity plates? Come up with some word list or just randomize letters and numbers? Normal plates are limited to 3 letters followed by 2-4 numbers

bright fog
main pasture
# bright fog Sure, but why not use tooltips ?

You can't see the tooltips in the mechanics menu. Or at least I couldn't figure out how to. The normal overlay is replaced with the one showing install requirements (also there is no right click context menu)

#

But the combination of using tooltips in the inventory and modifying the mechanics menu to show it in the name (or the mechanics tooltip) should work

bright fog
#

The name of the option*

main pasture
#

As a plus it can also be used limit what can be installed: blocks installing two different plates to a single vehicle

red tiger
#

@main pasture I am wrapping the Graphics2D library and have methods to save them and convert them to PZ's Textures.

main pasture
red tiger
#

But general use yes

main pasture
#

I wanted to try creating dynamic in-world text with only lua because haven't seen it done, like signs. So i tried to dynamically create textures a while back and wasn't able to, so I turned to shaders. Then wasn't able to add uniforms, so the only shader that fit the requirements without java changes was vehicle, so license plates it is

red tiger
#

Fonts you still can but it's annoying as you'll need to compile them.

#

I'm adding both into my community patch.

#

I'm going to write both a texture renderer for dynamic, vector fonts like TTF for legacy UI use and then I'm going to also write a renderer for the modern font stuff with CSS properties in my UI stuff.

#

The big issue is that UIFont is an enum and only points to preloaded AngelCodeFont objects.

#

The ISUI API only uses those enums. You can calculate the same stuff it does but you'll need to provide your own boilerplate OR override API functions in ISUIElement to make something even nice to use for custom fonts.

main pasture
#

I see. Are you planning only UI with this, or also for in-world rendering? What do you mean with the texture wall objects?

red tiger
#

I'd like to add an ISOObject that allows me to project textures onto walls and isometric world objects.

#

Thinking guild / faction flags.

#

Like imagine drawing flags and then using them on a multiplayer server's base.

#

You could also draw and fill round arcs so rounded UI corners for ISUI would be fantasic.

#

I did something like that but using textures I drew myself.

main pasture
#

Yeah. Even just text would be very useful, but custom images would bring a lot of possibilities

red tiger
#

Here's my first test code for the API

#
--- @module "java.awt"
--- @module "sickle"
--- @module "sickle.io"

if not sickle then return end

Events.OnMainMenuEnter.Add(function ()

    local name = "test_texture.png";
    local width, height = 512, 512;
    local lg = LuaGraphics.new(width, height);

    lg:setAntialias(true);
    lg:setColor(Colors.White);
    lg:fillRect(0, 0, width, height);
    lg:setColor(Colors.Red);
    lg:fill(Ellipse2D.Double.new(50, 50, 100, 100));
    lg:setColor(Colors.Black);
    lg:drawString("Hello, Project Zomboid!", 200, 200);

    local image = lg:getImage();
    local texture = lg:toTexture(name);

    print("Caching texture..");
    LuaGraphics.saveAs(image, name, Cache.Sickle);
end);
#

That uses the java.awt library to draw and then I'm converting that to a texture there but not using it anywhere.

#

What I'd also like to add is a base64 serialization utility for sending textures from server to client. ThinkingSun

#

!!! Note to those who don't know: This is a Java patch. !!!

#

@main pasture If you're interested in the project it's called "Sickle" and is being developed on my discord. I can DM you the server if you want.

#

I'm writing a HTML rendering emulation alongside it and plan to place it in when its ready so I can do my dream UI mod for the game.

main pasture
stable yew
#

I got to announce something widely and put steam off...

PZK mods further developing is discontinued until one particular issue will be resolved.
For few months all we have constant unexpected changes, rewriting modding API, in one word: modders & players hell - that's not main issue. Main reason is one particular issue that crossed line for further PZ gaming for me, friends and whole servers we hosted. At first we were thinking that was a bug, waiting months to be fixed, but it wasn't bug, it was in changelog in B42.13. Change unexpected, without any explanation and that make totally no any sense.

I created thread on TIS forum: https://theindiestone.com/forums/index.php?/topic/93467-building-obstructing-view-before-player-eyes/
You can post there and help resolve that issue.

Until resolving or option to revert for those changes we don't have interest in further PZ gaming, we're not masochists.

https://steamcommunity.com/sharedfiles/filedetails/?id=3217685049
Eventual hotfixes between PZ versions can be done by PZK community or solutions delivered to them. Mods are on lockdown due to licencing laws and cannot be repacked or reposted.

The Indie Stone Forums

Since build 42.13, the behavior of buildings has changed, obstructing the view of the surroundings. I, along with many other players who have spent thousands of hours in PZ, are frustrated by this and feel no desire to continue playing ending with constant rage quits since this update. Especially...

finite scroll
#

ah christ how have they changed trait/occupation names now

#

all my shit's back to fallbacks

#

oh, of course, they changed UI_EN.txt to UI.json

#

glad to see we're getting the real, hard-hitting changes

bright fog
finite scroll
#

did they change getText() too? I switched my stuff over to JSON and it still doesn't seem to be finding the values

bronze yoke
#

they did not change getText

finite scroll
#

only difference i see between my file's format and base game's is that i'm using tabulators instead of spaces but i doubt that would cause issues

bronze yoke
#

shouldn't no

#

closing , is technically invalid json but i'm pretty sure the game accepts it anyway

finite scroll
#

i've tried w/o it

#

no difference

queen oasis
#

for better or worse, I shove my json's into common\media\lua\shared\Translate\EN
figured if it needs it, it knows where to find it

finite scroll
#

oh my god i'm SO STUPID

#

it's been so long since i've touched project zomboid modding ๐Ÿ˜ญ

#

i was editing the B41 directory ๐Ÿ˜ญ ๐Ÿ˜ญ

#

that'll do it

queen oasis
#

not stupid. I have a mod with 3 B42 versions and half the time I'm editing the wrong file

finite scroll
#

so many API changes that every patch may as well be a whole different game

wet sandal
#

Just received a 52k line PR for inventory tetris on github...
So anyways, that repo's private now.

bronze yoke
#

๐Ÿ˜ญ ai?

#

welcome to the future

wet sandal
#

No clue. The mod got versioned a few times in the PR too, so I couldn't even see changes in the diff as every file was a full addition.

dry stone
#

At that point, it's like replace your mod with mine

bright fog
#

Basically lol

dry stone
#

Oh, but also go through all of my code and make sure it's on the level. Plzthxbai?

vivid imp
#

Ai has been a blight on open source projects

echo forum
#

Do server-side java patches not apply to clients anymore?

bronze yoke
#

they have never done that

echo forum
#

How come the old no mo' culling mod had it so server patches completely remove culling?

bronze yoke
#

in b41, more of the game logic was serversided, so you could do more with just a server patch

echo forum
#

Right thats probably whats happening then

bronze yoke
#

i would be surprised if you can't do that with a server patch only though, the client shouldn't be able to delete zombies

#

but i don't know the full details of how that mod was implemented

echo forum
#

I'm not exactly sure how it's happening either but it wasn't an issue before and I realized it was an issue now after some testing

#

The dedicated server with patches present works with a client that has the culling patches present too, but starts culling if the client doesn't have it

#

Apparently clients do zombie counting themselves and request deletion from the server, I don't know how it worked before when I didn't have the patches present but in retrospect it might've been a mishap.

dull moss
#

I used to do this check to detect NPCs from all the NPC mods before:

---Function responsible for managing Bloodlust meter
---@param zombie IsoZombie
local function bloodlustKillETW(zombie)
    local player = getPlayer()
    if player:isLocalPlayer() == false then -- checks if it's NPC doing stuff
        logETW("ETW Logger | bloodlustKillETW(): kill by NPC")

And it worked fine cuz logic was client-side, so it worked both SP and MP. But now I am moving logic to server side, is there a way to check if it's a player character doing something? Cuz something tells me running isLocalPlayer() on server side not gonna give me anything meaningful KekW

#

Also follow-up question, how does one figure if Event is client-side, server-side or universal?
I know umbrella has docs/annotations but not sure how up-to-date those are

#

And if they are up-to-date, how exactly something like OnZombieDead works within the scope of client and server?

#

My assumption would be that on server it triggers for every zombie dying and on client only for those loaded by the game for current player?

bronze yoke
dull moss
#

Any insight regarding other questions? flushge

bronze yoke
dull moss
#

So NPCs mods in MP is gonna be a pain DESPAIR

#

Need to figure new way to figure if it's player character tired

bronze yoke
#

i wonder what getOnlineID returns for an npc?

#

that usually corresponds to the player's client, so i don't know what the ids would be for players that exist outside of that system

dull moss
#

Eh, I'll bother with it when first incopatabiltiy error with log will show up KekW

swift stream
#

it is possible to make sheets works on wire fence?

bright fog
#

Most likely not no

#

Pretty sure that'd require a Java mod, or some weird stuff to manage to do it

#

Like adding an invisible wall to hide or some shit, idk. The worst would be to visually make the sheets appear on the fences

dull moss
#

Did they change how lua error logs are printed?

#

I swear its changed

bright fog
#

I don't think so ?

#

Haven't heard anything about that at least

dull moss
#
-----------------------------------------
STACK TRACE
-----------------------------------------
    Lua((MOD:Evolving Traits World (ETW))).ETWModOptions.lua(ETWModOptions.lua:3)
    Lua((MOD:Evolving Traits World (ETW))).ETW_ByHealth.lua(ETW_ByHealth.lua:2)
ERROR: General      f:0, t:1775253405011, st:20,735,801> Lua((MOD:Evolving Traits World (ETW))).ETWModOptions.lua> Exception thrown
#

it now prints the mod name

#

and format changed abit

bright fog
#

eh

#

That's new yea

#

What's the whole error ?

dull moss
#

nah there's stack trace as usual after

#

but now it includes lua hierarchy of errors

bright fog
#

Always did

dull moss
#

yea, but not in java stacktrce

bright fog
#

Ah if it's a Java stacktrace no there wasn't anything like that no

dull moss
#

yep

#

thats new

bright fog
#

Very interesting

bronze yoke
#

much cleaner

#

there was an issue where lua -> java -> lua calls were basically untraceable, this could be trying to address that

#

or it's just because it looks better ๐Ÿ˜…

willow tulip
#

Neat, I guess its a dump of the current LUA stack... Backed up by the fact that it ends with a new error log: KahluaThread.flushErrorMessage > Dumping Lua stack trace

bronze yoke
#

that part's not new actually ๐Ÿ˜…

dull moss
#

hm, guess I never noticed it

bronze yoke
#

it's just that they seem to be printing the lua stack trace inside the java stack trace now, which is a lot easier to read

dull moss
#

I think its new

bronze yoke
#

they were separate before

dull moss
#

ah

#

well ye

#

they did have chain of lua calls before but it was outside of java

#

which is what i was saying

hexed arrow
#

quick question how can I test a lua mod locally without uploading it im on 42.16.1, it doesnt seem to show up anywhere

bronze yoke
#

if it doesn't show up at all your mod.info is in the wrong place

hexed arrow
#

is this the wrong location?

#

sorry for it being in German lol

bronze yoke
#

in build 42 you need to put everything in this folder into a 42 or common folder

#

so mods/KillZombies/42/mod.info

hexed arrow
#

thanks a lot, its been a long time since I modded

#

very helpful

#

it worked โค๏ธ

dry stone
#

Someone might know this.. I'm making my computer mod, and i see the computer furniture item is named: appliances_com_01_72, appliances_com_01_73, appliances_com_01_74, appliances_com_01_75 and it depends which direction it's facing

#

that's all fine.. but just now, I stumbled upon a appliances_com_01_77 .. it's a computer with its screen turned on. I can't pick it up, though.

#

if I try finding it on google, nothing even comes up

#

Ideally, I'd try to make it so you can move this thing around.. or even use it as a "screen turned on" effect when you use the computer

#

if it matters, the new one is in the basement of the muldraugh PD, which was just updated with B42, so its probably a brand new tile

willow tulip
#

@dull moss lol there was one update where in my java mod I had to camel case the hell outta everything in it cause TIS recased a TON of code internally

dull moss
#

good, as long as its moving into standartizing everything

#

crazy that they didn't thing of using linter and formatter

#

while devving this for 10 years

dry stone
#

This is about the best I've found for my question:

grep: ./maps/Muldraugh, KY/41_40.lotheader: binary file matches
grep: ./maps/Muldraugh, KY/59_0.lotheader: binary file matches
grep: ./texturepacks/Tiles1x.pack: binary file matches
grep: ./texturepacks/Tiles2x.pack: binary file matches
./tileGeometry.txt:83386:        /* appliances_com_01_77 */
./tileDepthTextureAssignments.txt:66:    appliances_com_01_77 = appliances_com_01_73,
./newtiledefinitions.tiles.txt:1945:    // appliances_com_01_77
grep: ./binmap/lot_basement_police_muldraugh.pzby: binary file matches
#

you can find some data about the computer tile i found in those files. It's clearly not set up like the other computer though, which has fields for facing direction, pick up weight, and so on

#

I'm not sure if this is something I can even mod

#

whoa.. I guessed that 59,0 in there was a chunk coordinate. I went there on the B42 online map. Secret area with every piece of furniture sitting out in the open heh

#

the tiles seem to be lined up in order, so this is pretty good confirmation that appliances_com_01_76, appliances_com_01_77, appliances_com_01_78, appliances_com_01_79 are all computer furniture items I should list in my mod as being usable.. even if the game won't let you pick them up and place them

vast pier
#

https://steamcommunity.com/sharedfiles/filedetails/?id=3697629742

Internal changes to hopefully help with mod compatibility issues
Changed (Wood)Glue to no longer "ReplaceOnDeplete" and instead uses "KeepOnDeplete"
Removed tag from Tarp Piece, instead dividing the "Craft Umbrella from Waterproof Materials" into two Leather and Tarp recipes```
tribal tapir
#

Hi, I just wanna ask what should be the specs of hosting / server are efficient tohandle atleaast more than 35 - 45 players. Like what RAM and CPU is really enough for a private server that has heavy mods that has 200-300 mods in it. Thank you so much

wintry tree
#

When you double click to add a trait to a list it sends 'item'

'''lua
function CharacterCreationProfession:onDblClickTrait(item)
print("DEBUG_DBLCLICKAdd: Type is " .. type(item) .. " | Content is " .. tostring(item))
self:addGoodTrait();
self:checkXPBoost();
end
'''
And it gets this -
DEBUG_DBLCLICKAdd: Type is userdata | Content is zombie.characters.traits.CharacterTraitDefinition@2904a646

a RAM referance. Is there anyone to know what this trait this specific referance is for? Can I look into this zombie.characters.traits. or something?

#

nvm, I figured it out. It's just this print("DEBUG_DBLCLICKAdd: Type is " .. type(item) .. " | Content is " .. tostring(item:getUIName()))

open hound
#

hey there. im currently modding, and stuck with an issue. i set an code to an interior door, and am able to lock it.
but im able to unlock the door even without the key from either side. can i somehow disable interior doors from always being able to be opened unlocked?

silent zealot
#

Look up the times action for locking and unlocking doors, media/lua/shared/ISLockDoor.lua

function ISLockDoor:isValid()
    local keyId = instanceof(self.door, "IsoDoor") and self.door:checkKeyId() or self.door:getKeyId()
    if self.character:getInventory():haveThisKeyId(keyId) then return true end
    if self.door:getModData().CustomLock then return false end
    return not self.character:getCurrentSquare():has(IsoFlagType.exterior)
end

the vanilla code will always let you unlock a door if you're on an interior tile, presumably because every vanilla locked door is an external one.

#

I don;t know what CustomLock in the doors moddata is for.

#

I think it might be an admin and/or debug thing... so looks like the issue is just the ISLockDoor:isValid() function needing to be redone to handle interior doors while not removing the option of locking/unlocking external doors from inside.

#

Maybe add some moddata to the door when you install the internal lock, and then override ISLockDoor:isValid() with something like

if door has MyCustomModdata then
return (player has correct key)
else
return (original function)
end

hexed arrow
#

local item = player:getWornItem(ItemBodyLocation.TSHIRT) if item then local visual = item:getVisual() player:Say(item:getName()) player:Say(tostring(visual:getTint())) visual:setTint(ImmutableColor.new(0.1, 1.0, 0.1, 0.1)) player:resetModelNextFrame()
end do tints not have an alpha? Also is there a way to make an object transparent at runtime? I want to simulate an item appearing on the player with a function looping that changes the alpha value of said item

silent zealot
#

I'm not sure if anyone has ever tried that

hexed arrow
#

maybe there is a way

hollow oriole
#

Good morning/evening everyone! I have a question about inputs in recipes, can i call a function in them? Lets say i have a function called "function Test1(scriptItems)" and i want this function to be called in the inputs section of a recipe. Should it be "item 1 [Test1] mode:keep," ?

hollow oriole
silent zealot
#

There is a function that can be used to decide if a recipe is valid, OnTest =, which might do what you want.

#

But it depends what your goal is.

hexed arrow
#
    if item then
    local visual = item:getVisual()
    player:Say(tostring(visual:getTextureChoice()))
    player:Say(item:getName())
    visual:setTextureChoice(2)
    player:Say(tostring(visual:getTextureChoice()))
    player:resetModelNextFrame()`
end```It does change the TextureChoice but there is no visual change
main pasture
# hexed arrow ```local item = player:getWornItem(ItemBodyLocation.SHIRT) if item then ...

WorldItems use the basicEffet shader and its alpha value is calculated with Alpha * texSample.w (texSample is straight from the texture, ignoring tint etc). So you have to change the Alpha value or you'd have to dynamically change the texture alpha.

Almost every other rendering setup (player and vehicles) use effect.setAlpha(this.alpha); or similar, but WorldItemAtlas.java, that seems to handle clothing items, uses effect.setAlpha(1.0F);

#

So it would seem to require java modding or some shader hacks. Changing the alpha value for WorldItem rendering might be something worth requesting API for

foggy epoch
#

someone pls make a mod for 42 with farmers npc's to watch out my farm while i do fun stuff on the map

vale robin
#

I have a (hopefully) simple mod that I'm working on that needs fixing, I have all the files already ready yet I'm unsure why it hasn't worked yet

#

Uhh just DM me if you wanna help a baddie like me out aha : - (

main pasture
#

ItemModelRenderer.java uses the alpha value from InventoryItem.getWorldAlpha (set with setWorldAlpha), but I couldn't use it at least with clothing items

hollow oriole
# silent zealot But it depends what your goal is.

My goal was to write a function that checks for all items that contain the name "bullet" and automatically insert them into the input section of my recipe. Im working on making a mod that allows you to repair the bulletproof vests, and i wanted to allow vests from other mods to use this recipe as well

dapper ginkgo
#

anyone use survivor superb mod? if their status only number, does that mean they died?

small zinc
#

hi, i want to learn to make mods for this game. how should i learn to do it?

eager vigil
# small zinc hi, i want to learn to make mods for this game. how should i learn to do it?

1:11 Step 1 - Know your file locations
4:06 Step 2 - Storyboard your ideas out
9:03 Step 3 - Get your files from the game or other mods
11:47 Step 4 - Build your mod files
1:01:54 Step 5 - Create the textures (mislabeled in the video, oops)
1:19:45 Step 6 - Put your mod files in the right structure
1:30:37 Step 7 - Test your mod (please back up ...

โ–ถ Play video
#

even tho its older i would say its still probably the best vid for it

silent zealot
#

Looks like all the vanilla ballistic armor has that, though maybe more than desired... but it's a good starting point.

hollow oriole
silent zealot
#

Are there specific types of mod/mod ideas you want to make?

willow tulip
#

Did anyone ever figure out why containers of custom mod fluids tend to spawn empty about 50% of the time?

vast pier
willow tulip
#

(Seemingly no reason why that I can figure out why.. seems to happen without any other mods too)

small zinc
small zinc
# silent zealot Are there specific types of mod/mod ideas you want to make?

a huge one, i see that this game has so much potential but a lot of things are missing and the late game is boring. i want to make it more flesh out such as being capable of amputing an arm or leg if it has been recently biten to evade the knox infection (and recipies for various prostetics). this is just an example of things i want to do (the first mode im gonna do is a simple one, make a trait called onwer with a -3 points, it will give +1 animale care and will grant you a dog and a cat with maximune aceptance seens the start). to make this trait worht it i need to add things to animal care such as but not limited to animal training and desing dogs and cats to have multiple possible utilities

dull moss
#

How does one nowadays change character stats in MP for testing purposes? Like say I wanna change character sickness value, using sliders in debug menu doesnt do anything as server resets it to original value next tick/minute

main pasture
dull moss
#

fuck sake I forgot to disable god mode

dull moss
#

toying around with Antigravity, ngl this is pretty good

#

(ignore that it says it worked for 2h, took it like 2 min)

#

I checked and all is good

hexed arrow
#

I finally found a working approach for making something opaque over time spiffo

dry stone
#

That's pretty cool. I found out the 3d models items use when placed can also have alpha

hexed arrow
#

my approach is pretty backwards though, I made a blender script to make 30 textures with different opaqueness and just iterate over them with a timer or button

#

I tried a lot with other methods in the docs but this is the easiest for mme

dry stone
#

Sometimes in modding... you do what you can lol

small zinc
vast pier
#

you can still do it ofc, just know you have long standing competition

silent zealot
dull moss
#

ye it took a team of like 10+ modders to implement horse in the game

#

of really good modders

bronze yoke
#

especially animals like dogs and cats which vary a lot in behaviour from vanilla animals

#

the animal system is designed for farm animals, not pets -- all of that is work you'll have to do yourself

#

similarly because we expect features like riding from horses most of the complexity came from that

#

basically, adding an animal is easy, adding an animal the way you actually want it is quite complex

vast pier
#

your own amputation based system would genuinely be easier to implement I think

hollow oriole
#

I have one question, when doing soft overwrites in clothing for example, should i declare them in their own .xml files? Rn im having an issue that results of me being unable to reload a save, i checked the logs and is because an item is trying to override an existing registry id

buoyant violet
#

Before and after, decided to learn substance painter, and not so bad for a first day

vast pier
hollow oriole
buoyant violet
hollow oriole
#

My work is almost finished, however there are some issues regarding the overwrites and the masks with hoods

#

aside from that, everything is working, i've made some custom new models for the filterless masks

buoyant violet
#

Ans you add materials to lift the texture up

eager vigil
#

hey guys do you know about some weather framework mod or something like that ๐Ÿ˜„ ? i suck at art but im working on something that should basically force some weather sometimes but i couldnt find like some good references

eager vigil
#

thanks

hexed arrow
silent zealot
#

"The longer you spend without wearing pants, the more your horns grow"

olive lance
# buoyant violet

this is awesome but i'm so confused what the game's style is, like what is the common consensus

#

other maps aren't used on vanilla guns r they

willow tulip
#

@sour island a mod can write to its own lua folder?!?!? Cool, a self checksum erroring mod!

sour island
#

I think it was useful way back when- for per mod configurations