#mod_development

1 messages ยท Page 380 of 1

dry stone
#

back then they started cramming more features onto single expansion cards too.. Like the IDE controller card and Floppy controller card quickly became 1 card

#

So scavenging a better part or a mobo with more slots will actually matter

willow tulip
#

Yea

#

I remember I had a mono video card + lpt port card

dry stone
#

if I wanna be real evil.. I'll add the IBM computers in. they WERE pretty common

#

in some ways they were nice, they had good on-board video I think

willow tulip
#

I always kinda laughed that it would 'enable me to use my printer if I didn't have a screen'

dry stone
#

which was like otherwise something you never got. But they also wanted their own fancy slot types - no ISA for you

#

and the expansion cards for those things were rare spawns

#

struggling to remember what that slot was called

#

I'll look it up when I need to lol

willow tulip
#

Random fun fact: Dot matrix printer ribbons can be refilled very successfully with bic pen ink

#

I don't think I ever bought a ribbon, just stole pens from school to refill it

dry stone
#

I'm thinking printers are a big stretch goal.. mostly because there's tons of dos software that prints, and if we wanna make this fun, we'll somehow get the actual printed images to appear in game like newspapers and stuff do

willow tulip
#

was fun watching the color drift from blue to purple to red depending on what I refilled it with recently

dry stone
#

but I have no idea where to start on that idea

willow tulip
#

I feel like at some point a lot of printing was just text? and that could just be printed to regular ingame paper

#

(editable even?)

dry stone
#

No we need to print out the contents of that hottiez cd

willow tulip
#

lol

dry stone
#

I literally had one when I was a kid lmao

#

found it in my dad's shareware collection.. it was filled with 256 color pictures of bikini women

#

and I was too young to give a shit haha

silent zealot
dry stone
#

For now, V1.0's goals: Working MP syncing Dosbox, Computer build UI, All the core PC parts XT through early Pentium, big ass collection of freeware / shareware, and proper item placement and PC randomization

willow tulip
#

that sounds like more then enough to be absolutely amazing

#

If you ever wanted to add maintence, you could require replacing/repairing psus with capacitors (Electronics parts?) and motherboards

#

(presumably, generator power would cause some faster degration.. but thats OK when there are offices filled with computers and your only using 1)

#

hard drives/disks failing would be... a little too painfully realistic LOL, so maybe keep it to just hardware failures that don't cause data loss

#

