#mod_development

1 messages ยท Page 84 of 1

bronze yoke
#

isServer() and isClient() will never return true

pulsar heath
#

hmmm im having a weird bug not mod related...

#

whenever i turn obs on and capture the game or the screen that has the game

#

the mouse cursor in the game doesnt show... but it shows on othe recording and preview from obs

#

wtf...

thick karma
#

๐Ÿคช

#

Thanks, this has been terrible programmer jokes

#

I'll be here all week.

bronze yoke
#

๐Ÿ˜”

thick karma
#

โค๏ธ

small topaz
#

will this also trigger the function when in singleplayer?

cosmic condor
vast nacelle
#

If you need it to work in SP as well as on the Server but not on an MP Client, you'd need
isServer() or not isClient()
I think

bronze yoke
#

not isClient() is sufficient

mint helm
#

This pertains to my mechanics level right?

pulsar heath
#

aaaaaaah finally... sp integration mod DONE!

#

next work on the mp version... next week perhaps

small topaz
pulsar heath
#

to be honest im still figuring the server stuff out

drifting stump
#

isServer returns true for servers

#

isClient returns true for multiplayer clients

pulsar heath
#

but thats something for the me in the future to worry about, for now i can relax

drifting stump
#

both return false in singleplayer

thick karma
#

Wooohooo!

#

Oh yes

#

Mouseover tooltip using gamepad

#

Let's go

drifting stump
#

holy broken ui

thick karma
#

Holy fixed UI

#

This is 4x font

#

It is broken in vanilla

drifting stump
#

yeah i know

thick karma
#

In vanilla you cannot read most of the names of clothing categories

pulsar heath
#

@sour island if you remove the getfreeheli function please let me know... my mod is leeching on that to trigger events ๐Ÿ˜„

thick karma
#

And you cannot read the skin color and such at this font either

sour island
#

Not going anywhere

thick karma
#

I also added bumper-based jumping down the menus

#

Hold L1 to jump down 5 at a time, R1 10 at a time, both 20 at a time.

#

No more finding my mouse to scroll mods

#

Wheeeeeee

pulsar heath
#

everyting is working properly, no bugs, no errors, no impact in game performance.... it was stressing so far but i feel fulfilled... for now

bronze yoke
pulsar heath
#

and in realtime events config

bronze yoke
#

if true, singleplayer, otherwise multiplayer

young pasture
#

I already set min and max dmg of item to 0, but it still damages player. Why?

pulsar heath
#

so im quite happy with the end result

thick karma
#

If only I could make the sort work (without consequence) ๐Ÿ˜ญ

small topaz
dull moss
#

Trait description does that

humble oriole
#

Is there a list of animations and sounds anywhere or do I have to dig through code

neon bronze
#

how can you define your own equipregions for items?

#

like the ones for backpacks and such

fast galleon
#
local createPanelPatch = function(originalFn)
    return function(self,page)
        local panel = originalFn(self,page)
        
        if page.name == "modPageTranslated" then
            --create a new tickbox and add to panel
            --you can change the panel as you want here, add any element you want
        end
        
        return panel
    end
end
--depending which one you need to patch, SandboxOptionsScreen runs on main screen (only?), ISServerSandboxOptionsUI is the one people usually open in-game to change options
ISServerSandboxOptionsUI.createPanel = createPanelPatch(ISServerSandboxOptionsUI.createPanel)
SandboxOptionsScreen.createPanel = createPanelPatch(SandboxOptionsScreen.createPanel)
#

customize your sandbox options pages, there's also the option of setting a page.customui function

pulsar heath
small topaz
#

Is it possible to store objects different from string and numbers in the ModData?

bronze yoke
#

