#mod_development
1 messages Β· Page 115 of 1
he could but i think he's trying to make it more conditional instead of based on manual adjustment
lol... dare i spend time figuring out how to use Radials for lightswitch electrician
can't be insanely hard to add some light on/off and battery add/remove options and maybe something to toggle switches.. lol essentially redoing the entire mod but for ui radial now
Ah, I think I understand. I'm not sure if the falling can be negated now that I kind of tried. Not fully sure how flight was done, but thinking it was just the animation. if so, that's just "smoke and mirrors" and not actually updating the z value, so makes sense it still reports as 0.
Radials aren't that bad. Take a look at the Firearm Radial for a good example, imo. I used that to learn how to build radials since it has dynamic options and whatnot.
ahh good call!
i have a TON of context menu option stuff also i would think should help me get through this faster. but who knows π
Speaking of radials, I was thinking for the next SpiffUI - Radials update, I would try to take a crack at making the context menu a little mini radial.
i'm stoked for that update honestly. i love that mod but there was something that stopped me from being able to use it
oh? do you happen to know what? I do know there's some issues with it, and it's been bothering me that I haven't had time to touch it. only so much time during the day. haha
honestly dont even remember at this point. i'll let you know if it comes to me
i love this concept 10000000%
it brings a lot of things hidden in context menus and stuff right to one place
makes the game super intuitive to play
ohh i know why
because we have a shit ton of crafting options and stuff and other things
16k items so it happens
Is it possible to toggle hide a trait using sandbox including the char selection
i wasn't sure how it would play with it all since there was no way to stop those menus from what i saw
It exist but its just hidden
So server admins can choose if the trait is accesible or not
since i dont have a vm server setup atm i havent been able to afford to test things like that ATM
I could but how will that work i mean ... Its hard to explain
i can't host my server either
D:
pretty sure there is some limit on starting a server from host with so much stuff lol
it should be just fine with a bunch of items and recipes and stuff. not sure what you mean by "stop those menus"? if you mean, show the base window instead of the radial? if so, hold the key and it brings the window and not the radial.
i haven't checked into it much. if you dont think there is anything that would cause an issue, then it's gonna probably go on next update lol
when i finish my mod i'm putting it on π
adding an altered version for my server also since we have pliers and wire cutters haha gotta use em instead of wrench lolol
oh yea it's unclear, do i have to use autosmoke mod in order to use smoke feature from your mod?
i always thought it just made smoking automatic which i didn't want. but wasn't sure also. would like to use the feature as long as it's bound to the radial and not actually automatic
Also for the crafting radial, make sure to use the option to only show recipes you can actually make. otherwise, it can get a bit slow when you have a bunch of recipes and also hard to sort through as there are no categories (maybe yet, idk)
For now, Autosmoke is required as i use those functions for its recipes on various modded cigpacks. you can disable the autosmoke "autosmoking" feature if you want. That's been a pain-point since its release, so will write my own for the next update too
perfect. those were literally my exact two things that stopped me from putting it on. my girl will be happy to know haha
ever since i showed her it she's been all about it
first round test of menu and submenus for light radius increasing lol
ui/traits/trait_TraitID iirc @ancient grail
Wookiee Tutorial Party Animal has this demonstrated in the GitHub link
π
I cant find the animal party
Nvm found it
Ow no its a diffrent one
I cant find it again
Sorry ui/Traits/trait_TraitID.png
Ty
I believe you need the trait_ part of the name strictly
I never tried removing it though
I just followed someone's tutorial at the time
I.e. the whole filename needs to be exactly right
By the trait ID I mean the spaceless tag you use to grant and revoke the trait
Whatever that is
Mine is just TraitName for a trait called Trait Name to make it easy on me.
I kinda remember this. You just need the name of the file and be on the right folder you dont need to add stuff the function that actually adds the trait..
How about making it hidden from players on creation screen?
Is that possible?
Yeah not having client/server comms or sandbox vars at that point is annoying
Um, not sure. Would probably require hacking the function that populates your options on that screen. It just occurred to me that maybe one could do that. I used to think the answer was no. I haven't looked deeply at the functions that populate your trait selection lists.
Assuming you mean that you want the trait in the game but not selectable
Perhaps exclusively dynamic
Hey guys, so I'm COMPLETELY new to the PZ modding schmuck, and I'd like to know if someone's willing to help me out with a mod that I'm planning to make?
It's gonna be a simple little mod that changes the jumpscare sounds to be way more intense/scarier (basically just replacing the files with different ones). I maybe know the basic idea of how I could do it, but I just need someone to help me out because again, I'm fully new to this thing and I've never worked on a PZ mod before lol
If someone sends me a DM with the basics on what to do, I'd be really really grateful!! Thanks in advance!
You could look up the metal gear alert jumpscare mod, and just replace what they've done.
@ancient grail @thick karma If I recall the creation methods are one of the older Lua handled stuff that is a giant if chain.
Oof
I've become unfortunately busy again, and trying to hammer out an update to EHE, but making a checklist of those types of giant-if-chains are a to-do for the community patch
Hey how do we make use of the community patch? Is it live on the workshop?
Might even be a last-resort-just-ovetwrite-the-function situation too
I heard about that the other day and I still don't know how people are intended to make use of it
Just grab what we need from the github?
The work to be done on those functions is still to be done
It's on the workshop and github
I guess I missed the workshop link
Changes approved on the GitHub are automatically pushed to the workshop on Fridays
Interesting. I need to look more into what all it does and subscribe
I was thinking some of my rewrites could be useful
There isn't anything on the patch yet, I've just been adding issues as todos/bounties
The only thing on the mod are debug tools π
Understood.
Just saying, if one of you plans to overwrite the function to allow for hidden traits. It would benefit to have the function broken down
Basically piecemeal it so the results/list of traits can be accessed before rendering
Inventory display and context menus are another candidate for this type of brute force overwrite unfortunately
#mod_development message
possible trait intercept
any trait with 0 cost is not selectable
Tbh, I haven't started it cause I'm not sure when it should be executed - before or after others mods
Absolutely fair.
would fit better in the framework
Will definitely do it this way if I rewrite it
Fair.
Whatever is most useful to people.
It would fit framework
patch is for fixing issues
framework improve modability
True
Makes sense.
At some point those two might be merged π
If the fixes and the frameworks need to continuously be tested for self compatibility
Lack of modability is an issue afaic π
Well I'm talking about rewriting vanilla globals.
I'm not going to localize things that people expect to be global obviously lol
That would be... not smart.
well we dont have a choice about vanilla globals and have to keep them
else would break stuff
but dont introduce new globals
I will not add any globals to the community submissions if I do make them.
I understand the desire.
lol
I'm thinking frameworks should actually be loaded last if possible
Even though it'd break others mods - the alternative would be the framework doesn't work 90% of the time
need to be loaded first so mods doing overwrites dont break
here's a local for your framework ;P
local function handleWaterZone(file, v)
-- If you see the number of the beast, you know something is wrong . . .
local x = v.x or -666
local y = v.y or -666
local z = v.z or -666
if v.properties == nil then
print('ERROR: WaterZone missing properties in '..file..' at '..x..','..y..','..z)
return
end
if v.properties.WaterGround == nil then
print('ERROR: WaterZone missing properties.WaterGround in '..file..' at '..x..','..y..','..z)
return
end
if v.properties.WaterShore == nil then
print('ERROR: WaterZone missing properties.WaterShore in '..file..' at '..x..','..y..','..z)
return
end
getWorld():registerWaterZone(x, y, x + v.width, y + v.height,
v.properties.WaterShore and 1.0 or 0.0, v.properties.WaterGround and 1.0 or 0.0)
end
That'll stop the game from accidentally throwing fatal exceptions during server load when it intended to simply print an error.
But wouldn't other mods doing overwrites potentially break the overwritten functions?
π€
if they dont hook yeah would break it but if it causes any issues people will complain
I guess as long as the ultimate returns are the same it should be fine
In any case, I gtg to work
Glhf
Should i post this on the resources?
What's the difference between water shore and water ground? Puddles?
No
It would need to be integrated into metazoneHandler.lua
It's not useful alone to anyone but the modder who plans to fix metazoneHandler
Or "improve the modability of" metazoneHandler
(fix π)
Ok
yo guys and ladies, how to modify eating speed on some items? And mb hook up external animation?
@quasi kernel You lurkin?
Is this your first modding endeavor in Zomboid?
Animation... is not as easy as you would hope.
Your casual reference to it suggests to me you are hoping it might not be a big deal but a custom animation in general will be a bit of a headache, especially if your animation involves something in your hands.
Especially in Zomboid
Because of how the items are bound to your character in the animation software.
(They connect to and move with your pelvis, not your hands.)
Regarding eating speed, I could say look into TimedActions for eating, but if you don't know how to search for that yet, it probably won't help.
So trying to clarify where you are.
if u mean search on javadoc then im already there, just didnt searched for TimedActions yet, ty to tip
sad to hear, i guess i will give it a try if its possible to hook up to item. mb by lua func or in declaration(tho i didnt see that there)
first deep dive yeh
A TimedAction is actually a Lua table object.
well, sort of both
But the way you handle it is via the Lua table implementation in Lua
You don't find it on the JavaDoc
You find it by searching the media/lua folder of the Project Zomboid installation
You may want to index those folders in Windows so that you can search the text of those files in addition to file names using the Windows file explorer.
I recommend looking at the ISReadABook timed action in ISReadABook.lua as a very simple example of the basics.
I mean, there are ways to add a custom animation to the consumption of an item, but they are not easy, and you should be aware that it will be a complex first mod and quite a grind.
Not saying you cannot do it
But it's not trivial
ok imma thinking mb i can reuse some of vanilla anims as well to atleast save time and sanity
Triggering an animation is easier than making one by far
Glytch3r knows a lot about that. I know he commonly uses playEmote to trigger custom animations (https://projectzomboid.com/modding/zombie/characters/IsoGameCharacter.html#playEmote(java.lang.String))
If the animation is not already an emote you can follow the structure of the other emote files in AnimSets/player/emote and try to turn it into one.
And put it in your own AnimSets/player/emote in your mod
ok so now i only need list of vanilla emotes and lua event that fires before eating
yup got it.ty
I'm not gonna ping him because he shows up often enough on his own but he'll probably see this and respond eventually.
lol guy needs to take a break.
i guess imma go try smthing out now, ty for help
But you can scroll up to see the superman flying animation he made
No worries, good luck
Ayyyyyy
One sec gonna grab the file names
@quasi kernel Okay! In UFP_FarmingSystem_patch.lua and UFP_farmingCommands.lua you reference an object called SFarmingSystemCommands and another called SFarmingSystem
The problem is that those objects do not exist on the clientside
So when you load, the clientside throws exceptions.
You need if isClient() then return end at the top of those files.
(Even though they are in server, clients still load them.)
Newp
Yeah ill get around to patching that soon, to my knowledge it doesn't break anything so things should still be OK for now
Thank you!
I recently learned that... Clients load server stuff. Server, however, does not load client stuff.
Anyhoo thought you would want to know
Hope they fix it in b42
Yeye! I received a report about it a while ago I think and didn't know what was up since the code was fine.
Didn't see any of the errors popping up in testing I don't think
Only error that pops up is if you have More common seed types loaded because of something on their end.
Right anything that clients cannot see in your server code needs to be protected... If clients shouldn't load anything in server files, returning if isClient will fix everything
I don't know if they are gamebreaking, I immediately set to work patching them instead of relaunching.
Clients load server code but what that code does is up to you
If you use if isClient() return end or isServer() depending on what you need -- the code won't engage
Yeye!
This is also true for shared
Shared I'd expect that much, it threw me off for server though.
What does client actually load first? The client folder or the server folder?
I don't know if this was even intentional or just an oversight -- could be for checksum purposes
Could also be an easy way to handle single player that doesn't involve refactoring much of the game/Lua files
Also, just occurred to me - the MP is basically peer to peer
So in that sense there is no "server" code
It's all client-side or to make terminology more defined, connection-side
You can send specific information to the host to keep connections in sync
It just happens the host doesn't run "client" code
This is how I understand it to be- and I prefer this terminology cause it gets really convoluted otherwise π
Don't forget then! Haha
Yep, sorry, on phone
Wait so Burryaga, you're trying to make an error free modpack?
I've been enclosing Events.X.Add() with if not isClient - but some events don't get called host-side and I assume vice versa(?)
Mod collection, technically, and I already have it working privately
But it depends on the patch I just sent you and a couple more patches that I need to publish in Wookiee Gamepad Support
Any mods in particular not playing nice with eachother?
Hehe, I'll get to work soon then as to not keep you waiting.
Apparently the combination of SwapIt + Only Cure + Fancy Handiwork doesn't work.
I just wanted to make it easy on you by sending you the solution
Instead of just whining about the problem
I had someone start complaining that Better Batteries was updating too much when I only updated twice, over two days, after months of nothing.

SwapIt isn't even gamepad compatible so it didn't make the cut @sour island
It made me die a little inside since both of those updates were fixes.
SwapIt throws infinite exceptions if you try to wander its options menu using a gamepad
Good morning.
Its options tab is done wrong
Like in menu options?
Morning jab!!
Correct
I really need to sit down and redo easyConfig - I basically butchered it out of an old mod and gave it a really bad facelift π
Way back before I knew much of anything
Haha word
Custom menu API would be a nice framework
π
I need to give all of my mods a facelift but when stuff is working bug free and you have more solutions for features that literally don't work yet...
<3
Hard to choose refactoring over the next job
We working towards a brighter future for UI lol
As nice as modOptions is, it seems there's issues with ini files and apparently anyone can change the settings online.
Not necessarily the UI - just a handling of options
Wdym anyone can change the settings online?
Everyone can have independent options set
EasyConfig locks it to the server and only lets admins change
Wait are you discussing a problem or a feature?
However, it would be nice to have either available
Ohhh, I seeeee.
Problem and a feature, depending
ModOptions treats everything like single player (unless there was an update) - so players can set settings that impact MP play
Yes, if you made something like Mod Options that had controller support and had both admin-restricted settings and client settings, that would be great.
While I took a more conservative approach
I have already considered taking over MCM and redoing it with gamepad support
I would, but I can only squeeze out like an hour or two a couple days
And something like that needs a solid sit down to not lose track
MCM like Skyrim?
I could redo this with A) gamepad support, and B) options only admins can set.
I have been considering it.
Hmm
But then I will want to redo ALL my mod options
for ALL my mods
And oof
Hahahaha
As soon as I am ABLE to have a better mod options page, I will immediately want to
I mean I could look into it. I don't know anything about EasyConfig, probably because admin-only settings were never something I was thinkin about
I tend to use sandbox options for admin-only stuff.
Yeah I added those before I knew change sandbox options was a thing or before it was reliable
So it never occurred to me that I might want in-game menu options for admins (or that anyone had invested time in providing that)
Right right that makes sense
I figured something along those lines
I might scrub the admin only options in lieu of that
Maybe include the change sandbox options mod as a required π
I'd have to sit down tbh
There are some options it makes sense to have available in the menu
Something like SwapIt makes sense to be adjustable but should also be consistent in MP
But I also had some people request it not be consistent as they have a PVE server
Right right
So that'd be something to also support
Toggling which options are locked to admin / etc
And sandbox doesn't really handle that kind of case
I mean... It could if you used the config as an overwrite if it's present
@tame mulch How's the scripting guide since completion? I see that people are linking it in here.
Otherwise default to sandbox but at that point you might as well leave the sandbox out of it π
Yeah I'm not sure what I'll do next. Part of me wants to stay focused on doing a shops mod as my very next thing after I post this collection, but there are so many variables to consider before I pick one I want to support. I need to try some out and I need to consider how they implement money and what the consequences are and such
Shops mod? π₯Ί
Ooh
π
95% done for scripts guide. On weekends I will finish it (need do some stuff for vehicle scripts)
I just don't know which is likeliest to rise above and become the one most people prefer.
(Or a small handful of good ones.)
I will be adding bartering and player ran shops soon(ish)
Afaik, it's just mine and Noirs'
Bartering?
Items for items
They have a barter UI
π
The player to player trading UI is for bartering by nature
And I just did gamepad suppot for it.
Yes but this would be a location one could do it
I have a whole shop system that handles stock and what gets listed or not
No need to redo the whole UI
I see, so this would need to pull items from more than player inventory
They have stock somewhere that they can barter from?
I see.
Might have to store condition as well π€
The first focus will be on player ran shops though
Fair.
Would need to create something to handle that
Definitely yours is on my radar because Noir doesn't seem to interact with people here or anywhere.
I was told Noirs' is 1 giant shop
And I don't know of a mod that really looks better than either of yours
And that's why I was commissioned to make a mod that handles multiple shops
I think I heard he recently added player selling -- but I don't know on what capacity -- I assume players can add listings tied to them
Yes, and Faction Banking was as well
The expansion into bartering and player owned shops is also being supported (so I do it sooner π )
I see, lol. I hope they're paying you for real because that mod would take countless hours I imagine.
Shops and Traders does not look like it was finished in 3 hours.
They're good people
right on
And actually, S&T was commissioned by Duck
FB was by someone else
Both good peoples π
I'd say Shops took like a solid week during the summer
I believe that.
The longest was getting the UI in order
A looong week. Haha
Then, the networking -- the easiest part was just setting up the objects and making the functions
The UI already scales to 4x no problems?
I would have to check what I did for the initial window - but everything else should scale to the size of the main shop window
Just making sure your text positioning is based on font height and not hardcoded like vanilla
So changing the size of the shop window should warp the rest of the window
I use fontManager and such throughout
The vanilla UI I saw does use font heights
Those things definitely increase my odds of picking it
I presume the older stuff doesn't?
E.g., the trade UI has a history box
of trade actions
The line sizes are not set to match the font height
So the font is way too big for the rows of the lists.
Looks like shit in vanilla
Ah, I used the trade window as a launching pad - but I gutted it
I used fontHeight checks as seen in tooltips π
Nice.
If I work on something I need it to look right at 4x, haha, so I am more likely to want to help if I do not have to make it look right myself.
(Not only because it's bad form not to have scaling text, but also because I have friends who need that setting and I am not gonna publish mods they wouldn't want to use.)
One thing Noir does have that I don't is selling cars
I do plan to add that too though
Ah yeah, I saw that
Good on him
Not sure if I'd add that lol
If he had a Discord or comments or wanted friends... I might try to do his gamepad support lmao
But alas
Also would think it makes more sense to sell the keys to a nearby car if it's player ran
He's not looking like a likely candidate
I don't do aloof
Communication is important
He's apart of Valhalla and mostly does their stuff afaik
That makes sense
I am sure he feels too busy for outside input. That's understandable.
But it also means he likely won't get outside support.
Trade-offs.
Agreed here.
I honestly prefer the idea of needing to bring people cars
Physically.
Not just because it's easier to code ( π€£ )
I mean it's a fun job to do in an apocalypse
Get the car across the map
Make the money
Honestly one thing on my agenda is teleporting cars though lol for Jumper.
I think I will need to create a copy of the same type of car and then do inventory transfer and then delete
Couldn't find a function that would effectively teleport an existing car
smh if you want vehicle rendering in ui look at my server points
Haha there you go @sour island
C'moooon you know you wanna. π
What's one more TODO?
A reason to live, that's what!
the shops i did had a pretty simple ui and currency support was just overwriting 2 functions
Lit
dont know how much more albion has developed it though
not sure but it mightve been the first fully scaling ui on the workshop
Nice.
I don't know if albion's still working on the update she made to your mod
That mod has a "finished" looking Workshop page
And explicitly declares itself as a commission project
(maybe to discourage people from thinking it'll be indefinitely maintained?)
she couldve done a patch but at the time she didnt know about the require magic π
Idk
Hahaha
I mean the enormous majority of local code in vanilla is either not accessible or very, very mysteriously accessible, so much that it becomes empirically justifiable in context not to expect a Zomboid file with a bunch of local stuff to be accessible.
Ever since talking to you, I always check if apparently inaccessible local stuff is returned, and 9/10 minimum, it isn't, but I have found occasionally it's hidden in copies made in global objects.
Virtually no local objects in vanilla code get returned for import afaik
Soooo
haha
Understandable mistake.
you can grab some stuff from the metatable
Fair, hence "very, very mysteriously accessible" haha
local parentObject = ThatOneGlobalObject.__index
That is a useful trick to know
also you can access local variables from out of scope
dont remember if it was either not implemented in kahlua or not exposed
Iirc trying to call debug functions from the Debug Console did not work
That is super cool though
That you can loop through all the locals like that
Is it file-limited?
like only the locals in that file?
Or all running locals?
It says any active function... not sure if that would let you redefine a local function in a file... Would the file itself count as an "active function" with its own locals? How does that play out?
with that one you can grab locals of a function
That's what I was thinking but wasn't sure
with upvalues you can grab a bit more
So anything declared deeper than foo() basically (in the example link)
you would require the closure object though
Word.... well, maybe all locals can very very mysteriously be grabbed, haha. But, if so, it's so mysterious that the enormous majority of us do not know how to get to them
Think I just fixed it, that was fast.
Gotta fix 'Mo Crops icons not appearing correctly apparently tho
No worries! Please do let me know when it goes live so I can go back to using your version instead of my local dupe. π
spicy question
if I wanted to modify a public value inherited from another class, how should I use GetClassFieldVal?
Can I use sendClientCommand and sendServerCommand when I'm in single player? π€
No @gilded hawk
Which is why there are checks
isClient()
How r u ? Its been a long time since you last posted here
Thank you, I guess I'll need to find a way around for sync data in SP.
I'm doing okay. I spent some time off modding to take care of myself, and because I burned myself out.
How are you doing?
All good man . Been trying out animation mods recently
I noticed the flying skeleton gif you posted, cool stuff!
Still cant figure out what to do with the z axis problem
Maybe as soon as the player reaches that floor i should change his animation and teleport him above floor.. .. hmmm if only i can use xml to set a variable once the animation is complete
I was thinking of time action but its based on movment so thats another dead end
What kind of issues are you having?
Fire
Imean the player is on the z0
It goes up but its just animation no code involve that makes him to on the 2nd flr if i tp him then he would look like his on the third floor if you can imagine
And if i just keep like this then i would have to turn noclip other wise he can passthru wall despite lookig like his above the wall
Yeah π I'm already working 9-5 and 5-10 with TS, I need something else to switch context and chill
Hahah gotcha.
Hey, I'm working on a 1:1 Lua -> TS transpiler right now. That's my current project.
It's good to see you active again.
I'll be around for a bit, just enough to finish an old project of mine. Then I'll probably go back working on my app
Nice.
I won't be done with my transpiler until I can lift the over one-thousand Lua files in PZ to TS as a demonstration.
Damn man, good luck!
/* FILE: ./assets/media/lua/shared//ISBaseObject.lua */
import { setmetatable } from './lua_utils';
export let ISBaseObject: any = {};
ISBaseObject.Type = 'ISBaseObject';
ISBaseObject.initialise = function () {};
ISBaseObject.derive = function (type: any | null | null) {
let o: any | null = {};
setmetatable(o, this);
this.__index = this;
o.Type = type;
return o;
};
ISBaseObject.new = function () {
let o: any | null = {};
setmetatable(o, this);
this.__index = this;
return o;
};
Thanks!
is there a way to detect blind time of current player animation
will patch sendClientCommand and sendServerCommand to work in singleplayer
solution is actually quite simple
What do you mean?
Does sendClientCommand work if you are the host, hosting via the host button? π€
Why should it work in SP?
PZ doesn't run SP as a simulated local MP server.
If PZ did simulate SP as local MP, I'd be for that for consistency.
Hardcore question: Is there are a way to get a specific cell that was just loaded in on server?
Context: I need to get if some specific remote square in cell once its loading in by x,y,z and spawn a vehicle there. I'm trying to create a persistence vehicle by set coordinates and set mod data on it.
Yes, here is an example
local function OnLoadGridSquare(square)
if isClient() then
return -- Must return on client!
end
if not square then
return
end
local X = square:getX()
local Y = square:getY()
local Z = square:getZ()
if SquaresInExplosion[Y] == nil then
return
end
local explosionEffect = SquaresInExplosion[Y][X]
if explosionEffect == nil then
return
end
if square:getModData()[ModDataIgnoreKey] then
return
end
BurnSquare(square, explosionEffect)
-- Burn multi floor buildings
local upperSquare = getCell():getGridSquare(X, Y, Z + 1);
if upperSquare then
BurnSquare(upperSquare, explosionEffect)
end
end
Events.LoadGridsquare.Add(OnLoadGridSquare);
Eh, well yes, I found event for squares. But checking each square on load is kinda yikes isn't it?
@gilded hawk
Any way to get some sort of array of current cells and scroll through them?
On Client?
Server, I believe client only knows its current cell which is not an issue in that case.
getCell():getGridSquare(x,y,z) but that's for current cell that client is in right now.
Host just runs a server
Nah it's okay as long as you do it properly, many mods do it anyway, and the games uses that event too
Where do the logs go form that server?
Allows mods using server/client communication to work in singleplayer
Think its the user zomboid folder
But I guess cells do not have any sort of ID to get it from?
I'm fairly sure the only way to do what you want to do, is by checking only the XYZ
Good call, the Host server console logs are inside coop-console.txt same folder as console.txt
yo guys what animations (and where to find em) uses EatType? i tried it with kettle but it didnt work. But when used context menu for pills it worked and i got pills anim.
i made a smol addon that makes it so the school bag has 90 capacity and weight reduction of 100, but when ever i go over the original weight, i suddenly cant jog or Sprint and my aim move becomes really slow despite having nimble 5, why is that?
sendClientCommand: works for client and SP, throws error if server
sendServerCommand: works if server, does nothing otherwise
pretty sure you have those backwards, but I'm decaffeinated
You can/should do "if isServer()" to feed into a command or just do what you need directly
This is where shared comes in as you can feed into a shared function and do the check/switch over there
sendClientCommand(toServer)
sendServerCommand(toClient(s))
I'm pretty sure sendServer doesn't work in SP
they said i should ask here..
would yall know where should i look if i want to increase/decrease a the amount of points a specific trait gives?
better to keep the multiplayer logic and just patch it to work in singleplayer
@acoustic dust F:\Games\SteamLibrary\steamapps\common\ProjectZomboid\media\lua\shared\NPCs\MainCreationMethods.lua line 119
yeah, at the time i thought your mod was literally unpatchable because of some false assumptions about lua; i haven't changed it to avoid inconveniencing users but if it's something that bothers you i'd be happy to redo it
as far as the questions about it being actively maintained, i have no plans to stop fixing bugs for any of my mods but that one isn't a passion project so i don't promise more than that
how can i add spongies open jackets frame work to night scales rick grimes sheriff uniform
This will work
Ow... Amm ehat if other player connects to it?
Or using no steam running 2 pz instances?
Will they be client?
Hosting from the main menu creates two entities for a lack of terms
Host and connection
Other connections can be made
But it creates a peer to peer dealio
"dealio" is an industry term π
I wonder if there's a delay between host and local connections though
Just learned the hard way that a table made up of keys with nil values is empty and my thinking this through was so wrong π the pain when I figured it out
lol
Ooooh. Fishes everywhere...
If i derive the timed action class and it's working without errors. do i actually still need conditions in my timed action for it to utilize maxTime?
require "TimedActions/ISBaseTimedAction"
NipActions = ISBaseTimedAction:derive("NipActions")
function NipActions:isValid()
return true
end
function NipActions:update()
-- no-op
end
function NipActions:waitToStart()
-- no-op
end
function NipActions:start()
-- no-op
end
function NipActions:stop()
ISBaseTimedAction.stop(self)
end
function NipActions:perform()
ISBaseTimedAction.perform(self);
end
local switchSpeed = SandboxVars.Nipswitch.Craftspeed
function NipActions:new(character)
local o = {}
setmetatable(o, self)
self.__index = self
o.character = character
o.maxTime = switchSpeed -- set the maximum time for the action
if o.character:isTimedActionInstant() then o.maxTime = 1; end
return o
end
i have tried without sandbox car using 1000 and it didn't seem to actually do anything.. *forgot i was testing stuff. this is what it looks like though.
i'm trying to add this into OnCreate Recipe with no arguments except character, which it seems is the basic usage. but when i add this into my OnCreate, it doesn't seem to trigger the timed action
actually maybe... lol lets see
I mean you derive it from the base timed action which does t do anything + maybe look into o.character and what the TimedActionInstant is? I assume its a moddata var since i never used it for anything in a char
i'm under the assumption that the maxTime is implied as a part of the original usage and happens no matter what takes place in each of the functions
what that what actually takes place in each part of the timed action is dependent on where you are calling it
I mean you dont define switchspeed anywhere so unless your action is instant which i presume is meant with the isActionInstant() call your maxTime will be nil
local switchSpeed = SandboxVars.Nipswitch.Craftspeed
= 120
but even when it's 1000 and not switchspeed its still instant
but i am calling it in the recipe OnCreate also
Maybe thats the problem? It may override your action with the Crafting Action
require "NipTimedAction.lua"
function Recipe.OnCreate.Switch(items, result, player_num)
NipActions:new(player_num)
end
it's part of the action
within th eprocess of crafdting this is called
Do you add it to the TimedActionQueue?
i assumed calling new did that as part of the usage
Nope
return true
end
function NipActions:update()
-- no-op
end
function NipActions:waitToStart()
You gonna have to add it yourself from the OnCreate
ahhhhhhhh
i see
i was using this previous and didnt work
ISTimedActionQueue.add(NipActions:new(player_num))
Also you dont need the .lua suffix in the require for your onCreate
The folder and the filename i say
Also about the player_num, is it an int?
Well in that case you cant call :isActionInstant on it
well i dont want instant anyways
I mean thats why it cant initialise it
ohhh i see
okay so i been looking into it and i'm trying to fully understand what you are saying about the isActionInstant things
i dont really understand where that is called
i have a condition for it, but it's not actually called
in your new() function:
if o.character:isTimedActionInstant() then o.maxTime = 1; end
o.character is a number, so it's attempting to index a non-indexable type, which makes it mad
Thats what i meant sorry
you are good i'm just figuring it all out so it isn't clear to me sometimes
if you're trying to copy the usual timed action structure, you should just use getSpecificPlayer(player_num) and then pass that into new() - o.character usually refers to the actual character object, not the player number
ahhh okay.
or have it as an arg for your new() constructor
require "server/NipTimedAction"
function Recipe.OnCreate.Switch(items, result, player_num)
local player = getSpecificPlayer(player_num)
ISTimedActionQueue.add(NipActions:new(player))
end
like that?
do i actually need to manually add it like you were saying?
or can i just call my function straight up
yeah something like that
NipActions:new
oh okay ill give it a whirl now
honestly i almost wrote off doing this but if i can figure out timed actions i will have a lot more flexibility
thank you also
i had one thing left which was this.. but now i can't help but try to make a context menu and submenus for changing the radius range of lightswitches π then i SWEAR i'm done haha
hmmm
gonna try a few more things again before i let it go yet again but damn this seems confusingh
TBH i literally just want to add the most basic timed action
dont want anything to happen whatsoever except it just add time into the recipe
i also just commented that line out for now
require "server/NipTimedAction"
function Recipe.OnCreate.Switch(items, result, player_num)
--local player = getSpecificPlayer(player_num)
ISTimedActionQueue.add(NipActions:new(player_num))
end
``` no error but doesn't fulfill maxTime
tbh doesn't even seem to trigger timedaction at all
but no error
the error i got earlier was using getspecificplayer
maybe player_num isn't actually a player num 
Print player_num pls
kk
@tame mulch Does the script format have an official name?
I'm currently writing an AST parser for it.
I think no
Make the name and I'll go with it.
Will publish on GitHub & npmjs
I'd hate to call it PZScript lol
SpiffoScript
Script format will be changed a little (or not little) in 42 π
Easy to modify for when that time comes.
But for real, I can use a name for this format. I don't want to change it after publishing it.
=/
ZedScript?
I wrote a tokenizer and am compiling it to an AST tokenizer right now, then exporting as uhhhhhhhhhhh JSON.
You want me to use 'ZedScript'? I can do that.
I don't know) I am not best with naming stuff)
Ok. Not holding you responsible lol
If I'm going to publish tools for it, it's best to have a name.
Lol for
I did this in 1 1/2 hours. <3
The code implementation itself is in another file ATM.
We could do some kind of lexxer that sanity-checks (even strict mode), scripts to make sure they are using the right properties for object types like animation.
it's not. i have no idea why i thought that
@tame mulch I did say I was going to work with your stuff. I meant it. <3
I'll use ZedScript going forward unless told otherwise.
Thanks.
People here should use it too until an official name is mentioned.
=)
I think having a linter for ZedScript is a good idea.
A placeholder format name for /media/scripts/**/*.txt
i'm stupid it's working perfectly. i tested forcing the progress bar lol. i dont have the things in that stop you from moving and didnt have the progress bar. sorry ultra noobish mistake
(Beginner to Lua)
I can't for the life of me figure out how to update the speed & lore of already existing zombies. As far as I've got:
getSandboxOptions():set("ZombieLore.Speed", 1);
only changes the speed of zombies that are spawned in after the line is executed, but pre-existing zombies are untouched.
How would I go about updating pre-existing zombies to the new desired speed?
Events.OnZombieUpdate.Add(function(zombie)
if not zombie then return end
getSandboxOptions():set("ZombieLore.Speed", 1)
end))
--im just on mobile so my tabbing is ... Ugh what tabbing? Nvm
@sleek hull
Assuming that the snippet you just mentioned works
Then just use events to apply to zeds that are spawned
O wait nvm
Scratch that code
Its not gonna work
i feel like it would require a reasonable amount of code to do that. lol. can you update zombie without editing their data?
getSandboxOptions():set("ZombieLore.Speed", 1); does work but it's only for things that spawn after the line executes, so if I spawn zombies via debug it'll be the correct speed, but pre-existing zombies are still the previous speed whenever they were spawned
I have no idea
But your code is simply part of a clickable thing on the sandbox
And if you click that instead it will update everything
Might wana click it instead
need help making a model not gargantuan, not sure which channel would be suited best.
I have made the model script file, and set the scale to be super small, but it doesn't change the model at all. Might the issue be in the model itself, or the textures?
Will also post script file below
here is the file at the moment
I'd imagine I'd have to iterate through the zombies when I want their speed & lore to update, I just have no clue how I'd get a list of zombie objects to modify
there are mods like random zombies that do what you want. i'd really check that out tbh. there is quite a few others ones. but that is one i know works. i just havent ever looked at how π
I would, but I'm trying to fix functionality of another mod (with the authors permission of course since they aren't planning on updating it till B42) I'll try taking another look at Random Zombies or Night Sprinters to try get a better picture of what I need to do
Zombie modding is hard as fuq
Changed the texture size and looked at the model. Everything looks correct but does not change the colossal TV. WHAT IS HAPPENING????
Is there a way to respawn all instances of an item? I need to run :DoParams on some items while the game is already loaded. And as other have mentioned, changed via DoParam require the item to respawn
Turns out vanilla models are treated much differently than modded models. Why, Indie Stone, why.......
it is because you forgot a comma on the scale line
no way. It is a list, no? I have never had this issue for other scripts
i guess I will check
the format is weird and usually expects a comma on every line
....why does it work with the comma
I have edited hundreds of items and other things, why does it require a comma only for models
π
just always have commas, all kinds of things can break without them
now I have to go through all of my other mods just to add a comma at the end of each list
Thank you though. Helped me once again π
alright. I'm working on a infinite fish abundance mod and i thought i'd jump in here
i made this instead of context menu π
now to actually make it work lol
i love this for sure
The syntax for script categories is wild.
π€¦ββοΈ
Assumed all properties used =
aaaaaaaaaaa
recipes are crazy.
what's a good place to hook into for giving NEW CHARACTERS an item
e.g., only on spawn, not on load in, in mp
(or sp i guess, probably same deal)
oncreateplayer, use moddata to ensure it hasn't happened already
i know in old PZ versions OnNewGame worked for this
but im not sure if that's SP-friendly-only
that's not mp friendly
figured, tyu
Hahahaha
So my rendered AST JSON for items_food.txt is 126,048 lines long.
I've mostly implemented an "Abstract Syntax Tree" for ZedScript.
Oh.. An AIM emoticon.
I feel old.
Man.. I almost have the entire scripts folder for PZ parsed.
we use, just need to write some time since last death logic to prevent people from gaming that system
Events.OnNewGame.Add(function(player, square)
end)```
/**
* Triggered after a new world has been initialized.
*
* @param player The player who's starting the game.
* @param square The grid square where the player is located.
*/
export type OnNewGameListener = (player: IsoPlayer, square: IsoGridSquare) => void;
:D
I would've posted this if I saw Udderly's post.
I've only spent about 30 seconds looking, but if anyone knows of a way to get the time since last death off the cuff, I'm looking 
or maybe previous alive time?
does onnewgame really work that way? that's crazy
maybe the reason mods still prefer to use oncreateplayer for a lot of one-time stuff is just to make it safe to add mid-save
Oh shit.
i'd learn ts if the whole thing was documented like that lol
I just parsed the entire scripts lib.
But it is.. For the Java side ATM.
Working on the Lua transpiler to make that side just as pretty.
No but for real though.
I hand-copied over those event details from the wiki to the typings for the custom event listener API.
honestly i'd hype this hardcore even if i didn't use ts when finished
It'll tell you what's provided and their types, which reflects the Java objects they pass and what you can access.
It's all referenced. =)
in case it causes you a headache later on, you should know the wiki isn't perfectly accurate
most of it is good but some of the information they have on events is outdated, and some of it is just wrong
Beats investigating 200 events manually.
heheh
This is why I don't shut up about PipeWrench. It'll save you so much time figuring things out.
can i ask why the naming conventions are changed so much?
is it because of the language itself used?
obv i am only noticing little things but i'm assuming you wrote it all
i dont know ts btw
att all
I did not write the ~400K lines it takes to map the PZ API.
oh i suppose lol
I wrote the transpiler that generates it.
oh I gotcha lol myb good sir
yea looking forward to it.
I mean.. you can already use it. Others do. My 2nd Lua transpiler will make things so much better.
for now looking forward to assigning values to this slider thing and seeing if it's possible to add colors to it.
to be honest... i'm extremely new to this all
I won't push it on you.
I push it as info to modders that need a guide or want to avoid Lua mostly.
you are all good. I appreciate it also.
I'm an oldhat in PZ modding (10ish years now), however newer kids on the block need help.
i like it for what it is, not even counting being able to use TS. my goal was to really focus on one language until it makes enough sense to where others start to naturally make more sense
even that said i'm still going to check this out for the docs lol
single pane window kinda person if i can be
I haven't written messy code like this in so long...
My ZedScript AST parser works though.
Will clean it when I have time.
making UI stuff is actually kinda entertaining
It's a labyrinth.
This code is so horrible.
I will need to clean it.
This is what my test code looks like after 6 hours of work lol.
This is what it generates.
lol i got a panel, a slider, and a button that does nothing and a button that closes it. i'm good on that for now π just need to assign values to the slider somehow and assign a function that sets the lightradius of the light and i hope thats it LOL
once i learned how easy it is to derive classes though
so many things started making sense
@tame mulch I have a working AST parser for ZedScript. It can be improved on to cater more specifically for certain structs. Up to if I have time to improve on it. https://github.com/asledgehammer/ZedScriptParser
So this is implementing an AST-approach for abstract expressions and statements to detail what's going on. This isn't the JSON I want as a result. This serves as a way to handle what's going on with the script's contents to make things like the JSON parser I want.
I can cleanup the tech-code in the repo right now and make it into a OOP library that can then be used to make the app I mentioned wanting to make.
Nice.
Does the figure 0.05 in zombie loots table mean 5%?
i'll say this. load up in debug after you choose the number.. pull up the debug menu and goto cheat. towards the bottom check the lootzed box
go up to your intended container spawn and up in the inv you can right click the container and open lootzed. you should be able to find your item and the %
you can kinda go from there
round 2
so many failsafes to prevent people somehow abusing this after walking away from the switch lol...
Omg i feel bad for whoever wrote that. Well i also write terrible codes so i feel guilty but not ashamed lol
Should i redo this what? Its a water pump
looks fine
me too need pump for my mod, sadly found nothing on google images so my mod won't have pump 
Looking for a guy who would fix this mod. Mod creator gave me permission to change it.
It's payable, of course. DM me
https://steamcommunity.com/sharedfiles/filedetails/?id=2832464569
Is there any way to make the game detect that my sandbox options are no longer... valid? I had to change some stuff around in a mod, change the separator in my string, and I want the game to not load the bad options at all...
in theory you could compare the actual applied sandbox settings with the settings from another "preset" or file
Good morning guys. Question: how can I save item ModDatas to the server? transmitModData() is for objects and I didn't find anything similar to it for items. I'm thinking that maybe I should use the InventoryItem.save function, but I have no idea how to call it
Was this intentionally removed from the online Java Doc? https://zomboid-javadoc.com/41.65/org/lwjglx/input/Keyboard.html
Javadoc Project Zomboid Modding API declaration: package: org.lwjglx.input, class: Keyboard
Because I know for a fact it still works and I prefer using it, but if it will soon no longer work I would like to know...
it's not tis class, maybe that's why it's not there
also zomboid-javadoc has 41.78 docs, use more current version for your modding π
@fast galleon I do, but before 78 was being passed around other links allowed me to see Keyboard, so I was asking explicitly why I could no longer see it because I cannot see it in the 41.78 docs that I am using. π
That's fair enough though. I figured they intentionally included Keyboard in the past because it's useful to Zomboid modding.
For the sake of consistency
Rather than everyone coming up with their own special butterfly way of naming a big set of constants that already has names.
If you want you can use it π once i upload
I think you misunderstand me, same link you use change 41.65 to 41.78. That's docs generated by co`.
The other link that was generated by TIS (link removed from wiki and project-zomboid, why aiteron???) was 41.76(?)
The keyboard you're looking for is not from TIS and that's why it's not on their docs.
Ohhhhh so 41.78 doc is NOT the latest TIS doc?
Oh I seeeeeee
I DO misunderstand.
So someone in the community makes this other doc including various Java classes we can use in Zomboid that are not written by TIS?
The one with 41.65 / 41.78 in the URL?
Howdy fellas, this might seem like an odd request or thing to ask but - anyone need help with model creation?? Iβm working with some people on a mod for PZ but progress has been slow lately and I feel Iβve made a lot of what can be done at the moment. I also just want a reason to push myself so I can keep learning blender and improve, hopefully learn more about modding in the process as well. I donβt really have any preferences on what we should make, just as long as itβs fun and not something that will get abandoned, maturity is a must as well. You can shoot me a message if youβd fancy checking out some of my current models. You can respond with your clown emojis now π€‘
Can you /addvehicle into cell that is currently unloaded I wonder.
#modeling probably
maybe you can insert it into the database itself or spawn a vehicle and set it's positions elsewhere? (not a vehicle expert)
Good morning.
I mean server keeps vehicles, I'm afraid of duplicates since I barely can return the vehicle I just spawned
Can anyone help me understand how to add new spawn regions? I understand the coordinate system but I need to figure out how to actually set it up and modify it
you can probably just look at a spawn point mod and do the same thing
try looking at one that adds less spawn points rather than more
@jaunty marten You see my mini-project yesterday? =3
Also it's hard to @ you without a Russian keyboard lol.
https://steamcommunity.com/sharedfiles/filedetails/?id=718782525
here's an example that adds really few locations that is probably more helpful than a bigger mod
think im figuring it out, im cloning the vanilla files and then adding them to the master list. it at least shows up in the game as a region now but not tested yet. ima be in a vc streaming if anyone curious. I dont want a mod as I am just adding a set few locations to choose from. The other challenge is seeing if this translates over to clients
yeah i know but if u look at a mod's code u can see how they did it
especially since spawn point mods are pretty common, they all do it pretty much the same way
Holaaaa
nope, what's there? 
haha, yea
If you know what an AST is, I've written an AST schema and parser for ZedScript.
can't do set nick only here, it's blocked by server 
Could ask help from mods. =)
never heard about AST 
In computer science, an abstract syntax tree (AST), or just syntax tree, is a tree representation of the abstract syntactic structure of text (often source code) written in a formal language. Each node of the tree denotes a construct occurring in the text.
The syntax is "abstract" in the sense that it does not represent every detail appearing in...
I think if they blocked this feature then there's some reason
ah, this
It's too long to paste in Discord.
Cleaning up the hideous positioning of Host menu and making it so we can see absurdly named server names for Wookiee Server Options (expanded / improved successor to Legible Mods):
(on every font size, not just on default)
Gamepad players will now be able to quickly remove mods with a button:
Everyone will be able to add / remove workshop item / mods up to 20 at a time using accelerator shortcuts (L2/R2 or L Control/L Shift)
Adding a mod will also select the next mod if possible, instead of the same one, to enable easier spam adding especially for gamepad.
Doing the lords work
I didnβt even know people actually play this game with controllers to be fair 
Would anyone know if itβs possible to implement custom shaders that affect the main viewport of the game? Think effects such as blur, desaturation and so on. Been doing some searching on the subject matter and so far it seems you canβt interact with the shaders through lua. Anyone else have a different experience?
When the game's features are fully gamepad compatible, such people might be less rare.
check what he has done to change shaders
You can add a little blur and desaturation by hacking into the game's Investigation overlay effect.
Other things can be done with gif overlays or perhaps light sources that follow the player.
Beyond that, idk.
Yeah! Iβll definitely check out the blind trait one! I know that you can create overlays that are images drawn over your screen, but that seems a bit limited. But maybe itβll be nice if combined with the investigation blur. Just want to make being drunk a little more immersive :x
Combat is a lot smoother with controllers
But the inventory is rough π
I hope context menus can be a thing of the past eventually
I wonder if it would be difficult to make a dynamic radial menu rather than context
Thinking about updating this mod, as it somehow works and not work at the same time. Blindcoder seems to have removed his focus from PZ for now. Where can I find information on how the sandboxe options work? https://steamcommunity.com/sharedfiles/filedetails/?id=691831046
@sour island im cleaning up the twitch integration lib and adding some functions to it, if you have any idea of things to add now is the time π
and anyone else who might want something supported by the lib
also need to make the documentation for it...
Do you have user messages coming through as Say?
Sandbox options themselves are defined via a sandbox_options.txt file if I remember correctly. It assigns the value types, min, max, default, etc. I forget precisely where it's located but I think it's under either media or lua.
Translations for sandbox options are with the rest of translations.
Actual indexing of sandbox options is something like SandboxVars.ModName.OptionName
Where is the logic for determining the values stored? Is that handled by the options.txt as well, or somewhere separate?
The values stored? Like as in a drop-down?
As in "player chooses 2-6 months" therefore I will choose a random value between those two points
was that question for me?
Yes, I always thought it was a waste of potential sub messages didn't go through as Say in game
Especially with Q-Shout being a thing.
Yeah the defaults should be handled by options.txt
I haven't done a drop-down yet I don't think but I imagine that's probably done via options.txt as well.
ah sorry, i meant the random part. How does the game choose the final value for a save-game. Not the dropdown or options
If you know, that is
the json string has a limit of around 2 mb
Oh, so like turning 3-6 into two variables of 3 and 6?
Yes
i can just use a custom field for it, one i have just called data
or make a field in the json for it
I believe theres string splitter methods where you can set the "split" character.
Also, @pulsar heath, the current version of EHE on GitHub has changes made to make it work server-sided. I might push it through just to fix the MP issues. Still debating if it should cook a whole lot more for other features.
I don't remember exactly how to do it, Udderly gave me a function for it and I just ran with it to the races, but y'know.
you managed to solve the stale zombies issue?
Yes, the server didn't like the way I was killing zombies
The update isn't on workshop yet
hmm alright that is fine. Thank you regardless, I will get to remaking the sandbox fine tuning
But I figured you should know it may screw up what you have.
so add a say message to events such as sub as well to the lib
its done
π
anything else?
yup
hmmm havent add those yet
If you could make it so others could easily tap into your system it can scale with sub-mods
I can guess there's an idea that no one has thought of yet
thats why im cleaning the code...
the json string generation was static
so im making it dynamic
so it can be used with other mods apart from mine
So one could provide a Lua function similar to how recipes work?
yup dont need to explain how it works... you can just make it work the way you want
as long as it doesnt pass the 2mb limit
but 2mb is a lot for json string
so i think that wont be an issue
So you could pass the function name and arguments as needed
yup
Nice π
thats the idea
Are you using unpack()?
nop
How are the arguments being fed into the function?
there are some rules in the json creation to make sure all the values are correctly fed
as in action, args, etc
What JSON? =D
So it can only take specific types and order?
the only static order is that the 1st field has to be the function name
from that point on everything it treated as args
Is there a limit to how many?
=(
one function per string
at least for now
but that doesnt mean you cant add more
its up to the mod to deserialize the string and grab the values
Meant the arguments, I was asking about unpack as that can allow you to turn a table into arguments as needed
so you can add as many as you want
Ah, so the framework just tosses the modder the string and says "there you go, make use of it" π
yup
tried to make a standart json string but that will limit a lot of things and its best to leave it simple
the app serializes whatever you send it from twitch
Yeah, even if you did use unpack it would be on them to account for argument types and safety checks anyway
then the mod will grab whatever it needs
the only thing the app will do is to follow the syntax you set on the config
so you cant define your own json string fields
Sounds pretty solid
then since youre the one who made the syntax
its up to your mod to make use of it
i havent done the gui yet so i cant show you a screenshot...
So you just have a twitch event pass the configured string over
but by the end of the day i will have a "placeholder gui"
yup, then the user grabs the values from the event sent by twitch and defines in the app what to send to the mod
where he can define what function to call with what args
Hmm, I think it's pretty straight forward
so he can do a general json string to send for all rewards
and customize some of them without having to configure them all
a standard behavior and a custom one
or several custom on top of the standard... its up to the modder to do whatever he wants the way he wants
I think a lot of streamers will like this
he can even simulate something like a "hype train"
so if a user buys lets say 5 consecutive zombie or whatever events
A few people didn't want to deal with the touch portal
the 6th can have a custom behavior as a bobus
touch portal is very good... but not very user friendly
Yeah, plus there was an issue of accidentally hitting those keys
Or the fact you may need those keys for other things
Oh, he's working on a twitch integration app
nop its not i only set the 2mb limit on a whim
i doubt anyone will use more that 20k and im already fattening it up
AST JSON can get very massive.
facts.
well if we are talking about json for something complex... yeah it can get quite big
Hahahah yeah.
but in this case and use scenario... i doubt anyone will need more than 20k ( at most half of that is more than enough )
so 2mb is my way of saying... here... have fun
π
Are you sending Lua code to execute in the game from Twitch Integration?
loadstring('print("Hello, World!")')()
i dont want to make a mod framework... just a twitch framework
π
and testing it with youtube as well
I think this would save you the grief.
If you need to execute a function, you might as well forward code strings.
(My opinion)
Otherwise it's fun to watch you develop this app.
(Especially since I made my own in a way)
And that's all you need to do it.
i could just use keypresses like any other mod
and be done with it
use this app here for the mod to work
and that would be it
but at the same time im making my own twitch, steam, discord, youtube and rcon lib
so... fun and useful... at least for me
the only bit thats not fun... is making the gui...
You might have caught the same bug I have a long time ago where you want to make tools... endlessly...
.. forever..
yeah but thats a normal bug to have if you enjoy coding
Depends on how big the tools are.
plus... if i have this lib with this amount of useful stuff in it
Most people write small tools.
that means that in the future i will not need to worry about making them, just improving or updating
i have a dll i started making in 2003...
another one from 2005
and i still use both... the older one is only file manipulation and related stuff
the second one was when i started messing around with REST
i enjoy making tools but i dont enjoy making the same thing all over and over again
so... it keeps growing...


