#mod_development

1 messages Β· Page 104 of 1

tame mulch
#

No. I think reason because this func use SP command to spawn zombies

silk quarry
#

Thanks for the explanation!

pulsar heath
#

and pathToLocationF(x,y,z) is kinda funky as well

fast galleon
#

it's ok to call it anything you want

pulsar heath
#

sometimes it works

#

sometimes it doesnt

sour island
pulsar heath
#

@tame mulch any tips on how to spawn zombies and make them move to xy in mp ?

#

tried this ```function ZedsToPlayer(source,zedQ)
local ZedList = source:getCell():getZombieList()
local x = source:getX()
local y = source:getY()
local z = source:getZ()
local zedcount = 0
for i=0, ZedList:size()-1 do
local zombie = ZedList:get(i);
if zombie then

                zedcount = zedcount +1
                if zedcount <=  zedQ then
                    print("ZedstoPlayer", zombie)                    
                    zombie:pathToLocationF(x,y,z);
                end
            end
    end

end```

#

but its... not reliable

sour island
#

I think that's an issue with the networking and authowner

tame mulch
pulsar heath
#

not viable

sour island
#

afaik you can't assign a zombie an owner manually through what's exposed

pulsar heath
#

i want to move a certain number of zombies

#

not all of them 😐

#

but the annoying thing is that pathtolocationf sometimes works

#

sometimes doesnt... makes no sense

fast galleon
#

still I hate naming things, I get brain freeze trying to name things uniquely

silk quarry
#

Also more an opinion question: If I'm just using some strings for halo text, what namespace should I use? UI?

pulsar heath
#

for that purpose alone you can use whatever names you want

nova socket
pulsar heath
#

as long as you call the right one with gettext

tame mulch
silk quarry
#

I figured, since using getText, but I guess I want them somewhere consistent. Do most mods use UI you think?

sour island
#

also @tame mulch I rewrote EHE to be truly serverside - but knockdown and damage doesn't happen to zombies on serverside that cleint's see- when I made those events clientside the zombies self delete and the debug lists them as 'stale'. Is there any generic 'sync zombie' 'transmit' for that?

bronze yoke
#

i'd heard setTarget doesn't work, that java just resets the value every frame anyway

pulsar heath
sour island
#

spotted() can take Isoobject as an argument

#

and sets it to their target - i think only works if clientside though

pulsar heath
#

same behavior as the previous solution i was trying...

#

sometimes they go to xy

tame mulch
pulsar heath
#

sometimes they dont

#

weird

sour island
pulsar heath
#

bah static zombies for everyone

sour island
pulsar heath
#

perhaps...

#

the weird thing is

sour island
#

this would be really hacky

pulsar heath
#

i did some tests and it was working

sour island
#

but you could parse through the zombieList in cell

pulsar heath
#

till the moment i added it to the mod

#

πŸ˜„

sour island
#

and make them all deaf in 1 pass

#

play a addSound() event

#

then restore them

pulsar heath
#

yeah thats probably what ill have to do

#

since im already getting the list of all the zombies in the cell

sour island
#

I need to look into what's making my zombies marked as stale :\

#

I'm the only client

pulsar heath
#

its doing the same thing to me

#

πŸ˜„

sour island
#

and I made the changes

#

deleting them?

pulsar heath
#
LOG  : General     , 1675434437404> 234,434,986> Zombie: removing stale zombie 5000 id=20320
LOG  : General     , 1675434437471> 234,435,053> Zombie: removing stale zombie 5000 id=20250
LOG  : General     , 1675434441420> 234,439,003> Zombie: removing stale zombie 5000 id=20247
LOG  : General     , 1675434453571> 234,451,152> Zombie: removing stale zombie 5000 id=20315
LOG  : General     , 1675434461587> 234,459,169> Zombie: removing stale zombie 5000 id=20323
LOG  : General     , 1675434469687> 234,467,269> Zombie: removing stale zombie 5000 id=20329```
sour island
#

the zombies get knocked down, splatter blood - I walk upto them and they vanish

#

yeah same issue then

pulsar heath
#

yup

#

sometimes i smack a zombie

#

and he just vanishes

sour island
#

I'll look into that and let you know

pulsar heath
#

or bypasses the death animation, drops on the floor and vanishes

sour island
#

it's definitely a network sync thing

pulsar heath
#

some i know why they vanish

finite radish
pulsar heath
#

the distance from the player is above a certain value

#

but the ones near the player... probably a sync issue like you said

#

but also... im the only player on the server so...

sour island
#

I'd have to check on my Spiffo AI now

#

oh

#

πŸ€”

#

you can setModData to the number you want

#

and in their zombieUpdate() check if they have that data

#

and set spotted()

#

that's how the spiffo works

pulsar heath
#

its worth a shot

sour island
#

you can even have it occur over and over upto a certain distance

#

Spiffo does it forever and doesn't jank around

finite radish
#

spiffo don't fuck around

#

he fast boi

sour island
#

he just πŸ‘οΈ πŸ’‹ πŸ‘οΈ

finite radish
sour island
#

nah he's forced to walk

finite radish
#

born to run, forced to walk

sour island
#

someone played with all sprinters had to deal with a sprinting nemesis spiffo

#

poor man

pulsar heath
#

yesterday this was working

#

today it doesnt...

finite radish
pulsar heath
#

is it possible to set a zombie to sprinter?

#

that would be a fun reward

sour island
#

yes

pulsar heath
#

buy a sprinting spiffo zombie to eat the streamer

#

πŸ˜„

#

or whatever... custom outfits

finite radish
#

have you set up a redeem for playing the panic jumpscare?

#

that'd be a good cheaper one

sour island
#

I use outfits and hidden items for my AI but if you don't care if it's persistent you can use ModData

#

it's not saved so I use it as a go to little table

pulsar heath
#

im just annoyed since what i want to do is a simple thing...

#

and to make it work ill have to jump through a lot of hoops

nova socket
#

Does PZ support something like socket.http ?

pulsar heath
#

it should be something simple

#

no @nova socket

nova socket
#

bummer

sour island
#

once I finish this purge I'll look into "stale"

nova socket
#

I would make a Twitch Integration KEK

pulsar heath
#

already done

#

πŸ˜„

nova socket
#

oh yeah? link plz

sour island
#

that's what he's working on atm

nova socket
#

ahhhh

#

makes sense now

nova socket
#

I was like "why he wants to send zeds so badly"

finite radish
#

how is the connection handled? meant to ask about that

nova socket
#

subbed to it

pulsar heath
#

i solved the no sockets with a custom app

#

the previous version used keypresses

#

and also kept compat with the previous mod for the ones who rather use Touch portal and not my app

nova socket
#

I guess you write lines with app into mod folders and read the file from the game which is a thing?

pulsar heath
#

yup

nova socket
#

ye we did it before for UE games with no socket

pulsar heath
#

a pseudo json string

#

is written into a file and read and parsed by the mod

#

the app just queues all the actions from twitch

#

and checks if the file is empty

#

if empty it will write the next reward in queue

bronze yoke
pulsar heath
#

bah... this is making me go mad

#

now it works

#

......

#

and i havent changed 1 line of code

#
    local sourceId = source:getOnlineID();
    local ZedList = source:getCell():getZombieList() -- get zombies in the cell
    local zombie = {}
    if ZedList then  -- if no zombie was found values are kept from source
    zombie = ZedList:get(0) -- get first zombie found
    if zombie then
    args.ZedX = zombie:getX() -- set the spawn for the existing zombie x and y
    args.ZedY = zombie:getY()
    end
    end
    print("Zedspawn [".. sourceId .."] quant: ", args.ZedQ)
    print("Zedspawn [".. sourceId .."] XY: ", args.ZedX,args.ZedY)
    print("Zedspawn [".. sourceId .."] PlayerXY: ", source:getX(),source:getY())
    addZombiesInOutfit(args.ZedX, args.ZedY, args.ZedQ, 1, outfit, 50, false, false, false, false, 1.5);
    ZedsToPlayer(source,args.ZedQ)
end

function ZedsToPlayer(source,zedQ)
    local ZedList = source:getCell():getZombieList()
    local x = source:getX()
    local y = source:getY()
    local z = source:getZ()
    local zedcount = 0
        for i=0, ZedList:size()-1 do
            local zombie = ZedList:get(i);
                if zombie then
                    
                    zedcount = zedcount +1
                    if zedcount <=  zedQ then
                        print("ZedstoPlayer", zombie)                    
                        zombie:pathToLocationF(x,y,z);
                    end
                end
        end
end```
#

