#mod_development
1 messages · Page 237 of 1
I dunno usually it won't come up I'm guessing
In most situations it will never matter because there will be subjectively plenty of space to work with in both directions... Players obviously won't have a way of knowing the height or depth limit of wherever they happen to be, and map makers might not even have to care until they hit 32 levels. Tools could flexibly adapt to whatever direction you build.
i assume most chunks wouldn't even have a single negative level anyway so it won't usually be noticeable even if you were for some reason building at 32y
and those that do certainly won't have 31 basement levels
So is the limit going to be chunk wide?
Like if rel 111, 65 goes to 28, whole chunk needs allocation for it?
i had assumed it'd be on the cell level but the blog you linked seemed to say chunk, which i suppose makes more sense
chunk is the smaller from what i've gathered
yeah
Then I'm p sure it's 10x10 in 41... Or that's the math I was told to use
tile>chunk>cell
they'll be 8x8 in b42 though
When I rewrote position xy
Okay cool
8x8 not bad
I could totally see someone doing it
8x8x31 custom bunker
Someone won't be able to resist
Hell, if nobody else makes a -31 level map, I'll probably learn to map
It just seems like a thing that must happen
Clearly
Doesn't even seem like a big deal compared to a lot of these maps.
you could have a totally underground map that allows for digging
could create a toxic map where people have to dig out the underground to create more livable space 😄 I have been thinking since i read these updates
Exactly, someone has to do a fully underground map
force people to live communal in a map also would be interesting
It's too perfect
Metro 2033 
Deep Vault Dweller
Spawn at z = -31
Escape the deep vault in which you were born
Fallout Knox Country
W.e. someone has to do it
buried alive trait, spawn at -31 with a shovel
Lol must have Dig Worms
if only mapping wasn't insanely time consuming. i think fallout map has been being worked on for only a few years now by multiple people 🙂
I feel like mapping is cool until it isn't
hey has anyone here ever heard of any issues when modding + modeling on a mac?
ive been working on these models for a mod and they are invisible when i hold them
posted this in the wrong channel mb
I am making a simple mod of a drink, but I have some problems: It drinks automatically from the inventory and when it is empty, an error appears when trying to refill it. Here is the script I made:
module AguaDeMadrid
{
imports
{
Base
}
item AguaDeMadridFull
{
DisplayName = Agua de Madrid,
DisplayCategory = Food,
Type = Food,
Weight = 1.3,
Icon = AguaDeMadridFull,
Packaged = TRUE,
CanStoreWater = TRUE,
UnhappyChange = -20,
FatigueChange = -20,
ThirstChange = -40,
CantBeFrozen = TRUE,
EatType = bottle,
CustomContextMenu = Drink,
FillFromDispenserSound = GetWaterFromDispenserGlass,
FillFromTapSound = GetWaterFromTapGlass,
IsWaterSource = TRUE,
ReplaceOnUse = AguaDeMadridEmpty,
ReplaceOnUseOn = WaterSource-AguaDeMadridFull,
CustomEatSound = DrinkingFromBottleGlass,
StaticModel = AguaDeMadridStaticModel,
WorldStaticModel = AguaDeMadridFull_Ground,
Calories = 12,
Carbohydrates = 0,
Lipids = 0,
Proteins = 0,
}
item AguaDeMadridEmpty
{
DisplayCategory = WaterContainer,
Weight = 0.2,
CanStoreWater = TRUE,
Type = Normal,
Packaged = TRUE,
DisplayName = Botella madrileña vacía,
ReplaceOnUseOn = WaterSource-AguaDeMadridFull,
Icon = AguaDeMadridEmpty,
StaticModel = AguaDeMadridStaticModel,
WorldStaticModel =
AguaDeMadridEmpty_Ground,
}
}
I imagine you could get rid of a line. Maybe CanStoreWater or IsWaterSource. This might have other effects that you might want to compensate for with additional modding.
Nope I misunderstood you.
I thought you didn't want to automatically drink from it. Maybe the real problem is the error message that appears.
No no, I don't want it to be drunk automatically
Yeah
You might want to avoid the ñ on the scripts
I put the Ñ after because the previous name I used was similar to the empty water bottle in the game. The name works fine in the game, will I have problems in other aspects because of that?
Do the error messages logged to one or two text files somewhere give useful information about the refilling error?
One of them's in username\zomboid\logs on windows and the other's somewhere
The only thing that appears there is this:
function: onTakeWater -- file: ISWorldObjectContextMenu.lua line # 3795 | Vanilla
function: onMouseUp -- file: ISContextMenu.lua line # 90 | Vanilla.
[06-05-24 23:04:17.075] ERROR: General , 1715029457075> ExceptionLogger.logException> Exception thrown java.lang.RuntimeException: Object tried to call nil in onTakeWater at KahluaUtil.fail line:82..
[06-05-24 23:04:17.075] ERROR: General , 1715029457075> DebugLogStream.printException> Stack trace:.
[06-05-24 23:04:17.076] LOG : General , 1715029457076> -----------------------------------------
STACK TRACE
function: onTakeWater -- file: ISWorldObjectContextMenu.lua line # 3795 | Vanilla
function: onMouseUp -- file: ISContextMenu.lua line # 90 | Vanilla.
to start i think you would use ReplaceOnDeplete instead of replaceonuse? you don't seem to treat this as liquid though and treat as food item
console.txt maybe or nah?
so maybe that is the real issue
I'm gonna change that
i would make it drainable maybe? then give it liquid properties
then ReplaceOnDeplete instead of on use
also you may need to set a useDelta as well if you don't consume entire thing when drinking
oh i see replaceonuseon is good still also for letting it know what item is going to be used when there is liquid in it
in case it holds other liquids. like if you were to fill it with fuel
you can create an item that would display your item but also with fuel if you choose to do that
This error is happening because the item does not have access to getUseDelta, meaning it is presumably not flagged as a DrainableComboItem.
thats all i have for now 😄
I think this is therefore likely the real solution
Making the item drainable
Oh console.txt so that's the other one of the two. Maybe it's the one that has more detail than the other.
And giving it a proper use delta
ah yes
i would make those changes first, then you can see what kind of error you run into from there. will be much more clear when you are using it as a drainable
mostly looks correct though outside of that
I'm pretty sure not being drainable is the most likely reason the item object would exist without having getUseDelta as a function of itself
I just had a thought, can it he because the poncho is in the GUID file table, but the module Base script only has the normal poncho in it and not the ponchoDown thing
now it works. I used those functions you mentioned, but since it drinks automatically from the inventory I thought I should have changed some settings
Im not sure how it is in the vanilla zomboid code but do I have to add it to the Base script or remove it from the GUID table for it to work?
I have no error when filling it now, but it keeps on drinking automatically
Sorry, I did not see this somehow. Yes, please.
Im not on my PC rn so I can't check if the ponchoDown is in the base script or the vanilla GUID table
it's doing that i believe because the container is treated as a water container
if you put water containers on the character it will auto drink them
I only have water container when it is empty, should I specify it also when the bottle is full? or what parameter should I write to make it work, for example, as a beer?
big guess but this is probably why
IsWaterSource = TRUE,
you can use CAnStoreWater, and i don't think that will happen
example of empty petrol can
item EmptyPetrolCan
{
DisplayCategory = VehicleMaintenance,
Weight = 1.6,
Type = Normal,
DisplayName = Empty Gas Can,
Icon = Petrol,
StaticModel = GasCan,
SurvivalGear = TRUE,
ReplaceInSecondHand = Bag_GasCan_LHand holdingbagleft,
ReplaceInPrimaryHand = Bag_GasCan_RHand holdingbagright,
WorldStaticModel = GasCan_Ground,
Tags = EmptyPetrol,
ReplaceTypes = PetrolSource PetrolCan,
}
i use the zedscript extension in VScode so it explains a lot of this in there
I've done my PZ coding in notepad++ where one of my main debugging techniques has been running the game and having it tell me my code was broken ;-;
(slow)
that's still most of the experience but i really recommend vscode to cut down on it
I just downloaded it!, such a nice extension 🙂
Kudos to @red tiger on that
There are many contributors but Albion and Jab seem to have put the most effort into providing out of game tools and guides to make overall modding more palatable
and Aiteron with documenting whatever they can when they have time also according to my research
no avoiding that haha. i'm hoping that will change one day.
Starting out: "Man, this is easy. No sweat."
Once you get to making your own Distributions.lua: 
Though I'm doing this in VSCode, so it could be worse. I'm not messing with procedural stuff, only adding in my items, not overriding anything.
If I have any questions, I'll be sure to ask.
Finally getting my ideas off the ground.
I'm currently working on blueprints to copy paste buildings ingame. It is still far from being ready but the base is there.
NB: This issue is not game breaking and does not seem to affect the stability of the game. NB2: This post contains a bugfix. (Scroll to the bottom for bugfix if tl;dr) Version: 41.78.16 Affects all game modes. (single/multiplayer) Reproduction steps: 1. save any game. Issue description: WorldDict...
i've found out the issue isn't the trait remover mod i'm using its the respawn mod i'm using. if i remove the respawn mod, the traits get removed from the OnGameBoot trigger
Nice find, good work
thank you kindly
#mod_support @drifting ore
this is for devs of mods looking for help, that is for people who use mods looking for help
mod up on workshop? I would love trying that one
I want to see a mod that lets you experience the outbreak. Like, start from society being fully normal, then watch as the zombie apocalypse takes hold.
Like the opening scene of The Last of Us
Hello All. I am trying to get a mod I'm creating to be compatible with another mod, but load order doesnt seem to matter. It seems their mod overwrites the "contextmenu_en" file, and my functions aren't registered at all in my script. Is their a way to force mine to load through code, or do I change location of the file from server to client or shared? Not sure how i'm going to fix this.
I think my code is invalid causing the error, and I think I need to use code injection to solve it, but am not sure the easiest way to do that. Does anyone have any advice? Issue Context: Trying to alter the context menu for Safehouse Claiming, and then run a function from that.
Guess I'll be up all night.
=/
I don't think my brain has melted from coding more-so than writing recursive code for discovering relationships for Lua code.
This is my function, by the way. Running from Events.OnFillWorldObjectContextMenu.Add(Context_safezone)
for _, opt in pairs(context.options) do
if opt.name == getText("ContextMenu_SafehouseClaim") then
opt.onSelect = ValidateSafehouseClaim
end
break
end
end ```
Then some calculation code runs "ValidateSafehouseClaim", and finally runs the actual safehouse claim function from that.
``` function playerSafehouseClaim(worldobjects, square, player)
local builddef = getPlayer():getSquare():getBuilding():getDef()
SafeHouse.addSafeHouse(builddef:getX() - 2, builddef:getY() - 2, builddef:getW() + 2*2, builddef:getH() + 2*2, getPlayer():getUsername(), false)
end ```
The issue is that the code from the first function does not even run my "ValidateSafehouseClaim" function, and is bypassed.
Starting to feel like this might be worth releasing soon. Everything changes color depending on if the range is within acceptable or not. Battery is built in and not replaceable. the chevron indicator on the device itself also gives you a more short term notice of how fast or slow you are gaining/losing weight. also thought it would be fun to know a more exact weight.
I'll take any suggestions or input.
open in browser if it looks blurry
Update to my previous issue:
Upon further inspection, it seems the other mod is overwriting "ContextMenu_EN", but within their file it is only their few translations, which seem to omit the ContextMenu_SafehouseClaim = "Claim Safehouse", translation, which is what my code looks for. Is their a way to fix this? Sorry for the questions, I am desperate in figuring out the nuances of this kind of modding.
load mod after their mod, replace same file in same directory with vanilla ContextMenu_EN is a simple way if you absolutely need that other mod
when making a recipe and i want to use water=1, but i would like to allow any close watersource eg. Sink or river. how to i do that?
Thats crazy useful
recipe Clean Bowls
{
DirtyBowl,
Water=1,
Result:Bowl,
Category:Cooking,
OnGiveXP:Recipe.OnGiveXP.None,
Time:40.0,
Sound:EmptyPan,
}
I did just this actually. The ContextMenu_EN is under lua/shared/Translate/EN on both of the mods. When running the function it does the foor loop, but does not cycle through to find the correct Translation to use the If statement with.
for _, opt in pairs(context.options) do
if opt.name == getText("ContextMenu_SafehouseClaim") then
opt.onSelect = ValidateSafehouseClaim
end
break
end
end
this is from ISAddWaterFromItemAction.lua
ISAddWaterFromItemAction = ISBaseTimedAction:derive("ISAddWaterFromItemAction")
function ISAddWaterFromItemAction:isValid()
return self.itemFrom:isWaterSource() and self.character:getInventory():contains(self.itemFrom) and
self.objectTo:getObjectIndex() ~= -1 and
self.objectTo:getWaterAmount() < self.objectTo:getWaterMax()
end
isWaterSource seems reasonable
Thanks, now i just need to figure out how to use that code 🙂
should look at pz modding wiki
yeah i'm thinking recipes force non tainted water by default. could be wrong there
Perhaps I'm just a super noob but I cannot figure this out, so for custom modelled melee weapons, I'm assuming the origin point is where the characters hand goes right?
I had the origin point on the guard of a katana, and that's where the hand went, cool it thought, I'll just move the origin point to the 3d cursor and all will be well.
Well, I put the fbx back in and it's now just invisible? It seems changing the origin point just yeets the whole model in-game, I'm so confused lol
Sorry for jumping into the discussion here btw
if you code it yourself no problem, but if you rely on script only for recipe code, then maybe not possible @outer arch
i don't know anything about modeling and i bet #modeling is better. but i always see people mention to put your item right at center in blender and ctrl+a and apply all transforms
it does, and right now it "works" but it uses clean water from waterbottles and such. maybe i should not allow cleaning to happen in tainted water, it seems wrong anyway 😛
That actually does make sense, I shall give it ago! And if not then I'll jump over to the modeling section, thank you kindly!
base game doesn't allow cleaning with tainted water
could be a fun way to learn to code it though
ISTakeWaterAction.lua seems like it has a vast majority of the inspirational code you'd need to get started @outer arch
i will look into it
Gonna pull my hair out over this one.. arghh..
this is most of what you need. the sound would need a real sound chosen though
far from perfect but this should work
this is all global too so if you want to really use it in a mod I'd do some small changes. but this should most likely get you off the ground
not yet. in a week probably.
thx
THANK YOU. This fixed my issues. Oh thank you like no other!
AuD is working on something to copy buildings too
I wonder what the difference will be between the original bikinihorst's Blueprints and these two new ones
Can someone help me? I would like to know what each of these options in tileproperties.tiles is for
If there is already a tutorial or manual on this, please send it to me
I ❤️ you
There are many options in "???"
Some options that are used by the game original tiles, like this
Does anyone know what these options are for?
"FlatTextureOffset = -1"
-7 ???
What is the format for useDelta when creating it through recipes? For e.g. I made a recipe to create base.sugar=1 but this only gives partially used sugar (not completely full)
Wait your pfp is so cool who's the artist
Thank u :3
I am making the mod of a drink. There were things that if I interpreted them as a drink and not as a food, they didn't appear as I want them to. So, I treat the drink as a meal and when it is finished the container stays (Water container), which could be refilled again. The problem is that I get an error, the container cannot be refilled.
function: onMouseUp -- file: ISContextMenu.lua line # 90 | Vanilla.
[07-05-24 15:49:24.231] ERROR: General , 1715089764231> ExceptionLogger.logException> Exception thrown java.lang.RuntimeException: Object tried to call nil in onTakeWater at KahluaUtil.fail line:82..
[07-05-24 15:49:24.231] ERROR: General , 1715089764231> DebugLogStream.printException> Stack trace:.
[07-05-24 15:49:24.232] LOG : General , 1715089764232> -----------------------------------------
STACK TRACE```
I talked about it here yesterday and was trying to figure out how to fix it, but no idea
If you want to, feel free to zip your mod and pm it to me, so I can have a look
I'll turn my computer back on and send the file to you
haha yeah this graphviz svg is terrible
anyone have a better method of doing dependency graphing than jdeps -> dotfile -> graphviz svg? Does intellij give one out of the box or anything
I like to manually do mine or generate it using tools around PlantUML.
I'm a bit of a freak though..
The UML-like world is very ugly IMO.
I'd rather have a clean, presentable and beautified result.
I can at least get something somewhat-good-looking in PlantUML but it takes a lot of work. >_>
Honestly It'd be fun to write a simple & beautiful HTML5 render engine ontop of something like bootstrap 5 for this stuff.
I was trying to see if I could use https://medium.com/expedia-group-tech/jarviz-can-you-show-my-application-couplings-a9e57f7f76a7 but it wants maven built stuff so that's fun
Java bytecode analysis reveals field-level dependencies
Do you gradle?
I've used it but ignorantly to the actaul extent of the tool
I mean its usefulness. which is to say I've used it when following instructions in README.mds and have only looked through documentation to the ends of working with that
I had to write a solution where part of the code is private.
It took me 2 days of work to figure out.
Was a compile of a project-chain of about like 8 different projects.
It's amazing but it's so wieldy.
A good thing to know though for the Java industry.
I'm not quite sure I follow. Been placing calls through the morning by the privilege of being an american and changing healthcare insurance programs so my brain is kinda shot
Yikes
Oh you're fine. I am too. I also am a recovering patient from brain surgery.
My insurance passed 30 days 2 days before I went to the hospital and found out my situation.
And I'm American.
Wild shit.
Oof
Apparently I'm also a rare type of diabetic and found that out there. xD
Like America, pls
I think what would work in terms of what I'm trying to do, is if I could somehow get jdeps output to get parsed into the jsonl files for jarviz I could do the crazy VR/3D dependency graph interaction stuff with all their neat physics
Knox county is the least of my concerns lol
I like how you care about this stuff. +1 rep
It's rare to see here.
yeah I was without for a few days this past week due to a clerical error (!!) and so I had to, in case anything happened, know the continuing care programs of my then-suddenly-terminated insurance.
as much as the situation was really stressful to deal with I was surprised at how much granularity and like, details there were about courses of actions for any given situation which was nice that it wasn't all FUBAR
but I think that was getting lucky with the insurance provider having been a Benefit Corporation.
thanks! I do forays into this stuff periodically b/c I feel like more people would engage with the more advanced toolsets if they were like, at all accessible
I think it comes from having worked on foss projects and libraries while at diff companies in the past (pre-burnout)
I write these tools.
god have mercy upon your soul
I'm writing a library that spreads annotated types in Lua through parsing code.
I also just wrote a third-party documentation tool for the same stuff.
local _start = 1;
local _end = 10;
local _step = 1;
local function test()
for i = _start, _end, _step do
print(i);
end
for i = 0.5, 1.0, 0.1 do
print(i);
end
end
test();
Turns into
--- @type number
local _start = 1;
--- @type number
local _end = 10;
--- @type number
local _step = 1;
local function test()
--- @type number
for i = _start, _end, _step do
print(i);
end
--- @type number
for i = 0.5, 1.0, 0.1 do
print(i);
end
end
test();
The human documentation UI looks like:
i have an idea for a trait mod but idk how to, help?
@urban plaza I hope he does.
He had enough mercy to help me make sense of somewhat proper UI / UX design.
xD
"enough"
yeah but you remind me of the COBOL banking programmers I met when I first started
God have mercy on their souls..
I do crazy stuff though. I like these projects..
Like the fact that I can use JSX factories in PZ because of the TypeScript environment I wrote a few years ago.
xD
(Does PZ UI in HTML & CSS)
Just ya know.. You have to write a render engine for that from scratch but worth it.
what's ---@field ? I know about the others but not that one
Instanced fields. self.* stuff.
👌
I also put static field entries there.
I do both that and the definition with the defined / default values there.
This is what Umbrella & Candle uses.
oh that was you!!
do you have a repo for this or is it more of a private project
Respectfully, go wild. https://github.com/asledgehammer/PipeWrench-UI
It's both the web render engine prototype repo and the example mod.
🙏
I'd like to work on this project again, adding radial menus in like how a <select> HTMLSelectElement works.
Radial menus gives people a lot of trouble due to the lack of first-party documentation.
Since there's no JavaScript engine provided by the game, this is a from-scratch API.
Opportunities everywhere.
I think what stops anyone from contributing to this project is the simple fact that they'd have to write out the full logic for how CSS rulesets work, or at least emulate them somehow.
Now if there were such a simple HTML render engine in there I'd bet that with the right environment for modders people would be writing their UI in HTML rather than the ISUI API that's provided by the game.
@urban plaza
yessir
I planned to write it myself eventually.
You'll see some of that planned out in the repo.
I at least have the color stuff done.
radial/rose menus are always so fun but are kinda crazy to do with pure CSS. I felt inspired the other day about ux stuff though and took notes on how I'd implement stuff like the menu-pinning from Warhammer Total War 3 into web stuff
but like for actual ux stuff I tend to want to have multiple ways to do the same thing, like, having to wait a second for a pop-up to become static ('menu-pinning' as mentioned) as a little animation goes around the div would potentially be frustratingly limiting if there's not some other way of pinning the interaction (like clicking the thing causing the popup) that's intuitive
I tend not to work on these things if I haven't figured out the Norman-Door qualities
huh I'll have to dissect this a bit, my reflex is to wonder why you're not using react hooks here
I need to learn proper React.
By all means please use the right methods.
about that, I feel like a lot of companies/libraries/etc kinda do domain-specific variations so it'd be pretty wise of me to err on the side of investigating first b/c often times it's sort of a chesterton's fence kinda thing
domain-specific variations to react and all that. Like there might be reasons why a node application operates differently than a compiled frontend one etc
I treated that repo as a tech demo / prototype.
oh nice
And I also document my code. Heavily.
So understanding the why is not that difficult fortunately.
I might look like a COBOL programmer but I don't document like one.
If there's anyone I fear, it's the visual basic developers..
God help them.
They need it.
to be completely frank I'm really glad that rust/go/chromium have been encroaching on that brand-space
for different reasons and on different terms
@urban plaza Here's a compile of the mod that you can test.
Anyone dived into getting a list of servers and their description, player count etc?
sounds like battlemetrics website
Yeah, something like that
why do you need it for modding O-o
theres also #1019743790178762812 if you looking for a server
ohhh
I guess steam API might help with that..
no, zomboid servers are not hosted by steam
er but idk the answer to your Q honestly, i just got curious coz it sounds exactly like battlemetrics and that's a voluntary registration which is how i think it should be ^^ gathering a list of people's servers can be intrusive in a way, depends how you approach it
Well, they are dedicated servers so i only can think of one solution to this, like a scrapper mod that makes a file with all of the data.
It’s nothing against ToS and intrusive, just another kind of a metric i want to do for curiosity, like a activity map around the globe
It'd be wild if someone had a problem with that. A lot of my anti-cheat traffic came from sites that scraped my Steam guides.
Im patiently waiting for some kind of super basic LuaHTTP library getting supported in pz, the possibilites…
So I advocated for this however if you want a server-side support it'd be easy to mod the game's core to achieve this.
True, but knowing people there is someone that would lol
Is there a way to know if you are inside a certain building, so for example to know wether you are inside a church?
Heck if you pitched a few bucks I'd take a couple minutes to give you a basic API in Lua to do HTTP stuff / JSON stuff.
xD
I see, I could make it but the singleplayer is the thing i look forward to
I also have a public library for RCON that people use for things like Twitch API.
I think that the most recent version supports single-player RCON.
I did make one but I can't recall releasing that.
It was for custom commands.
Like a actual mod that uses rcon for singleplayer? Or it has to be multiplayer anyway?
okay. You got my attention xD
I work on what people ask of me so if people want this I could work on getting it out so people can use it.
Someone?
i will look into it first, havent even thought about using RCON.. if I get stuck or in need of something i can squeeze few bucks for a small help. :)
Let me check on that project. I have another person whose waited patiently on me to do something with it for him as a commission.
FlatTextureOffset is not used by the game
Why do several tiles have this option configured?
It's probably deprecated.
Commander said the intention was to define which tiles meant the garage door was open, but that doesn't seem to be the case
Does anyone know how to set the open door tile?
ohh i see, i thought you were like, listing IP address and all that stuff 😂 that sounds neat
Hey I know its been a while but I Figured it out, I'll probably work on making a Video Tutorial for other modders on how to work with ModData if I can
Thanks for helping
if they're right next to eachother, would it not be -1?
I have no idea 😂
in that example, the "open" state of that garage door is 8 tiles away
thats why the offset is -8
Usually copying properties from vanilla tiles is fine. Here you don't have to specify any offset, the doors should be in this order and the game knows how to assign the sprites.
I hope it works, I made some tiles that aren't in the original order of the game
i think they have to be in that order
Did the developers never comment on this?
if its how that image that elyon posted is, its kinda like how making furniture tiles is in the same order (for rotating).. at least thats how it was last time i made a furniture tile
Might work on this project again soon.
would you happen to know how to make a recipe create 1 (whole) item? have this issue currently
I wouldn't know. I don't write ZedScript. I only wrote the vscode extension. xD
that is an epic ext too btw
Thank you. Do you currently use it?
I'm thinking about continuing to write the error-detection for it.
No, but I had no idea it existed xD i recently picked up modding again. ill look for it now 🫡
Alright. Look up 'ZedScript' in the store. It's free ofc.
This is where I stopped on it.
do you have a group that is collaborating on it?
No. I'm the only one that works on my projects, with the exception of Umbrella which is a union of three modders.
The code is FOSS and hosted on GitHub.
This is the syntax highlighting for ZedScript:
(Open in Browser)
i looooove it
ive been using html/css as the highlighter on txt files for so long lmao
🤤
The documentation works on items mainly.
Also item-categories helps filter what should be used when writing out properties.
@gaunt meteor
ah, whats the hotkey for the context hover? o.o
I don't know. Doing mouse hovers.
Hello modders, I am new to modding and I started only this week. I have one question only.
I started reviewing the codes of other developers to understand how their mod works, so I can create one myself. However, what I don't understand about their scripts is that some items that they're adding to the game has WorldStaticModel or StaticModel and some doesn't.
Which items doesn't need it and which item does? Thank you so much for your answers!
in .txt file
recipe Make Sugar
{
EmptyJar,
JarLid,
Result:Base.Sugar=1,
Time:100.0,
NeedToBeLearn: False,
OnCreate:Recipe.OnCreate.MakeSugar,
Category:Cooking,
OnGiveXP:Recipe.OnGiveXP.Cooking10,
}
in a .lua file in server/
function Recipe.OnCreate.MakeSugar(items, result, player)
result:setHungChange(-1);
end
Anyone happen to know how to make a world object unbreakable? One that already exists preferably?
huh
got the model to show up
and it doesn't delete the item anymore, does the hood down version need a seperate texture?
working now forgot to add a singular "s"
WorldStaticModel are usually placed items on the world and StaticModel hand held models
Those are 2 different models, for reasons
I have been looking into making a simple -10 all skills trait, how would I go about doing this?
Tried adding a mod that adds a trait to the game which I modified to give -10 all skills. The .lua worked fine, however soon as i chose 'create player' it ran into the 'file doesn't match the one on the server' error.
So we made a working claymore-like explosive, but now we need to somehow edit this and a world-placed sprite of something
And we don't know how to open a .pack file and get a sprite from it
-10, you mean just setting every skills to 0 ?
I suggest checking the Mapping Discord
yes, I use the Skill Journal mod and it won't add any xp to the book if you already reach X level in skills before character creation.
Why set every skills to 0 then ?
im going to go insane
why
WHY DOES IT REFUSE TO UPDATE THE LUA
ive restarted, ive pushed to workshop, I've reloaded lua, every file has this change but in game it just doesnt exist.
Because I was setting all my skills to 0 upon loading into the world, I mainly used traits to get the 'bonus' extra thing like extra foraging distance/slower endurance drain when swinging etc.
I didn't want to start with most/all of my skills @ or near 10, more or less a 'masochist' run, to offset how op some traits were I was using.
Okay well I don't understand why you mentioned Skill Journal then bcs it has nothing to do with it unless you pick a Journal with levels xD
Make sure you don't have other local versions like one in /mods as well
File path? Ive checked like every file I could find
idk what you mean by "file path", just check you don't have other local versions in /mods too, also don't subscribe to your workshop mod so you don't get any issues with having a local version in /workshop different from the online version
I am borderline going crazy so i was asking what the file path is for the /mods file
because I know theres like 3 for some reason, one being the workshop one, one being local, and another being local but not used for some reason/just defaults
like i go C/Users/Username/Zomboid/Mods/ModName/Media/Lua/Client
and its the one that isnt bein used
and is like mark 1
but then we go
C:\Users\Username\Zomboid\Workshop\Modname\Contents\mods\Modname\media\lua\client
and its the one that looks like its bein used
Oh, just Zomboid/mods
There's 2 locals, both are used
I think I have to rephrase my question: When is an item required to have a static model?
Just Steam/Workshop is online mods
Zomboid/Workshop is used to upload mods but in fact everyone uses it for modding bcs it allows to use Github easily + you can directly upload and you don't keep a second version in /Workshop if you mod in Zomboid/Mods
If it can be held in hands I guess
Thanks, man. I appreciate you responding. 🙂
I dont believe you because this is all that client file has and its not in the debug menu lua
@abstract cairn Chopie can you restate your problem? I'm unclear. I see this, but I don't know what exactly you're trying to do, what doesn't exist, et cetera.
?
Both are used, when I started doing mods I made my mods in Zomboid/Mods
Then quickly moved over to /Workshop for ease of use
Doggy is right on this one, Chopie.
Just to settle pointless conflict early.
So please restate your issue so we can help figure it out.
thank you 🙏
I change some code yeah?
Change isn't being made in the game files when im in the game.
As in, line 140, in game using debug I can read the lua file right it has the old check instead of the new one (old causes errors)
So I go to the files and im like "did I save it?" yes I saved it because when I reopen it it has the change. Every single file. Even pushed it to workshop and the workshop version has it.
Okay then just reload the lua. Reloading the lua doesnt work.
Restarting the game doesnt work.
Restarting the mod doesn't work.
I'm not saying you HAVE 2 local versions, idk that it depends on you, but the game CAN use both locals at the same time and end up fusing the mods together, same way as fusing with the workshop online version to your local version
Okay, perfect.
Just unsub from the Workshop version
If you are subbed to it
all good, I believe you in the sense that I know your right but I dont believe you because it literally doesnt run that code in game (my guess is it overwrites the lua file since they are literally named the same thing)
Do you have any other versions of the mod you're making, or do any others exist?
already did
Do you have a version in Zomboid/Mods and Zomboid/Workshop ?
no- let me see actually for a second
I dont think so
but
If so only keep one of those
i will double check
Yes definitely this.
Check that.
I do but the one in game that is being used, according to the debugger, is the one that isn't a "hello world" test.
as in i have one in both
You need to delete the other one.
Only keep one
that doesnt make any sense
Do not run the same mod ID in both Zomboid/mods and Zomboid/Workshop
why would having two stop the lua from reloading properly after restarting
The game fucks up when you have 2 mods with the same IDs and end up fusing both together but keeps only one version of the fiels
If you do, the game doesn't know which one to load
And loads the wrong one
thats not a problem
BRO IT FUCKING IS
What do you want me to say more
Slow down
There's one version of the 2 local versions being used
It's conceivable that it's not the problem, but only if both versions are identical.
Some files are being used, some not, it ends up there that the version you modified the files and want to see in use is being overwritten by the second local version
Is the version of your mod in /mods identical to the one in /Workshop
So just remove that other mod
Because otherwise there is extreme likelihood the wrong file is being loaded.
File A - all the code right? all the code thats being run in the lua. Go to debugger. Thats the code.
File B - the one that I've had there for the past weeks of development that hasn't been moved or changed no issues. Literally a hello world from the first test.
Neither of them have merge conflicts right.
But the best part is even if they did, that doesn't make sense to me because the mod in teh game thats being used is File A. As in I can see File A, and NONE of file B. Even if File B IS conflicting, it's still not updating File A in the game properly. It's pulling out this old verison which literally does not exist on my computer anymore. As in the changes I've made to file A are NOT being propagated into the game.
100% always do this when working on mods you plan to publish. Imo there's literally no value in using the /mods folder if you are committed to finishing an idea.
i have to agree, i am working on over 8 mods in /workshop and have 0 in /mods
Are you hosting in MP?
no singleplayer local
I swear I will break my desk in two if you don't understand for the fifth time that mods with the same ids in mods.info will have their files all mixed together
i do understand that
and i have
the thing is, I dont care if the hello world gets added, which it isnt for some reason
its the fact that its not saving the changes
that shouldnt impact the way the game reads the file because the file has changed
one takes precedence over the other
you might think its taking precedence when its not? try deleting one and see if it works
just don't give yourself this entire precedence headache
Nah mate fuck this shit, I let you guys handle him
the precedence is not what im talking about
Just fucking delete one of the two versions
thats not the problem here
its that the game
its not reloading the lua
even through restart
even through disabling and re-enabling
that's not possible, there is an unmodified version somewhere that it is loading
im about to restart my entire PC and see if that fixes it
I've literally done an entire file check on my C drive
there is none