(or at least make it sandbox options so us softcore folks don't need to inconvicene the hardcore folks in their persuit of ultimate pain)

#

"Sure, you found the disk... but how much of it is corrupted?" - Cursed 10 year later run

#

(or real life for any actual 1990's computer user)

#

"READ ERROR: (R)ETRY, (A)BORT, (F)AIL?"

#

Imagine those like, powerplant mods, where you gotta restart the powerplant.. EXCEPT FIRST YOU GOTTA FIND A WORKING COPY of the damn control software.

#

And reconfigure the IRQ's

#

after finding a replacement hard drive

#

I feel like you need some kinda backapi to PZ

#

even if your not technically supporting gwbasic and stuff.. something like, the lpt or comm ports are wired back to lua

#

Modders can use that kinda basic bridge to do anything, and its realistic in that.. well, back in the day people just abused lpt/comm to do any thing ๐Ÿ˜›

#

Iv seen a pic/avr programmer using the comm status pins as programming pins for example ๐Ÿ˜›

#

And even made a programmer that will do avr AND pic microcontrollers off LPT (needs an external 12v supply for pic but yea)

#

(basically just a tristate buffer, a transistor and some capacitors/resistors to filter signals)

#

But im pretty sure for example just writing a byte to the correct address would output it on the LPT (and toggle the strobe line?)

#

so you could have that callback to LUA with every byte written

#

let the mods figure out what the thing plugged into the LPT port is supposed to do

#

be it.. a security system, light control, whatever.

dry stone
#

actually gwbasic is freeware.. microsoft did that in like 2020. too bad they didn't do qbasic as well

willow tulip
#

Gwbasic is good enough

#

qbasic is cooler for sure, but gwbasic is finnee

#

imagine getting to write gwbasic programs to peek/poke at motion detectors and light/alarms

dry stone
#

if there's something I can do that lets other people make mods interact.. like some way i can have dos a shell command that triggers some kind of event other mods catch, I'd totally go for it

willow tulip
#

the nerdpocolypse dream!

dry stone
#

like I love the idea to have to use computers to get power stations working, but I doubt anyone would try to do it. especially since my mod requires the java thing - I dunno how many people are willing to set that up to even use it

willow tulip
#

Like for one

#

LPT ports can just be abused as generic 8 bit input/outputs

#

like, you want 8 switches to a PC? you can just sorta.. directly correct em to a LPT port and read em

#

same with controlling stepper motors, regular motors, lights, etc as outputs

dry stone
#

oh, I did that one time, but on an rs232

willow tulip
#

exactly.

dry stone
#

and if I try to explain what I was doing I'll sound insane again

willow tulip
#

so its realistic that you could just.. connect room lights, motion detectors, etc right to a PC via LPT

#

people really did back in the day, at least factory automation stuff

dry stone
#

something about research of light transfer through multilayered polymers

willow tulip
#

infact SOME people even made custom ISA cards because back then the protocol was so simple and slow you could protoboard that stuff

dry stone
#

you'd think the physics dept would shell out for like a DIO card? no, I used rs232.

willow tulip
#

lol

#

My $200 laser engraver shits RS232->usb bridge errors when I turn on/off my extraction fan.

dry stone
#

odd you'd mention lasers.. I was measuring one's frequency

willow tulip
#

the more things change, the more they stay the same ๐Ÿ™‚

dry stone
#

bigass laser fired through bigass electromagnet then through polymer material into requency sensor and I was trying to get its frequency

willow tulip
#

but seriously.. interface with mods, even if its as fake ISA cards or something would be sooooooo coooll

dry stone
#

Thing I'd need to do for that is to somehow get at serial and lpt pins from dosbox

#

which i'm sure is possible

willow tulip
#

Like, imagine setting up pressure plates and like.. some kinda RFID detector

dry stone
#

but definitely not gonna be trivial. I can technically mod dosbox too but I'm trying to keep it a clean git clone

willow tulip
#

Pressure plate + no RFID = STABBY

#

Pressure Plate + RFID = NO STABBY

#

and then someday someone hacks your base computer in MP and bhwabhahah.

dry stone
#

PZ afaik doesn't really have trigger mechanisms or logic.. like you can't wire a bomb to a switch or something

willow tulip
#

Yeaaa right?

#

@red tiger ^

dry stone
#

if I were modding PCs into minecraft you could do things like redstone interface

willow tulip
#

theres a kinda lack of hooks into stuff that base defenses might want, like 'zombie enters isocords x,y,z'

#

detection or weaponized defenses.

#

I can only imagine how current mods would do it and its inefficent as hell.

dry stone
#

I think you're describing a mod idea that should exist tbh

#

add "zomboid redstone" ...

willow tulip
#

Jab is looking for cool API's to add to zomboid

dry stone
#

or more realistically some way to collect parts and wire together sensors, automations, lights, generators, and so on

willow tulip
#

Exactly.

#

it would be amazing to have actual basebuilding MEAN something in zomboid

#

besides 'a place to store my stuff'

dry stone
#

I don't see anything stopping a mod like that from working

willow tulip
#

actual active defenses, even if they require resources, at least you didn't have to deal with that stupid zombie rattling your fence/door/whatever.

dry stone
#

keep in mind you've got global moddata you can use.. you just need to track everything the player puts down, hooks up, and have some lua timer keep the whole thing updated with ticks

willow tulip
#

right now bases are dumb because they don't kill zombies, they just delay them slightly at 0 cost to the zombie.

dry stone
#

realistically if its just zombies you make a big hallway and put a sharp spinning blade on a motor or something lol

#

they'd just walk into it.. nothing more advanced needed

bronze yoke
#

at a certain point even barricading your windows is pointless

#

let alone building defenses

willow tulip
dry stone
#

true and it'd "clog" eventually

willow tulip
dry stone
willow tulip
#

where they try to maintain a slight distance from eachother and move as a 'force'

dry stone
#

oh you mean like the flocking algorithm?

willow tulip
#

become a wall, surround you.. instead of congaline to death.

#

they have NUMBERS, they need to learn to use it to restrict your movement

#

even if the concept is just 'durrr I don't like being next to fellow zombie'

dry stone
#

right now migration is just zombies redistributing themselves throughout a cell. The algorithm needs to become hierarchical and function as like a quadtree instead

#

then you can get it working world wide without horrible performance

willow tulip
#

(plz talk @bronze yoke lol I wanna hear your input)

bronze yoke
#

i was just thinking that part of the reason why the zombie simulation is so efficient is probably down to them not being designed to really do anything at all

willow tulip
bronze yoke
#

so i don't know what to take away from that at all

dry stone
#

thing is you can totally move millions of zomboids around algorithmically without even needing like a compute shader or anything. or even threads

willow tulip
dry stone
#

you just need to simulate things differently at distance

#

I did say before I'm mostly an algorithms guy...

bronze yoke
#

they almost never even have to think about where their goal is, and most of the time they don't need to think about how to get to it either

willow tulip
dry stone
#

oh you don't do collisions at all. you group things

willow tulip
#

(just have them dislike being next to eachother and they should basically try to collision avoid automatically.. and currently it seems like they have 0 collision so.. its not any worse?)

dry stone
#

there's 1000 zomboids in this distant cell... cluster em and just move the clusters around. zero collision, instead use movement penalties depending on terrain

willow tulip
#

Oh I meant local cell behavior

dry stone
#

when player gets closer refine the simulation, declustering until you're down to individuals

willow tulip
#

congaline of death is sooooo dumbbb

bronze yoke
#

99% of the time zombies are either idle or walking directly to a point, and that point is usually just the player's position, there's no thinking involved at all, no wonder it runs so well

willow tulip
#

I wanna see wall of flesh (terraria) in zombie form.

dry stone
#

this is just off the top of my head. I'd normally spend a week or two going over a big system like this before I did implementation work

willow tulip
#

FORCE me somewhere, don't let me double back, try to surround me on the edge

dry stone
#

If I were king of the world I'd have a REAL cdda mode implemented instead tho lol

willow tulip
#

imagine if 200 zombies lined up like 3 deep as a ) wall

#

and came at you.

#

you engage any of them? your so dead.

dry stone
#

In CDDA, bites don't infect or guarantee death. And it's turn based, you can think about your next move for an hour if you want without anything happening ... But the game is WAY harder

#

Because the stuff you run into in that game is really, really, really bad.

willow tulip
#

lol theres like, 300 lines of 'turn based' code in PZ that does nothing

dry stone
#

Trying to hide in a house? Yeah a skeletal juggernaut is dismantling the house. the 2nd floor just collapsed. hopefully you weren't i nit

#

..or below it

willow tulip
#

lol

dry stone
#

was watching a youtuber play CDDA once... he's trying to hide and sleep in a bed on the 2nd floor. Mobs follow his scent trail and gather below him on the 1st floor. one can reach the ceiling and punches a hole through it. Another mob has long arms, reaches through the hole... The player wakes up suddenly being grabbed and dragged out of bed into the floor hole with about 100 undead on the first floor just below.

#

that's how mean CDDA can be

willow tulip
#

Glad I never played that game

dry stone
#

zomboid.. only has one enemy. At best it has sprinters

#

you die in zomboid normally due to a clear sequence of mistakes (usually stemming from overconfidence), or due to a lack of patience

bronze yoke
#

this is why i expect a lot of people to get really angry about npcs

#

the game currently offers basically no resistance to anything you want to do

#

it's going to be interesting when they add other agents to the world who can actually harm you

dry stone
#

tbh I could care less if npcs are ever added.

#

if you can randomly get shot and insta from far offscreen and there's no mechanic to handle things safely? Then I'm modding them right back out lol

bronze yoke
#

i would not assume they would implement them in such a boring way

dry stone
#

and I really don't want to wait the 3-4 years it'll take for them to be added in some build

bronze yoke
#

i promise you they want the game to be fun ๐Ÿ˜ญ

dry stone
#

I believe that, but i'm not sure they even understand why the game currently is fun...

bronze yoke
#

but even with a reasonable implementation, a lot of people are probably going to take issue with the game not being a complete power fantasy anymore

dry stone
#

zomboid has no linear path to follow down.. nothing telling you what to do. you can do whatever you want, but it's also not some endless creativity game like minecraft.

#

a lot of players, they find some food, get a house, get a bit safe.. get bored and quit

#

zomboid is never going to appeal to that kind of player.

#

other players find goals

#

that's the whole crux of it... they figure out what they're going to do. rather than the game telling them to go beat the boss mob or whatever. they pick something and do it

#

and zomboid gets boring the moment you can't think of any more goals

bronze yoke
#

i don't really agree, if on mass people find it hard to find goals, that is a game design issue

dry stone
#

A lot of people don't want to find things.. they want to be told. that's just how people are - but not everyone

bronze yoke
#

the heart of a sandbox game is that there are many goals to seek out and you are not forced to take a particular one, but what most people experience is feeling like there are none

dry stone
#

absolutely tons of people love being left to their own devices

#

like I haven't played much since B41 ... but one of my favorite mods was the one that broke all the vehicles so none of them worked

#

because I hate that you can find a working car with gas and a key on day 1 or 2 almost every time

bronze yoke
#

the core of this issue i feel is that there's nothing you need, and very little benefit to having done anything

dry stone
#

I wanted the car itself to be a goal.. and the GOOD car to be a very long term goal. So I actually have to level mechanics and electrical if I want cars going.

#

that gives me a huge tree of goals to complete heh

bronze yoke
#

yeah that's exactly what i'm saying

#

a goal is quite weak if you don't have a reason to actually do it

dry stone
#

its also why I think they dont' fully understand why their game is fun.. if they did, you wouldn't need a mod for that - it'd be a sandbox option since years ago

bronze yoke
#

in vanilla zomboid, you don't have much reason to do anything -- grinding up a 'perfect' car doesn't feel any different from a car you found at the start of the game, both kinds of farming are pointless because you'll never be short of food anyway and the food you get from it isn't 'better' in some way, etc

#

those things are still technically goals you can have, but for a sandbox game i feel it's a failing to not give me any reason to pursue them

dry stone
#

its also why I loved that trait* mod that let me start with burns all over me or broken legs

#

early game goal of getting myself healed...

#

and other mods that make infection deadly, so I'm forced to use things like cologne on wounds before they go bad

chrome palm
#

i wonder if its possible to get the concept of the excavation mod and the east & south stair mod implemented into vanilla zomboid, it'd be beautiful to have an official version cuz as a builder me love things like easy to make custom basements, tunneling, stairs that go all ways, and maybe even one day to see a spiral staircase in zomboid

willow tulip
silent zealot
#

What I really miss are the early days of getting into crazy situations that never happen now because you learn how to avoid them. Like driving a car onto the highway outside Rosewood in the middle of the night during a storm slowly bleeding to death thinking "I just need to drive a bit to get away from the densly packed zombies to patch myself up" except it was B41, the highway was hull of zombies and before long I had no headlights or windscreen from impacts and there was no-where I could pause at all.

#

But that sort of disaster is prevented by better planning (and also by B42 having much better zombie spawning on highways)

#

Question: is this a good idea or a stupid one: a mod that add's Skiff's pistol from Stalker 2 to the game, except the mod is called <YourNameHere>'s pistol and you start with one already in your hand, favorited, and renamed to firstNames's Pistol.

#

It's functionally an M9 with a smaller clip, so not unbalanced.

#

...unless I go for the pre-patch version which was the best gun in the game due to a bug with the 9mm ammo's armor penetration.

alpine zenith
#

is it worth it to develop mods in B41 instead of B42 there is more documentation and help with making mods in B41 but they might get out of date a bit to soon

bright fog
#

The whole modding wiki is oriented towards B42 only bcs I'm not going to lose my time making documentation for a dying version of the game

#

And I invite you to this same philosophy for modding in general, don't lose your time learning modding with a version of the game that is outdated, which will force you to relearn a shit ton of aspects

#

And this is becoming particularly true as the recent versions of B42 have reworked major systems of modding which are completely different than B41

#

Most recent one being the translation files format

#

Registries, recipe scripts, mod structure

#

Timed actions, networking

#

Of course if you specifically want to make a mod for your B41 server or smthg like that, go on, but if you are not forced to mod on that version, then don't bother

alpine zenith
#

hmm okay thanks for the advice

buoyant violet
#

sadly when the weapon is first created and not fired the slide is not seen by other players

silent zealot
#

How do you do the slide animation?

#

And... how do you get it to sync so well.

#

I had issues with gun models and reloading in MP that I gave up on after finding out the vanilla doublebarrel had the same problem

azure girder
#

I wonder if PZ will someday go the Minecraft route and stop developing singleplayer alltogether. In Minecraft singleplayer you just join your own local server without you noticing. I think this would make a lot of sense for PZ, so both them and modders wouldn't have to develop two systems simultaneously

buoyant violet
#

but soon we will have this available with the framework for others to use

#

it supports both attachment or model swaps

dull moss
#

in SP you run both server and client folders

#

problems currently occur cuz how much has been shifted to server authority from client

#

will take time to adjust shrugR

azure girder
#

Oh your point in developing mods for MP first does prove my point

dull moss
#

how exactly?

azure girder
#

Well if they would focus on MP only and there would be no "singleplayer", it would reduce dev time

dull moss
#

no? Correctly done MP mod will work in SP. If a mod author does separate SP logic and then tries workarounds to make MP work, that's mod author adding dev time, not the game devs?

#

But ye I guess it could be somehow streamlined

#

But then again the game is in development so wcyd

azure girder
#

Yes, if its correctly done in MP it will work in SP. Thats why I say the PZ devs maybe could do as well. Currently they create SP first and then add MP afterwards

dull moss
#

oh thats what u mean

#

yea KekW

azure girder
#

Yeah, if they get MP working first it should automatically work with only a single player. I only know Minecraft is doing it this way. Short term it introduced a lot of issues in MC, but I think it could be beneficial in the long run

silent zealot
#

It would simplify the codebase a lot if singleplayer was just hosted multiplayer without anyone else being allowed to join.

#

But there is a loooooot of work before the game is ready for that

knotty stone
#

@willow tulip Did something change with the sound hp/weight overhaul? ```function W900OverhaulRCP()
-- Mod does not need to be dependent on Realistic Car Physics being installed:
local REALISTICCARPHYSICS_ENABLED = getActivatedMods():contains("RealisticCarPhysics")
print("W900 Overhaul: Realistic Car Physics detected: " .. tostring(REALISTICCARPHYSICS_ENABLED))
if REALISTICCARPHYSICS_ENABLED then
local carData = require "Realistic_Car_Overhaul_Data"

-- Engines sounds can be specified this way. 
-- Engine Volume = engineSoundBias + Throttle * engineSoundMultipler. Same for exhaust. Allows engine sound to change with throttle. 
-- the values here relate to Sound script names in Realistic Car Physics. You can add your own sound files for your vehicles. 
-- Its mainly just here to show you how to do it. Engine1 through Engine4 are also predefined for you to use. 
carData.engineValues["EngineW900_new"] = {engineSound = "W900_Engine", engineSoundRPM = 2500, engineSoundBias = 1.4, engineSoundMultipler = 0.5, 
                exhaustSound = "W900_Exhaust", exhaustSoundBias = 0.2, exhaustSoundMultipler = 0.8,
                crankSound = "W900_EngineStart", startSound = "W900_EngineCrank", engineTurnOff = "W900_EngineTurnOff"}

--Use real life values here for horsepower and weight (kg). Note that 1 horsePower is equal 4 vanilla pz horsepower.
--Most vanilla vehicles have 70~250hp in this overhaul, and 800~3000kg weight.
--engineSound relates to the key used in carData.EngineValues[]

--Kenworth W900
carData.vehicleValues["Base.SemiTruck"] = {horsePower = 150, weight = 8164, cargo = 200, engineSound = "EngineW900_new"}
carData.vehicleValues["Base.SemiTruckLite"] = {horsePower = 150, weight = 6864, cargo = 100, engineSound = "EngineW900_new"}
carData.vehicleValues["Base.SemiTruckBox"] = {horsePower = 150, weight = 8364, cargo = 750, engineSound = "EngineW900_new"}
--Kenworth W900 Military
carData.vehicleValues["Base.SemiTruck"] = {horsePower = 200, weight = 8164, cargo = 200, engineSound = "EngineW900_new"}
carData.vehicleValues["Base.SemiTruckBox"] = {horsePower = 200, weight = 8364, cargo = 750, engineSound = "EngineW900_new"}

-- Trailers
carData.vehicleValues["Base.SemiTrailerVan"] = {weight = 3140, cargo = 1500}
carData.vehicleValues["Base.SemiTrailerVanCattle"] = {weight = 3140}
carData.vehicleValues["Base.SemiTrailerCistern"] = {weight = 4140}
carData.vehicleValues["Base.SemiTrailerLowBed"] = {weight = 5210}

end
end
Events.OnLoad.Add(W900OverhaulRCP)``` isnt working anymore

willow tulip
knotty stone
#

then why ๐Ÿ˜ข

willow tulip
#

maybe they changed how getActivatedMods():contains works? dunno

knotty stone
#

nah its true in the print

willow tulip
#

is realistic car physics working?

knotty stone
#

yes, vanilla cars are all working

willow tulip
#

Dunno then.

#

they changed a bunch of security stuff in B42.15.3 so dunno

#

any stack traces or anything?

knotty stone
#

nope

willow tulip
#

so whats happening ingame?

knotty stone
#

trucks weight hp and sound istn changed, but vanilla cars are

dull moss
#

if u got a mod bug report, usually there are descriptions on mod page on where you should submit a bug report. This is usually not a place, just sayin

willow tulip
knotty stone
#

nah, its now working, but not rly sure what it was, i didnt change the name of the Box and semi to _mil, but that shouldnt have made a difference to declare it twice

willow tulip
#

Yea, the 2nd setting should just override the 1st

knotty stone
#

the on load event was just experimental and iam not using it anymore

willow tulip
#

ah.

#

PS I dunno if it matters but I just do it in the main script body.

#

instead of using an event.

knotty stone
#

will we able to shove cars anytime soon with rcp? you need to move a vehicle atm to be able to move it with another car

willow tulip
#

(Code has to execute client side, but prob should execute both server and client side)

knotty stone
#

yea with the event it was not working at all

willow tulip
#

I had HOPED that TIS would have fixed it in B42.15...

knotty stone
#

without rcp its working tho

willow tulip
#

(the shoving is a vanilla issue started in B42.14)

willow tulip
knotty stone
#

yea i think i saw a patchnote about it too

willow tulip
#

sighhh..

knotty stone
#

Fixed parked cars not moving when bumping them with another car

willow tulip
#

now I have to go see what they changed.

#

Oh I see what they changed now. meh.

#

will fix soon then.

willow tulip
knotty stone
#

np, avid enjoyer of your mod and glad that it will be fixed ;D

willow tulip
#

I mean whats the point in being 10000kg if you can't toss the smaller cars around like ragdolls?

tepid palm
#

Any B42 mod collections that are vanilla base with week one and npcs?

vast pier
unique roost
#

Is there a tutorial I can watch for modding a Jumpscare noise replacer? My friends requested a few custom jumpscare sounds for our private b41 playthrough, and I would like to try and get them implemented as a mod.

#

shoot me a ping if there are any specific resources I should be looking at.
(I did already google, I couldn't find any articles on how to mod this specific feature)

bright fog
#

Download the mod, look through its files and see how they do it

unique roost
#

I'm unfamiliar with the file structure

bright fog
#

It's nothing complicated if I remember right

unique roost
#

I tried doing so with a splash text loading in mod, but I couldn't get the audio to work a few years ago

unique roost
bright fog
#

The rest of the page should interest you too

#

That one too

unique roost
#

ty

#

I'm looking for the id of the jumpscare mod I installed so I can compare file structure and just look at what it does

unique roost
#

I figured that part lol. I really appreciate the support.

bright fog
#

๐Ÿ‘Œ

unique roost
#

alright, seems easy enough. Just need to change the sound files and the callouts for the sound files.

#

anything I need to change to make it work in MP?

bright fog
neon saffron
#

hey , could someone help me with setting up the item's model? I'm struggling with adding it's mesh and texture.

this is the scripts.txt:

model GCrowbar
{
    mesh = ATG/GCrowbar,
    scale = 1,
    static = true,
    texture = GoldenCrowbar,

    attachment Bip01_Prop2
    {
        offset = 0.0142 0.0401 0.0000,
        rotate = -23.3606 21.2788 37.5386,
        scale = 0.8280,
    }
}

module Base
{


    item GoldCrowbar
    {
        DisplayCategory = ToolWeapon,
    mesh = Crowbar,
        MaxRange    =    1.25,
        WeaponSprite    =    GCrowbar,
        MinAngle    =    0.75,
        Type    =    Weapon,
        MinimumSwingTime    =    3,
        KnockBackOnNoDeath = TRUE,
        SwingAmountBeforeImpact    =    0.02,
        Categories    =    Blunt,
        Weight    =    2.4,
        ConditionLowerChanceOneIn    =    70,
        PushBackMod    =    0.5,
        SubCategory    =    Swinging,
        ConditionMax    =    20,
        MaxHitCount    =    3,
        DoorDamage    =    10,
        SwingAnim    =    Bat,
        CriticalChance    =    35,
        CritDmgMultiplier = 6,
        DisplayName    =    Golden Crowbar,
        MinRange    =    0.61,
        SwingTime    =    3,
        HitAngleMod    =    -30,
        KnockdownMod    =    0,
        Icon    =    GoldenCrowbar,
        RunAnim    =    Run_Weapon2,
        BreakSound  =   CrowbarBreak,
        DoorHitSound = CrowbarHit,
        HitSound = CrowbarHit,
        HitFloorSound = CrowbarHit,
        SwingSound = CrowbarSwing,
        TreeDamage  =   0,
        MetalValue = 150,
        CriticalChance    =    40,
        CritDmgMultiplier = 2.5,
        MinDamage    =    0.6,
        MaxDamage    =    1.25,
        BaseSpeed = 1,
        TwoHandWeapon = TRUE,
        WeaponLength = 0.4,
        AttachmentType = BigBlade,
        Tags = Crowbar;RemoveBarricade,
    }
}```
bright fog
neon saffron
bright fog
#

You might also be interested in watching my video about Scripts

neon saffron
#

perhaps

#

cheers buddy

neon saffron
#

what file is a sprite? is it a 3d model or something else

bronze yoke
#

it's a model script

#

the term 'sprite' is for legacy reasons when the game was more 2d, it should really be 'model'

silent zealot
#

And if you're using Base, prefix your itemname with a unique string so it becomes something like AutumnGoldCrowbar so there is no risk of conflicting with another mod/new vanilla item also called Base.GoldenCrowbar

bright fog
digital osprey
#

another day another issue, we cant force a value into a tickbox in mod options right? like if there is another tickbox that does the same thing in an in game UI i would like to update the values if they get changed

bright fog
#

It's all Lua sided

tacit dove
#

Guys, could anyone by any chance give me a hint on how you're supposed to get a file's GuID for clothing mods? (b41)
Many thanks to whoever answers

dry stone
#

Progress for today... I've added the keyboard and mouse, CPU and RAM models

#

I'm up to 10 models in total... All that's left on my list is a disk case and some floppy disk texture variations

neon saffron
tacit dove
# bright fog You generate them

Oh, thank you very much.
Sorry to bother but... Could you maybe also explain how
ConditionMax and ConditionLowerChance work?
Is it a percentage from 0 to 100 or a fixed value from x to y? What's the limit for them?

neon saffron
#

if that's not what you mean then i can't help , i started modding like yesterday

bronze yoke
#

the chance for durability to reduce on hit is 1 in condition lower chance

#

so 1 in 2, 1 in 3, etc

neon saffron
#

how the fuck do i set a model's texture if it's not like this ๐Ÿ˜”

bronze yoke
#

you need a , at the end of every line

#

the .png extension also should not be included

neon saffron
#

basic problems require basic solutions i suppose

neon saffron
silent zealot
#

Zomboid is very fussy about these things

silent zealot
#

no subfolders

#

and check console.txt because there is likely an error abouit not being abel to find GoldenCRowbar.png

#

and finally, for textures you need to quit and restart after changingg things, not use reload lua

#

And finally finally the candy-striped crowbar actually looks pretty cool.candycane

cedar crest
#

i desperately need someone to make a mod that allows you to close curtains on stairs like these

neon saffron
neon saffron
silent zealot
#

You don't need to copy the model file if you are not changing it, just use the vanilla crowbar model.

neon saffron
#

oh , that's good to know

neon saffron
silent zealot
#

I thin ki see your problem.

#

Copy that whole thing, change the model name, and add a texture line.

neon saffron
#

which script did you find that in?

silent zealot
#

media/scripts/generated/models_weapons.txt

#

I like to have a VSCode window with media and decompiled java open to use as an easy to search reference

neon saffron
#

thank you almighty fox man ๐Ÿ™

#

i shall see whether it works asap , i'm not home rn.

silent zealot
#

Is your texture just this, but with different colors?

#

no resizing/cropping/etc

#

Since that's the texture designed for the vanilla crowbar model

neon saffron
#

honestly it feels lazy just recoloring a weapon with boosted stats and calling it a "mod"

#

i'll get to balancing it when i get to it tho

bright fog
bright fog
neon saffron
#

no subfolders

bright fog
neon saffron
#

media > textures > GoldenCrowbar (the texture)

bright fog
#

Was it you yesterday who forgot to add a module ? Did you do it this time ?

#

And are you refering to the model script with the full ID

neon saffron
bright fog
#

Show the full scripts

neon saffron
#

i'm not home right now , i'll ping you and send the script ASAP.

#
module Base {
    
        model GCrowbar
    {
        mesh = Crowbar,
        scale = 1,
        static = true,
        texture = GoldenCrowbar,
    }

    item AutumnGoldCrowbar {
   
        DisplayCategory = ToolWeapon,
        MaxRange    =    1.25,
    WeaponSprite    =    GCrowbar,
        MinAngle    =    0.75,
        Type    =    Weapon,
        MinimumSwingTime    =    3,
        KnockBackOnNoDeath = TRUE,
        SwingAmountBeforeImpact    =    0.02,
        Categories    =    Blunt,
        Weight    =    2.4,
        ConditionLowerChanceOneIn    =    70,
        PushBackMod    =    0.5,
        SubCategory    =    Swinging,
        ConditionMax    =    20,
        MaxHitCount    =    3,
        DoorDamage    =    10,
        SwingAnim    =    Bat,
        CriticalChance    =    35,
        CritDmgMultiplier = 6,
        DisplayName    =    Golden Crowbar,
        MinRange    =    0.61,
        SwingTime    =    3,
        HitAngleMod    =    -30,
        KnockdownMod    =    0,
        Icon    =    GoldenCrowbar,
        RunAnim    =    Run_Weapon2,
        BreakSound  =   CrowbarBreak,
        DoorHitSound = CrowbarHit,
        HitSound = CrowbarHit,
        HitFloorSound = CrowbarHit,
        SwingSound = CrowbarSwing,
        TreeDamage  =   0,
        MetalValue = 150,
        CriticalChance    =    40,
        CritDmgMultiplier = 2.5,
        MinDamage    =    0.6,
        MaxDamage    =    1.25,
        BaseSpeed = 1,
        TwoHandWeapon = TRUE,
        WeaponLength = 0.4,
        AttachmentType = BigBlade,
        Tags = Crowbar;RemoveBarricade,
    WorldStaticModel = GCrowbar
    }
}```
#

@bright fog this is the script and essentially all i can give you until i get home

bright fog
#

Nvm the model already appears so the problem is texture wise

neon saffron
bright fog
#

Yea I'm not meaning the file itself, should be fine as long as it's a png

silent zealot
#

We'll see how it behaves once the model definition is redone to match the vanilla crowbar.

neon saffron
#

@bright fog @silent zealot thanks for the help , it works as intended :)

silent zealot
#

Nice!

neon saffron
#

the only problem is it still stands like this when on the ground , but i think it'll be fine

silent zealot
#

Shame we can't do actual metallics

neon saffron
neon saffron
red tiger
#

I may or may not be looking into calculating HTML elements again, this time in Java. ๐Ÿ™ƒ

neon saffron
red tiger
neon saffron
#

i see

red tiger
#

I was able to get partially there before Reflection was removed from non-debug. I started a Java patch and am looking at my options.

neon saffron
#

oh , that looks fun

#

keep cooking ๐Ÿซก

red tiger
#

Thank you. It was GPU-projected and rendered.

#

I could graft a WebKit service wrapper but that's too much for simply calculating components..

#

More important things to work on for now.

vast pier
knotty stone
#

shot in the blue but, anyone got a brilliant idea what could cause this? its my military boxtruck which is an excactly copy of the normal one, but the military version is suiffering from this behavior

#

Headlights are only on when doing burnout or ramming xD

silent zealot
knotty stone
#

only on impact or a quick flash when stopping

silent zealot
#

I've had issues when working on the original high beams mod where headlights would move below the ground when vehicle tilted

knotty stone
#

dont know if the table support z offset will have to test

silent zealot
#

Any vehicle mods? It's almost like the flickering that should be affecting the dashboard affects the lights

#

I don't think it's the same thing I was seeing. But... Try the right click ->debug -> launch vehicle into air to see if that shows anything interesting

knotty stone
#

yea when its airborne theres light

silent zealot
#

I spoke to the Marketing department, they suggested calling them."impact detection lights" and charging extra

silent zealot
knotty stone
#

i mean the taillights are working fine

#

but i think i will have to adjust the model offset maybe

#

its the only different value

#

yea that was it

silent zealot
#

Or, make it an exact copy of the vanilla truck with a different name, confirm that is ok, then change it piece by piece into your version until it breaks

silent zealot
#

But... Gold bar -> solid gold crowbar

#

Weighs a lot more, reduced durability

neon saffron
#

in the mod gold weapons weigh 0.2 more than their original counterparts , but have boosted durability and min-max damage

silent zealot
#

Exact same model as gold plated, but you know it's genuine gold all the way through!

#

I mean as an extra option in your mod, since it wouldn't need much work to include

#

Sure it's useless for anything other than bragging rights

#

But... solid gold crowbar!

neon saffron
#

๐Ÿค‘

#

maybe solid gold weapons could be powerful but fragile?

#

glass cannons per se

#

anyway

vast pier
vast pier
neon saffron
vast pier
#

I mean rocks and flint nodules are improvised weapons already

#

I donโ€™t see why not

bright fog
mellow frigate
#

Hello there, has someone here already made an analysis on what is taking most of the game loading time and what could be done to reduce it ?

knotty stone
#

my uneducated guess would be the parse and init of many script and lua files, but since we are on the topic, whats better in runtime, one huge fbx file where you for example have 50 weapons or 50 small fbx?

vivid imp
# neon saffron

A crowbar made out of gold sounds like the worst crowbar ever, and that makes it the best

cloud hawk
#

Hi folks! It seems getModFileWriter is writing client-side, not server-side, even when invoked from a server script. Is that intended?

bronze yoke
#

if it's writing client side, your code is not running on the server

cloud hawk
#

But what if the code is defined under ./42/server/*.lua? That isn't per se a guarantee to have it executed server-side?

bronze yoke
#

it isn't no

willow tulip
#

(Yes I have no idea what shared is for then)

cloud hawk
#

Oh damn. Do we have some function to check if we are actually server-side?

bronze yoke
#

isServer(), but in most cases you will prefer not isClient() as that's still true in singleplayer

buoyant violet
#

I will vouch for not isClient() approach

cloud hawk
#

Thanks a lot!

dry stone
#

Curious what the difference is there. Like a host+play vs dedicated server thing maybe?

bronze yoke
#

no, there's no significant difference between hosted and dedicated at all

#

all hosted does is launch a dedicated server in the background and connect to it

#

it's not a single instance client and server or anything like a lot of people assume

#

the benefit to checking not isClient() is just that most serverside code also wants to run in singleplayer

red tiger
#

I'd imagine that the in-game simulation will move in a way where all games are simulated servers.

bronze yoke
#

if you don't then isServer() is the way to go but that's pretty rare

red tiger
#

I wonder how hard it would be to transmit failed checksums for individual files to servers on login attempt reports.

#

Context on that would be helpful in seeing what's changed. It can signal cheaters faster.

cloud hawk
#

All is working now! Omg there was a very weird behavior. I'm not 100% sure, but apparently calling getModFileWriter on the server script, if the client was also calling it, prevented the files from being written on the server. With this modification, it's working properly

if not isClient() then
  Events.EveryTenMinutes.Add(onEveryTenMinutes)
  Events.OnClientCommand.Add(onClientCommand)
  Events.OnServerStarted.Add(onServerStarted)
end
#

It's super weird because even the server-only events were being intercepted by the client lol

vast pier
vast pier
#

Thatโ€™s what I remember being told around least

willow tulip
buoyant violet
#

I think thats the order

neon saffron
# neon saffron

I was thinking of naming this mod "All That Glitters" , thoughts?

cloud hawk
neon saffron
vast pier
#

King Midas trait that turns every item you pick up into a gold bar

#

If the zombies dont kill ya, dehydration and starvation will

sly monolith
#

can someone please explain the new way to add body locations easily, without any rocket science stuff y'all doing here ๐Ÿ˜…

silent zealot
#

Download amod that adds a body location, look at what it does.

sly monolith
#

i tried it, but i'm not sure what it does cuz it doesn't add any items

#

i've searched bodylocation here on discord and everyone says something else lol

silent zealot
#

It adds a bodylocation slot.

sly monolith
#

like here this seems very complicated, while the canteen thing is very compact

silent zealot
#

registries.lua:

NEPBODYLOC_CANTEEN = ItemBodyLocation.register("nep:canteen")

a lua fule in shared:

local group = BodyLocations.getGroup("Human")

group:getOrCreateLocation(NEPBODYLOC_CANTEEN)
sly monolith
#

what does nep stand for here nep:canteen ?

silent zealot
#

You can't use "base" so you need to have your own namespace

#

It can be literally anything... except base.

sly monolith
#

aight thanks

silent zealot
#

It stops multiple mods having the same name for things and causing issues.

#

I prefix things with "Nep" short for "Nepenthe", you could prefix with uwu

#

Then in the item scrript: "BodyLocation = nep:canteen"

sly monolith
#

did anything about attachment change too, cuz this was some additional holsters mod

silent zealot
#

that mod changes an existingg item, you could also use "BodyLocation = nep:canteen" in a new item's screipt

#

equip attach slots are three levels of confusing.

sly monolith
#

this is all confusing af to me anyways lmao

silent zealot
#

You don't need them to add a body location, only if you want new attachments locations

#

What do you need the new bodylocation for?

sly monolith
#

the body locations are for the new additional holsters, and then the attachment locations are for the guns in those holsters

sly monolith
silent zealot
#

What is the error

sly monolith
#

ERROR: General f:0, t:1774565528609> ExceptionLogger.logException> Exception thrown
java.lang.reflect.InvocationTargetException at DirectMethodHandleAccessor.invoke(null:-1).

#

idk what i should paste here

#

Caused by: java.lang.NullPointerException: Cannot invoke "Object.equals(Object)" because "this.id" is null
zombie.characters.WornItems.BodyLocation.isId(BodyLocation.java:69)
zombie.characters.WornItems.BodyLocationGroup.getLocation(BodyLocationGroup.java:32)
zombie.characters.WornItems.BodyLocationGroup.getOrCreateLocation(BodyLocationGroup.java:40)

bronze yoke
#

the argument you are passing to group:getOrCreateLocation is nil

#

either a typo or something wrong with your registries.lua

sly monolith
#

don't i need some additional lua file like a BodyLocationsTweaker i saw in some other mod?

willow tulip
willow tulip
sly monolith
#

in media

sly monolith
#

oh great, i think just me being blind was the issue, i had a typo in the registries file name lol

willow tulip
#

yea, that'll do it

sly monolith
#

yup no errors now, thanks lol

silent zealot
#

i checked, there are no typos

i had a typo

I'd laugh more if I hadn't done this countless times myself.

willow tulip
willow tulip
#

Also, โค๏ธ when my mod gets a mod!

red tiger
alpine swan
#

Is anyone aware of a way to get the actual WorldSoundManager.WorldSound instance involved in an OnWorldSound event? The class is technically exposed, but I can't find any part of the API that gives me visibility on it. Specifically I want to check the flags so I can filter out sounds that only bother animals.

#

IDK if its intentional or not but idle cars for example are pulsing out 80-radius world sound events that only bother animals, and I really don't want to have to just close my eyes and pull a

if instanceof(source, "BaseVehicle") and radius >= 80 then --[[ skip]] return end
dry stone
#

My final mesh.. the floppy disk case.

#

As for where the rest of my decoration went.. into the ether because I corrupted the chunk and zomboid regenerated it lol

#

do NOT place an item, then go change its item definition to be a container.

#

zomboid will become very angry

willow tulip
dry stone
#

Hey, is there any way to include more info in an item definition? Like with this

item Motherboard386
{
    ItemType = Normal,
    DisplayName = 386 Motherboard,
    DisplayCategory = Electronics,
    Icon = Motherboard,
    Weight = 1.0,

    StaticModel = Motherboard386,
    WorldStaticModel = Motherboard386,

    Tags = PZDos:Part;PZDos:Motherboard,
}

I'd REALLY like a way to list slots on the motherboard by required tag names. Like slots = [Cpu386, Simm30, Isa16, Isa16, Isa16, Isa16, Isa8, Isa8]. Then any item that has tag PZDos:Cpu386 can go in that first slot. This would help so much before the coming explosion of hundreds of parts to manually create heh...

#

I could do this by making more tags, like PZDos:SlotCpu386 but then I need separate mappings somewhere of slot tag -> part tag. It's just messier

vast pier
dry stone
#

I was reading there was some kind of custom properties in B41.. but this is coming from an AI so grain of salt

vast pier
#

not 100% certain if they can be attached to items that aren't ItemType = Weapon,

#

is the mod for b41 or b42

dry stone
#

B42 only

#

but B41 is much easier to find information about.. a lot of it carries over. A lot does NOT haha

vast pier
#

Well I mean this sincerely, IF you can put WeaponParts on ItemType = Normal then it might be your best bet for storing computer parts on the item

#

WeaponParts are persistent items, meaning they keep their data when attached.
They are attached to the item through the model definitions, and have their MountOn set in their itemscript

#

All of this sounds perfect for computer parts

alpine swan
#

setModelWeaponPart is behind a this.itemType == ItemType.WEAPON guard in zombie.scripting.objects.Item

silent zealot
#

but I'm not 100% sure on that

bronze yoke
#

you can, we usually tell people not to though

vast pier
#

You can use weaponparts without models

bronze yoke
#

each item's mod data is part of the save file so it's bloat, for something that doesn't vary per instance just something like a lookup by item type is better

dry stone
#

According to gemini you can add something like this to an item txt definition:

item Motherboard386
{
    ItemType = Normal,
    DisplayName = 386 Motherboard,
    DisplayCategory = Electronics,
    Icon = Motherboard,
    Weight = 1.0,

    StaticModel = Motherboard386,
    WorldStaticModel = Motherboard386,

    Tags = PZDos:Part;PZDos:Motherboard,

    // This is where your custom data lives
    CustomProperties
    {
        MySpecialTier = 5,
        IsLegendary = true,
        ElementalType = Fire,
        InternalID = "Unique_001",
    }
}
bronze yoke
#

and that's why we tell people not to use ai for modding pz

vast pier
#

I don't trust ai code

silent zealot
#

Ignore AI, listen to Albion

vast pier
#

I still feel like my recommendation of weaponparts could be perfect

dry stone
#

That's why I'm asking... If I could just add a couple strings with comma separated tag names that would lead to a solid design here

bronze yoke
#

there's no support whatsoever for custom blocks in scripts, custom properties go to mod data as stalker says but blocks don't do anything

silent zealot
dry stone
#

I'll look into weaponparts as a last resort.. It sounds hacky =\

vast pier
#

I feel like I'm one of the only people who have outside of the box experimented with weapon parts

#

It's relatively new due to B42 making weapon part slots not limited

bronze yoke
dry stone
#

I've already tried adding things like "Thisisnotavalidname = fun; testing," and it did NOT crash

#

I don't really have a way to confirm it.. maybe something I could type in the lua console?

bronze yoke
#

yes, custom properties are added as default mod data, but custom blocks don't do anything (or crash)

dry stone
#

Gemini's block didn't crash.. but yeah, no way to see it yet

#

so I can't confirm if it did anyhting. guessing not

bronze yoke
# silent zealot Why not? Is there a problem doing that?

mod data is instance state so it's saved per instance, multiple instances saving identical data is wasteful -- if it's something that can vary then using that to set the default value is okay, but if it doesn't vary then it's better to use something other than mod data

#

usually that alternative is a lua table, something like this```lua
local myCustomPropertiesByItem = {
["Module.Item"] = {
a = 1,
b = true,
}
}

local a = myCustomPropertiesByItem[item:getFullType()].a

alpine swan
#

@albion it should throw an InvalidParameterException

bronze yoke
#

if it can change then you have to use mod data to implement that and there's no downside to doing so

dry stone
#

I am already using custom mod data for storing computer info, like which filesystem is on which computer

#

but what I really need is some way to put that in my item def

bronze yoke
#

anything you put into an item script that is not recognised is added as default mod data

silent zealot
#

You could just make a lua table with the info you need

#

and use the itemtype as a key

bronze yoke
#
item MyItem {
    MyProperty = 5,
}

so item:getModData().MyProperty will be equal to 5

#

i'm mostly just trying to illustrate that if it's not something that you would need to be using mod data for anyway (any value that changes along with a specific instance of the item), it's wasteful to use mod data for this

silent zealot
dry stone
#

I got it to work!

silent zealot
#

OMG I just realized you could add a Download More RAM feature that increases the ram of the DosBox instance

alpine swan
#

@vast pier @dry stone You can define a weaponpart with basically anything you want for mountOn. It resolves it to an item, not a Weapon.

dry stone
#

item Motherboard386
{
ItemType = Normal,
DisplayName = 386 Motherboard,
DisplayCategory = Electronics,
Icon = Motherboard,
Weight = 1.0,

    StaticModel = Motherboard386,
    WorldStaticModel = Motherboard386,

    Tags = PZDos:Part;PZDos:Motherboard,

    test = "this",
    blah = "fun",
}

Then type this command in the lua console: local md = getPlayer():getPrimaryHandItem():getModData(); for k,v in pairs(md) do print(k.." = "..tostring(v)) end

Result in pic

vast pier
#

Are there any data storage concerns for an item with a lot of attachments? say like, 10 attachments

alpine swan
#

@vast pier @dry stone You can't actually attach them though, the CanAttachCallback and OnAttachCallbacks can only be invoked with HandWeapons

silent zealot
#

The downside is every instance of the item stores that, butt if there will not be a lot of the item that won't be a problem.

dry stone
bronze yoke
dry stone
#

the test is proof, the two unique things I put in there both appear when I dump the item's mod data

vast pier
#

It stays persistent when moved around through the attachWeaponPart function

#

I wanna clarify it's not using placeholder attachments, it's putting modData on those attachments

bronze yoke
#

yeah in that case it's not great, one weapon with 10 attachments would essentially be 11 items

#

i'm not convinced it would be *that* bad though

vast pier
#

My gun mod does this lol

bronze yoke
#

if you have 200 nails in your inventory that's 200 items and that doesn't cause problems

alpine swan
#

MAX_ATTACHMENT_COUNT = 100, incidentally

bronze yoke
#

that said, the explicit reason they added so much packing stuff in b42 is just because it tricks players into optimising their saves by reducing item count ๐Ÿ˜…

vast pier
#

it's inconsistent, may be a Vram issue on my end specifically

dry stone
#

So here's my plan.. on like a motherboard, I'll put a custom thing in my item definition like:
`PZDosSlots = "Cpu386, Simm30, Isa16, Isa16" .. I'll just split it by commas in LUA and then it's an array of tag names that can be installed in each listed part slot.

vast pier
#

My pc is 14 years old

willow tulip
#

But mainly, its just freaken cool

#

especially now that the boxes just get magiced into existence, unlike IIRC B41 actually needed items to box stuff up in?

#

(for what little B41 allowed you to box up)

#

Its honestly a pretty good solution, a nice expansion might be allowing 100 boxes of nails to be consumed by use quanity or something, or let you extract 10 or open box or something.

willow tulip
#

would also let half full boxes of nails spawn

willow tulip
vast pier
#

I can't think of a reason not to

#

Maybe I should make a mod for that

willow tulip
#

We don't even find 'nails' or indivual bullets enough for it to matter that they exist

#

Nails are prob the worst offender, but 50 boxes of ammo could honestly be drainables too

bronze yoke
#

the problem with that currently is the game very strictly expects resources to be items

#

you can't really make a recipe that wants 4 loose nails or x% of a box

willow tulip
#

Yea, you'd have to convert the recipes to just use one instead of the other

bronze yoke
#

i've seen hints around the codebase that that might be something they're working on but it's one of those things where it's not complete enough for me to really know what i'm looking at just from names

#

there is something about detaching 'resources' from items but that could mean a lot of things

willow tulip
#

also we've seen with the crucible that code that draws from item uses (especially from multiple items) is very buggy atm

bronze yoke
#

for example it could just be a replacement for the very rigid system they use to measure an item's metal content rather than anything to do with what i just said

vast pier
#

meaning each use is 1 nail

#

so in recipes it would use 4 whole nails, or 4% of a box

bronze yoke
#

the recipe system just doesn't support 'x items or x% of a drainable'

vast pier
bronze yoke
#

yeah but currently you'd need two separate recipes to do that

vast pier
#

Really ?

bronze yoke
#

and that's only to make craft recipes support it, it just wouldn't scale well to say the least

vast pier
#

I thought recipes treated use delta percents as individual uses of an item ?

#

there's a flag ItemCount that uses the entire item instead, no?

bronze yoke
#

ok you're right i have no idea what happens if you do that

vast pier
#

xd

#

Something is very wrong if I'm correct about something that you're unaware of

#

what calamity is about to occur

#

unless you're being sarcastic

bronze yoke
#

ideal to me would be only allowing loose nails but automatically taking one out of the box before crafting, but that would probably be really annoying to implement

vast pier
#

Is there a particular reason you'd want it that way instead of just implying the character does this?

bronze yoke
#

you'd probably just want the item system as a whole to understand that a box of nails really contains 100 fake nails which can be produced on demand, but that becomes a whole mess this late on

#

like if i have a timed action that requires nails for something, i probably want the same behaviour for that, and that'd be tricky without just duplicating the 'box is actually 100 nails' functionality everywhere

vast pier
#

behold.

#

duck tape

#

(it's just tape crafted from cotton/burlap)

#

Original duck tape developed during ww2 was made from cotton duck cloth, which is basically canvas.

Hence why it was called Duck Tape

#

It later became duct tape as it stopped being made from duck cloth, and was used for sealing ducts (who would have guessed)

vast pier
#

Cuz stuff like tape, and glue are some vanilla drainables that I think this would apply to

bronze yoke
#

any idea that 'timed actions' as a whole do anything is mistaken

#

it's barely a system at all

#

every timed action reimplements the exact same stuff, even item usage

#

it's persistently the system that bugs me the most to mod, you have to do *everything* yourself

vast pier
#

Truly the "do it yourself if you're so smart" functionality

bronze yoke
#

how do timed actions handle items? depends on the action, the item and who wrote it

vast pier
#

Dude it's spring time, why is there a fire weather watch at night where I am

#

shouldn't it be rainy and windy rn

#

fym it's dry enough for fire

bronze yoke
#

welcome to the future

vast pier
#

#KillAllBillionares

#

how does ConsolidateOption = , work

#

ik there's
ConsolidateOption = ContextMenu_Merge,

#

but is there anything beyond that ?

willow tulip
#

(most would just refuse to recognize the item)

dry stone
#

I thought "Duck tape" was a typo until i googled it lol

dry stone
#

I'm too slow, I just glanced my discord window to see the last message. It's late and I'm sleepy! more excuses here

vast pier
#

The cloth type is only a visual difference

#

Idk if 6 strips is high enough for the value, but it can only be made using bone glue, so I don't think it's a huge deal

#

all it's really used for is turning 2 uses of adhesive into 4

willow tulip
#

PSA: Duck tape was not, and should never be used on ducts.

#

It degrades very quickly if misused for such.

#

Aluminum foil tape is used for ducts, and that stuff is AMAZING

#

the adheasive on it is strong enough to rip stuff apart before the tape or adheasive gives up

vast pier
willow tulip
#

like 1~5 years before its nothing but fabric loosely hanging on.

vast pier
#

am I gonna implement it? nah, I'm lazy

#

but it would be neat

willow tulip
#

Honestly blacksmithing is easy enough and cheap enough to basically obsolete repairs

vast pier
#

Mmm yes let me smith my wooden baseball bat

willow tulip
#

.. Smith whatever tools you need to carve unlimited wooden baseball bats

vast pier
#

also WHY is epoxy only used for improvised metal weapons ?

willow tulip
#

Yea metal baseball bat is the only thing on that list I would ever epoxy

#

the rest id just.. make a new one

#

Whoever has actually made an engine parts maul needs to be spanked

vast pier
#

but

#

shut up

willow tulip
#

Also, try my mod realistic combat, if you'd like the mauls to be remotely usable and not use like 16x more stamina then a baseball bat

vast pier
#

WOW fiberglass tape is fuckin useless lmaoo

#

fym it can't be used as normal tape

#

It's not even like it's a good use either

#

Maintenance 4 lets you do the exact same recipe, WITHOUT THE TAPE

willow tulip
#

I think those tags mean it can be used with either?

#

... yea if its only using 2 rags then.. yeaaa...

#

lower XP but whatever

vast pier
#

you need epoxy AND fiberglass tape

willow tulip
#

Yea but it can fix anything that can be fixed with tape OR epoxy

vast pier
willow tulip
#

apparently epoxy + rag = epoxytape. totally how that works.

#

also can you fix stuff with epoxy without the rag if it just has fix with epoxy tag?

vast pier
#

I was just saying fiberglass tape sucks donkey balls in terms of use

willow tulip
#

if so, wtf is the rags for? -_-;

vast pier
#

nah epoxy can't repair on its own

#

needs fiberglass tape or rags

willow tulip
#

Although TBH, Im kinda tempted to try epoxy + denim to repair stuff IRL

vast pier
#

ignore the fact you can't use leather strips ??? only cotton or denim

willow tulip
#

sure I have some fiberglass cloth somewhere but... Denim!

#

leather wouldn't let the epoxy really soak in

#

I feel like rags/denim + epoxy would basically be a composit material like fiberglass

vast pier
willow tulip
#

Prob better then typical fiberglass, because most fiberglass is polyester resin, while epoxy is... i forget resin.

#

..epoxy resin?

vast pier
#

gameplay wise it doesn't make sense for leather strips to be ignored

willow tulip
vast pier
#

If you're only ever hitting zombies, it should be relatively untouched

#

other than like, the pole maybe

#

or your wrists

willow tulip
#

yea Id bet on it even getting through several doors

#

thud.. thud.. thud.. 2 hours of thudding later "HERES JOHNN... oh.. they left already.."

vast pier
#

If we think too much about it, there's not a whole lot of reason why the mauls can't be used as sledgehammers

#

yeah sure the sledgehammers would be less tiring, and better at it overall

#

but I can't imagine a cement bucket maul NOT putting a hole through a brick wall ?

#

maybe I'm just stupid

#

idk

willow tulip
#

Pretty much only reason is responsability to not sledgehammer entire towns

#

Me screaming at my friend to use the sledge responsably because we can't replace walls/etc and lots of stuff can be just taken apart with a torch or whatever -_-

vast pier
#

ngl at that point it's just a skill issue

#

I say let the mauls be sledges

willow tulip
vast pier
#

also why does the sledgehammer icon have a ballsack

#

the modern additions don't have this quirk

vast pier
#

People tell me I complain about things a lot, but I always try to explain to them that it's out of passion and wanting things to be improvied, not out of malice and bitterness

#

I also try to not complain about things without offering solutions/alternatives

#

If the concern is purely just "breaking" progression, then make it so using improper sledgehammers to be slower, and more damaging to the item.
generally just more inefficient due to their added weight and poor shape preventing good force distribution

#

(Devs will never do this because it means you could get a sledgehammer through welding levels instead of blacksmithing)

willow tulip
vast pier
#

the idea of breaking progression being possible in a "realistic" apocalyptic survival game is a bit silly in and of itself

#

If it's too realistic then "breaking" progression gets easier, so you have to make it unrealistic to pad out progression time

#

It romanticizes improvising supplies and planning ahead, but being too good at improv means you think of things that make the game too easy

#

ugh I'm just yapping at this point

#

I just wanted to show off my duck tape lmao

vast pier
willow tulip
#

blacksmithing is basically limited only by fire starting sources

vast pier
willow tulip
#

shrugs could be adjusted. but yea

silent zealot
#

Is a sledgehammer even needed for "progression" these days? Since you can disable security shutters with a welding torch.

#

So a sledge is just for the "destroy" option that is honestly far more useful for playing The Sims and making a nice base than anything else.

silent zealot
vast pier
#

(No)

silent zealot
#

hahahaha

#

Add an option to reskin chickens and update the translation strings to "duck"

vast pier
#

Mmm yes my survival crafting mod that adds in bone glue, craftable paintbrushes, a new type of tape, craftable umbrellas, andโ€ฆ. Renames chickens to ducks.

#

Sounds about right

vast pier
silent zealot
#

But with enough wood charcoal you can go from zero to ten by taking bars, cut them into half bars, cut those into quarter bars, cut those into chunks, forge back into bars.

silent zealot
willow tulip
#

Sounds like something a blacksmith would make his apprentice do when business is slow

vast pier
vast pier
#

It should be something wilderness survival friendly

silent zealot
#

tarp should already be waterproof.

willow tulip
#

waxed denim is basically oldschool canvas tarp

willow tulip
vast pier
#

Well yes wax is the logical solution, but wax doesnโ€™t exist in vanilla

willow tulip
#

Beehive -> Wax + Honey. Honey -> Sugar (if needed)

#

maybe see if you can sting em a couple times for picking it up too

vast pier
#

Iโ€™m trying to not add items that are minimal uses

silent zealot
#

So invent wax. And beekeeping. And soybeans -> soywax.

Just to make an umbrella.

#

Hair gel?

#

Glue?

willow tulip
#

Candles?

silent zealot
#

Epoxy?

willow tulip
#

Candles exist. And yea, glues

#

Candles exist and are nearly useless so

silent zealot
#

candles! that's good, at least if you don't need them to be craftable without urban scavenging

vast pier
#

Which uses the glue tag

silent zealot
#

I'd go with that over adding wax, unless you want to add other uses for wax like... making candles that no-one uses?

willow tulip
#

And so small mod authors wouldn't need to worry about the model/icon for so many items

silent zealot
#

Like a "community resource pack" of common stuff?

vast pier
willow tulip
#

Doesn't add it by itself t othe world (Except maybe if a mod registers its 'using them' it could add it to loot tables?)

willow tulip
#

@forest mortar Sweet!

silent zealot
#

I think it would have to be that way, otherwise if two authors add "wax" now there are double spawns

willow tulip
#

So you beat me to a mod I was very slowly working on :0

#

Id love it if you could change the format around a little to how I kinda hoped people would override things

silent zealot
#

Also, it could include .22 ammo and .50 BMG and pretty much every other round in one consistent place instead of every gun mod doing their own thing

vast pier
silent zealot
#

A lot of filler items are more about "this is useless junk"

#

like a judges gavel

willow tulip
vast pier
#

Okay but why arenโ€™t calipers a melee weapon

silent zealot
#

they just m,ake it so there is stuff in places that shoudl have stuff in them

willow tulip
#

@forest mortar If its any help to your mod this is what I had thus far:

silent zealot
vast pier
#

Could say the same about other improvised weapons

willow tulip
#

No other files required, the existing realistic car physics lua will take care of all the patching

silent zealot
willow tulip
#

(although I guess I might need to change that containes() for b42.15 to not have the \ )

silent zealot
#

Now if those calipers had a sticker on them saying "FOR REFERENCE USE ONLY" that would be different

forest mortar
silent zealot
#

Just because the world is ending doesn't mean you can slack off on ISO 9001 compliance!

vast pier
#

Have it โ€œbreakโ€ after one or two hits, where it then turns into a melee weapon that canโ€™t be used for the calibration recipe without being repaired

willow tulip
vast pier
silent zealot
willow tulip
#

(and potentially, even add new engine sounds if you felt like poking at that at all!)

#

@forest mortar I mean feel free to keep the structure of your data file the same. I just think adding directly to the list is simpler. If you have any feedback on the process do go ahead! I tried to make it moddable by others but didn't write any instructions on that yet -_-;

#

I was gonna write a W900/RCP patch mod to show off how to do it, but then @knotty stone added RCP changes right to his mod.

#

Ideally, id love KI5 himself to adopt the changes to damnslib or something so he'd have his own control over it all.

silent zealot
willow tulip
#

@forest mortar But basically the jist of it is local carData = require "Realistic_Car_Overhaul_Data" gives you a table you can add to, without having to do any other work

#

(more compatible if other mods add/change stuff. or if I do)

forest mortar
#

Yeah your way sounds simpler TBF!

willow tulip
forest mortar
#

Great mods btw, I was a huge fan of my summer car and PZ has always been as much a car game as it is a zombie survival one whenever my mates and I play it haha

willow tulip
#

Thanks!! I was hoping to see some more mods that did the overhaul data so it was really cool to see your mod pop up!

#

saves me from having to look up the rest of the KI5 cars too lol.

#

Might wanna double check the mini and charger etc, the extremes of the HP/weight ratios.

#

Internally, what happens is 'overhauled' HP is multipled by 4 to make a 'vanilla' hp

#

so a 200HP car has 800 'vanilla' hp

#

while a 100HP car has 400hp

#

I felt this went well with 1990's car's being very often in the 100~200hp range.

#

(and most vanilla cars is 400~800hp)

#

Basically the point was to make the mechanic HP display actually look sane

#

and actually have different cars drive differently.

#

but I recommend not giving a <2000kg car over 300hp lol.

silent zealot
#

600hp in real life for my favorite KI5 vehicle:

willow tulip
#

(or do, I dunno!) but mainly every american car had like, 5~10 engines available, so you can kinda pick and choose HP values for a lot of things.

willow tulip
#

really cool at smashing stuff but still no huge acceleration

silent zealot
#

I once got to do donuts in a vehicle with 4000 brake horsepower.

#

Was doing IT work on that tug while a trainer was onboard, there was a wait before a ship was ready so I got to spin around in the middle of Botany Bay.

#

I think the trainer appreciated that when his laptop was infected with gay porn malware I just fixed it and didn't ask questions/judge

willow tulip
#

@forest mortar But yea, for 95% of cars, stock weights should work fine, just pick a reasonable engine from the list that wikipedia says they where available in lol.

#

(but extremely heavy cars may cause issues for other cars hitting ragdolls nearby)

forest mortar
#

Ok fair enough. I gave the mini 500 hp in testing and that was quite fun lol

willow tulip
#

hahahaha.

#

Yea, also the friction settings if you do that :0

#

next update will restore car collisions btw.

silent zealot
#

500HP mini? Fast and Furious '93: The Kentucky Job.

willow tulip
#

lol

#

Kinda wanna readjust zombie/plant collisions to not depend on mass while im updating RCP though.

#

(in vanilla.. the slowdown from hitting zombies/plants increases with your car mass, so that heavy vehicles are slowed down the same as light ones..)

#

I... don't get why.

#

I ignored it at the time since cars only had a spread of 800~1400 mass and it hardly mattered much, but now with RCP overhauling masses into the 600~10000 range it just bugs me -_-;

silent zealot
willow tulip
#

Right? -_- heavy cars are slower.. but that slowness should at least come with... mass.

silent zealot
#

An ultralight sports car and a 12 tonne truck should behave very differently when hitting a small bush.

neon saffron
#

so i've been making a gold bar , I have an .X model of it in media > models_X , do i need to write a specific path?

#

as in models_X/GoldBar

silent zealot
#

Not using the vanilla gold bar?

#

but no, if you put the modle directly into the models folder you don't need to give it a path

#

BTW> you can use .fbx instead of .x, which has far better support and in my experience is a lot more reliable.

#

Blender doesn .fbx natively, .X needs extra script and there are different versions and it's all just weird

#

Very important: you need to rename the model, as "GoldBar" is already a vanilla item & model definition.

#

media/scripts/generated/models_items.txt

still ibex
#

uh guys

#

how extensive is the pz lua api\lib ?

#

and what can u do with it

neon saffron
silent zealot
#

in that case, no conflict.

neon saffron
#

i'll use my custom model just in case

silent zealot
#

Though it's still good practice to ensure unique names

#

Otherwise another mod that adds GoldBar will conflict

#

Like the time my assault rifle turned into marijuana because the gun modder careated Base.AK47 The Gun and the drug modder created Base.AK47 the Marijuana Strain

neon saffron
#

honestly does anyone even play b41 atp

silent zealot
#

Some people do because they want stability, but IMO if you want stability you don't get new mods.

#

And I expect there are established Multiplayer servers that are still on B41

#

Butt for modding, I personally consider it a dead end.

neon saffron
#

shit

silent zealot
#

But if you play B41 and want a mod, go for it.

neon saffron
#

and until i figure out how to port it to b42 itself.

#

oh yeah , gold katana too :)

silent zealot
#

For your mod to go to B42 it's probably just:

  • New folder structure
  • Redo all recipes with new structure
  • some changes to item scripts, nothing major
  • redo translation files to json format (very easy)
#

And you'll be able to make use of thing like the vanilla ability to melt down gold from gold items (jewlery etc) with pre-made gold items as crafting ingrediants

neon saffron
#

perhaps

silent zealot
#

The models & textures won't change

neon saffron
#

actually i think it would be better to make separate B41 and B42 versions

silent zealot
#

Entirely possible, you can even package them together in one mod and B41 reads one set of files/B42 another

neon saffron
silent zealot
#

I think there are a few guaranteed spawns.

#

Plus melting down godl jewlery.

neon saffron
#

ยฏ_(ใƒ„)_/ยฏ

#

lvl 6 metalworking , katana + 5 gold bars sounds reasonable imo

silent zealot
#

If people install your mod they want to be able to make use of it so don't make it needlessly hard.

neon saffron
silent zealot
#

Is the gold plated katana aany better, or just gold colored?

neon saffron
#

it's about 1.75X better than the original in most of the aspects , except the weight

silent zealot
#

Well approximately no-one will see that given that getting a katana is already stupidly hard.

#

They are rarer in B42 due to expanded loot pools.

neon saffron
silent zealot
#

what other gold weapons?

neon saffron
silent zealot
#

there are no gold weapons in vanilla

neon saffron
silent zealot
#

There are craftable gold cups, maybe plates, cutlery and... hurricane lanterns.

#

Not sure if those ever show up in the world, I've not seen any.

neon saffron
#

should i make the gold weapons natural spawns or make gold bars simply a rare find for crafting them

silent zealot
#

Up to you, either works.

#

And there is the sneaker clever modder choice: make it configurable in sandbox options

#

Then you don't need to work out what is best for everyone, just have OK defaults and let everyone adjust to taste.

neon saffron
#

but like i said , i'll get to it when the time comes

neon saffron
#

so i came up with this:

100 Money can be exchanged at an ATM for a gold bar , though i'll have to boost wallet/money spawn rates on zombies in B41. as far as i know , money doesn't spawn in zombies' wallets on B41.

neon saffron
silent zealot
#

What is "categories= Improvised"

#

Is that a thing in B41?

neon saffron
#

improvised weapons , no? pens , that kind of thing

silent zealot
#

But

#

in the ggame scripts

#

is a pen "Improvised"

#

Or is it smallbalde?

neon saffron
#

Improvised

silent zealot
#

OK, that's what I wanted to check - B42 uses a tag system so there are multiple tags in improvised weapons

#

Next up: type

neon saffron
#

uhh

#

Normal

#

?

silent zealot
#

is a pen a weapon in B41?

#

that type is critical because it defines the java class used for an item

neon saffron
#

i think so , i found it items_weapons

silent zealot
#

Also, warning: if you change the type then all existing instances of that item are destroyed on next game load.

neon saffron
#

noted

silent zealot
#

...which is how I made all the underpants in Kentucky vanish overnight.

neon saffron
#

local florida man steals all of underwear from kentucky

#

but still , what's the solution?

silent zealot
#

If you want it to be a weapon, you need to make it category weapon.

#

And have other appropriate properties, but you can look as something like a wrench to see all those.

#

Then you need teh model to have correct position/scaleing/rotation so it shows up in the hand correctly.

#

Did you make the model for this goldbar or is it an existing Zomboid model?

#

If it's an existing one, may or may not work if they only ever intended it as a world item... but try it and see

neon saffron
neon saffron
silent zealot
#

I probably meant type or itemtype weapon

#

Whatever B41 uses

#

But look at existing vanilla items to see what they use

silent zealot
#

When it comes to generating. X, if it doesn't work the first bit of advice will be to use .fbx instead

#

.X is old and depreciated

neon saffron
#

this icon looks awful ngl

#

looks like a sponge

nocturne crag
# neon saffron this icon looks awful ngl

I have no idea what you guys talking about, but if I had to guess, looks like a can of sardines (although a bit bright and plastic looking), soap, gold ingot or a small container. Idk if that untainted opinion helps

neon saffron
#

There , much better

neon saffron
#

i changed the type to "Weapon" , but kept the category.

#

oh yeah , and the model was converted into .fbx .

vast pier
#

Edited the textures to have stitching

buoyant violet
#

You are now rihanna

neon saffron
#

41.78.18 to be exact

vital karma
#

anyone know what function to call to mechanically medical check someone in b41?

trail aspen
#

why has no one made a mod that adds dusty texture to furniture and objects yet? simply no one has had this idea until today, is that it?

bright fog
digital osprey
#

is there any way i could get the actual moodle width? having a hard time trying to get the moodle ui instance. looping through UIManager only gets me the clock, speed controls and timed action bar, and getting the value from the options only returns the option number.

bronze yoke
#

use UIManager.getMoodlesUI(playerIndex) to get the player's MoodlesUI instance

#

since moodle rendering is weird and special i can't guarantee getWidth()'s result will actually be accurate

digital osprey
#

thank u anyway, ill test that and come back to u soon

vital karma
bronze yoke
#

i don't

vital karma
#

damn

#

its all g I will figure it out if i spent hours looking into the docs

bronze yoke
#

it'd probably be faster to open up the vanilla lua for medical check and just see what it does at the end

vital karma
bronze yoke
#

it's lua, it's not compiled

#

you can just open up your game files and go to media/lua

vital karma
#

oooh cool oki will look there

digital osprey
# bronze yoke i don't

yeah x/width seems to work perfectly fine when changing the size in options, thanks for that! took me more time than i want to admit to find the typo though ๐Ÿ˜„ its getMoodleUI for reference ๐Ÿ™‚

vital karma
silent zealot
silent zealot
#

I'm playing Crimson Desert (because obviously I love sandbox games with janky UI, questionable design decisions and zero story...) and it's crazy how there are half a dozen different approaches to try and mod the game and from the comments players are cool with:

  • DLL overide hacks
  • ASI Injectors
  • unsigned executables Windows tells you not to run
  • batch files with embedded powershells scripts that bypass executionpolicy
  • ignoring malware warnings on random downloads that Nexus mods blocked for being suspicious
  • Replacing entire game files just to change two bytes

And yet they act like installing python is so scary that no-user should ever be asked to do that.

neon saffron
#

alright then.

dry stone
# silent zealot I'm playing Crimson Desert (because obviously I love sandbox games with janky UI...

I mean, as someone who's last mod was based on SKSE which is straight up putting me into SkyrimVR's memory space, I'm cool with that. And with python being terrifying --- literally the past few days, one of the biggest python packages just got caught stealing all SSH keys, cryto wallets, etc etc... Python is way less secure than your average DLL mod because who knows what's in that dependency tree.

silent zealot
#

I'd still rather have python and a script I can look at.

#

Especially since the executables are all compiled python

dry stone
#

Imagine you're an evil hacker, hell bent on stealing and causing harm. Do you go for the python package with 12 billion daily downloads, or for a tiny little known mod for a game...

silent zealot
#

Both!

dry stone
#

damn, you really min-maxxed that reply..

silent zealot
#

hahaha

#

If you have a malicious python package then compiling that into an executable for people to run while clicking Go Away Windows Defender isn't going to help...

dry stone
#

.like my real point here is python is legit kinda "watch out, no really". I say this as someone who likes python and uses it a lot

silent zealot
#

The "everything is online to download" approach to software really annoys me because at work I deal with a lot of secured systems that do not have any internet access (by design)

#

And some software has abysmal offline installer support.