....

#

i know my formatting is crap

#

i need a break and a cup of coffee

sour island
#

refactored variable names and uploaded with out testing

pulsar heath
#

livin' on the edge πŸ˜„

finite radish
#

@sour island have you ever experimented with createRealZombieAlways? you'd need to achieve access to the VirtualZombieManager instance, but I imagine you've already done that before

sour island
#

I think the luaManger functions call on that eventually

finite radish
#

might be worth looking into, it appears to allow you to create static zombie instances pretty much whenever/wherever you want, and syncs them between server/client

sour island
#

I use the outfit specific one that creates an array of zombies

finite radish
#

you'd need to be careful about overuse though - the overhead would be nothing to scoff at if you spam it

sour island
#

spawning for me isn't an issue

#

it's making changes after the fact

finite radish
#

right, but if the zombies aren't "real" on either the server or the client, then maybe that's your issue

#

from what little I understand, some zombies are more static/present than others

pulsar heath
#

but thats doesnt explain zombies created with the same command

#

that some vanish and other dont

#

and are right next to each other and spawned using the same method

quasi kernel
sour island
#

What I've done in the past was send a command for all clients to spawn zombies - idk if that doesn't need to be the case any longer

finite radish
sour island
#

but why would my own zombies become stale only after getting damaged/knocked down in client code

#

I can fight them all I need to prior to that

bronze yoke
#

oh, are the vanishing zombies only ones you spawned?

sour island
#

they're not

pulsar heath
#

not all

#

if that was the case

#

it would be easier to find out why

sour island
#

I just realized what I was saying - actually for me the zombies are vanilla

#

perhaps I need to run the client-side code for all clients?

bronze yoke
#

i'm really confused what could cause the stale zombie codepath to actually run in this instance

#

nothing you're doing to them seems related to the conditions

finite radish
sour island
#

my bad, got two topics conflated - but spawning zombies in isn't my issue and doesn't seem to be m3ss's

pulsar heath
sour island
#

I'd have to test but our issue is making changes after the fact, right?

finite radish
#

all of this depends on what commands you guys are actually using to spawn them, the manager has a ton of different functions

sour island
#

your repathed zombies also go stale?

pulsar heath
#

tried all the other available ways and all lead to stale zombies randomly

#

sometimes they all stick around

#

other times they dont

#

sometimes some of the spawned zombies despawn

#

other times the zombies already spawned in by the server despawn

finite radish
pulsar heath
#

atm im using addZombiesInOutfit()

sour island
#

same, but I don't get stale zombies from spawning

finite radish
#

okay yeah, it uses createRealZombieAlways

#

so it should be fine

#

as long as you're calling it on the server, I believe

sour island
#

I think you're getting staled zombies when you try to repath them

pulsar heath
#

hmmm

#

maybe, but wouldnt that make all the zombies im trying to repath vanish?

sour island
#

it should yes

#

can you use Spiffo as your OutfitID

#

just to confirm the ones pathing to you are actually the ones you've spawned?

pulsar heath
#

just lemme kick this guy's a$$ in hs and ill give it a try

sour island
#

also - the same issue occurs when you grab a random number of zombies in the cell?

pulsar heath
#

havent noticed that

#

sec no

#

when i try to repath existing zombies

sour island
#

oh - so is that a problem to do it that way? to grab the number of zombies from the cell?

#

oh

pulsar heath
#

they sometimes react

#

sometimes dont

#

the video i posted

sour island
#

but none go stale?

pulsar heath
#

i repath 3 existing zombies none went stale

sour island
#

none go stale but the other 2 don't react

pulsar heath
#

and sometimes none reacts

#

they kinda react but reset back

#

ill clip a video of it

#

just a second

sour island
#

are you sure those are the only zombies in the cell?

#

this approach could be grabbing zombies 100+ away

pulsar heath
#

i have a counter

#

plus im grabing the ids and checking them against the ones that move

#

i've tried to randomly pick zombies

#

and picking based on the ids i collect

#

the result is the same

sour island
#
   public void pathToLocationF(float var1, float var2, float var3) {
      if (!(this.AllowRepathDelay > 0.0F) || !this.isCurrentState(PathFindState.instance()) && !this.isCurrentState(WalkTowardState.instance()) && !this.isCurrentState(WalkTowardNetworkState.instance())) {
         super.pathToLocationF(var1, var2, var3);
      }
   }
#

could be they're already wandering

pulsar heath
#

it thats the case...

#

i need to stop the wandering state

#

and set the path... maybe?

sour island
#

should work if that's the case

#

also I lied earlier spotted only works on IsoMovingObjects and specifically ignores anything not a living IsoGameCharacter

pulsar heath
#

since the player is a moving object

#

someone at the door... brb

finite radish
#

do you guys know if there's a way to get a UdpConnection from IsoPlayer? looking around atm but no luck so far, could be missing something obvious

bronze yoke
#

maybe calling zombie:changeState(ZombieIdleState.instance()) before the pathfinding method would be enough

sour island
#

also double checked my spawn code should be firing in server - I just have some vestiges of when it was client -> server

#
                            if (var6 != null) {
                                this.AllowRepathDelay = -1.0F;
                                this.pathToCharacter(var6);
                            }
#

they even do it for a particular case

#

that field isn't exposed tho

#

so hopefully the state thing works

pulsar heath
#

this is so weird

#

lemme try setting the state b4 the path set

#

so far it seems that solves it... lemme try a few more times

sour island
#

congrats if it works

pulsar heath
#

hmmm still fails sometimes

#

not as much as without changing the state

sour island
#

whats the exact message for stale say?

#

there's a few code for stale type

pulsar heath
#

same behavior

finite radish
#

take a look at parseZombie in NetworkZombieSimulator, specifically the portion after if (gridSquare != null)

this is a debug tool I'm fairly certain, but there's a lot of stuff they do with a zombie of the same type you guys are using (realZombieAlways) so all of those properties/etc. should work as well, as long as they're public