the game has absolutely no mechanism to cache lua files
THATS WHY IM SO CONFUSED
Unlikely to help.
is it possible you uploaded your mod to the steam workshop, then deleted it?
off the workshop.
i unsubbed from workshop
and to my knowledge local takes over when on singleplayer
Bro you literally said you have 2 versions, one in /mods and one in /workshop
okay here
i am in game, in debug menu, looking at the lua file. I have reloaded it, and restarted, and refreshed, and reneabled.
This is what the ingame file says.
This is what the in game file does.
That's not true either, I had cases in solo of local being taken over by online workshop
this is the saved file. as in this is the file I have saved. that it should be reading from.
i had an issue a long time ago - i still had a mod folder from a workshop mod even though i unsubbed. the folder being the modID number and hard to locate if not looking for it in the right place. if you ever uploaded your mod to steam workshop, and then unsubbed or deleted w/e, its possible its still in your pc. (not saying this is the issue specifically but just an example)
there is no other file, that matches the one in the lua on my computer to my knowledge.
even if
for some reason
it downloads the workshop one
I have updated my local changes
to the workshop one
meaning
it is updated
(and it was)
to this one
What does the one in /mods look like?
At that line number.
The same file in /mods is literally just 28 lines?
Okay. I am not saying this will solve your problem. I concede that it may not. But can I just ask why you have such a trivial and unrelated version of your mod in /mods?
@abstract cairn
And delete that god damn version in /Mods even if it supposedly doesn't seem to be the source of the issue, you have no point in keeping it
I originally was using it, and testing it, as a hello world function to make sure the file directory/mod architecture was working and reading properly.
That's fine. Keep it for experimentation. But change its name and mod id to reflect it's actual purpose.
Then it's a nonissue here.
In mod.info.
just fix that.
Then you can run the code one more time without two mods with the same id knowingly loaded in two separate places, try it once, and settle poor Doggy's anxiety at the very least, even if it doesn't fix your problem.
😉
If it still doesn't work with the name and mod id of the /mods version changed, that will tell us where not to look.
@abstract cairn To be clear, there are only 4 places that I know of to check for mods, and as far as I know only 3 are relevant to single player:
%UserProfile%/Zomboid/mods/%UserProfile%/Zomboid/Workshop/Steam/steamapps/workshop/content/108600/Steam/steamapps/common/ProjectZomboid/steamapps/workshop/content/108600/
The 4th one to my knowledge is used for coop hosting only
But maybe we use it to connect as well.
I don't know, I coop host 99% of the time I touch Zomboid
albion will correct me if I'm wrong.
😎
yeah it's only used by the co-op server process
if you've seen people get file mismatches connecting to themselves in co-op that's why
Oh right of course.
That makes sense.
Click.
@abstract cairn Point being, if you have a filename that is loading valid Lua code in a properly installed mod, it's coming from one of those three places, and if you change the code in that file in one of those three places and do not see the change in-game, then that's not the place it's coming from.
And if you follow this simple logic you will become unconfused.
I appreciate this a lot ty
[same goes to all of you responding/tryin to help I appreciate it a ton]
(irl stuff popped up so i gotta do somethin for a bit, but im def circling back to this tonight)
nice info
if you remove a mod from a server, does the moddata get wiped? or does it persist, specifically player mod data
it persists
mod data is just a table, it doesn't know where any part of it came from
is there a way to wipe that?
you can check for and remove it with an oncreateplayer handler
hmm ok, guess ill start looking into that then. thanks!
i restarted my game a second time and it worked. I changed literally nothing.
thank you for help
so does anyone know why the IsoPlayer hashitreaction is inconsistent when zombies attack you? (to my knowledge they always react to getting hit..?)
Still going to use it because i dont see a better alternative, just asking.
This is so nice on the eyes, what a difference!
From what I've seen, sometimes Java/Garbage Collection has memory leaks, and doesn't delete instances of files. Their could be a rare possibility that when you reload the game, the reference is still active to an old file with the same name in memory. I have sort of experienced this happening before, at least that's what it seemed to be, when I had a java hiccup and kept trying to restart>reload, and nothing seemed to fix it until I did a system restart, or memory trim, etc. Just an idea to ponder
Wait how do you actually install that
Vs code extension tab
Search ZedScript
@thick karma, bro, i need your help with decoration (again, yep...)
how do I make a perk give a negative XP boost
if you want to add or subtract xp is something like getXP():AddXP(Perks.Fishing, -1)
if you want to remove or add levels of certain perks. i think it's AddXPBoost(Perks.Woodwork, -1)
pretty much anything you'd want to know about how that works is in the MainCreationMethods.lua file
you can find the references in the class files themselves also
Is there a download or something for the vanilla game media folder files? I forgot to throw them in a private repo so I can always access them anywhere I go
Can't you just browse local files (through steam) and copy and paste the folder
I don't have the game installed or available on the system I'm currently working from
Else I would've indeed done that instead
Ah, no not that I am aware of
Would certainly be a good idea to upload it to github or smth
Yeah exactly, that way all of us always have the required files on-hand
If someone else doesn't do it first I could do that this afternoon
Friend of mine is grabbing the files for me as we speak so I could also throw it in a repo within the hour probably
I was lucky enough he was still awake (other side of the world so yea)
What do you need to decorate
vanilla:
function Recipe.OnCreate.CutAnimal(items, result, player)
local anim = nil;
for i=0,items:size() - 1 do
if instanceof(items:get(i), "Food") then
anim = items:get(i);
break;
end
end
if anim then
local new_hunger = anim:getHungChange() * 1.05;
if(new_hunger < -100) then
new_hunger = -100;
end
result:setBaseHunger(new_hunger);
result:setHungChange(new_hunger);
result:setCustomWeight(true);
result:setWeight(anim:getWeight() * 0.7);
result:setActualWeight(anim:getActualWeight() * 0.7);
result:setLipids(anim:getLipids() * 0.75);
result:setProteins(anim:getProteins() * 0.75);
result:setCalories(anim:getCalories() * 0.75);
result:setCarbohydrates(anim:getCarbohydrates() * 0.75);
end
end
need put this:
local zBoneCounter = math.floor(anim:getActualWeight() + 0.5)
if zBoneCounter > 0 then
player:getInventory():AddItems("Base.zReHCM_Bones", zBoneCounter)
end
It looks like you're giving people bones when they cut up animals
yep yep
But the number of bones you give is based on the weight of a food item the animal drops?
yep yep
Gimme a minute to open my pc
@verbal yew
local YourModule = {}
YourModule.originalCutAnimal = Recipe.OnCreate.CutAnimal
function Recipe.OnCreate.CutAnimal(items, result, player)
YourModule.originalCutAnimal(items, result, player)
local anim = nil;
for i=0,items:size() - 1 do
if instanceof(items:get(i), "Food") then
anim = items:get(i);
break;
end
end
if anim then
local zBoneCounter = math.floor(anim:getActualWeight() + 0.5)
if zBoneCounter > 0 then
player:getInventory():AddItems("Base.zReHCM_Bones", zBoneCounter)
end
end
end
@verbal yew Make sure this code is in server, because that's where Recipe gets created.
king! thanks so much!
Hi I'm trying to make a weapon use a different set of animations than the base animation for for 2Handed which appears to be Bat.
Basically my problem is that the swing animations are limiting the speed that my character can swing their weapon. This can be solved with a sledgehammer approach of just installing a global faster animation speed mod, but that would affect all of the weapons.
What I am trying to do is basically just use the animations that already exist for Bat "SwingAnim = Bat" for example, but make a new tag that can be used, then have that tag be called for a unique set of anims.
The animations can just be a modified version of the basegame, just with their speed tweaked to allow for faster swings on weapons that use that tag. The problem is, I can't figure out how the game is calling for AnimStates, like, there doesn't seem to be a reference to "Bat", the game just kind of recognizes that "Bat" means use "2Handed".
MinimumSwingTime and SwingTime don't seem to have any effect in game, the fastest speed a weapon can swing seems to be related to the animations themselves.
The ideal solution is figuring out how to make a tag like:
SwingAnim = Fast2Handed,
And have that then use the custom AnimSets.
There is a fixed time between swings in vanilla. If you 0 it after every attack you can swing much faster
Idr if it can be adjusted on primary attacks but this came up when dhert was working on timing of secondary attacks in Brutal Handwork (which adds dual wielding of blades and blunts, and hand-2-hand boxing attacks).
But when you 0 it we can attack much faster
I set MinimumSwingTime = 0.1
And SwingTime = 0.2
BaseSpeed = 20
None of those made any difference to swing speeds, or rather, none of them broke the usual swing speed cap.
Or do you mean changing the AnimSets?
https://steamcommunity.com/sharedfiles/filedetails/?id=2894811860&searchtext=faster
This mod for example changes animation speeds, but the problem is that it changes every weapon's anim speeds.
I recommend you review Brutal Handwork. He did a lot of work on attack speed matching and I expect the right fields and functions will get referenced throughout that mod when he deals with left hand attacks
so i asked this question last night then looked into it and realised i do not know enough about mod data to even begin attempting it, so im hoping someone already has the code, does anyone know how to wipe a specific mods player moddata after removing that mod to clear that table? ive looked on the workshop and searched here in the discord and found nothing
basically we wana remove Autoloot cuz the table for the player moddata is like every item in game, but if we remove the mod the moddata will persist which probably wont fix our issue
You could take the entry for the whole Autoloot and then assign nil to it
Assuming it goes AutoLoot.itemName
Then you just do AutoLoot = nil
That should wipe the entry
yeah thats what i was thinking, but my knowledge of lua if very limited, ive only started like 2 months ago and only have written successful code with the help from people here, and ive never touched mod data before and am unsure how badly i can mess things up if i screw up
Doubt you can really break the fabric of reality by messing up moddata
I mean if you remove the mod from the server new players joining wont have the entries
unless you're wiping the global mod data table, it probably won't do anything terrible
Yea if its in tbe global moddata then you gotta be careful
If its player moddata then you wont have nig repurcussions by messing up
if you're writing to the global mod data table, make sure you unique names so you don't overwrite an existing key
if a person dies would it also wipe that mod data? or does it persist through deaths
no its just player moddata
thats the auto loots player moddata. its literally 95% of the moddata list XD
and thats on a test server, where i have never used auto loot. so its that large by default
player mod data is stored on the player object, when player dies all that stuff will go away so if you're using player object to store something that you want to persist you might run into issues
but everything would be contained to that player so it should be ok
no i want to remove that moddata alltogehter when we remove the mod. we are getting exceptions on the server "Error with packet of type: PlayerDataRequest". and we suspect its because of large moddata tables, and Auto loot is probably the culprit
but if it goes away on death, then that would solve the majority of the issue
not many people live forever on PZ
not familiar with the mod, i guess it automatically hoovers up items based on a table thats written to player mod data?
yeah, auto loots stuff (i dont use it even when i play so not to sure how it works), and theres a mod data table to determine true or false if it should auto loot
and the issue occurs when we get like 15+ people online, or during events, when people start vaccuming up all the loot from dead zombies i assume
does the table change often?
probably only when people configure their auto loot settings to set items to true or false or something. i honestly dont know, kind of dislike the mod so ive never used it/configured it.
i created a louisville spawn mod and a drink mod but the drink mod failed and the spawn mod in louisville seems to have succeeded but I haven't tested it yet
sounds like its a SP mod that is not optimized for MP
well, not optimized for a heavily modded server that adds alot of items at the very least XD
the autoloot table needs to be indexed if there are a lot of entries
if the table is presumably large, it might just simply be crawling through the entire table each time you're next to an item
each time you're next to a container it's probably checking each item through the entire table, if you're on a pile of corpses it's probably checking the entire autoloot table hundreds of times
yeah thats what im assuming. i dont know enough about modding to determine if the mod is indexing or not
based on what you say is happening, its definitely not
eveyrthing ive learned about lua coding is what i learned to achive the goals i wanted. everything else is a mystery to me
its just checking the table for each item
Weapon to surpass metal gear.
well i guess step 1 is removing the mod and hoping the issue goes away, and if not ill look into removing moddata with lua code.
Feel free to come back once you got the answer. 🙂
anyone knows for sure if players are saved server and or client side in MP ?
pretty sure server side, since you can wipe pz and fresh reinstall and still load in your MP char
no, they say they do not know. and it is using a map.
the player object is saved to the data blob in the server-side player database
Thanx, do you know how the decision is taken to transfer the object to save ? e.g. is there a configurable period somewhere ?
i don't know, i think it's done both periodically and when the player disconnects or the server closes
i don't know how player mod data gets saved, it isn't usually available on the server
@urban plaza I think I spoke to you about my twitch commands.. might've been someone else. I lost the code for the client-side RCON support so I'm going to re-implement it.
Single-player RCON support for custom commands.
anyone know how to get the closed door texture for a specific door (any between IsoThumpable and IsoDoor) from lua ?
To change it?
no, to save it. (in the blueprint)
Aaaah I see what you mean
Good question, I've worked on Thumpable and IsoDoors before but wasn't linked to textures
when the door is closed, I have access to current sprite (closed) and open sprite (open)
Tried IsoDoor:getTextureName() ?
when the door is open, I have access to current sprite (open) and open sprite (open). not to the closed one
hmm
that's fucked up, perhaps close the door before copying it ?
No idea if possible however
good idea. but I dislike modifying the source object
Understandable
But you could open it back afterward ?
You could even copy the open state and apply it later down the line
When pasting
That would not be seen by the players since it's so fast
if IsoDoor:isOpened() then
IsoDoor:ToggleDoor(IsoGameCharacter)
--get sprites
IsoDoor:ToggleDoor(IsoGameCharacter)
end
ToggleDoorSilent()
True, didn't see that
That's even better
That way that doesn't break the ears of everyone when copying xD
for an IsoThumpable door the open sprite is the northSprite
that probably means they identified the problem too 😉
this is a notion at the building object level. there is no such thing at java level.
it seems to work flawlessly
Nice
Yeah you could even make sure doors copy in the state they are, that would be cool
So open the door if it was tagged as open when copying it
Even an option for admins to copy doors in the state that they are in idk
You do your things
Hm, now the claymore sprite doesn't appear where it should
But it blows up on the spot where it's actually placed
How does the tilesheet looks like ?
Why did you not make it a placed item ?
Now that I think about it lol
Why make it a tile ?
It is
though I don't think he made it a tile in the first place
Well that's not a placed item here, that's a tile
No ?
Oh no it's not a tile
It's just not a 3D item
Wait, so how do you make a 3D claymore work as a sensor mine?
I'm not entirely sure but if you can get the rotation of the object placed then you're good to go
What kind of rotation do you mean?
does the position you place it change depending on the current zoom level ? 😄 I have fun memories of using coord convertions between screen position and iso (world) position.
When you place an item, you can rotate it
Placing a 3D item
guess not
So yeah, it was like this from the beginning, and the 3D model was the first thing my friend made because he had hoped it could work when the claymore is placed as a trap
Hey does anyone know any modders taking commissions for clothing mods right now? Or a proper discord to ask this question in
Try using the KOI8-U/RFC 2319 encoding if it exists
And pasting the original text back to the script
Bro I can't read your language, what action did you do ? Drop ?
First he tried placing it down as an item, then he planted it as a bomb
The model doesn't show up in the latter case
We have a commission channel
https://discord.com/channels/136501320340209664/1125248330595848192
Plus, the placement is wrong for some reason
Planted ?
That's a modded option
I mean use the same reference square but click it once with min zoom and once with max zoom :). once placed zoom has no effect.
thank you
Good afternoon.
AAAAAAAAA
Well of course he's not dropping or placing manually the item, he's using a modded option and he just didn't use the right method to place the item, no surprise
Yessssssssss! thank you thank you very much🍪
...damn. Then, how do you edit existing world tiles? And will that work instead?
Thank you very much@flat panther
Tiles ? Why are you still going with tiles ?
Tiles are absolutely not the same thing than items
I am not sure myself what he's trying to achieve by editing tiles
Also you can't rotate tiles
So your claymore will always point towards the same direction
Which is why I asked why you're using tiles instead of placing the item and just detecting where your claymore is pointing towards
If it was a simple mine, a tile would do the trick, but in your case it's a directional detection explosive
Also if your friend needs specific help it would probably better for him to be here with us
He is here but he wants me to ask here for him