yes, the 'string and numbers only' thing was changed in 2015 (i can't find the patch note for this anymore but it was definitely quite a long time ago) (it was 2013 lol)

#

you can store any normal data type (no functions or instances of objects or weird stuff like that)

small topaz
#

cause "no instances of objects"...? at least I tried and it didn't work for me...

bronze yoke
#

yeah no inventory items

small topaz
#

hmmm....

astral dune
#

you can send inventory items in a command, but not save it in moddata? thats a shame

ancient grail
small topaz
#

So what I can do is casting the reference to the item to a string which is then a string like "zombie.inventory.types.Food@16f76dab". This string can then be stored without any problem. But can I conversely convert this string back to a reference for an inventory item?

humble oriole
#

can you specify which side of the object to walk to when doing walkadj? like if I wanted players to always walk to the east side of the object to perform an action?

ancient grail
#

You can probably save like part of it like title cuz thats a string. But maybe an entire thing about an obj isnt possible

But xyberviri did a thing where you can store a vehicles moddata on an item and then deploy that item

Like a pokemon and pokeball

But maybe it changes the id

ancient grail
#

Question

What will happen if theres a global var
But then on a function u made same nane var but made it local

#

And vice versa

neon bronze
#

can anyone tell me how you can define a custom equip region for items in the likes of CanBeEquipped for bags?

small topaz
wheat kraken
#

i was searching and found, maybe its will be useful for someone, to disable fall damage:

DisableFallDamage = DisableFallDamage or {}

function DisableFallDamage.onPlayerUpdate(player)
    player:setFallTime(0);
end

Events.OnPlayerUpdate.Add(DisableFallDamage.onPlayerUpdate)
fossil folio
bronze yoke
#

the variable with the smallest scope is used

ancient grail
#

Good to know

#

Thanx guys

sour island
#

I notice handWeapons have a noise factor - but it doesn't appear to be used anywhere?

#

Anyone know how to determine the noise of a weapon, specifically a gun?

torpid jay
#

Hi, I have a question how I can start making Mods, Do I need a repo to clone, I am new to this stuff, but I have experience in Coding

sour island
#
local radius = weapon:getSoundRadius();
            if isClient() then -- limit sound radius in MP
                radius = radius / 1.8;
            end
            character:addWorldSoundUnlessInvisible(radius, weapon:getSoundVolume(), false);
``` hmm
dull moss
#

anyone knows how to reach author of superb survivors? Dude hasn't left a single reply on mod workshop page in months and on github last activity was 6 months ago

sour island
#

Nolan? or Andre?

#

Nolan is active in his own discord

#

The sub-mods/patches have been incorporated and stopped updating in response

dull moss
hot patrol
#

How does the keyring work to auto equip and show in your bag bar without you needing to do anything?

high cloak
#

are there any mods that add/edit tv or radio channels? i'm looking into doing something related to this but i can't really make sense of the code from the base game

ancient grail
ancient grail
#

I spy with my little eye
Someone with mod idea

vast nacelle
hot patrol
#

gotcha

#

thanks

dull moss
#

I'm just trying to make 1% of it that doesn't work with superb survivors work

ancient grail
#

Im refering to the dude above your post

dull moss
#

Oh

#

Yes

#

"idea"

small topaz
#

When I have a string like "zombie.inventory.types.Food@16f76dab", can I somehow access the item it refers to?

ancient grail
#

His going to be famous soon. Every modder knows his name

ancient grail
#

Thats the item

#

Ow wait as string

#

Havent tried

#

Maybe not... Hmmm... Is there a toobject() function? I guess not

astral dune
#

you probably can't, I assume the @16f76dab is its memory address, which won't be valid after reloads and such

small topaz
ancient grail
astral dune
#

when's the perfect time?

ancient grail
ancient grail
#

Why did you need to store it as string anyways? You can just store it as it is using moddata

small topaz
# ancient grail Dont convert it to string i guess

I want to store the item via getModData() but you cannot store items. So I tried to store the string (which is possible) and then somehow retrieve the item from it. But probably also not possible as @astral dune wrote.

astral dune
#

I don't know what the standard procedure is to store an item, but I would look at the itemfactory to see what methods it has

small topaz
astral dune
#

probably something like storing its full type and moddata or something like that, so it can be recreated

ancient grail
#

Ow yeah albion just mentioned that earlier

small topaz
ancient grail
#

You can also pull it from getScript

small topaz
ancient grail
#

Or was it getScriptManager
Or... Wait let me check

ancient grail
#

getScriptItem

ancient grail
small topaz
astral dune
#

ya, what are you trying to do exactly

wide oar
#

i found my coat ingame, does anyone know why it says this

#

im wearing a regular leather jacket, i dont see how its worse than that??

small topaz
# ancient grail Or better question is.. what is it that you are trying to do

@ancient grail @astral dune I am still trying to change the icon and the textures of some of those items. Problem is that the item:setTexture() command is not save-game-persistent i.e. it will receive the default icon after reloading the game. One idea of mine was: store all the relevant items in ModData and whenever game is loaded, apply the correct texture and icons. But ModData probably won't do the trick...

dull moss
#

get naked, get your trenchcoat on, then go through your unequipped clothing to see which one does it compare to

ancient grail
dull moss
#

from the looks of it it compares to bulletproof vest

dull moss
#

its only item in game that has 100% bullet protection on torso i think?

ancient grail
small topaz
# ancient grail Use DoParam

I only want to change the icons of some instances of the item, but not for all of them. So one instance should have icon1, the next instance should have icon2 and so on but they all should belong to the same item type. DoParam will change the icons and textures of all instances afaik.

ancient grail
#

No it wont

#

It will only change that item

#

Heres me on one of the servers im an admin on.
The beerbottle is do param based

#

Its actually a flash light

#

Anyways way too sleepy.. goodluck @small topaz hope u make it work

Also i got an idea out of this thing u are trying to do

We can create animated icons

small topaz
vast nacelle
#

@small topaz It's just the icon texture that needs to change, right?

small topaz
vast nacelle
#

Then this should work I think.

function ISInventoryPane.refreshContainer(self)
    local it = self.inventory:getItems();
    for i = 0, it:size()-1 do
        local item = it:get(i);
        local modData = item.getModData().RazabsNewIcon;
        if modData then
            item:setTexture(modData);
        end
    end
    oldRefresh(self)
end```
#

Before the inventory pane draws itself, getting all the items in the pane's associated container and checking if there's a mod data entry with your alternate icon

small topaz
dark wedge
vast nacelle
small topaz
#

there is a set function afaik. so I can try. but if the item is rendered in the world before you access it via any menu, you will probably see the item in it's old texture.

unique fog
#

hi is there anybody on could help me with some basic mod im trying to do in blender?
im trying to make an envelope for a mod but i cant find any tutorial to cut the cylinder in half

vast nacelle
#

You're in Object Mode.
You'll need to switch to Edit Mode by pressing Tab or changing the drop down box in the top left

humble oriole
#

anyone have an idea why I would get this error?

#

LOG : General , 1673760283411> 38,265,815> ERROR: sendClientCommand: can't save key,value=2.0,zombie.iso.objects.IsoThumpable@69330f91

calm depot
#

you're trying to send a Java object across the wire

#

you need to send a built-in lua type, so, something that can be used on the other end to look up the IsoThumpable object

humble oriole
#

ah, damn, I figured as much but wanted to confirm

#

x/y/z it is haha

jaunty marten
#

any way to get in-house light source obj without light switcher obj to remove it?

autumn sierra
dark wedge
humble oriole
#

What's the difference between getUsedDelta() and getUseDelta()?

calm depot
#

if memory serves, say you have a propane torch with 80% fuel

#

getUsedDelta() is 0.2

#

getUseDelta() is 0.8

humble oriole
#

lol, half full vs half empty eh?

tardy wren
#

Is it just me or do antidepressants suffer from rounding errors with their useDelta?

#

You seem to get an extra pill out of them

calm depot
#

I wouldn't call it a rounding error

#

the same is true of thread

#

if it has less than the amount normally consumed, but more than zero, it will let you use it

#

@dull moss I think ETW has a bug; I had a character with 0 unhappiness/boredom/stress who was ticking down their agoraphobia score whenever they were outside

hot patrol
calm depot
#

according to the spreadsheet, it should be ticking up, not down

tardy wren
#

Regardless. Speaking of thread... I assume there's no built-in way to make items stack on creation automatically?

#

As in, when you rip clothes for example and get thread, any way to make the created thread merge with any existing thread you have?

calm depot
#

@humble oriole I take it all back, getUsedDelta doesn't exist

#

there is only getUseDelta, and it represents the configured usage delta amount

#

e.g. if the useDelta is 0.01, each "use" of that item will remove 1%

humble oriole
calm depot
tardy wren
#

Then maybe I'll handle spawning the drainable via the same event...

calm depot
#

@humble oriole ah I see, that's from the Drainable interface

calm depot
#

then, getUsedDelta is an absolute value from 0-1

#

getUseDelta is how much each use should consume

dull moss
#

when you go up you get it

#

oh wait

calm depot
#

I was outside, and it was ticking down into negative territory

#

I print()'d the value every few seconds from the debug window

dull moss
#

i might have swapped things around, shit is so annoying

#

xd

calm depot
#

I noticed this because I randomly acquired the negative trait

#

so I reset the var and then observed it

dull moss
#

wait can u reset the var from in-game?

#

or did u do it in file or something

calm depot
#

sure, you just bring up the debug window

#

you can run any code you like from that prompt

#

it's basically a lua REPL

dull moss
#

oh coll didnt know

#

u mean the lua window?

#

right?

calm depot
#

yes

dull moss
#

cool

#

ah yes im adding it instead of substracting

calm depot
#

literally unusable, unsubscribed.

humble oriole
calm depot
#

then, getUsedDelta is an absolute value from 0-1
getUseDelta is how much each use should consume

#

the Item class also has getUseDelta, but doesn't implement the interface

#

Quality.

#

but that's OK, because the interface only has the member getUsedDelta, so that obviously isn't confusing at all

#

@dull moss oh and in regard to bloodlust documentation: isn't it true you can only access what it does from the character creation screen?

#

it's not uncommon for people to either add a mod to an existing save, or simply forget. You shouldn't need to go into character creation to find out what a trait does

#

(unless the only way to gain the trait is through character creation, since then you must have expressly picked it yourself, and therefore know what it does)

dull moss
#

@calm depot if only there was a mod for that KekW

calm depot
#

But I didn't have the trait in my list, just a moodle

#

So I get it to the green zone and I'm left wondering what the positive effect actually is

dull moss
#

Well I'm not going to put whole bloodlust system description into it

#

nothing

#

It just indicates if you earning it or not

calm depot
#

See, that's a great piece of information

#

But I only know that now because you personally told me

dull moss
#

fair point

calm depot
#

If you're inventing new game mechanics, give them some limelight

dull moss
#

it's in the sheet

#

but ye should be in game too

calm depot
#

The sheet tells you how to get it, but doesn't explain the Moodle or what it does

#

In mods like more traits, it's impossible to encounter features without going through character creation

#

With ETW, that's not the case

#

So you need to give a bit of a sales pitch ๐Ÿ™‚

dull moss
#

Do I include your ACTUAL progress to getting trait in moodle?

#

I was planning to making it visible eventually on new character tab

#

eh i'll leave it at this for now
"My Bloodlust Meter is filled up to %1 percent.<br>Being above 50% will earn me the Bloodlust Trait eventually, being under 50% will regress my progress",

#

not sure if <br> works, gotta test xd

calm depot
#

You also have some grammar errors in the tooltip strings for the moodle

#

I forget which level though

calm depot
#

Something about killing zombies getting fun

dull moss
#
    Moodles_BloodlustMoodle_Good_lvl4 = "God, I love culling undead",
    Moodles_BloodlustMoodle_Good_lvl3 = "This is definitely a well-spent time",
    Moodles_BloodlustMoodle_Good_lvl2 = "Not the worst way to spend some time.",
    Moodles_BloodlustMoodle_Good_lvl1 = "This is slightly fun",
    Moodles_BloodlustMoodle_Bad_lvl1 = "There's barely any joy in this",
    Moodles_BloodlustMoodle_Bad_lvl2 = "This is boring job, but someone has to do it",
    Moodles_BloodlustMoodle_Bad_lvl3 = "Killing few zombies would is not the worst thing",
    Moodles_BloodlustMoodle_Bad_lvl4 = "I really don't feel like killing any zombies",
#

which one

#

oh

#

kek

#

Moodles_BloodlustMoodle_Bad_lvl3 = "Killing few zombies would is not the worst thing",

#

I started writing something else

#

and switched

calm depot
#

Yes, also:
is boring job -> is a boring job

#

Same for "killing few"

dull moss
calm depot
#

We are in Kentucky, not Soviet Russia, tovarischch ๐Ÿ˜

dull moss
#

bruh

#

me smoll brain

#

me english bad

calm depot
#

I think I'll just mod the strings to be something you'd expect Moistcritikal to say

dull moss
#

is there a way to align it or something?

#

or do i have to break lines manually

calm depot
#

Break those lines

dull moss
#

How do you like the mod in general

#

I didn't get a chance to play with it

calm depot
#

My friend was able to quit smoking, he rates it 10/10

dull moss
#

I also like that i made it that you can quit smoking even when you rarely smoke

calm depot
#

I like it, you can balance everything as you wish and it gives you more shit to ~metagame~ work towards earning

dull moss
#

instead of "dont smoke for 45 days"

#

"I like it, you can balance everything as you wish"

#

endgoal achieved

#

I'll be thinking on more interesting ways for the rest of traits instead of jsut reach level x

opaque fiber
#

hello. is there any guide on how to make a clothing.xml file with custom assigned outfits for a mod?

calm depot
#

That bloodlust Moodle icon causes me physical pain though

dull moss
#

for carpentry i think there's dismantle action?

#

why

calm depot
#

It doesn't gel aesthetically with the game's moodles

dull moss
#

I work with what I have sadge

#

any ideas for better one though?

#

I kinda like it tbh

calm depot
#

It's not actually an issue, I might have a crack at it though

#

I was thinking of taking one of the faces in the base game and messing with the eyes

dull moss
#

oh that'd be cool

#

ahhaaha

#

anger icon

#

but with these eyes

#

ahahahha

calm depot
#

That's basically what I was thinking

#

20% badass, 80% comical

mint helm
#

Are all maps linked together? Even modded ones?

opaque fiber
opaque fiber
#

ok so i redid the whole thing using zombieszonedefinition.default

#

the problem remains though, a portion of the zombie population remains hatless

#

and im kinda out of ideas

opaque fiber
golden sparrow
#

There's Authentic Z also you can look around the mod files

opaque fiber
#

true, i did have a look at authentic z's files

#

but that mod aims to achieve something a bit different

#

it utilizes most of the zombieszonedefinition spawn-area/zone types to add more variety, meanwhile im just looking to add a hat to every single zombie that spawns

#

i guess i could get every single zone type and insert the hat for every single one of those zone types, but that could potentially conflict with other maps in the odd chance they utilize custom zombie distributions etc

vestal geode
#

Hey there, I'm just writing a mirroring fnc for my construction site tiles for wallLike tiles. They need to get mirrored in some cases to ensure they will always appear on the "inner side" (opposite of faced direction, similar to the walls themself).
This also works fine, but now I'd implement multi-tile support.
So my question is: Are multi-tile structures limited to rect's or can/could tiles receive arbritrary adjacent geometry as well?

#

e.g. geometry like such things:

fast galleon
#

tilezed has the option of 3x3 combinations

vestal geode
fast galleon
#

no, you have a sprite and you select group, facing and a square e,g 2,1

#

so you can have 5 sprites and combine them

vestal geode
#

Ah, I see. Thanks, never had to create multi tiles. I'll give it a try and play around a bit and check whats possible and what not

drifting ore
#

The only part of that i didn't end up figuring out or don't believe is possible is having more than 4 faces per group though, when it comes to mapping your sprite faces of the multi tile, you should be able to use direction and offset to choose 4 places of direction within however many tiles your object is. just not more than 4 face options per group. if you can figure out how to get passed that, would be cool. for me i just made diff items for every 4 faces

golden sparrow
vestal geode
drifting ore
#

or at least know the offset mapping

vestal geode
#

Also want to check whether the game can handle wallLike multi tiles with 2 multi axis like 2x2 since the anker square wouldn't touch the wall. Guess I haven't seen a case distington for that in isValid() for such cases

drifting ore
#

not sure but i have some outside of the box options if you dont get anywhere

vestal geode
drifting ore
#

going to sleep for now. assuming that's german, i dont speak it unforunately but can translate

#

oh yes

vestal geode
#

Perfect, I am german as well, so thats fine. I gonna google for it

drifting ore
#

cheatsheet is in mapping pins

vestal geode
#

alright ty and gn8

drifting ore
#

np take care

vestal geode
#

Cool thing, that would have saved me a lot of time and experiments when I was getting used to it ๐Ÿ˜„

drifting ore
opaque fiber
#

finally came to a compromise... i returned to the underweardistributions method and set the basechance to 100%. this means more underwear spawning on zombies, but also a guarantee that zombies spawn with a hat

#

i feel like there was a better way to get it done without this compromise but i think it's good enough

neon bronze
#

Is there a way to force a player play an animation?

fast galleon
#

right 0 to 3 means it's 4x4

neon bronze
#

So in doing AddWorldInventoryItem on myself but the items that i spawn dont render. Any ideas why its that?

ancient grail
chilly beacon
#

Is there a way to add a new recipe unlock to a magazines through lua? like itemtweaker or something like that?

torn robin
#

My server is full of cheaters. What should I use๏ผŸ

#

Can you help me, darling๏ผŸ

torn robin
#

I can't find it

#

My English is not good, and the translation software is also very slowใ€‚

chilly beacon
#

ask your question there.

torn robin
#

I have asked. Thank you very much for helping me.

vestal geode
# drifting ore The only part of that i didn't end up figuring out or don't believe is possible ...

I've tested some things and it seems to work with multi tiles of any combination between (0|0) and (3|3). To be able to make them buildable, you'd have to implement a matching ISYourMultiTileBuilding.lua to get the required squares and place the corresponding Tiles on it. Same like in ISWoodenStairs for example. Or one could write a general base class which will do it automatically - well, dunno if it would be worth the time for it. Especially if just a handful of the possible combinations will be used practically, so maybe it probably makes more sense to simply hardcode them

#

Tile Props works same as for (fully) rectangular multi tiles

vestal geode
#

However, I've decided to simply use the smallest possible rect for the construction sites, since this one looks a bit messy.
Maybe I should generate them wallLike so ropes will be only on the outer boundaries

pulsar heath
#

so, anyone here has experience with actions ( opening doors, car stalls ) basicly how the game handles interactions with world objects?

#

wanna implement the idea that @calm depot provided a few days ago

#

or any nice documentation out there?

drifting ore
#

@ancient grail found you over at one of the servers I play on ๐Ÿ˜ good to see your mods spread around

thick karma
#

So I'm thinking about an autorun mod... anyone have any thoughts on easy paths to implementation? Do we have the access required to jog / run manually, or is autowalking about as good as it gets? Not sure yet if Lua can affect jogging or running. Curious what others may know.

pulsar heath
#

hmmm i guess i could use this
function ISShutOffVehicleEngine:isValid()
local vehicle = self.character:getVehicle()
return vehicle ~= nil and
vehicle:isEngineRunning() and
vehicle:isDriver(self.character)
end
to "stall" the engine?

#

as reference i mean

pulsar heath
#
local player = getSpecificPlayer(0)
local shutOffAction = ISShutOffVehicleEngine:new(player)
-- Then you would check if the action is valid before performing it
if shutOffAction:isValid() then
    shutOffAction:start()
else
    print("The player is not in a vehicle or is not the driver.")
end
#

if only it was this easy...

#

it actually detects when the player is not inside a vehicle or in the drivers seat...

#

but doesnt shutoff the engine ๐Ÿ˜

thick karma
#

Is that a timed action?

pulsar heath
#

no idea if the shutting the engine is a timed action, but i think so

#

where am i being dumb? ๐Ÿ˜„

thick karma
#

You need to add it to the queue

#

ISTimedActionQueue.add(action)

pulsar heath
#

lemme give it a got

thick karma
#

action = ISShutOffVehicleEngine:new(getPlayer())

#

HOWEVER @pulsar heath

pulsar heath
#

that however

thick karma
#

I think it still won't work yet

pulsar heath
#

uuuuh

#

๐Ÿ˜„

#

well it takes no time to try it

thick karma
#

Because of this:

function ISShutOffVehicleEngine:isValid()
    local vehicle = self.character:getVehicle()
    return vehicle ~= nil and
        vehicle:isEngineRunning() and
        vehicle:isDriver(self.character)
end
pulsar heath
#

yeah, thats what im using as base

vestal geode
thick karma
#

That is going to determine you CANNOT shut the vehicle off if vehicle is nil

fast galleon
thick karma
#

Vehicle will be nil if your player is not in a vehicle

pulsar heath
#

yeah thats what im using to detect the player inside a vehicle and if its on the driver seat

thick karma
pulsar heath
#

Y

thick karma
#

That's walk to

#

Autowalking as I mean it is walking autonomously.

#

Just

#

automatic walking

pulsar heath
#

close as autowalk as you can get in the game

thick karma
#

Indefinitely

#

Hence my mod goal ๐Ÿ˜‰ @pulsar heath

pulsar heath
#

close to

vestal geode
#

You can add a custom event which fires whenever walkTo is done and which executes another walkTo call if necessary for example

pulsar heath
#

im starting to think about doing this the lazy way

thick karma
pulsar heath
#

and just simulate a presskey

fast galleon
#

not sure what you want, aimless walking?

thick karma
#

You wanted to turn off car while you are not in it right?

fast galleon
#

auto walk mod has a few modes

pulsar heath
#

nop

#

i want to turn the car off when im in it

#

so you can like buy a reward and stall the car

fast galleon
#

like walk at the same place to get nimble

thick karma
#

Classic autowalk

#

Not walk-on-click

thick karma
#

I want to allow change of direction without cancelling

#

But yes if you do not adjust, it moves the way you face

fast galleon
#

yeah auto walk mod, you can select any place on map and just walk there

pulsar heath
#

also i want to add temporary traits... someone suggested that

#

positive and bad one

#

was it olipro as well?

thick karma
#

I do not want to select places on the map @fast galleon

pulsar heath
#

someone here suggest that and its a good idea

thick karma
#

I want to activate autorun and just start running until it's deactivated

pulsar heath
#

temporary negative or positive traits the chat can buy

thick karma
#

Changing directions freely along the way

pulsar heath
#

maybe thats easier to achieve and i should start there and not with the vehicles :\

fast galleon
thick karma
vestal geode
#

Should be possible with BaseVehicle's engineDoShuttingDown() function

thick karma
pulsar heath
vestal geode
#

sec i check the sources

fast galleon
#

well still auto walk mod does far more than that

thick karma
#

Sounds cool for the people who want that, but seems like it has a very different purpose in mind.

vestal geode
#

Ah there is also a exposed shutOff(), guess you have to try which one works

fast galleon
#

not really, just select 3 squares away in a direction and keep switching

thick karma
#

I know people who chronically autowalk/run when they play various games. They have arthritis and they don't like to press the joystick unless they're changing directions.

vestal geode
thick karma
#

They also don't play with a mouse

#

So, yes, really. ๐Ÿ˜›

#

lol @ not really

golden sparrow
#

I'm wondering if it's possible to load a chunk without a player actually being there

pulsar heath
#

hmm it looks usable... i wonder if i need to declare the vehicle or if it just performs the action

vestal geode
#

Both are object methods, so you have to call them on a vehicle instance like myVehicleObj:shutOff()

pulsar heath
#

ill give a try

fast galleon
#

all walk is 'auto' you actually sit in your chair

golden sparrow
#

Like using the doLoadGridsquare on IsoChunk

pulsar heath
#

ok so i need to get the vehicle object

vestal geode
#

yes

pulsar heath
#

damn it ... why isnt never easy

vestal geode
#

If you sit in the car, i guess your player object becomes the vehicle, but not sure about that

pulsar heath
#

hmm i guess ill use
shutOffAction:isValid()
to check if the player is in a vehicle

thick karma
vestal geode
#

Or at least there should be any getter in IsoPlayer

pulsar heath
#

if true ill get the vehicle object

thick karma
#

Let's have a philosophical discussion about what truly constitutes automaticity

#

Because that is clearly my goal here.

pulsar heath
#

and then shut down the engine... seems the best way to go about it i guess

vestal geode
#

Ah there is a getter
playerObj:getVehicle()

fast galleon
#

You are the one who mentioned health issues, like I suggested you run a marathon.

so where does one find this magic tool that reads your mind.

vestal geode
#

function turnOffActiveVehicle() local playerObj = getSpecificPlayer(0) local vehicleObj = playerObj:getVehicle() if vehicleObj ~= nil then vehicleObj:shutOff() end end

pulsar heath
#

@vestal geode senpai! it works ๐Ÿ˜„

local shutOffAction = ISShutOffVehicleEngine:new(player)
-- Then you would check if the action is valid before performing it
if shutOffAction:isValid() then
getPlayer():Say("Shutting off the engine!")
mycar = player:getVehicle()
mycar:shutOff()
else
   getPlayer():Say("Im not in the driver seat!")
end
vestal geode
#

As an example

#

nice

pulsar heath
#

ok, now to get a flat tire ๐Ÿ˜„

vestal geode
#

Ah, so you need the timed action pointer, guess you want to implement something like "Repair everything possible" ?

pulsar heath
#

more like its an update to my integration mod so that chat on twitch can buy stuff to make the streamer life easier or try to kill him

#

i already have buying items ( positive and negative ones ), air events, zombie spawning

#

and now im working on the car bit, flat tire and stall engine

#

and probably kill the battery, still not sure about that one

vestal geode
#

lol

pulsar heath
#

after that i will be working on buying positive or negative traits for a set amount of time

#

ex: add the clumsy trait for 5m

vestal geode
#

I'm not a fan of streams, but a nice idea ๐Ÿ˜

pulsar heath
#

its a way to have the chat feel more included in the game the streamer is playing

#

and its a damn challenge to the streamers, since the chat can just send 50 zombies to eat him ๐Ÿ˜„

#

or call a military heli

vestal geode
#

A bit like a redroom where you can torture people for money ๐Ÿ˜‚

pulsar heath
#

kinda yeah ๐Ÿ˜„

#

but for every negative action i also have a positive action

#

so its balanced and up to the chat to choose ( they will 90% of the time choose to kill you but at least theres a choice )

vestal geode
#

I would bet anything that at least 90% will buy negative triggers ๐Ÿ˜‚

pulsar heath
#

well the 1st version of the mod about a year ago...

#

on a 6h live stream,. the char i had that lived the longest was around 24 m

#

and all i did was frun from zombies and helis

#

๐Ÿ˜„

vestal geode
#

๐Ÿ˜…

fast galleon
#

dang, just learned people play this game with voice commands l, sorry

hot void
#

anyone cares to do some testing?

pulsar heath
#

testing?

hot void
#

yes

pulsar heath
#

? what exactly?

hot void
#

mods

#

i haven't updated in a while which is 1 year ago

vestal geode
#

you can copy your game dir and run a local testing server as well

#

it will make life much easier

pulsar heath
#

now nothing about clothing in the game

#

so im out ๐Ÿ˜„

hot void
#

i have to open the game first and remember how i used to play this thing

vestal geode
#

you can even separate the Zomboid dir by adding the cachefile argument like
-cachedir="E:/Development/JavaWorkspace/ProjectZomboidModding/appdata"

#

so things won't mix up between your origin files and your testing/staging area

#

And... just in case you use any IntelliJ base IDE like IDEA, you can even create comfortable Run Configs:

#

Arguments are trunced, but guess you can see, which part of the launcher batches belongs to where

#

The arguments are a bit redundant, but this is the main part

pulsar heath
#

hmmm maybe i can use something from here zombie.vehicles.EditVehicleState

vestal geode
#

Its exposed, so should work. It offers methods to inject/update/adjust scripts on-the-fly

pulsar heath
#

i should probably read the code of some mods that alter vehicles and maybe i can find a solution there without pulling my hairs out

vestal geode
#

Yeah it's mostly the easiest way, as long as you take care of not adapting bad code

manic relic
#

the first one doesnt show up in the crafting menu anymore?

thick karma
#

Are spaces allowed in Mod IDs?

calm depot
#

@dull moss thoughts?

thick karma
calm depot
#

the internal id? no

calm depot
#

and why would you do that anyway, you absolute madman

thick karma
#

That, or the spaces in your Mod ID names are an issue @manic relic

thick karma
#

I wouldn't ๐Ÿ˜‰

calm depot
#

nope, I made it and will now refuse to let you use it

dull moss
#

oh well

#

blocked

calm depot
#

lol, go ahead

dull moss
#

unfriended

#

reported

#

fbi strike requested

calm depot
#

I did some semi-transparent flares around the eyes, take a look at it in-game to make sure it looks good

thick karma
# manic relic that might be it

lmk because I am not exactly familiar with recipes and crafting nuances, so it would be nice to know what to expect if I go that route down the road

vestal geode
#

Is it a known bug, that ISWoodenStairs:isValid() will return true for crossed, overlapping stairs?

calm depot
#

I don't know if it's a bug, but I believe it only checks for no obstacles at the foot of the stairs and at the top

#

this does also somewhat make me want to create an Escher-inspired monstrousity

vestal geode
#

yea, but i see now reason why, so I guess it's a bug

calm depot
#

why is it a bug?

#

what is broken?

vestal geode
#

especially because you can build such things

calm depot
#

you think that's bad? you should check out burned buildings with partially-destroyed multitile objects

vestal geode
#

yea sure, made by map editors. But by that, you can create something like that in-game. Also, the "upper" stair blocked the lower one

fast galleon
#

my favourite is hovering sign, where you dismantle the supports

calm depot
#

no, you can just set fire to a building

vestal geode
#

Yea true

calm depot
#

depending on where the fire goes, you'll get crap like half a bathtub

#

and it looks quite obviously like half a sprite

vestal geode
#

Still, I'm pretty sure this behaviour isn't wanted, at least because the middle part of both stairs are on same height, so the material would intersect irl as well

thick karma
#

Is there a flag for hiding TimedAction progress bar?

#

On an individual action

#

I tried action.forceProgressBar = false

#

No dice

manic relic
#

@thick karma you genius

#

Thank you much

thick karma
vestal geode
#

I think not. Guess you'd have to get a pointer to the UI element and set visibility to false

thick karma
#

Oof

fast galleon
#

/\ stairs block each other <.<
reminds me that time I placed a moveable below the stairs and couldn't go up.

vestal geode
#

Yeah, looks wrong for me. Wanted or not, I'll fix it up in my build overhaul mod. Don't like that behaviour

calm depot
#

Escher monstrosity denied

fast galleon
#

ta. also have a useProgressBar if it helps

#

I tried action.forceProgressBar = false
action is java aboject, right? You can't do that.

vestal geode
#

You should be able to initialise the object in the constructor

#

But afaik forceProgressBar is only to enforce it, not to supress

calm depot
#

@fast galleon what happens if you use :setUseProgressBar(false)

#

(java method of BaseAction)

fast galleon
#

@thick karma

thick karma
#
--
function ISWalkToTimedAction:new (character, location, additionalTest, additionalContext)
    local o = {}
    setmetatable(o, self)
    self.__index = self
    o.character = character;

    o.stopOnWalk = false;
    o.stopOnRun = false;
    o.maxTime = -1;
    o.location = location;
    o.pathIndex = 0;
    o.additionalTest = additionalTest;
    o.additionalContext = additionalContext;
    return o
end
#

o is the action

thick karma
fast galleon
calm depot
#

you have your own action that derives from ISBaseTImedAction, no?

#

there's a self.action - I believe that's the java obj

thick karma
#

Ohhhh I see now

#

So my lua action.action is a java object

calm depot
#

when ISBaseTimedAction:create is called, it instantiates a LuaTimedActionNew

thick karma
#

I see that

calm depot
#

that java class is derived from BaseAction

#

and BaseAction has that progressbar method I mentioned

vestal geode
thick karma
#

I didn't until you pointed out you thought action was a java object and I was trying to figure out where we lost each other in translation

#

Because I was discussing earlier how I think of using the queue in terms of ISTimedActionQueue.add(action)

#

But that action is a table (in lua)

calm depot
#

a table

thick karma
#

And there is an action within it that I didn't see

thick karma
calm depot
#

anyway, give it a punt, see if it works

thick karma
#

Trying now

#

If Zomboid will load before I work ๐Ÿ˜ญ

calm depot
#

you can also obtain the ActionProgressBar element directly and disable it, but hopefully that proves unnecessary

#

I do hope you have a good reason for disabling it though, you're flying in the face of convention ๐Ÿ˜›

thick karma
#

Because I am trying to create an autowalking mechanic

#

And most people won't want that above their heads while simply walking around

vast nacelle
#

Does DoParam not work for altering an item's default DisplayName?
Also for some reason, getText can't get entries in ItemName_EN.txt

calm depot
#

autowalks off roof of building

#

This Is How You Died.

#

@vast nacelle on the client or server?

vast nacelle
#

Client or rather trying on SP at the moment

neon bronze
#

Anyone knows if the devs have been notified about the padlock craft exploit?

calm depot
#

if ItemName_XX was broken, everyone would be screaming

#

it's more likely you have a syntax error, or var naming mismatch

#

and consequently, it's just not loading the strings

thick karma
#

Bingo @calm depot

pulsar heath
#

@calm depot any suggestions how to add a trait for X time and removing when the time runs out?

#

got the car events bit working... at lest for the engine and tires..

#

so 2 more ways for the chat to kill the streamer, check

#

now to mess with the traits ๐Ÿ˜„

vast nacelle
fast galleon
#

and there was a different command to get the itemname I believe

vast nacelle
vestal geode
calm depot
#

@pulsar heath add a function to the EveryTenMinutes/EveryHour to take care of disabling

pulsar heath
#

sound loop?

calm depot
#

those fire on in-game time elapsing, not real time

pulsar heath
#

ah for the parts?

vestal geode
pulsar heath
#

ahh sorry

calm depot
#

so adjust according to your sandbox settings for how long a day passes in IRL time

pulsar heath
#

hmmm, yeah i have to make a logic check to get the day duration and then calculate if the 5 real world minutes are gone

#

not everyone plays on the default 1h days

fast galleon
pulsar heath
#

was taking a frankenstein aproach and perhaps its easier if i handle the coutdown externally

#

that way less stuff for the game to process

#

better performance i guess?

calm depot
#

doing it on every 10m or hour should be very cheap

vestal geode
#

probably yes, but if you take care to unmount event listeners which are no longer needed, it should be fine as well

pulsar heath
#

yeah but i was thinking... dont even know how i didnt thought about this before... since i already have an app to server as middle man for twitch and the mod

calm depot
#

actually, this is the best flow:

  1. user triggers a timed thing, start it and register handler for every 10m/hour depending on how long it will last

  2. when the time is up, function stops the action and unregisters itself

pulsar heath
#

perhaps its better to also use it for the timed actions

#

and since the mod is already listening to the app for the events triggered

#

just need to add one more var on json for the timer of the traits

#

i think

calm depot
#

yeah, but, if you time it externally, you can just pause the game for X minutes

#

if you do it in-game, you can't cheat your way out of it

pulsar heath
#

but pausing the game send a print to the console right?

calm depot
#

I've honestly never looked, maybe

pulsar heath
#

setGameSpeed 1

#

i think this the gamespeed for the pause

vestal geode
#

As long as you can inject a callback so you don't have to check for any changed value the support server made, you should basically benefit from it. But honestly as long as you unregister deprecated listener, it's no big deal

pulsar heath
#

LOG : General , 1673798000008> EXITDEBUG: setGameSpeed 1

calm depot
#

is it printing that because you're in debug mode?

pulsar heath
#

nop

#

not running in debug mode

calm depot
#

my 2 cents is that the cleaner solution is to implement the logic in the game

#

relying on a debug message when you pause is hacky

pulsar heath
#

yeah you might be right, im 99% sure you are

vestal geode
pulsar heath
#

ill just make run in the mods code

#

make it

#

no way its worth to go all frankenstein to save a few lines of code in the mod

calm depot
#

ja ja, richtig

#

๐Ÿ˜›

vestal geode
vestal geode
#

More important is to avoid server execution flow where the clients could do the task as well and such things

pulsar heath
#

it wasnt the amount of code but adding another Events on evenry x time

arctic atlas
#

I really want to make an item that drains battery on use, but I don't understand how the battery/power stuff is handled in this game. Are there any good guides or resources for this?

pulsar heath
#

i only have one event added everyoneminute, but... the less you add the better, but in this case i have no choice, its the best way to do it

vestal geode
#

Yes, but the event manager will loop through his fire methods so or so. As long as you try to mount listener on-the-fly and unmount those no longer needed it's really just a couple of additional stack frames in the heap/stack

pulsar heath
#

so time to make a function to count the time ๐Ÿ˜„

#

and ill be done for the day... got the car things working, the traits... thats good enough for one day ๐Ÿ˜„

#

then i need to improve my zombie spawn location randomizer

#

but thats for tomorrow ๐Ÿ™‚

calm depot
#

every drainable is either empty or full, it has a use delta which determines the %age depleted each time you utilise it

#

(for batteries, there's usually a periodic tick that "uses" it)

arctic atlas
#

Okay, that's UseDelta in the item function right

#

So... silly cards on the table, I'm trying to make a vape from 90s tech and my idea needs a battery pack item that drains instead of the vape. Probably like 20 batteries and weighs a ton but it's the best way I can imagine it working. I would also like to do the same thing with a car battery.

#

Is there an easy way to drain a different battery, or just the one in the item? Could I insert 20+ batteries into one item and drain evenly from them?

pulsar heath
#

would it drain x% from all of time per tick?

#

all of them i mean

arctic atlas
#

only drains when activated

#

it's a cigarette replacement, basically, just drain a certain % from all batteries when you puff on it

#

Okay here's a thought, maybe I don't need to worry about programming anything differently if I just change my approach.
One or two puffs per battery then you need to recharge or replace it. That's basically the same as making people carry 20 batteries.

pulsar heath
#

thats one way of doing it

calm depot
#

you could get a decent number of puffs out of a couple of AA batteries, the problem is that it would require charging up a capacitor and it would be slow going

arctic atlas
#

Yeah... but I liked the craziness of my other idea

#

Olipro I actually considered supercaps because I've seen some 90s tech that used them

#

sounds like it'd be hard to find in rural KY

calm depot
#

so, the device being ready for inhalation would be worse than it actually running out

arctic atlas
#

The main chemicals needed to make glycerol and concentrated nicotine are: ethanol (or gasoline) and lye (or potash) -- I can handwave that part as a crafting recipe or two, but finding a supercap seems harder.

pulsar heath
#

but that would make the item more valuable

arctic atlas
#

I literally spent two hours reading scientific papers on extracting nicotine lmao

pulsar heath
#

so its not easy to find, but you stop needing to find cigarretes

#

i wouldnt mind using a mod that works like that

arctic atlas
#

I like the idea of making your own juice and just worrying about charge

calm depot
#

have a recipe to make glycerine out of veg oils

pulsar heath
#

you could set the item to spawn in hi tech places like labs

#

or military sites

#

stuff like that

arctic atlas
#

@calm depot Yes, exactly! You mix the oil with lye and it reduces to glycerol

pulsar heath
#

the item ( the supercaps )

arctic atlas
#

hm I do like that idea

#

I should do a map mod and add radioshacks

#

๐Ÿ˜„

pulsar heath
#

oooh

#

or you can make so you have a chance to get the caps from a military radio?

arctic atlas
#

oooh nice idea

pulsar heath
#

that would make sense i think

arctic atlas
#

I want the juice to be the consumable, but also renewable

#

though tbh you gotta extract nicotine from cigs in the first place, but ideally the ratio would be generous

calm depot
#

just make sure you match it on a tag rather than the specific item, someone might be inclined to add tobacco growing ๐Ÿ™‚

arctic atlas
#

tbh I'd love that

pulsar heath
#

if theres a cannabis mod

arctic atlas
#

I know it's in hydrocraft but meh

pulsar heath
#

there will be a tobacco mod

#

๐Ÿ˜„

arctic atlas
#

oh obviously extracting cannabis oil for vape juice should be my next project

calm depot
#

if you really want to go full chemist, add extraction of nicotine from tomato & potato plants

arctic atlas
#

hm, the paper I was reading only used "waste tobacco products" but yeah, I could look into the process for those too

#

thing is I was just shocked to learn we could do it with easily made / readily available chemicals

pulsar heath
#

eggplants have a bigger concentration of nicotine dont they?

arctic atlas
#

what do you guys think of my vape icon

pulsar heath
#

or was it tea?

calm depot
#

I love it

pulsar heath
#

looks good

calm depot
#

rather anachronistic for 1993 but looks great

arctic atlas
#

I had it generated by DALL-E to look like it was made from scrap found in an apocalypse in the 1990s

calm depot
#

hmm, now I need to see how stable diffusion does

#

what was the prompt?

arctic atlas
#

hm

#

Realistic pixel art of a home made vape. Created in a zombie apocalypse with materials available in the 90s.

#

and tbh I picked that one out because it had the cable too, which is what I was going for

#

like it's plugged into the battery pack

pulsar heath
#

yeah the battery would make sense ( the car one )

arctic atlas
#

What about this one, kinda looks like an ipod

pulsar heath
#

since its a "prototype" vape in the 90's

calm depot
#

@dull moss did you try out the bloodlust sprite in-game?

#

the atomizer is a bit rough

#

try combining the tank from the first with this one

arctic atlas
#

ignore the bits off to the side, what about this one

#

just looks like a tube with a battery in it, which is kinda why I love it

pulsar heath
#

just a suggestion

#

bongs

#

why dont u adapt a bong to a be vape?

#

that would be plausible

dull moss
calm depot
#

alright, well, ping me if you need changes

#

or ping me to say you updated the mod with it instead ๐Ÿ˜‰

dull moss
#

unless I get a new bug report, next update will be in a week or two

#

got stuff to do

arctic atlas
#

might try my hand at drawing something resembling this atomizer I have irl, it's so simple it could've been made in the 90s lol

#

@pulsar heath So, supercapacitor inside, can be charged from a car battery or generator. That's a good idea. Question: Should regular batteries be able to "recharge" it, and should they be consumed for doing so or just take a really long time.

pulsar heath
#

yup

#

that sounds good to me, but its your choice

arctic atlas
#

you seemed like someone who might actually use the mod so I figured I should ask you ๐Ÿคท

pulsar heath
#

i liked the cable in it... and it makes sense since a game gear needed 6 batteries

#

and it lasted for no time at all ๐Ÿ˜„

#

so for a super cap... AA batteries would be like... have a puff and thats it

arctic atlas
#

and it would destroy the AA of course

#

I could have a base model vape without a battery, that you could craft with either a battery or supercap to turn it into the respective version. The battery version would just get one use then become the base model again. Is there a better way to do that?

#

Or do I just make it so you can insert a battery into the regular version, but it gets destroyed and just becomes charge in the cap?

calm depot
#

it wouldn't just destroy the battery

#

your average AA battery has about 1600mAh of charge

arctic atlas
#

If we really wanna be technical, the problem is internal resistance making it only output around 1.5A when fully charged

calm depot
#

a 18650 has around 3000mAh

arctic atlas
#

that's why I wanted the pack of 20 AAs originally

calm depot
#

so, an AA is about half of that, but it cannot deliver the current as quickly as a vape battery

arctic atlas
#

I was kind of hand-waving a way to get enough power out of it but blow it up in the process

calm depot
#

(hence why you would need a charging circuit and have to wait between puffs)

arctic atlas
#

๐Ÿ™‚

crimson tundra
#

i wonder that... like, if i make a mod that redo the game model and texture, like making fit/str/weight affects your char's appearance,would that be kinda unstable bc of regular game update?

calm depot
#

you can't rip more power out of an AA than you'd get from shorting it to itself to blow it up

arctic atlas
#

lol no you can't

#

it's fun to imagine though

calm depot
#

(also the reason why it's really not great to short a 18650)

arctic atlas
#

can I just make delta negative to charge an item lol

calm depot
#

there's the car battery charger in vanilla

arctic atlas
#

oh right, thanks

calm depot
#

look at how they do that

pulsar heath
#

oh true

arctic atlas
#

I was actually looking at betterbatteries because I forgot the car battery charger

#

the other problem is I can't find where it even is in the game file structure lol

calm depot
#

the car battery charger?

arctic atlas
#

yeah it's not in items.txt idk where it is

calm depot
#

vehiclesitems.txt

arctic atlas
#

thanks

#

so that's where the item is added... but I don't see how it defines what it does

calm depot
#

the charger code is IsoCarBatteryCharger - it's java

arctic atlas
#

oh

#

Yeah I'm only familiar with Lua

#

I'm trying with java just not very good at it

calm depot
#

the good news is that it doesn't care what the "battery" is as long as it's an instance of DrainableComboItem

#

you shouldn't need to write any java for this

arctic atlas
#

I dunno how the car battery charger helps me then

calm depot
#

you want to make your own charger item, no?

#

you can recycle the java class I mentioned for your own ends

arctic atlas
#

I don't know how to do that

#

I don't even see how this item is using it

calm depot
#

you don't because you didn't go read the lua code for charging car batteries

arctic atlas
#

okay but where is that

#

I'm trying to find that

calm depot
#

once you have, you can write your own implementation that passes the java class your batteries instead of car batteries

#

so, the way I find code in Project Zomboid, or actually, anything, is some form of tool that can search through files

#

my personal preference is to use a shell and grep

#

but there are plenty of options out there. most IDEs, including VSCode can do this too

mint helm
#

Morning guys

pulsar heath
#

morning ( 18h13m here )

calm depot
#

found the west coaster

mint helm
#

Yessir

#

Starbucks and women in flannels

pulsar heath
#

lol

calm depot
#

*found the SoCal'er

thick karma
mint helm
#

OH oop, North Face I should say

#

I'm not that southern

arctic atlas
#

So I just get to search all the files in the game for bits of code in the hope that I guess the right search terms and find what I need

calm depot
#

"my sheriff actually issues CC permits"

pulsar heath
thick karma
#

๐Ÿ‘

mint helm
#

Okay anyhow, I'm currently playing Eerie Country but bits of the map are still underdeveloped. Which one would you guys say is the biggest and most complete map mod to date?

calm depot
#

@arctic atlas yep, the second part of it is deducing likely strings to search for

pulsar heath
#

havent tried a new map in ages

#

but kingsmouth island is decent

thick karma
#

lmao my automovement is so janky

calm depot
#

you can't say that and not share a video clip

pulsar heath
#

@thick karma i do agree with olipro

#

a clip would be nice

mint helm
thick karma
#

Well it's not so obviously janky by watching

#

It's more of a using thing

pulsar heath
#

vanilla map with some cities added ( ravens creek, pitstop, fort redstone and a few others )

thick karma
#

The movement input is only getting detected once every second or so it seems

#

So it takes a lot of effort to turn your character once autowalk begins

pulsar heath
#

so a clip?

#

drunk walking?

#

๐Ÿ˜„

thick karma
#

Maybe I actually need to disable autowalking temporarily during manual control...

#

And then reenable

calm depot
#

would you like us to quack for you as well?

pulsar heath
#

ahahah

#

i should buy that domain

#

its gonna be worth millions

#

๐Ÿ˜„

calm depot
#

you are too late

pulsar heath
#

indeed i am

#

it actually exists ๐Ÿ˜„

mint helm
#

Can anyone explain to me how aiming in the game works? Is it a hitscan rng type of system?

#

Like as long as the target is green there's a good chance of me hitting them even if I don't aim the cursor at them?

thick karma
calm depot
#

hitscan? lol

thick karma
#

Would you?

calm depot
#

you target a zombie and then based on your skill, it decides whether you succeeded or not

#

what you're targeting depends on the angle of the cursor

pulsar heath
#

dnd style

#

aim and roll the dice

calm depot
#

there's no raycasting here

mint helm
#

So it really is all luck and no skill on how well you hit that zombie

calm depot
#

if you mean aiming your mouse cursor, yeah, pretty much

#

stand still, get their outline to go as green as possible and shoot

mint helm
#

Does this mod change that?

mighty marsh
#

Yes

#

Kind of

#

Aiming skill, with this mod, determines how quickly the crosshair shrinks and how stable it remains while moving

#

Aim for the head when the crosshair is at its smallest, and boom, dead zed

#

You can also aim for the legs to knock them down

mint helm
mighty marsh
#

I like the mod, because it ultimately saves ammo, but it also makes firearms VERY strong

calm depot
#

this is one of those mods where I want to download it to check out the code, but am also moderately afraid of what I'll find

mighty marsh
#

I'm not too savvy on mod development or code, but if one wanted to use this mod for a server, i'd recommend making firearms much more rare, or upping the global zombie pop

tardy wren
#

It makes shooting much more skill based, huh?

#

Frankly, I saw it also improves the throwable bombs by a little... Was more interested in that

mint helm
#

So can anyone explain to me how maps work? Do all my maps (mods included) actually integrate into each other? Do I load into a different map entirely? How's it work?

mighty marsh
tardy wren
calm depot
#

maps are loaded in the order they are defined, each map defines all the tiles it occupies

#

if any given X1,Y1 - X2,Y2 chunk is already populated by a preceding map, nothing happens since it was previously defined

#

hence why you have to load (for example) Bedford Falls before the base game map

mint helm
#

So it's like a jigsaw puzzle? And I'm the one controlling where the bits go?

calm depot
#

I might be slightly inaccurate here; it might be per-chunk rather than per tile

tardy wren
#

It's more per chunk

#

Or pwr cell... Otherwise maps could smoothly integrate with one another...

calm depot
#

yeah, same principle, less granularity

mint helm
calm depot
#

you start with an infinite black nothing, each map consists of chunks that contain tiles

#

the base game map is intrinsically no different to a mod map

mighty marsh
#

but if two "modded" maps overlap each other, either completely or partially, the map that is loaded first takes priority?

calm depot
#

the chunks already defined by that map "take priority"

#

if there are non-overlapping chunks (i.e. chunks that have not yet been defined), those will be populated

#

otherwise it would be impossible to make maps live inside the base game map

mint helm
#

How do people avoid map inconsistencies using this system?

calm depot
#

don't put your stuff in the same place as other people?

mint helm
#

I wish there was a way for me to know which tile I'm loading something into though

#

That way I could actually complete the map

mighty marsh
#

There ought to be a heatmap for this

calm depot
#

if you want to know the coords of a map you downloaded, open it in the editor

calm depot
#

download the PZ modding tools

#

you can get them directly on Steam or from the TIS forum, or their github

mint helm
calm depot
#

they are the creators of Project Zomboid

mint helm
#

Do I want the TileZed or the WorldEd?

calm depot
#

depends entirely on what you want to do

#

I'd suggest getting everything though, unless you're comically short of disk space

mint helm
#

Good idea, all I want to achieve is to fill in all the tiles available cleanly and get rid of overlapping ones

calm depot
#

what do you mean by fill in all the tiles?

mint helm
calm depot
#

your map?

#

if you made a map, you'd already have these tools

mint helm
#

The one I'm using to host a mp

#

I didn't make a map

#

I'm just talking about the map I'm using to play the game

calm depot
#

OK, so, what maps are you using?

mint helm
#

Sec

calm depot
#

and can you elaborate as to exactly what this means:

like bits of the tiles on the map are unavailable

mint helm
#

Yep one sec lemme just pull up the game

calm depot
#

do you mean tiles where you see a bunch of question marks?

mint helm
#

Actually its just blank

#

So I'm gonna load up Eerie Country here

#

This is what the map looks like

calm depot
#

yeah, because it's hiding areas you haven't visited

#

if you launch in debug mode, you can right click and show the whole map

neon bronze
#

Is there a way to switch between debug and normal during gameplay and not have to restart the game?

mint helm
calm depot
#

doubt

mint helm
#

When I try to go to the parts of the map that's "undiscovered" it's just an under construction sign

calm depot
#

oh, hold on

#

this isn't a fresh virgin save, is it?

pulsar heath
#

that would make sense

mint helm
#

Wait by virgin save you mean unmodded?

pulsar heath
#

thast why you see the construction signs

calm depot
#

you're missing all of louisville

pulsar heath
#

virgin = fresh save

calm depot
#

it's as if you don't have the current version of the vanilla map

mint helm
calm depot
#

use the latest version of the game files, obviously

#

but you'll need to start a brand new game

mint helm
#

Game doesn't automatically update itself?

calm depot
#

O_o

mint helm
#

That is a brand new save

calm depot
#

what version of the game do you have

mint helm
calm depot
#

OK, and this screenshot is from a single player game?

mint helm
calm depot
#

or your server

mint helm
#

It's a fresh MP server

calm depot
#

right, so did you actually update the server?

mint helm
#

._.

#

How do?

calm depot
#

ask your server provider.

mint helm
#

Server pro- what?

calm depot
#

or, if you are managing the server yourself, you can answer it with a cursory google search and a visit to PZWiki

mint helm
#

I will look up said cursory google search

#

I need help understanding this part

#

Like, I'm in the steam library and where exactly do I "filter for tools"

pulsar heath
#

where you have your game list

#

top left

#

right side of the search box

#

click the icon

calm depot
#

this conversation should really be moved elsewhere

pulsar heath
#

yeah

#

just dm me

#

ill help you out

neon bronze
#

How can i define a custom body location for my item to be worn?

vast nacelle
# neon bronze How can i define a custom body location for my item to be worn?

Add a lua file with something like this:

    InsertNewLocation("YourNewLocation", nil, false)
else
    local group = BodyLocations.getGroup("Human")

    group:getOrCreateLocation("YourNewLocation")
    -- Optional
    -- Add statements like this if the location should not be worn together with something of the other location
    -- Like Hats and Full Face Helmets or something
    group:setExclusive("YourNewLocation", "SomeOtherLocation")
end```
neon bronze
#

What is InsertNewLocation?

vast nacelle
#

Can probably just skip that.
I think it was either an old game function that handled adding new locations or a function added by an old utility mod.

#

Doesn't seem to be around now (or I don't have it)

neon bronze
#

Yea so i do that but there is no option for me ingame to equip the item for which i defined the equiplocation

fast galleon
#

is it possible to call func2 directly like in the next example?

function func1() return 1,2 end
function func2(a,b,c) ... end
func2(func1(),3)
ancient grail
neon bronze
#
require "NPCs/BodyLocations"
local group = BodyLocations.getGroup("Human")
group:getOrCreateLocation("wallet")
#

thats what i do

vast nacelle
neon bronze
#
item Leather_Wallet{
        DisplayCategory = Container,
        WeightReduction = 10,
        Capacity = 1,
        Weight = 0.1,
        Type = Container,
        DisplayName = Leather Wallet,
        Icon = Wallet_01,
        WorldStaticModel = Wallet,
        PutInSound = PutItemInBag,
        BodyLocation = wallet,
        CanBeEquipped = wallet,
    }
neon bronze
#

thats the item for which i defined it

bronze yoke
#

i don't really know why but it only passes 1 when you do this

ancient grail
#

Maybe cuz its similar to local a = a or {}

#

So maybe since 1 is true or exist then it shoots that

bronze yoke
#
function func1() return 1,2 end
function func2(a,b) ... end
func2(func1())
```is allowed though ๐Ÿคท
ancient grail
#

Whatcha workin on poltergeist

fast galleon
#

yeah, I think I've experienced both cases and was thinking how to merge it like that.

fast galleon
# ancient grail Whatcha workin on poltergeist

just doing a debug line with a bunch of if, and would be nice to return true or false as well for formatting but it's not a big deal. I prefer no formatting to saving the local first ๐Ÿ˜…

neon bronze
ancient grail