pulsar heath
#

a bit better

#

but unreliable

finite radish
#

have you guys used .networkAI to do the movements and such?

sour island
#

any stale zombies?

pulsar heath
#

LOG : General , 1675440665267> 240,662,842> Zombie: removing stale zombie 5000 id=19437
LOG : General , 1675440757250> 240,754,826> Zombie: removing stale zombie 5000 id=19424
LOG : General , 1675440789584> 240,787,159> Zombie: removing stale zombie 5000 id=19425
LOG : General , 1675440941033> 240,938,610> Zombie: removing stale zombie 5000 id=19434

#

4

sour island
#

or simply not moving?

#

hmm

pulsar heath
#

im only moving one

sour island
#

if (!GameClient.bClient || this.authOwner != null || this.bRemote && this.lastRemoteUpdate <= 5000) {

pulsar heath
#

only have 1 zombie around

bronze yoke
#

the 5000 logs don't make any sense to me

pulsar heath
#

so good for testing :d

#

πŸ˜„

bronze yoke
#

there's just no reason for that condition to become false that i can see

pulsar heath
#

and btw i didnt spawn any zombies on this try

#

just using the ones the game spawned

finite radish
#

isn't this the condition? if (GameClient.bClient && this.authOwner == null) {

#

so if you don't have an owner for the zombies, then yes they'll despawn

pulsar heath
#

but im the only one here

finite radish
#

that doesn't mean the owner can't be null

sour island
#

the 5000 condition is the one I linked I think(?)

bronze yoke
#

that's what i saw

pulsar heath
#

yes but makes no sense

finite radish
#

why don't you just try assigning authOwner? or print it, to test it?

#

that'd tell you what's going on

pulsar heath
#

they are in my LOS

finite radish
#

that means nothing

#

lol

sour island
#

you cant assign authowner last I checked

#

back when I was having stale issues

finite radish
#

you can, but you need a UdpConnection object, so you'd have to get that from the IsoPlayer

bronze yoke
#

getZombieInfo() will at least tell you who the owner is, if you can confirm that the issue is that the owner is being unassigned or something that makes things much easier

pulsar heath
#

i think im gonna try spawn the zombies 1 by 1

#

maybe its the function itself that doesnt like mp?

finite radish
#

try what albion said first

#

it has to be authOwner actually, it's literally impossible that the issue is anything else

sour island
#

could it be bRemote?

finite radish
#

nah. bRemote is a zombie property

sour island
#

wait no it's ORing...

bronze yoke
#

it's literally impossible?

sour island
#

that combo of ! || != null || boolean && <=

finite radish
sour island
#

is really breaking my brain lol

finite radish
#

and I'm pretty sure he's a client lol

pulsar heath
#
LOG  : General     , 1675441761251> 241,758,830> y    783
LOG  : General     , 1675441761251> 241,758,830> width    60
LOG  : General     , 1675441761251> 241,758,830> height    80
LOG  : General     , 1675441761251> 241,758,830> anchorLeft    true
LOG  : General     , 1675441761251> 241,758,830> anchorRight    false
LOG  : General     , 1675441761251> 241,758,830> anchorTop    true
LOG  : General     , 1675441761251> 241,758,831> anchorBottom    false
LOG  : General     , 1675441761251> 241,758,831> dock    none
LOG  : General     , 1675441761251> 241,758,831> minimumWidth    0
LOG  : General     , 1675441761252> 241,758,831> minimumHeight    0
LOG  : General     , 1675441761252> 241,758,831> scrollwidth    0
LOG  : General     , 1675441761252> 241,758,831> removed    false
LOG  : General     , 1675441761252> 241,758,831> background    false
LOG  : General     , 1675441761252> 241,758,832> backgroundColor    table 0x1348821607
LOG  : General     , 1675441761252> 241,758,832> borderColor    table 0x664276437
LOG  : General     , 1675441761252> 241,758,832> moveWithMouse    true
LOG  : General     , 1675441761252> 241,758,832> title    Twitch Stats
LOG  : General     , 1675441761252> 241,758,832> leftside    true
LOG  : General     , 1675441761252> 241,758,832> javaObject    zombie.ui.UIElement@6f607896
LOG  : General     , 1675441761252> 241,758,832> mouseOver    false
LOG  : General     , 1675441761252> 241,758,832> moving    false```
bronze yoke
pulsar heath
#

thats what i get from the table of getZombieInfo()

bronze yoke
#

it should be (!GameClient.bClient || this.authOwner != null || this.bRemote && this.lastRemoteUpdate <= 5000)

pulsar heath
#

this must be the wrong table

#

no its the zombie

#

wtf?!

#

a sec

bronze yoke
#

this looks like a ui object, something is not working how you think it is

pulsar heath
#

lol

sour island
#

zombies have a print out thing in luamanager

pulsar heath
#

copyed

#

the function

#

and forgot to change the target

#

lko

#

lol

bronze yoke
#

i can't really work out what the purpose of lastRemoteUpdate is so i'm not ruling that out, but i agree authowner is the most likely cause

sour island
#

_G.getZombieInfo(zombie)

#

dumps the relevant info

pulsar heath
#

kk

sour island
#

also shows pathing info too

#

there's a F key that displays stuff

#

wish it were easier to read but it's like a giant list under the isoGamChracters?

#

might have the info there too

pulsar heath
#

0 zombies around

#

πŸ˜„

#

teleporting into town

finite radish
pulsar heath
#

what are the args?

#

the zombie object?

finite radish
#

the args to what?

pulsar heath
#

getZombieInfo

bronze yoke
finite radish
#

yeah, it's just the zombie

finite radish
#

if you're using . then you need to pass the zombie in as the argument

ancient grail
#

Anyone else has a framework / tool / guides / resource / reference / tutorials / api / overhaul / library

That i havent included? I think thats almost all the relevant stuff i guess..

finite radish
bronze yoke
#

the stale zombie 5000 log?

finite radish
#

yes.

pulsar heath
#

zombie:getZombieInfo() ?

#

i only get errors no matter how i try it

bronze yoke
#

i'm just confused where you're getting that from

#

there is a stale zombie 800 log behind that condition

finite radish
#

they're the same thing, just with different timeouts

#

idk what you're confused on

#

it's irrelevant

sour island
#

creates a table

#

you pairs() through it

pulsar heath
#

if i use it as a global i get

#

Callframe at: getZombieInfo
function: stdin -- file: objects.lua line # 6 | Vanilla
function: runLua -- file: LuaInterpreter.lua line # 192 | MOD: Cheat Menu: Rebirth
function: onMouseUp -- file: ISButton.lua line # 56 | Vanilla

sour island
bronze yoke
#

yeah, so i don't see how the 800 log is relevant

sour island
#

wrong message sorry

pulsar heath
#
LOG  : General     , 1675442510671> 242,508,251> -----------------------------------------
STACK TRACE
-----------------------------------------
Callframe at: getZombieInfo
function: stdin -- file: objects.lua line # 6 | Vanilla
function: runLua -- file: LuaInterpreter.lua line # 192 | MOD: Cheat Menu: Rebirth
function: onMouseUp -- file: ISButton.lua line # 56 | Vanilla
#
local player = getPlayer()
                local ZedList = player:getCell():getZombieList()
local zombie = ZedList:get(0)
print(zombie)
local teste = getZombieInfo()
print(teste)```
#

i know it will only print the table name

finite radish
# bronze yoke yeah, so i don't see how the 800 log is relevant

because they're effectively the same code, again - just for different timeouts. you're right that the one you posted applies in this case, but it's the same thing that we're talking about. there's no need to worry about which one it is, they both logically result in the same thing

pulsar heath
#

but i only get an error

#

oops

#

forgot the zombie

#

lol

finite radish
#

you got it now NODDERS

sour island
#

should still return an empty table tho

#

or well this is kahlua table but Im hoping the game knows to make it accessible(???)

pulsar heath
#
LOG  : General     , 1675442605469> 242,603,050> table 0x156346127
LOG  : General     , 1675442649299> 242,646,881> zombie.characters.IsoZombie@5af17e0b
LOG  : General     , 1675442649299> 242,646,881> table 0x2068203020
LOG  : General     , 1675442649300> 242,646,881> OnlineID    19659
LOG  : General     , 1675442649300> 242,646,882> RealX    7213.216
LOG  : General     , 1675442649301> 242,646,882> RealY    9965.503
LOG  : General     , 1675442649301> 242,646,882> X    7215.7603
LOG  : General     , 1675442649301> 242,646,883> Y    9965.135
LOG  : General     , 1675442649301> 242,646,883> TargetX    7213.216
LOG  : General     , 1675442649301> 242,646,883> TargetY    9965.503
LOG  : General     , 1675442649302> 242,646,883> PathLength    1.7776705
LOG  : General     , 1675442649302> 242,646,883> TargetLength    1.7776705598619853
LOG  : General     , 1675442649302> 242,646,883> clientActionState    walktoward
LOG  : General     , 1675442649302> 242,646,883> clientAnimationState    walktoward
LOG  : General     , 1675442649302> 242,646,884> finderProgress    notrunning
LOG  : General     , 1675442649302> 242,646,884> usePathFind    true
LOG  : General     , 1675442649302> 242,646,884> owner    M3ss```
#

well it says im the owner

finite radish
#

i'll be damned. then it is the remote timeout

#

didn't expect that tbh

#

unless it's unassigning you as owner...

sour island
#

this is after it's spawned?

pulsar heath
#

yup

finite radish
#

it'd have to be, otherwise zombie would return nil

sour island
#

seems to be moving too

pulsar heath
#

yup its trying to eat me

sour island
#

anyway to confirm info from one not moving?

pulsar heath
#

thats why its moving

#

ill just go into ghost mode

sour island
#

well I mean one not moving when it's supposed to lol

#

nvm, forgot you're using xy

pulsar heath
#

LOG : General , 1675442772317> 242,769,898> table 0x569925269
LOG : General , 1675442772317> 242,769,898> OnlineID 19659
LOG : General , 1675442772317> 242,769,899> RealX 7210.844
LOG : General , 1675442772317> 242,769,899> RealY 9957.821
LOG : General , 1675442772317> 242,769,899> X 7210.844
LOG : General , 1675442772317> 242,769,899> Y 9957.821
LOG : General , 1675442772318> 242,769,899> TargetX 7210.844
LOG : General , 1675442772318> 242,769,899> TargetY 9957.821
LOG : General , 1675442772318> 242,769,899> PathLength 0.4708786
LOG : General , 1675442772318> 242,769,900> TargetLength 0.4708786000234912
LOG : General , 1675442772318> 242,769,900> clientActionState idle
LOG : General , 1675442772318> 242,769,900> clientAnimationState idle
LOG : General , 1675442772318> 242,769,900> finderProgress notrunning
LOG : General , 1675442772319> 242,769,900> usePathFind true
LOG : General , 1675442772319> 242,769,900> owner M3ss

finite radish
#

is that with a freshly spawned on?

pulsar heath
#

not setting the path atm

finite radish
#

one*

pulsar heath
#

yup

sour island
#

hmm

#

try... setting path twice

#

🧠

pulsar heath
#

tried that

#

it kinda start to move then stops then start and resets back into the original "state"

sour island
#

sounds like the zombie manager has outdated info that it resets to

#

this pathing is done on server?

pulsar heath
#

lemme try with 3 zombies... the only ones around

#

im calling the function on the server side yes

#

but its the same if i call it on the client side

sour island
#

perhaps try calling it on both?

#

also my zombies get 5000 stale too

#

totally vanilla non-spawned

#

seems a bit overeager

pulsar heath
#

now its working ...

#

makes no bloody sense

finite radish
#

what did you do differently?

pulsar heath
#

nothing

finite radish
#

that's not true, otherwise it wouldn't behave differently

#

there's something that's changing

#

(either on the server, or otherwise)

nova socket
#

getSafehouseList() static method throws exception.. I guess its not implemented yet?

pulsar heath
#

im gonna try running it on both sides

#

better yet

#

i was running it on server side

#

it was working now it isnt

sour island
#

is the code in shared?

pulsar heath
#

but i know what i changed

#

it has to be client side i guess

#

if i run it once client side

#

and then server side it works for a while

#

then stops working

#

so it has to be client side

sour island
#

what stops working?

pulsar heath
#

setting the path

finite radish
#

what are you using to set the path?

pulsar heath
#
local ZedList = player:getCell():getZombieList()
local x,y,z = player:getX(), player:getY() , player:getZ();

local zedcount = 0
for i=0, ZedList:size()-1 do
    local zombie = ZedList:get(i);
if zombie then
zedcount = zedcount +1
if zedcount < 3 then
   zombie:pathToLocationF(x, y ,z);
end
end
end
player:Say(tostring(zedcount))
drifting ore
pulsar heath
#

it has to run client side

#

client side never fails

#

server side is erratic

#

sometimes it works sometimes it doesnt

sour island
#

so the problem is solved?

pulsar heath
#

so ... heres the solution

#

pathtolocationf has to be used client side

#

so far it seems its solved

ancient grail
#

Hi nippy

nova socket
sour island
#

OnlineID is matching if that's where you're going

#

that's what I'm doing

nova socket
sour island
#

server targets zombies does some stuff -> sends acommand over with the ID

nova socket
#

static one is probably not linked to SafeHouse

sour island
#

clientside uses zombieList from cell to match ID

drifting ore
#

i think you have to grab a player to look up safehouse

#

or the playerlist also

finite radish
#

@pulsar heath just looked. there's a ton of code that runs on updates that also uses pathToLocation, so what's happening is the passive behavior is triggering after certain delays

nova socket
# drifting ore i think you have to grab a player to look up safehouse
local function EveryOneMinute()
    local player = getPlayer();
    local building = player:getBuilding();
    if (getWorld():getGameMode() == "Multiplayer") then 
        local safehouses = SafeHouse:getSafehouseList()
        local square = player:getCurrentSquare()
        for i, o in ipairs(safehouses) do
            local isInLocation = O:containsLocation(square:getX(), square:getY());
            if isInLocation then 
                apply();
                return 
            end
        end
    end
...

Works it seems

pulsar heath
finite radish
#

the first few I noticed were the group behavior (which could trigger on any group of zombies large enough) and the other is that the idle state actually utilizes it as well

pulsar heath
#

anything i run on the lua window is client side

#

and its working

#

out of 3 zombies around i set it to call 2

#

and it only calls the first 2

#

i do it server side... its erratic

finite radish
#

that's excellent, right?

pulsar heath
#

so i guess ill put this bit of code on the client side πŸ™‚

finite radish
#

yeah no you should be doing it clientside, the packets update the zombies automatically

#

the spawning needs to happen on the server though

pulsar heath
#

yeah

finite radish
#

you may want to check for ownership before you call it though - it probably won't work on zombies that belong to another connection

sour island
#

so I figured out what was cusing my desync

pulsar heath
#

ill just call the pathing after spawning the zombies on the serfer side

sour island
#

setting a zombies health causes it to blip out of reality

pulsar heath
sour island
#

I'm also getting a ton of 5000s off screen

pulsar heath
#

or at least i think it will not be a problem πŸ˜„

sour island
#

setting health does it for sure

#

but interacting with the zombies a bit farther out seems to do it too

finite radish
nova socket
#

So if you move to fast the unloaded cells are getting bordered with cones.. Funny

finite radish
#

yeah cones used to be a common sight back before the network logic was updated

pulsar heath
#

i wouldnt have that problem

sour island
#
    elseif instanceof(targetHostile, "IsoZombie") then
        --Zombies receive damage directly because they don't have body parts or clothing protection
        damage = damage*3
        targetHostile:knockDown(true)
    end

    targetHostile:addHole(clothingBP)
    targetHostile:addBlood(clothingBP, true, true, true)
    targetHostile:setHealth(targetHostile:getHealth()-(damage/100))

    --splatter a few times
    local splatIterations = ZombRand(1,3)
    for _=1, splatIterations do
        targetHostile:splatBloodFloor()
    end
#

other than the setHealth something else in here is causing stale 5000

#

the ones that get knocked down near me don't dissapear πŸ€”

finite radish
sour island
#

but maybe it's an offscreen thing

pulsar heath
#

well im not messing around the zombies health and the stale 5000 happens periodicly

sour island
#

I'm assuming the 5000 is occuring cause of authOwner or something else getting caught

nova socket
sour island
#

yes the stale check is really really sensitive

nova socket
#

like im not even doing anything to server and i get spammed with stale sometimes

pulsar heath
#

im running mostly vanilla... only have AUD and my integration mod... plus EHE since i use it in my mod

#

plus the cheat menu for the lua window

sour island
#

Im wondering if it has to do with the zombie being unloaded?

#

would explain why there's so many during helicopter events

pulsar heath
#

last time i messed with zombie loads

#

i crashed the game πŸ˜„

nova socket
#

I once seen cells having Destroy() function. I had to try.

pulsar heath
#

the stale is probably a sync issue... but why would it happen when only 1 client is in the server?

sour island
#

I just got like 40+ stales and I didn't even do anything yet . _ .

finite radish
pulsar heath
#

specially when im running a local host

#

and why are the zombies unloaded?

#

im next to them and they just PUFF

fast galleon
#

if you figure stuff out, please write it down somewhere for others

pulsar heath
#

it would make sense if i was outside the range necessary to keep them in the world

nova socket
#

In fact I seen zombies getting cleaned up right in front of players on active servers. Probably due to stale too.

sour island
#

could the stale thing be misleading then? and just occuring over time and have nothing to do with the vanishing zombies?

pulsar heath
#

perhaps...

#

but why are zombies vanishing?

finite radish
pulsar heath
#

been there done that

finite radish
#

for this issue?

pulsar heath
#

this screen only has 60hz

#

and vsync is on πŸ™‚

#

so 60fps

finite radish
#

okay in that case - try uncapping it

#

and turning off VSync

#

and then restart and test again

pulsar heath
#

dont see the point but ill do what youre asking

finite radish
#

it has to do with the conditional that's triggered there

#

just give it a shot, see if it occurs any less/more frequently

#

the stale message, that is

pulsar heath
sour island
#

I took off knockdown and setHealth and I'm not getting nearly as many

hollow current
#

there a way to remove those vanilla 3 options from an item you add?

#
{
    /****************************** OTHERS ******************************/
    item TatteredPaper
    {
        DisplayCategory = Literature,
        Weight  =   0.1,
        Type    =   Literature,
        DisplayName =   Tattered Paper,
        Icon    =   TatteredPaper,
    }
}```
sour island
#

Why? that's standard for almost every item

pulsar heath
#

its a paper you can hold it in your hands πŸ˜„

hollow current
#

hmm ye okay makes sense

#

what about the read option

#

I want to add my own "read" option which does sth different

sour island
#

don't make it literature - use Normal type

hollow current
#

oh the type affects the options--not just a category thing?

sour island
#

type and category aren't really related

finite radish
#

oh wait I misread something from earlier
@pulsar heath we were wrong, it's still definitely authOwner, even after doing the tests you did

the update frequency isn't the issue. ownership is getting reassigned, or returning null for some other reason. either that, or you're no longer bClient, but I doubt that one.

I'd guess that your debug cheats are interfering with one of those two fields.

sour island
#

there's a junk category

hollow current
#

I seeee, that makes sense, especially that there already is "DisplayCategory"

sour island
#

could three ifs in a single tick read different values if the value is changing?

finite radish
pulsar heath
#

still getting stale zombies

sour island
#

or I guess it would just need 1 bad tick

finite radish
pulsar heath
#

not as many though

#

its tied to the tickrate?!

sour island
#

but none of the zombies that you see are vanishing

finite radish
finite radish
sour island
#

so those might be unloading around you?

finite radish
#

if you're in ghost/invisible/god mode or whatever, zombies are probably not getting ownership

pulsar heath
#

i can just disable the debug tools

finite radish
#

yeah I'd do that

pulsar heath
#

if thats the issue

finite radish
#

make sure you aren't spotted by them though

#

stealthy time

#

(also you probably will still own the zombies, at least initially, but check to see if they despawn

#

)

pulsar heath
#

but thats been happening in sp as well

#

and i dont have any debug tools on

finite radish
pulsar heath
#

vanishing zombies

#

not the stale thing

finite radish
#

oh okay, yeah.

pulsar heath
#

missing animations

#

like sometimes the zombie when it dies

finite radish
#

it uses a different function for that - and it's probably along similar logic to what I just described. so if you're in ghost mode, that's going to happen

pulsar heath
#

goes from the upright model

#

to the dead sprite

#

lying on the floor

#

well not a big issue atm anyway

#

and at least i got the pathing sorted out

#

it has to be client side... but makes sense since the zombies are handled by the client

finite radish
#

yup. also, you should really consider checking for the owner like i mentioned earlier - otherwise you're going to run into issues in MP

pulsar heath
#

ill just send a servercommand to all clients

finite radish
#

...also, is it calling on all-

#

no uh

pulsar heath
#

to set the pathing to the target

finite radish
#

you don't wanna do that lol

#

you'll be sending a command to clients for which that zombie doesn't even exist

pulsar heath
#

i can limit it to the clients in the cell then

fast galleon
#

lol and they said we spammed about debug tools

finite radish
#

cells don't get loaded all at once, there's a chunk spread based on zoom level

#

you can just check if the zombie is nil first

bronze yoke
#

afaik 'cells' don't exist at all outside of save formats and the map editor

#

and maybe some of the meta stuff

finite radish
#

I'd consider that existing lol

#

it exists as much as any other classification

bronze yoke
#

hence the term 'outside of'!

pulsar heath
#

exist but not "rendered"

#

or not "loaded"

bronze yoke
#

they're not really a part of the world, which is something that confuses a lot of people

pulsar heath
#

@finite radish so instead of getting a list of the zombies by cell would it be better to get it from the chunks around the chunck where the player is?

bronze yoke
#

the IsoCell object refers to the loaded area

pulsar heath
#

or even if i get it by cell it only returns the ones inside the loaded chunks?

fast galleon
#

what about mp loading cell cones? or is it for chunks?

bronze yoke
#

it's still a part of the save format so i imagine it still loads by them

#

but a square doesn't have a concept of a cell, it's not a part of the runtime world

pulsar heath
#

.... my brain

bronze yoke
pulsar heath
#

so im fine using this local ZedList = source:getCell():getZombieList()

bronze yoke
#

when using the IsoCell object just forget about map cells, there's not really any relation

pulsar heath
#

is there anyway to get the xy of the limits of the loaded cell or whatever?

#

so i know the max distance i can spawn a zombie?

fast galleon
#

oof, do you know what all save files are for?

sour island
#

you're thinking of map chunks

bronze yoke
#

there's some getMaxX() getMinX() stuff but i remember having difficulty using them

sour island
#

they use the term chunks for two different things in the java

#

cells are always 300x300

bronze yoke
#

i don't remember exactly what the problem was, back then i thought IsoCell was a map cell so i was using it wrong anyway and that might have been the problem

fast galleon
#

somebody should write what all the different save files are for, and which delete function is relevant to that.

drifting ore
#

And in what programming language do they usually write mods for Project Zomboid?

pulsar heath
#

lua

fast galleon
#

They usually do TS

drifting ore
bronze yoke
#

definitely lua

pulsar heath
tame mulch
pulsar heath
#

the only one i know that uses TS is jab

#

and it translates the TS to lua

#

so... lua?

drifting ore
fast galleon
#

they = Illuminati or "?"

bronze yoke
#

there's a couple ts developers but it is an absolute lie to say it's the one usually used

pulsar heath
#

pascal? that was obsolete when i was a student ages ago... they still teach that at schools?

#

i guess is a easy starting language...

#

but even so...

drifting ore
#

Well wish who wants to choose.

#

Yes. In vain I chose

pulsar heath
#

so now i have to learn about chunks...

fast galleon
tame mulch
pulsar heath
#

im older than that

sour island
#

I took an intro to programming course in college... the whole course was learning how to write in binary...

pulsar heath
#

we played quake πŸ˜„

sour island
#

as in by hand

fast galleon
sour island
#

because... sure that's important

pulsar heath
#

binary?

bronze yoke
#

what do they think this accomplishes??

drifting ore
#

But not only lua are used in Project Zomboid?

sour island
#

we also learned about Turing

#

like his biography

pulsar heath
#

the closest i got to that was assembly

sour island
#

no you don't understand

tame mulch
sour island
#

the teacher gave us a bunch of binary and we had to decode it by hand in class

#

to get messages

#

on paper

bronze yoke
#

hmm programming is a popular course these days... how can we teach this without hiring any new staff...

sour island
#

this was a college level course btw

#

that I PAID MOENY FOR

willow estuary
#

Makes sense, if you can't handle that simple stuff you shouldn't be coding.

tame mulch
fast galleon
pulsar heath
#

my 1st year in TLP ( coding classes ) we never even touched a pc

#

all the code was written by hand in pseudo language

#

to learn the basics... programming logic

sour island
#

seems pointless

willow estuary
#

It's not that you need to be able to convert binary by hand, it's about knowing how the computers manipulate data in a fundmental fashion where you actually understand the matter.

#

Lots of courses do that sort of stuff at the filter levels.

sour island
#

Surely that's a 1-2 lesson topic

willow estuary
#

I had to learn about the metric system all over again in multiple classes.

pulsar heath
#

yeah we started out 50 students, after 2 months only around 20 remained

#

but that was decades ago...

fast galleon
#

TIS-100 is an open-ended programming game by Zachtronics, the creators of SpaceChem and Infinifactory, in which you rewrite corrupted code segments to repair the TIS-100 and unlock its secrets. It’s the assembly language programming game you never asked for!The Tessellated Intelligence Systems TIS-100 is a massively parallel computer architectur...

Price

$6.99

Recommendations

2886

β–Ά Play video
pulsar heath
#

..........

willow estuary
#

If you know how to convert binary by hand, then you probably also know what hexadecimal is and understand what a GUID exactly is, and understand why it's being used, when you see one, etc. Fundamental concepts.

tame mulch
sour island
#

Yes, sure, but it was a 3-4 month course

#

and that's all we did

pulsar heath
#

and after all the time spent at Uni, etc

hollow current
#

Is there a more efficient way to check the what the item being right clicked in inventory aside from "item:getName" and "item:getFullName"? I don't want to use those since the item's name is bound to change

sour island
#

hexadecimal was I guess next course up πŸ˜…

willow estuary
#

Yeah, well nowadays since the beginning of time everyone wants to build a time machine before learning how to hello world, so yeah, people need to be force fed concepts like binary IMO.

bronze yoke
#

not for four months though...

pulsar heath
#

i ended up with a job that has nothing to do with what i studied for πŸ˜„

sour island
#

it was a general studies course, I went to school for art, and I needed to take a technology course

finite radish
quasi geode
sour island
pulsar heath
sour island
#

the topic was even introduced talking about cyphers which made me worried

bronze yoke
#

this sounds like a crime

fast galleon
#

"we have chatgpt we don't need no binary" - "some guy"

pulsar heath
#

nop, here we dont have chatgpt

#

we have ChuckGPT

#

new and improved version πŸ˜„

sour island
#

I know that computers don't actually multiply just add real fast brrt brrt 1+1+1

#

that's as deep as we went

pulsar heath
#

01101100 01101111 01101100

#

i think thats right

#

but just in case

#

lol

sour island
#

I rather it have been a history course on coding

nova socket
dark wedge
#

My least favorite class ever in college was cryptography. The final was 2 questions, and we had 4 hours. Had to encode 2 strings using diffie-hellman....by hand....

pulsar heath
#

never had cryptography

#

was curious about it, but to lazy to get into it

sour island
#

seems like an odd thing to offer in college tbh

tame mulch
#

01101000 01110100 01110100 01110000 01110011 00111010 00101111 00101111 01110011 01101000 01101111 01110010 01110100 01110101 01110010 01101100 00101110 01100001 01110100 00101111 01100010 01100011 01000100 01010111 01011001

dark wedge
sour island
#

ah

pulsar heath
#

is that a link?!

nova socket
#

Is that some template binary from some classes?

pulsar heath
#

im sure 01101000 is h

jaunty marten
pulsar heath
#

no just have some things memorized

nova socket
#

it says The quick brown :fox: jumps over 13 lazy :dog:.

#

literally

pulsar heath
#

let me grab a pen

#

im old but not that old @tame mulch

#

and i dont like the 80's that much

jaunty marten
#

old but gold

tame mulch
pulsar heath
#

im old at body young at spirit

nova socket
#

im confused, is 30 y.o. not enough to understand the ref? KEK

pulsar heath
#

rick rolled

#

is what i got from decoding that

nova socket
#

man at least you got to understand you got rick&rolled

drifting ore
#

same i went to school for network administration and hated it and now i work for investment firm. ugh network admin... love following macro economics though. coding is addicting even as a nooby also

#

i can't imagine how anyone would like being a network admin. yuck... lol

nova socket
drifting ore
#

not jealous

#

πŸ˜„

pulsar heath
#

@tame mulch this one is better
01101000 01110100 01110100 01110000 01110011 00111010 00101111 00101111 01100010 01101001 01110100 00101110 01101100 01111001 00101111 00110011 01011001 01101110 01010000 01001001 01100101 01010001

nova socket
#

I can only say one thing so far, every piece and bit you get from any sort of engineering comes at handy.

finite radish
drifting ore
#

yea you are right. i learned a lot about stuff and things in general lol

#

im an engineer at heart though. always have done everything myself

nova socket
#

Its like I had a bunch of moments where I was "oh, I did that 10 years ago once"

drifting ore
#

at lleast for the most part

#

ahaha love that

pulsar heath
#

i worked as an engineer in an area im not proud but the money was awesome

#

but got sick of it after 2 years

nova socket
#

Its just you are not obliged to go to deep until required, but like having a TCP/IP stack knowledge by being a game designer can help you understand why your game design will probably kill the whole networking.

pulsar heath
#

boring as hell

nova socket
#

Its an example I got so many times. I known guys who coded in Java for enterprise levels not having any ideas how to setup NAT on their routers.

#

Guy was responsible for net stack there..

pulsar heath
#

you have computer engineers who dont even know how to install an OS in their own machines

#

πŸ˜„

nova socket
#

The worst part is not even not having specific knowledge, the worst part is that people doesn't seem to know HOW TO READ MANUALS either.

pulsar heath
#

manuals are a last case resort

#

only dumb ppl read manuals

#

πŸ˜„

finite radish
nova socket
#

What?

pulsar heath
#

its a joke

nova socket
#

KEK oh ok I was not sure

pulsar heath
#

its the same with a mod you post on steam

tame mulch
nova socket
#

Aren't you guys adding new lighting system in 42?

drifting ore
#

lol pz with raytracing ahaha

pulsar heath
nova socket
#

But its actually seemed really good.

#

Didn't feel like 15FPS update anymore

finite radish
pulsar heath
#

you may explain very well how to use the mod

sour island
#

god rtx lighting would be such a waste but look awesome

pulsar heath
#

but ppl will still ask dumb questions that are on the description

nova socket
#

I modded RVEngine, RAGE Engine, now doing Unreal Engine for active games.

pulsar heath
#

i only modded for wow ages ago

nova socket
#

I know how people get into "I can't read letters"

pulsar heath
#

and it was basic ui stuff

#

pz is the first game i actually go through the trouble of making an effort

nova socket
#

Feels like some people chose "Illiterate" trait when they were born to get more perks

#

I had people who called themselves devs (just server owners) literally asking me how to run a function.

pulsar heath
#

ok done with moving the pathing to the client side

jaunty marten
sour island
#

people took illiterate were confused why they couldnt use my recovery journal mod

#

πŸ€”

nova socket
#

what wow is modded with?

finite radish
pulsar heath
finite radish
pulsar heath
#

so you want to read and write but you cant read and write

jaunty marten
pulsar heath
#

b4 that... it was like running in the dark

#

the api itself was still crap

#

if you can call it an api

jaunty marten
#

yeah ded

pulsar heath
#

thats where my lua hate comes from

#

πŸ˜„

nova socket
#

Has one function interfaced to say "hello world"? API!

#

πŸ˜„

finite radish
#

i remember the days before steam workshop. modding scene was dead af for the most part. we had Bedford for maps and that was about it, and for mods I think there was like an archery mod and some very minor crafting stuff

jaunty marten
#

btw I remember creating ui via xml......

#

or what was there

nova socket
finite radish
#

xml is nothing like C lmfao

#

it's a markup language, like JSON or TOML

pulsar heath
#

c is awesome

#

was...

#

is...

#

i like it!

nova socket
#

its not about language, its about trying to build UI in C

pulsar heath
#

i built ui in pascal

finite radish
#

but building a UI in a markup language is exactly what you'd want to do, so idk what you meant by that lol

pulsar heath
#

( paint the screen blue )

nova socket
#

Exactly what you want to do is having a widget constructor written in C++

pulsar heath
#

πŸ˜„

nova socket
#

Unreal is the best example of how to make UI on C-based engine

jaunty marten
#

so interesting how they decided to create ui via xml, like.. they worked by this way too.. how they are still alive

nova socket
#

Same here btw, not sure how popular that is, but I seen "Simple UI API" mod which is sort of a widget constructor

pulsar heath
#

i've tried it

#

its good enough

#

simplifies a lot of stuff

#

but i ended up not using it since it was easier to do what i wanted from scratch

jaunty marten
#

me too, it's fine for simple things but no way for complex uis

pulsar heath
#

yeah, to make some windows and stuff

#

without much effort its more than enough

#

for some reason is called simple ui

#

it helped understand a bit more of how UI works in pz

#

so its a good mod and a good tool to learn the basics

jaunty marten
#

simple ui for simple things Dovolen

pulsar heath
#

talking about ui i should finish my animation mod

#

its gonna be a submod of the integration mod

#

@jaunty marten whats your workshop link?

#

i added everyone i could remember that helped me directly when i updated the stats mod and im missing only your workshop link

jaunty marten
#

at some point wanted to create own ui lib coz to do some easy things with common pz ui need fuck ur brain

sour island
#

there's a few people working on UI stuff

#

hopefully if it's available in the community framework it can be kept upto date and have the benefit of alot of hands making quick work

pulsar heath
sour island
#

thanks fam πŸ‘

sour island
#

hm?

#

it's automatically set to update every friday at 11:59 my time

#

except yesterday cause I set it to the 5th day instead of 6th

#

so 2 free updates cause I'm such a nice guy

jaunty marten
pulsar heath
#

that way at 00:00 he can say he updated it yesterday... a day ago so dont complain about being late

#

πŸ˜„

sour island
#

πŸ‘

#

weekend is for hurried patches

#

also the github updates if you push to hotfix branch

jaunty marten
#

I'm a perfectionist, now u have to change it or I'll kill u while you sleep..

sour island
#

submit a PR

jaunty marten
red tiger
#

I'm on break at work. Spent the morning coding a hurricane.

sour island
#

but yes, the mod is setup to be worked on atm - I don't care if no one else jumps on board, it's just a nice proof of concept at this point

sour island
#

but the debug tools are functional

pulsar heath
#

@red tiger still in zombie mode?

red tiger
#

Coffee zombie

pulsar heath
red tiger
#

I avoided a meeting

pulsar heath
#

oh shit... its friday?

red tiger
#

My excuse: I'm in my flow.

pulsar heath
#

i have to work tonight...

sour island
#

debugtools, frameworks, patch -- anything can be added to it

#

your twitch stuff would be in the framework category if you were so inclined

#

then anyone could work on it

pulsar heath
#

well im working on a base to do custom animations in game

#

but dont see many ppl wanting to use that

red tiger
#

4 cups of coffee, 2 death wish coffee.

sour island
#

however - my initial scope was to keep features close to vanilla

pulsar heath
#

its a bit more fluid that it wasm but its still a bit janky

sour island
#

so idk if twitch integration would fit that

drifting stump
#

evening gents

#

should i copy paste the scope thing i wrote

pulsar heath
#

well if you want to "merge" the general integration with the EHE integration

#

i see no problems with that

#

i can provide you with the twitch lib api

sour island
#

Maybe once I solve this stale issue

pulsar heath
#

still need to add a lot stuff to the lib...

#

and start generating the tokens in the app

drifting stump
#

the goal wasnt to add new things to the game but to fix issues (patches) and provide better more extensible code in frameworks

pulsar heath
#

but it was a rushed release so... for security reasons i didnt enable the option to do so

sour island
#

I'd say if you could design it so the user can supply a function name and args - that'd be most user friendly for other mods

pulsar heath
#

since im only using simple websocket connections to twitch

jaunty marten
#

@red tiger just checked one of ur mod. r u always minimize ur code? never saw it in pz mods winner

sour island
#

you can convert a string to lua table, and unpack it into args

pulsar heath
#

thats one of the objectives

sour island
#

that was my only suggestion πŸ™‚

pulsar heath
#

to make a standard pseudo "json" string that can be dynamic

sour island
#

other than that it looks great

pulsar heath
#

and allow the user to create it inside the app

#

so that the app can be used with other mods

drifting stump
#

im not sure providing twitch integration fits since it relies on third part features

pulsar heath
#

the only third party features it depends on its twitch itself

sour island
#

Yeah I don't think it fits CM's scope

pulsar heath
#

but yeah, cm

sour island
#

we were discussing about EHE's use of his API

pulsar heath
#

not everyone streams

sour island
#

also glad I changed the name

#

no more CP(atch)

pulsar heath
#

but ehe, 99% of the streamers use it

sour island
#

CMP(atch)

jaunty marten
drifting stump
#

so i have to refactor?

sour island
#

minimized code?

drifting stump
red tiger
jaunty marten
red tiger
#

It's a 3-stage loader.

sour island
#

for like lua if not x then return end only right... right?

drifting stump
#

no

#

its removal of all unecessary whitespace and characters

red tiger
#

It's so local server Lua code is sent to the client

pulsar heath
#

"compressing"=

drifting stump
#

for example var names get reduced to as little as possible

red tiger
#

The loader itself is loaded to encourage customized security

#

It's all done anonymously

jaunty marten
#

next level is to find obfuscated code on pz workshop LUL

red tiger
#

All you see is the boot loader

#

This enabled things like hot reload

pulsar heath
#

so it acts as a "middleman"?

red tiger
#

Yes

#

It sends code that isn't on the workshop

drifting stump
#

i actually did a proof of concept of exactly that a while ago

#

has the exact same mechanism as my server config loader

red tiger
#

I used it in a practical way back in 2016

pulsar heath
#

hmmm, im starting to get more interested in your project

red tiger
#

I plan to upload it to a gist.

drifting stump
red tiger
#

The loader loads itself to prevent file override

pulsar heath
#

so im guessing that would allow to get data and send data over a network and feed it into the lua code in "real time"?

#

or has the chance of being able to allow that?

drifting stump
#

its exactly that

#

loadstring executes a string as lua code

pulsar heath
#

ok i jsut went from 50/50 to 99.9%

drifting stump
#

you just sendServerCommand the code over to clients

pulsar heath
#

something like that would have saved me a lot of work and code

red tiger
#

Security was the focus of my solution

pulsar heath
#

it would have been so much easier to get the data from twitch and send it back to where it has to go

drifting stump
#

only issue with it is creating modules

red tiger
#

Heheh

pulsar heath
#

how so?

drifting stump
#

i tried acessing the modules table but didnt have any luck

red tiger
#

I wrote a modules framework. It's on my GitHub

sour island
#

loadstringing received code.... that's pretty genius

#

the host could have local files processed that way

pulsar heath
#

thats pretty handy

jaunty marten
red tiger
#

PipeWrench loadstrings to eliminate requires for globals when loading as a mod.

sour island
#

I wonder if the checksum could be bypassed to just feed the lua that the host has

pulsar heath
#

so instead of having to write a wrapper for the twitch api, another wrapper to the discord api and steam api

#

like im doing

pulsar heath
#

i could just access the web api directly and feed it into lua

drifting stump
#

because the files just dont exist

#

making it possible to have server only code

#

i didnt test what happens if you create items through lua tho

red tiger
#

I'll upload my solution and post it here soon.

drifting stump
#

might cause world dictionary issues

bronze yoke
#

i've seen script consistency kicks before (actually misread what you said, this isn't relevant πŸ˜… )