'Cause he's so confused rn
Tiles ARE NOT items
THEY ARE NOT THE SAME THING
And they are not created the same way AT ALL
Tiles are defined in tile packs
Items are scripts which link to models if the item has one with stats etc
Also, the way he plants the claymore is the same as a pipebomb/smokebomb/firetrap with sensor, as they are placed items that apparently use a tile called "constructedobject_32/36"
This is why it beeped when it's placed, too
The only issue with this right now is that it doesn't appear right under the character as it should when it's placed down as a trap
@verbal yewthanks for the help🍪
for what ahaha 
I don't even remember if those aforementioned vanilla traps + noisemakers even had 3D models when they're activated, though
Did someone ping me? On mobile, got a notification, but can't seem to tell...
Check Notifications here:
Bottom of screen
Only good thing about latest Discord updates
That was already a thing before
Weird. I don't see anything. 🤣
That has been a thing for over a year at a minimum
When I say latest I mean it very loosely
I mean since all the updates began in the last 2 years to send Discord down the shitter
The one good thing is that immediate access to all notifications
lol
Everything else is garbage
Ever since they added that bottom panel Discord has been laggier lol but at least I don't have to find what notified me manually
Does the runspeed modifier on clothes just not work or something?
Nice.
I've figured out that Spears call for stuff like SpearDefault to be used and SpearMiss on misses, bats are using 2HMiss and 2H anims, when set to SwingAnim bat or spear. I can see the knife anims as well, all good. Can't tell why they are using those anims though.
The .xml doesn't specify clearly that something's listening for 'bat' for example.
<m_Name>Weapon</m_Name>
<m_Type>STRING</m_Type>
<m_StringValue>spear</m_StringValue>
</m_Conditions>``` I assume its related to this.
I'll try setting m_StringValue to something unique and testing if it uses a different animset.
<m_Name>Weapon</m_Name>
<m_Type>STRING</m_Type>
<m_StringValue>2handed</m_StringValue>
</m_Conditions>``` This is for every weapon that uses the Bat SwingAnim, so I assume that the game is just parsing 'Bat' as 2handed and it is just stumping me where that's happening.
Or overall custom animations
Or perhaps in the script of the weapon are the necessary info for the game to determine if it's one handed or two handed
That's the thing, Crowbars use SwingAnim = Bat for example.
There's no unique anims for every weapon, its just broadly understood as "Bat means you are using the 2Handed anims for bat swings".
Even katanas.
The only unique animations are ones for one handed weapons, 2-handed, spears, knives, and for shoves.
oh yeah and heavy
TwoHandWeapon = TRUE for bat types and for sledgehammers, but they use different animsets due to the SwingAnim defined for them in their script (as far as I can tell).
Anyway lets just mess around and find out.
heyoo
i'm hoping to commission someone for a QoL mod that affects sprinter audio?
You can make commissions there :)
https://discord.com/channels/136501320340209664/1125248330595848192
oh, i can't see that chat
🙏
Is there even a way to set a 'cooldown' of sorts if someone uses the context menu? I have an action settled in the context menu that lets people TP but I'd like to implement a cooldown.
No idea if that's even possible if it's not a timed action.
It turns out that changing 2Handed to 'katana' actually does affect all 2Handed weapons and breaks them, and the file doesn't read katana from the weapon script when it is set to SwingAnim, alright, so I've debunked myself, but not figured out what is causing some weapons to use the weapon anims that they do.
Store the time the timed action was last used using getTimestamp(), and next time the context menu is used, get the current timestamp and subtract the stored one from it. If more than the cool down, then make the option available, otherwise, make it unavailable, and store the current timestamp again
Ohh, interesting. While it doesn't play an animation/timed action, I could easily just attach it to one and then set this up. Thank you!
--psuedocode
function onCreateContextMenu()
local option = createOption("optionText", onClick)
local cooldown = 5
local lastUse = myMod.lastUse or 0
local currentTime = getTimestamp()
if currentTime-lastUse < cooldown then
option.notAvailable = true
end
end
local function onClick()
myMod.lastUse = getTimestamp()
end```
Very much appreciated, thank you!
My pleasure!
Hi everyone we are looking for modders/scripters who want to help us in our project, we can provide machines for testing and more.
If you want to hire modders for commissions or present your project more in detail for collaborations
https://discord.com/channels/136501320340209664/1125248330595848192
thanks, sorry for the spam
np dw
I'm looking through the code for Zomboid, and am a bit horrified to see that Traits/Skills don't have a table defining their properties, but rather that these are broadly "added" to the player (with no immediate impact), and ad-hoc addressed in a hard-coded approach per function. For example:
"Resilient" trait is defined in MainCreationMethods.lua
TraitFactory.addTrait("Resilient", getText("UI_trait_resilient"), 4, getText("UI_trait_resilientdesc"), false);
However, the actual implication of that is all over the place. In BodyDamage.java, it's listed individually in pickMortalityDuration(), updateWetness(), and updateCold() for those respective features.
Has this been poked at? I recognize there are different coding styles, but this vastly inhibits maintenance & expansion. I'm new to modding in PZ, so I'd love to hear from other modders to see if I'm understanding the issue correctly, and perhaps if there are solutions already in place to hurdle this.
welp
It sure isn't ideal but I can understand why that was done
The idea was just to have various tags on the player, which is great
And you can check for that tag at any time in your code to have effects differ
Like add a multiplier to damage taken or time to heal, to the time to build perhaps depending on your trait and shit like that
It can be more problematic for more specific things but I don't that's a trait system issue, just a PZ problem lol
I want to suggest to the developers another way, but I also realize that may undesirable feedback. Are they open to suggestions? I’d love to put together a coded alternative, if they’re receptive to that kind of thing.
Would the AddXPBoost thing for the traits make it so you get a negative XP multiplier?
I'm currently just going to be coding it into the XP reward system but I wanted to know if there was an easier way to just use the add XP with multiplier thing (and make it so there is a like 0.75 multiplier so you get 75% of the XP or 25% less XP)
Probably not
Best way to suggest a profesional thing like is probably to email them if actually want to make that a serious thing
But even then, I suggest explaining your idea here so we can help you judge if that would actually be a better system
Fair enough. Filter it by consensus, before submitting it for serious consideration.
I would just submit your suggestion on the IS forum. I don't think it will be difficult for them to see what you mean if you just explain the idea and provide a couple examples. The difficulty comes in upgrading the entire existing codebase everywhere to utilize tables of trait and skill effect data.
You're welcome to get feedback here first but I think it's clearly fair enough and the question is not whether it has value or whether they'll understand it, but whether they have time to implement it in the context of doing everything else they have planned.
@azure pilot Might also be worth exploring the forums or the Thursdoids to make sure your dream isn't already in the works behind the scenes for Build 42.
“Thursdoids”?
Does anyone know what lua file (if any) is being used when we do a melee attack?
More than one file is involved when an attack goes off. What are you trying to do exactly?
Depending on your goal you might consider an event like OnHitZombie.
When using a custom weapon with its own set SwingAnim I'm trying to make the game recognize that SwingAnim and use its own AnimSet.
Just like how using a weapon with SwingAnim = Spear, would use the SpearDefault.
anyone have a good timed action tutorial/example? just asking in general (im going to probably look at a few mods for reference but I was wondering just in case heh)
I found this, which is neat, but I was hoping would be more informative
https://github.com/MrBounty/PZ-Mod---Doc/blob/main/How to make a custom timed actions.md
Hmm I sort of use timed action, I mean basically what Susceptible did
Does anyone know why some sounds work for weapons and others don't? They're both ogg files, they're in the correct place, they're mentioned in the mod's sound file scripts, and they're called by the item.
Some of my items have working sounds already, and there doesn't seem to be much difference. Does the game not like some .oggs?
I have no idea sry
In my opinion as a noob myself, is to find a timed action in game you are super familiar with. and use the code from that class to understand how it works
IsWashYourself is a great example since it's something you use often in game normally
Could I use HaloTextHelper to display a custom client side message above the characters head?
If not how could I achieve this?
mods are comin in clutch
@wraith hemlock I would assume your encoding differs between the two files. Perhaps a bitrate, or compression algorithm that PZ can't handle?
Bitrate is 1536 on the files that aren't liked, both ogg, exported in audacity.
Thing is one of the sounds that does play is 1536 bitrate, and also the game seems to actually play the sounds, they just aren't heard in the game.
Using debugger reveals its calling those sounds just fine, just no sound plays.
Perhaps if you run a normalize amplitude pass on your audio? That'd ensure they're both authored at a consistent volume.
I got them to play, but the game only accepted it by referencing the ogg file directly. Whilst this lets me play single clips, it seems like playing them as a category is broken for some reason?
At least the nokia is working fine.
{
category = Object,
clip
{
file = media/sound/nokia_1.ogg,
}
clip
{
file = media/sound/nokia_2.ogg,
}
clip
{
file = media/sound/nokia_3.ogg,
}
}
sound 3310HammerSwingSounds
{
category = Object,
clip
{
file = media/sound/nokia_4.ogg,
}
clip
{
file = media/sound/nokia_5.ogg,
}
}
``` Works fine.
{
category = Object,
clip
{
file = DemonHit.ogg,
}
clip
{
file = DemonHit2.ogg,
}
}``` No dice.
anyone know how to handle THashMap from java in the lua part? if i print it it looks like this:
{GunCache2=zombie.inventory.ItemPickerJava$ItemPickerRoom@5292a23d, GunCache1=zombie.inventory.ItemPickerJava$ItemPickerRoom@587860a7, cafekitchen=zombie.inventory.ItemPickerJava$ItemPickerRoom@570f931b, hairdresser=zombie.inventory.ItemPickerJava$ItemPickerRoom@76616484, picnic=zombie.inventory.ItemPickerJava$ItemPickerRoom@31a5a33f, spiffosstorage=zombie.inventory.ItemPickerJava$ItemPickerRoom@2ac380f4, grocerystorage=zombie.inventory.ItemPickerJava$ItemPickerRoom@17f59fc, controlroom=zombie.inventory.ItemPickerJava$ItemPickerRoom@7c475813, donut_kitchenstorage=zombie.inventory.ItemPickerJava$ItemPickerRoom@60e7b0ff, ToolsCache1=zombie.inventory.ItemPickerJava$ItemPickerRoom@56155837, fishchipskitchen=zombie.inventory.ItemPickerJava$ItemPickerRoom@2d5e5bb0, jewelrystore=zombie.inventory.ItemPickerJava$ItemPickerRoom@6b9f09c8, clothesstore=zombie.inventory.ItemPickerJava$ItemPickerRoom@36a23c0c, medicaloffice=zombie.inventory.ItemPickerJava$ItemPickerRoom@4a8a1e0f, classroom=zombie.inventory.ItemPickerJava$ItemPickerRoom@15564f35}
local test = room[1];
print(test);```
and this gives me the error attempted index: 1.0 of non-table:
Check its type
why is there no PlayerDamageType for fire damage or for generator/gas damage?
either they fall under another damage type or the event doesn't trigger for them at all
the event was added very close to the time the game stopped receiving updates, and the vanilla game doesn't use it whatsoever, so it's more likely to have omissions like that
Guys, time in recipe - it's ingame sec?
Hi guys, is anyone able to help me out? ive had this issue with my weapons for my mod being invisable ingame and i cant seem to fix it no matter what i do. ive come close a few times but no luck.
the models have been created by myself so im worried i have done something wrong with the models or the textures
i have no idea what is causing them to show up as invisible and its driving me a bit nuts
Do you have both the models and textures in the right folders?
Do you have the models paths assigned correctly?
I just found this on the lua translation files
this doesn't affect real coding, does it?
It just add lines of text on items
hey tis, can you release b42 tomorrow ? please
No it doesn't affect it
I'm revamping the boots and clothes expanded mod, and I wonder if I should delete the bomber jackets in it, since it conflicts with those from spongie jackets
I really want to make the mod more enjoyable and more compatible, but leave it as untouched as possible
any suggestions?
My guess is it's the kind of mod that people who download it will also download Spongie's jackets
So yeah if you can make both compatible, probably go for it
yeah I was doubting on it, but the mod has other strengths on it, like the shoes which is the main theme
it has other cool accesories too!
Yeah
So I noticed that the animNode for weapons has a variable "CombatSpeed". The animations that follow have set scales, though. Would setting those to "CombatSpeed" allow combat speed modifiers to actually function?
<m_Name>2HDefault</m_Name>
<m_AnimName>Bob_AttackBat01_Hit</m_AnimName>
<m_Priority>4</m_Priority>
<m_deferredBoneAxis>Y</m_deferredBoneAxis>
<m_Looped>false</m_Looped>
<m_EarlyTransitionOut>true</m_EarlyTransitionOut>
<m_SpeedScale>CombatSpeed</m_SpeedScale>
<m_BlendTime>0.15</m_BlendTime>
<m_BlendOutTime>0.25</m_BlendOutTime>
<m_Scalar>AttackVariationX</m_Scalar>
<m_Scalar2>AttackVariationY</m_Scalar2>
<m_Conditions>
<m_Name>Weapon</m_Name>
<m_Type>STRING</m_Type>
<m_StringValue>2handed</m_StringValue>
</m_Conditions>
<m_Conditions>
<m_Name>AimFloorAnim</m_Name>
<m_Type>BOOL</m_Type>
<m_BoolValue>false</m_BoolValue>
</m_Conditions>
<m_2DBlends referenceID="1">
<m_AnimName>Bob_AttackBat01_Hit</m_AnimName>
<m_XPos>0.00</m_XPos>
<m_YPos>0.00</m_YPos>
<m_SpeedScale>0.80</m_SpeedScale>
</m_2DBlends>``` example from 2HDefault.xml
It is implied that it takes into account combat speed (from somewhere) but the animations have fixed scales?
@red tiger are you getting the support for JSX (<element>/*stuff*/</element>) syntax via the @types/react library?
doing a bit of a dive into your code & I want to make sure I'm barking up the right tree
I don't know React so maybe?
I'd like to work on this project again.
this being PipeWrench-UI? yeah it seems neat as hell. I'm just trying to make sure I grok it more before giving suggestions about bringing more of react's design functionality over or discussing that sort of thing
so that I'm not just like, completely unhinged
@red tiger above is for u
<m_Scalar>AttackVariationX</m_Scalar>
<m_Scalar2>AttackVariationY</m_Scalar2>
Nah nah I'm very open to suggestions.
What you're suggesting makes a lot of sense to implement.
I don't know what these values mean.
It links to
<m_XPos>0.00</m_XPos>
<m_YPos>0.00</m_YPos>
What does this have to do with combat speed?
@urban plaza Are you considering possibly contributing to this project?
Absolutely. I was just making sure I grasped the intention/setup of it. allowing jsx syntax to define ui elements is pretty great
have you attempted to look through DHERTS code to understand how he did this? i'm pretty sure he had to build it from scratch for the alternate hand based off the main hand. i'm almost certain all your answers are within that code for understand at least
I just know a lot of the magic occurs during the transpilation step
eyy, so I tried to delete it from the mod, but it still shows up in the character creation screen, although you can't click it
any idea on it?
Me and someone else looked through the code but its hard to understand it, he seems to have rewritten a lot of things.
I have to write a whole HTML render engine on-top of PZ so that'll be fun.
yeah it's code of a extremely kind seeming madman 😄
io think i get it kinda
i think combatspeed is the base and the specific speed of weapon is a multiplier from that speed
don't quote me but thats how it looks
hello everybody im new to modding and im having some issues with adding a recipe. its just a simple food recipe using vanilla items but for some reason the recipe doesn't pop up in the recipe tab. are they any common issues a new modder might run into here? my code is a 1 for 1 refrenced from another mod just sourcing the items im in need of.
module base
{
recipe Make Pancake Mix
{
Flour,
BakingSoda,
Sugar,
Result:PancakeMix,
Time:20.0,
Category:Cooking,
OnGiveXP:Recipe.OnGiveXP.Cooking3,
}
}
I also see some code in Java that shows how the combatspeed is created if you need
not sure if you looked at that
calculateCombatSpeed()
that shows how it breaks down overall
what's considered when creating the combat speed
protected float calculateCombatSpeed() {
boolean var1 = true;
float var2 = 1.0F;
HandWeapon var3 = null;
if (this.getPrimaryHandItem() != null && this.getPrimaryHandItem() instanceof HandWeapon) {
var3 = (HandWeapon)this.getPrimaryHandItem();
var2 *= ((HandWeapon)this.getPrimaryHandItem()).getBaseSpeed();
}
WeaponType var4 = WeaponType.getWeaponType(this);
if (var3 != null && var3.isTwoHandWeapon() && this.getSecondaryHandItem() != var3) {
var2 *= 0.77F;
}
if (var3 != null && this.Traits.Axeman.isSet() && var3.getCategories().contains("Axe")) {
var2 *= this.getChopTreeSpeed();
var1 = false;
}
var2 -= (float)this.getMoodles().getMoodleLevel(MoodleType.Endurance) * 0.07F;
var2 -= (float)this.getMoodles().getMoodleLevel(MoodleType.HeavyLoad) * 0.07F;
var2 += (float)this.getWeaponLevel() * 0.03F;
var2 += (float)this.getPerkLevel(PerkFactory.Perks.Fitness) * 0.02F;
if (this.getSecondaryHandItem() != null && this.getSecondaryHandItem() instanceof InventoryContainer) {
var2 *= 0.95F;
}
var2 *= Rand.Next(1.1F, 1.2F);
var2 *= this.combatSpeedModifier;
var2 *= this.getArmsInjurySpeedModifier();
if (this.getBodyDamage() != null && this.getBodyDamage().getThermoregulator() != null) {
var2 *= this.getBodyDamage().getThermoregulator().getCombatModifier();
}
var2 = Math.min(1.6F, var2);
var2 = Math.max(0.8F, var2);
if (var3 != null && var3.isTwoHandWeapon() && var4.type.equalsIgnoreCase("heavy")) {
var2 *= 1.2F;
}
return var2 * (var1 ? GameTime.getAnimSpeedFix() : 1.0F);
}
Just wrote & documented my type-stubs for part of the API for my custom server & singleplayer RCON commands mod.
is there a way to make that smaller without putting into a file and uploading
jeeeeez
module base
{
recipe Make Pancake Mix
{
Flour,
BakingSoda,
Sugar,
Result:PancakeMix,
Time:20.0,
Category:Cooking,
OnGiveXP:Recipe.OnGiveXP.Cooking3,
}
}
is that ongivexp right?
i dont think that's how it's writen but i'd have to double check
it was just there when i copied it over from so im not sure.
Also don't remember is Base has to be caps
huh so it using basespeed on weapon scripts but this doesn't mention combat speed mods on clothes?
something like that but based on
moodles, perks, traits, injuries, thermoregulator, and weapon type.
either way base speed is capped by anims, and it does not seem to increase the anim speed scale.
I don't know a ton on it but that stuff is where dherts code would come into play
if you are needing to alter things like that
you can see that a weapon with base speeds of like 20 and no swing delays set will basically be capped to the speed that the anim is set.
also it seems the final calc is randomize slightly also
Yeah but he basically rewrote primary attacks it looks like.
His code mentions using his custom anims here;
local prone, stand = BrutalAttack.GetAvailableTargetCount(self.character, self.weapon)
if stand == 0 and prone > 0 then
self:forceStop()
-- Fall through to doing the character stomp or main attack
self.character:DoAttack(self.chargeDelta)
return
end
local atype = "bash"
if self.unarmed then
local hands = (BrutalHands.TOC and BrutalHands.TOC.getHands(self.character)) or 11
local rand = 4
local randoff = 1
if hands == 00 then
self:forceStop()
-- Fall through to doing the character stomp or push
return self.character:DoAttack(self.chargeDelta)
elseif hands == 01 then -- right only
rand = 2
elseif hands == 10 then -- left only
randoff = 3
end
local num = ZombRand(rand)+randoff
if num==1 then
atype = "rpunch1"
elseif num==2 then
atype = "rpunch2"
elseif num==3 then
atype = "lpunch2"
else
atype = "lpunch1"
end
--atype = (ZombRand(3) == 1 and "lpunch1") or "rpunch1"
elseif self.weapon:getSubCategory() == "Stab" then
self.maxHit = 1
atype = "knife"
end
self.character:setVariable("LCombatSpeed", self.speed)
self.character:setVariable("AttackAnim", true)
self:setActionAnim("LAttack")
self:setAnimVariable("LAttackType", atype)```
but when he is doing those attacks he is calling his own custom attack codes in BrutalAttack.
All I'm trying to do is make code that checks SwingAnim for example "CustomWeapon" and then uses the animNodes for that with what I guess would be:
self.character:setVariable("CustomCategory")
self.character:setVariable("AttackAnim", true)
self:setActionAnim("CustomWeapon")
self:setAnimVariable ? ? ? Not sure about this line.
And it would basically use the same attack as the game does normally, just with the addition of using that anim.
All of this could also be solved by the ability to just 'turn off' the speed cap somehow and allow basespeeds to push it.
unrelated question, does anyone know where to find the list of valid names for https://projectzomboid.com/modding/zombie/characters/WornItems/WornItem.html#getItem()
declaration: package: zombie.characters.WornItems, class: WornItem
e.g I know that player:getWornItems():getItem("Shoes"); will give me the worn shoes but what is the term for hats, jackets, etc
declaration: package: zombie.characterTextures, enum: BloodClothingType
sorry been testing underclocks and computer crashed lol catching up
basically the combat speed scale for my purposes is only relevant if it can go past animation speed and it can't, what i need is specifically animations that have a higher animation speedscale for the weapons
ahh
the weapon should basically tell the game "use this anim set" when its being held, and that can theoretically work with SwingAnim
so the item multi can't exceed the base?
or am i understanding what you are saying wrong
there's no weapon modifiers that will make you swing faster than the limits of the animations
gotcha. what's your goal btw? maybe that's part of my confusion
i just need a weapon which can go past the normal speed limits, but to do that i have to make that weapon successfully call a custom animNode
damage calcs, etc, they can all be the same.
me and a friend were looking all day yesterday for which file or part of the game is handling how weapons work, e.g, what makes the game use the SpearDefault animNode when swinganim = spear, but we couldn't find it, at least not in any of the vanilla Lua files.
its not in lua i thought
let me look. i'm pretty sure it's all in some directory of xmls or something
the actual process of making the animations should be simple, we just plan to use the pre-existing files, copy and rename them and set their speedscales higher to make the actions faster, and then figure out how to make the game use the customized files instead of the normal ones
there is a mod that already showcases globally increased animation scales:
https://steamcommunity.com/sharedfiles/filedetails/?id=2894811860&searchtext=faster+attack
its just that this changes things globally, not on a weapon basis.
in fact if we can find the java for weapon attacks the only difference would be to change the set anim lines.
are you already familiar or at least referenced the guide on the wiki for animation creation? you obviously seem somewhat knowledgeable but i'm not sure where you've looked for info yet
i'm about to run out to grab some food and will be back later but just in case
https://steamcommunity.com/sharedfiles/filedetails/?id=3035712003
it's mentioned about using custom
yeah we looked at that one
but it doesn't tell us exactly how SwingAnim is working to called Spear or anything
i do have some info on that from looking myself reecently so if you can't figure it out by the time im back in a couple hours. i'll look into
This is the SpearDefault file in question though.
Anyone can make any weapon use "SwingAnim = Spear" and it will use this node. What makes it do so when a spear is used? 🤷♀️
This question has also been asked for years by others looking for answers as well, from my looking.
could i implement a system where the water is never cut off, and certain water sources eventually become "tainted"
im still working on how tainting would work, i just need tainted water to exist independently from normal water
instead of the water cutting off, sinks n stuff would start filling bottles with the tainted water
hoping you can leverage as much of the existing @type/react and react-related libraries stuff as possible for that tbh
if you have to reinvent the wheel at all there that would suck
I do if you look at the css folder.
We can work together to do the best we can.
Like I said we have nothing to reference other than the white papers.
iirc the thing with doing some of the react-hook type stuff is that it tries to take advantage of browsers abiliites to do things better than clientside code would sometimes be able to directly....
but otherwise it's often to reduce state-machine changes and stuff by codifying them for the virtual dom/the transpiler/etc
but yeah I'll draft up some notes on your overall setup once I get a handle on it and pester you endlessly with messages and pulls. Hopefully I can look at your todos and relieve some of your mental load here
We'll need to work with what PZ provides with their UI rendering. I can cover for this. This is where my niche is.
I made this in it back in 2016.
It's gotten better since.
So I can package and do render calls for it.
I can also extend the UI mod optionally to work with advanced features of Crowbar, my client Java patch that adds more functionality and API to the game.
👍
Like GLSL Shader support for UI and Shader-uniform API for Lua.
Someone with experience in Java, if I wrote a code with two variables that I just want to add together, like basic addition, would I write that as:
SetVariable(var1, var2)? I'm not experienced in java, so I don't know if that would add the variables together or multiply them.
SetVariable(var1 + var2);
thanks
Just made a template file for the custom Lua commands patch I'm rewriting.
Going to get that cleaned up and tested tonight and release it.
Is this an acceptable command?
runSpeedModifier = (shoeItemSpeed:getRunSpeedModifier() + hatItemSpeed:getRunSpeedModifier())
If anyone's curious I'm using speed framework mod and trying to make a mod that will sum the speed bonuses from all items to be used to set the player's speed.
It feels good when something you are trying to get working actually works.
Shoe runspeed mod is taken into account, jacket runspeedmod is added to the total, you can see the effect subtly
i made a stack trace error because the only coding knowledge i had was basic C++ from 5+ years ago and thought I could just write a line like
runspeedmod = jacketspeed + shoespeed; and it'd run
but that got sorted out
nice job
For the sake of convenience I think that the game should ignore the .git/ folder for loading & overriding files. It's definitely not important but I think it'd make sense to add this as an exclusion for file paths in the Mod API in the Java-side. @tame mulch
xD
thanks
There was an attempt. I tried to see if I could use setVariable to edit CombatSpeed and put that in all of the speed scale lines for 2HDefault. Nothing happened.
I'm not sure if I'm checking the player's weapon right or not, but it is trying to read the string for SwingAnim there.
maybe if self.weapon instead
function myFunctionName() --< the () are important, even if empty!
end