pulsar heath
jaunty marten
#

better to post soon web engine roflanHomyak

pulsar heath
#

i know it might turn into a security issue, but... at least socket connectivity would make my life so much easier when modding for pz

sour island
#

there's some cheat checks done via client's comparing code to the server's

#

I think recipes do that

pulsar heath
#

a good example of ppl that dont read manuals, faqs, etc

sour island
#

tbh having to enable the mod on on-going saves is not intuitive

pulsar heath
#

its not

sour island
pulsar heath
#

but if you add a new mod and the game was previous to adding it...

sour island
#

Probably could be clearer

pulsar heath
#

and i should be more specific i guess

drifting ore
#

welcome to human civilization

pulsar heath
#

gonna change it

drifting ore
#

you will write it perfect and it's still going to happen πŸ˜„

sour island
#

yeah

pulsar heath
#

and add in bold "if you want to use this mod with an existing save, you have to enable it on that save as well"

sour island
#

I added that to my mods

pulsar heath
#

Warning: If you want to use this mod with an existing save, you need to enable the mod in that save as well, or it will not work until you do so.

#

enable it... my english is getting better and better...

sour island
#

include "under the [more] options when loading the save"

#

cause you're going to get "WHERE?"

pulsar heath
#

yeah....

jaunty marten
#

I'm always use it drunk

red tiger
#

Ok. Looking for my code on my old laptop.

drifting ore
#

anyone familiar with the specific way to remove context menu completely?

tame mulch
drifting ore
#

i just want nothing to appear when right click. i am using a method to remove option from context but i prefer removing entire menu

#

couldnt get :setVisible(false) to work correctlyt

sour island
pulsar heath
#

or add "how to read" skill books

#

πŸ˜„

jaunty marten
pulsar heath
#

loool

sour island
jaunty marten
#

after second death 10% of 10% OMEGALUL

sour island
#
  • starting levels don't get stored ever
  • bonus XP you get from those starting levels can be toggled
  • TV/VHS can also be toggled
#

"I toggled on bonus XP why can't I keep my starting levels"

#

. _ .

pulsar heath
#

im still amazed that someone asks me if he can use a UI mod even if he doesnt stream

#

its an UI...

#

it shows on the screen... so ... yeah...

sour island
#

you should toss in a couple if not isClient()

jaunty marten