#archived-modding-development

1 messages ยท Page 20 of 1

leaden hedge
#

apparently the class itself has logging

buoyant wasp
#

can you share your source code? maybe a second set of eyes.

#

or if you have it github or somethin

leaden hedge
#

its only 2 small classes for now, so no real need for github

buoyant wasp
#

your problem is, i believe, how you add the service

#

you have this

#
wss.AddWebSocketService<SocketServer>(
              "/playerData",
              () =>
                ss
            );```
#

what you need instead is

#
             wss.AddWebSocketService<SocketServer>(
              "/playerData",
              () =>
        new SocketServer()
            {
                IgnoreExtensions = true
            }
            );
#

because "ss" is the actual socket that allows for connections

#

so by instantiating it once

#

you're saying "only 1 connection ever"

leaden hedge
#

hmmm

#

ok but the issue then is, I can't access that from my functions

#

to broadcast updates

buoyant wasp
#

try using WebSocketBehavior.Sessions.Broadcast

#

or i guess it would be

#

wss.Sessions.Broadcast()

leaden hedge
#

I think Sessions is a member of WebSocketBehavior instead of WebSocketServer

buoyant wasp
#

ah, so it is

#

so then, you'd need to make a class like this

#

then

#
             wss.AddWebSocketService<SocketServer>(
              "/playerData",
              () => {
        PlayerDataSocket socket = new PlayerDataSocket()
            {
                IgnoreExtensions = true
            };
            ModHooks.Instance.SavegameLoadHook += socket.updateJson;
            ModHooks.Instance.SetPlayerBoolHook += socket.updateJson;
            ModHooks.Instance.SetPlayerIntHook += socket.updateJson;

            ModHooks.Instance.ApplicationQuitHook += socket.onQuit;
return socket;
}
            );
#

i think that would work

#

if you moved the updateJson methods (and friends) into PlayerDataSocket and PlayerDataSocket inherited from WebSocketBehavior

#

(doing this purely in discord, don't have VS loaded so syntax could be offish)

leaden hedge
#

oh hey

#

it works

#

ok for some reason it double sends now

past wadi
#

is the randomizer on the google drive the most up to date one?

leaden hedge
#

it should be

#

oh

#

now every time you refresh it sends another set

#

okok

#

I fixed that hollowface

#

ok @buoyant wasp the one on the gdrive should work fine

#

playerData.json doesn't get written too anymore considering you can just do ws.send("json") to get it

buoyant wasp
#

cool, will try now

#

seems to work. just need to do a little refactor of my side of things now

leaden hedge
#

it returns what you actually picked up, not what you actually got

buoyant wasp
#

for debugging purposes, can you add a function where i can say send("gotCharm_1") and it will return the {"var":"gotCharm_6","value":"True"}?

#

(where value is whatever the real value is)

#

so, right now it won't work for rando?

leaden hedge
#

you'll have to ask sean for a dictionary

buoyant wasp
#

hmm, k

#

cause the dictionary is different for each seed

leaden hedge
#

ye, randomizer will have to dump a json file

#

and you can use that to calculate the real pickup

buoyant wasp
#

though again, we run into the same issue with parsing json files locally, so really it needs to be hooked into your socket events

#

so that it can be requested

leaden hedge
#

well I can read it in my mod, then return it

#

its probably easier than me implementing the entire rando logic into this mod aswell

buoyant wasp
#

I think he already has the logic done, there is a button in the UI now that dumps the mapping in modlog

leaden hedge
#

it does it automatically on load

buoyant wasp
#

so @rain cedar - need to get the same randomizer logic dump that you used for the log implemented as a json that KDT can consume

#

@leaden hedge - If i use debug mod to grant myself a charm, will that trigger the socket broadcast?

#

(for testing?)

leaden hedge
#

I think debug mod skips the functions

#

and just sets the variable

buoyant wasp
#

k

leaden hedge
#

actually

#

new one probably uses the hooks

#

so it should work actually

buoyant wasp
#

k, will test that out

#

websocket implementation works though. (although it's wrong because of the randomizer logic) ๐Ÿ˜ƒ

#

oh, that's weird

#

so

#

if you get the broadcast of changes, it gives you the wrong one, because of randomzier

#

but

#

if you use the send("json"), you get the right one

leaden hedge
#

yep

#

the json is correct

buoyant wasp
#

hmm

leaden hedge
#

I guess for now you can do, onmessage that isn't json, send("json")

buoyant wasp
#

yeah, short term, could do that. inefficient, but not terrible. as long as you don't trigger messages on every geo/essence drop ๐Ÿ˜ƒ

#

does it get triggered on trinket1-4, tram pass, etc?

leaden hedge
#

its just charm get, item get, charm equip, spell get, dreamer kill, overcharm, nail upgrades, health upgrades and max mp

#

I don't know about trinkets

buoyant wasp
#

k, will try seeing what happens when i pick one up

#

right now my UI has the ability to handle those too, it's in the playerdata, but will have to see if it gets triggered

#

also, to answer question, no, debug mod doesn't trigger events

leaden hedge
#

must use setboolinternal then

buoyant wasp
#

hmm, nope, trinket pickups don't trigger an update :/

#

that's annoying

#

oh, i wonder

#

you're doing updateJson(string var, int value) and checking for specific values

#

can you add these:

#

trinket1, trinket2, trinket3, trinket4, ore, rancidEggs, & grubsCollected?

leaden hedge
#

yeah

#

as for having a test send("xxx")

#

you'll need some way to tell me what type it is

#

as theres 2 functions one for ints and one for bools

buoyant wasp
#

oh

#

right

leaden hedge
#

I just did startswith(trinket)

#

so hopefully that doesn't do anything unwanted

buoyant wasp
#
send("bool|gotCharm_1");  
send("int|fireballLevel");
#

would that work?

leaden hedge
#

yeah I can do .split("|")

#

that should work

#

if it does, ill update the gdrive

buoyant wasp
#

k, does that include the grubs/ore too?

leaden hedge
#

yep

buoyant wasp
#

k, seems to work. can't easily test ore at the moment since i have no place where i have quick access to get one, but trinkets and grubs work, so i'm going to assume ore does too. so does the ability to send the debug query.

so really then all that's left is when sean wakes up is to get a method to do the randomizer mapping. for now i'm just sending a request for updated json when i get a key/value pair message

leaden hedge
#

alright cool

buoyant wasp
#

so the only real thing i have left that I need to do is normalize the icon sizes so that they look right

#

do you happen to have a grub sprite handy?

#

i see the one on the wiki that has it in the jar, but was wanting one out of the jar

leaden hedge
#

ye

young walrus
#

Could use the grub emote here on discord

leaden hedge
#

I've got the sheet

buoyant wasp
#

good lord, well I certainly have choices now

young walrus
#

Sick. Do the graphics change for lvl 2 spells?

buoyant wasp
#

yup

leaden hedge
#

they have different sprites so they should

buoyant wasp
#

they go to the black version when you get them

young walrus
#

Awesome

buoyant wasp
#

but you'll still have the outline

#

also, because of the way we did this mickely, we could still look at the bot option, but it's not really needed anymore. a small single http socket is open to feed this data to the browser now, so i'll have a direction to add a parameter to the url that says "instead of looking at localhost, look at XYZ" where XYZ is the name of your game machine.

#

so if your gaming rig is

young walrus
#

That would be really cool actually. Have them talk over the home network

buoyant wasp
#

"mickelysrig", you'd just add "?url=mickelysrig" to the end and it'll look there.

#

yup

#

at least, in theory anyway

#

don't have a way to test it atm

#

๐Ÿ˜ƒ

young walrus
#

Yeah. Maybe we can voice chat later to figure it out?

#

Test it out

buoyant wasp
#

sure

leaden hedge
#

how do you want to bundle this?

#

do you want me to put your html in the folder

buoyant wasp
leaden hedge
#

that works I guess

buoyant wasp
#

if we do local, then I'd just put it into a folder at the "Hollow Knight" root dir

#

for folks with crappy internet local would be better, the sprites aren't massive, but it is a total of 2.4MB that it'd have to load the first time they load it in obs

#

not a huge amount, but if you're already strapped for bandwidth, adding even a little more at the beginning may not be optimal

leaden hedge
#

the less people have to setup the better tbh

buoyant wasp
#

agred

#

agreed

leaden hedge
#

unless some specifically asks for a local version

buoyant wasp
#

k. I'll write up a readme then for the OBS part

young walrus
#

Which would be better for my setup talking over internal network? Just curious

buoyant wasp
#

doesn't matter

#

the communication between you and the game is always local

#

where the overlay is hosted code wise only affects where the browser gets it from

young walrus
#

Are the dreamers on there?

#

White on white?

buoyant wasp
#

hmm, not at the moment, no.

#

but that's addable probably

leaden hedge
#

its tracked

young walrus
#

Should be able to just add their masks

buoyant wasp
#

ah, yeah, maskBroken<name>

#

or

#

<name>Defeated

#

so, should be easy to add

#

will just need the sprites

leaden hedge
#

var.StartsWith("maskBroken")

#

is hooked

buoyant wasp
#

๐Ÿ‘

buoyant wasp
#

gotta run for a bit, but will be back if anyone tries it out and has issues

young walrus
#

Kk. I'll try this out in a few hours when I have a chance. Will ping you if I need some help

high moat
#

What a guy, less than 24 hours later its done ty Wyza

leaden hedge
#

what

buoyant wasp
#

@leaden hedge - did lots of work too

high moat
#

Sorry KayDee โค

young walrus
#

All three of you guys

#

Sean helped a little yeah?

#

Tiny bit?

leaden hedge
#

nope

#

well actually

#

he updated the api for me

young walrus
#

Lol. Super tiny bit

#

Sick addition though

buoyant wasp
#

@leaden hedge, happen to have the sprites for the 3 dreamer masks?

leaden hedge
#

er

young walrus
#

Really useful

#

The wiki has two of em

#

That's where I got em for my splits

buoyant wasp
#

k

leaden hedge
#

I have all the sprites, but I don't know where those are specifically

#

wyza edit your post to have <> on the link

#

so the image / preview doesn't load

#

and ill pin it

buoyant wasp
#

done

leaden hedge
#

I guess change the text to Tracker instructions too

#

something more informative than k, heres the instructions hollowface

buoyant wasp
#

oh sure, be reasonable and logical about it then /s ๐Ÿ˜ƒ

leaden hedge
#

hmm

#

do you reckon that sprite is good enough?

buoyant wasp
#

only downside is the coloring is rather grey, but yeah, it'll work well enough probably

young walrus
#

Possible to whiten it up?

leaden hedge
#

I'd probably just hide them when you get them

wispy root
buoyant wasp
#

oh yeah

wispy root
leaden hedge
#

I've got them, but you won't be able to see them on white

wispy root
#

Oh

buoyant wasp
#

thankfully there aren't alot of white places in the game other than white palace ๐Ÿ˜ƒ

young walrus
#

Well with the background taken out by obs you'll see it yeah?

#

Except white palace

#

Lol

#

But rando never goes there

leaden hedge
#

rando all bosses hollowface

young walrus
#

Lol

leaden hedge
#

hmm is that the same

#

actually it has the eyes coloured in

#

not sure if thats better or worse

buoyant wasp
#

i'd say better

buoyant wasp
#

cool. I'll add them. Also added a screenshot to the readme page and updated the pinned message/link to be more descriptive

young walrus
#

so in the instructions, i need to install the one part on my gaming pc, then just use the browser source on the streaming one?

leaden hedge
#

yes

young walrus
#

kk

leaden hedge
#

as far as I understand it

buoyant wasp
#

yup

young walrus
#

and that's just those two folders

#

put in the root folder

leaden hedge
#

you don't need the test_html one

#

thats just to check its working / help people develop stuff using it

summer tapir
#

is it possible to shrink the charm box a bit?

buoyant wasp
#

yup

summer tapir
#

tried with width and height

buoyant wasp
#

you can add this in the CSS box

#
    body.sm > #charms img {
        zoom: 15%;
    }
#

the current one is set at 25%

young walrus
#

can also just resize it using obs

#

and crop out areas you don't want

#

instead of changing the code

buoyant wasp
#

right, but if you wanted to just shrink charms, but not shrink items

young walrus
#

can open 4 sources

leaden hedge
#

that'd involve having 4 sources open

buoyant wasp
#

and this doesn't need code change

#

the CSS block in OBS overrides ๐Ÿ˜ƒ

leaden hedge
#

maybe a line of css would be better hollowface

buoyant wasp
summer tapir
#

yea yea

buoyant wasp
#

ah, right

summer tapir
#

not sure if I can change the padding of each item

buoyant wasp
#

nah

#
    body.sm > #charms div {
        width: 25px;
        height:25px;
    }
#

you can fiddle with those

#

and it should do it

summer tapir
#

thanks zurairNice

young walrus
#

so to move the groups around the scene, i just put the code you have right into the css block under what's already there?

buoyant wasp
#

yup

#

ideally, i want to do something like a config ui that would generate a URL that has all these things settable there

#

but meh, this'll do

young walrus
#

well it seems to be working

#

is a bit slow loading in the first time

#

but i'm also talking to a separate pc

buoyant wasp
#

well, there's 2 stages of the first load, "get all the sprites, and put them into the page" then "load from game". Note that if the game isn't started yet, then it retries on a 5s interval to connect to the game

young walrus
#

kay. well i didn't even have the game running. lol

buoyant wasp
#

the first stage of loading would also take a bit the very first time since it'd have to cache all the sprites

#

which is a couple of MB of images ๐Ÿ˜ƒ

#

but after that, should be pretty quick

leaden hedge
#

not quick enough

#

I want it loaded before obs hollowface

buoyant wasp
#

LOL

leaden hedge
#

-5m

buoyant wasp
#

so, i just gotta invent time travel then

summer tapir
#

not sure if I want the bottom clustered like that or not

buoyant wasp
#

you also don't have to have it all either

#

though, hmmm

summer tapir
#

the only thing I could remove would be the items I think

#

the rest is too important

leaden hedge
#

nail arts could go, just hide it offscreen

summer tapir
#

or I shrink items and skills and stack them

#

so bottom middle is free

young walrus
#

have mine like this right now

buoyant wasp
#

yeah, could play around with that

young walrus
#

the items dont make a nice grid though with spacing

#

and doesnt have dreamers yet

buoyant wasp
#

yeah, working on dreamers now

young walrus
#

yeah yeah

leaden hedge
#

atleast you won't have to change anything for front end updates hollowface

young walrus
#

lol

#

except grimm troupe

#

4 new charms!

leaden hedge
#

I mean from the users end

buoyant wasp
#

yeah, i just push an update, and bam, everyone is updated

leaden hedge
#

you don't have to download a new file or whatever if wyza updates his half

young walrus
#

yeah that'll be nice

buoyant wasp
#

if the HK side changes that'll still have to be updated, but

#

nbd on that

high moat
#

Haha hiding offscreen makes a scrollbar

leaden hedge
#

lol, body { overflow : hidden }

buoyant wasp
#

ushebti, gimme a few and I can make it so that you can disable a specific item/skill/charm

#

actually you can already

#
#skill_hasDashSlash { display:none; }
#

try adding that to the css, see if it works

high moat
#

2 sec

#

was gonna ask if it breaks to display none

leaden hedge
#

also wyza dunno if you know, but apparently dashSlash and greatSlash are actually inverted for some reason hollowface

#

atleast according to sean

buoyant wasp
#

oh

leaden hedge
#

don't think anyone will be picking up any nail arts though

buoyant wasp
#

๐Ÿ˜ƒ

summer tapir
#

sweet

#

thanks for the overlay guys, really cool stuff

buoyant wasp
#

ah, kept the nail arts? or did they not hide with that

summer tapir
#

I just kept them

high moat
#

So #items { display: none; } shouldnt break anything right

buoyant wasp
#

shouldn't

high moat
#

and its cycloneSlash right?

summer tapir
#

is it possible to move the counter of the items?

buoyant wasp
#

yup

leaden hedge
#

that purple is kinda hard to see

#

against black and small

buoyant wasp
#

you'd just need to change top/left in this block

    #items div.counter {
        width: 19px !important;
        height: 19px !important;
        border-radius: 50%;
        box-shadow: 0px 0px 5px 2px #FFFFFF;
        position: absolute;
        top: 25px;
        left: 20px;
        background-color: #000000;
        color: #FFFFFF;
        text-align: center;
        vertical-align: middle;
        display:none;
    }
high moat
#

#skill_hasDashSlash { display:none; }
#skill_hasGreatSlash { display:none; }
#skill_hasCycloneSlash {display:none }

Great and cyclone doesnt work for me for some reason

buoyant wasp
#

cause those aren't the names ๐Ÿ˜ƒ

#

don't ask me why..

summer tapir
#

slap 1 and slap 2 cirSmug

buoyant wasp
#

but as far as I can tell from the file it's hasDashSlash, hasUpwardSlash, and hasCyclone

#

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

high moat
#

ah totally makes sense

buoyant wasp
#

if you want to see what all the items it tracks are

leaden hedge
#

yep, and upward slash is actually dash slash

#

and dash slash is great slash

buoyant wasp
#

that's the mapping of the data from the game, to the sprites/names/etc

#

heh, k, i'll update the map then

high moat
#

Thanks Wyza

young walrus
#

the bottom argument in CSS isn't working for items

#

only works for top

#

to change position

high moat
#

copy paste what you wrote

young walrus
#

#items {
position:absolute;bottom:0px;left:100px;}

buoyant wasp
#

100px isn't enough

#

if you have charms there

#

i'm guessing that's at least 200px

young walrus
#

okay, that's fine. but it puts them on the top

buoyant wasp
#

so charms is sitting on top of items atm

young walrus
#

the bottom isn't working

buoyant wasp
#

hmm

young walrus
#

like on the top of the screen

#

hence... the bottom:0px argument isn't working

buoyant wasp
#

k, lemme test it

void tree
#

its just #skill_hasCyclone {display:none }

#

nvm me

young walrus
#

but if i push them down from the top with top:600px, it works

#

shrugs

leaden hedge
#

the src should always be the same size

#

I think the problem is, if bottom and top are supplied it streches the content

young walrus
#

I replaced bottom with top

#

And it worked

#

Didn't have both

#

But I want to align via bottom

leaden hedge
#

yeah because the css by default has top

buoyant wasp
#

charms are aligned by bottom, so

leaden hedge
#

he is moving items

buoyant wasp
#

like the default example uses bottom/top/left/right

#

oh

#

i see

#

hmm

young walrus
#

All the other things moved fine

#

Items didn't tho

summer tapir
#

is that better kdt?

#

changed it to red

#

and made it bigger

buoyant wasp
#

yeah, i see why, i just need to clear it somehow

leaden hedge
#

ye thats way better

buoyant wasp
#

got it @young walrus

summer tapir
#

the xml on the drive for the randomizer is up to date?

buoyant wasp
#
#items {
    top:unset;
    right:unset;
    position:absolute;
    bottom:10px;
    left:100px;
}
#

try that

young walrus
#

Kk

#

that did it

leaden hedge
#

I think the drive is upto date

#

yes is it

young walrus
#

any way to tighten up the spacing on the items?

#

seems a bit uneven?

high moat
#

Hmm I installed the randomizer 30 minutes ago from the gdrive but it doesnt update when I pick something up

leaden hedge
#
    body.sm > #charms div {
        width: 25px;
        height:25px;
    }
#

did you update the api

#

not the randomizer

young walrus
#

looks pretty clean.

buoyant wasp
#

for the items, the uneven spacing is due to the sprites not being uniform in size

#

I need to go back and make them so

#

did it for charms, but those were pretty easy to do in bulk

young walrus
#

kk. and that'll push to us automatically? same as adding dreamers?

leaden hedge
#

and you need to make sure you have websocket-sharp.dll where assembly-csharp.dll is

buoyant wasp
#

yup

young walrus
#

awesome

high moat
#

ah Im a dumb fuck

#

nope nvm

#

websocket-sharp is in the same folder. What do you mean with api exactly

#

I installed the one that Wyzas readme refer to

leaden hedge
#

the modding api

#

check the gdrive its by sean and firzen

buoyant wasp
#

I'll add a link to the API too in my readme since the playerdata requires it

high moat
#

Theres the missing piece

#

Yeah that part wasnt clear

leaden hedge
#

the randomizer requires it too, but there was an update this morning

high moat
#

Users thinkgrub amirite

#

Ive used the randomizer without it

young walrus
#

oh. so you need the updated randomizer for this to work too?

#

or not?

leaden hedge
#

no you need the updated api

#

or else the tracker will crash

buoyant wasp
#

well, it won't crash, but it won't do anything either ๐Ÿ˜ƒ

#

it'll just sit there like a bump on a log

young walrus
#

hmm.... it's not updating

high moat
#

works for me now 10/10

summer tapir
#

did you update the api mickely?

#

modding.api

leaden hedge
#

that might be an issue with the redirecting

young walrus
#

so i updated the api, installed the other mod

leaden hedge
#

can you try it locally ie same machine

young walrus
#

it's just not reading from the other machine

#

no. i'm reading over the network

buoyant wasp
#

there was a test_html folder that was in the playerdata, you could try opening that and see if you get output

#

had like test.html or something

#

run it on the game's machine just to see if it's connecting and getting data, if it is, we know it's something about the network

#

if it isn't then we know it's something about the mod

young walrus
#

can just open that with chrome?

buoyant wasp
#

yup

young walrus
#

or what?

leaden hedge
#

yep

young walrus
#

undefined => undefined

leaden hedge
#

ye

#

it works

#

if you pick something up you'll see extra stuff

buoyant wasp
#

also, do you use the windows firewall or a 3rd party? windows likely prompted you when you first launched HK after the mod to say "hey, allow this to access private or public networks"

young walrus
#

no.

#

i have those off

buoyant wasp
#

k, so next step would be copy that html to your OBS box

young walrus
#

so i have to pick up an item for it to work?

buoyant wasp
#

and change line 5 where it says "localhost" to whatever your box's name is

young walrus
#

i can't just load into a save?

leaden hedge
#

er

buoyant wasp
#

no, loading the save will work too

leaden hedge
#

you can equip a charm

#

and it'll send a message

young walrus
#

yeah. it's updating in there

buoyant wasp
#

cool, so that part's good

leaden hedge
#

ok the mod works fine then

young walrus
#

equippedcharm_20=>true

buoyant wasp
#

so yeah, try coping test.html to your obs box

#

and edit that line i mentioned above

#

localhost to whatever your game machine's name is

young walrus
#

so.... i'd copy over "file:///D:/Steam/steamapps/common/Hollow%20Knight/test_html/test.html" over?

buoyant wasp
#

yup

young walrus
#

do i have to check the local file box on the obs source too?

buoyant wasp
#

can just dump it on your desktop

young walrus
#

or just leav it

#

leave it

buoyant wasp
#

right now we can just open this in chrome

#

what we want to see is that you get the same response on your OBS PC

#

that you got locally

young walrus
#

wait what?

buoyant wasp
#

copy test.html from your PC that runs HK, to the PC that runs OBS

young walrus
#

okay. so copy the actual html file

buoyant wasp
#

then open it, just like you did on your PC that runs HK

young walrus
#

and put it on OBS PCs desktop

buoyant wasp
#

yup

young walrus
#

kk

leaden hedge
#

you need to change

var ws = new WebSocket("ws://localhost:11420/playerData");
buoyant wasp
#

then edit it and replace localhost with your gaming machine's name

#

^

leaden hedge
#

that to point to your other machine

buoyant wasp
#

so if your gaming machine is "MickelysAwesomePC" it'd be
var ws = new WebSocket("ws://MickelysAwesomePC:11420/playerData");

young walrus
#

kay....

#

it's reading it

buoyant wasp
#

now, if you open it in chrome, do you get the same thing where you get stuff?

young walrus
#

yeah

buoyant wasp
#

cool

young walrus
#

happening on both pcs

buoyant wasp
#

in OBS, what URL do you have set?

buoyant wasp
#

k

young walrus
#

it's literally just called gamingpc

#

lol

buoyant wasp
#

so probably a bug on my side

#

sec

#

ah, ok....i see

#

so i know what the problem is. The issue is that while it will let you connect to localhost when the page itself is on https and the websocket does not have SSL, it won't let you do that if it's on another host.....

#

i just have to think about how to deal with that

young walrus
#

is it possible to mirror the updates on this pc like what we just did with the test html?

#

and then use that to have just a local URL in OBS?

leaden hedge
#

the local version might work tbh

buoyant wasp
#

i just have to figure out loading the map.json, but yeah, it's feasable

young walrus
#

do i need to move another file over to make it work?

buoyant wasp
#

no, we're just gonna have to do the local mirror method

#

i just need to refactor 1 bit of code to make that work

#

@young walrus Unzip this to a folder on your OBS PC, then run makeLocal.bat. Then run Index.html in chrome. Add ?isLocal=true&url=gamingpc to the url.

young walrus
#

kkay

#

sick

#

that works

#

just have to have that as my OBS url now

#

what's the layout argument for the masks?

#

is it just #masks?

buoyant wasp
#

right, so there is only 1 real downside, which is that since you'll have a local copy of it, it won't automatically update (because the reason it "auto-updated" before is that it was just a webpage that OBS was loading like any other website). so basically if you want to get the most recent version you'd go to https://github.com/iamwyza/HollowKnightRandomizerTracker/archive/master.zip to get it, unzip it and run that "makeLocal.bat" file.

#

yeah

#

oh

#

no

#

sorry, brain

young walrus
#

lol

buoyant wasp
#

it's under "#misc" because there are other things I could show that I'm not

#

that really don't fall into any other category

#

i'm updating the readme to include the #misc css sample too

#

question, what does your OBS URL look like now? just want to make sure i have it right in the readme

#

@young walrus

leaden hedge
#

race just started

buoyant wasp
#

ah

#

didn't know there was one

#

cool

#

man, look at that, going straight in with the tracker live like a boss

buoyant wasp
#

whats the icon for dream gate?

#

@leaden hedge

leaden hedge
#

I dont have it

buoyant wasp
#

k

leaden hedge
#

sorry

buoyant wasp
#

no worries, paint to the rescue

rain cedar
buoyant wasp
#

oh, nice, that's alot better than the version i was trying to pull from in game

#

happen to have dreamnail 1/2?

rain cedar
#

I've got a ton of pictures because of debug mod

buoyant wasp
#

i think these 3 are the first 3 KDT didn't have

buoyant wasp
#

@leaden hedge - does simpleKeys trigger the event?

leaden hedge
#

nope

buoyant wasp
#

mind adding it? ๐Ÿ˜ƒ

leaden hedge
#

ill add it after this race

buoyant wasp
#

no worries

#

Based on feedback, now has dreamnail, dreamgate, keys and lumafly lantern. Now we can adjust if the icons for each grouping show when you dont' have it (and be grey) or not be on the list until you have it with a little CSS. Charms now use the dot from inventory, and only have a border if they are equipped.

#

still need to fix fragile stuff when it breaks

leaden hedge
#

I think monomon should be in the middle

#

with herrah on right

#

and lurien on left

#

oh wait

#

lurien middle
monomon left
herrah right

buoyant wasp
#

so basically reverse

#

of what i have

leaden hedge
#

just middle and left need to swap

#

so the left facing mask is on the left

#

middle facing in the middle

buoyant wasp
#

thanks!

buoyant wasp
#

k, UI update released.

Added dreamnail, added simple key, added dreamers, re-designed charm  display, added hiding of non-obtained items, added dreamgate, added coding for broken fragile items. updated readme for all
young walrus
#

so to update this for me, do i need to add in all the files like i did the first time?

buoyant wasp
#

for you

#

and you'll be updated

young walrus
#

will i have to update the html too?

buoyant wasp
#

nope

young walrus
#

kk

buoyant wasp
#

that zip file should overwrite it

rain cedar
#

Alright I put up a new version of the modding api that has support for version strings

#

You just need an override function GetVersion in your main class that returns a string

buoyant wasp
#

for everyone else, you're already updated, just hide/show your "Browser Source" and it should load the latest and greatest. (or so the theory goes)

rain cedar
#

Without that it says "UNKNOWN"

young walrus
#

this version isn't hiding the nail arts like i'm telling it to

buoyant wasp
#

hmm

leaden hedge
buoyant wasp
#

what CSS you using to hide the nail arts? That might have changed a little due to the changes I put in to allow for hiding of non-obtained items/skills/etc

young walrus
#

#skill_hasDashSlash {display:none;}
#skill_hasUpwardSlash {display:none;}
#skill_hasCyclone {display:none;}

buoyant wasp
#

try doing

#

display:none !important;

young walrus
#

awesome

#

that did it

buoyant wasp
young walrus
#

so.... would hiding awoken dream nail work with this version?

buoyant wasp
#

if you wanted to hide it 100% of the time, you can probably do so with the same approach as the others, it'd be #misc_dreamNailUpgraded

young walrus
#

i just mean like.... since that other one is extra right?

buoyant wasp
#

well, the other one is the regular dream nail. What i need to do is say "if I have dream nail, but not awoken, show dream nail, else if I have dream nail and awoke dream nail, hide dream nail and only show awoken"

#

the game doesn't track it as a level, it tracks it as 2 separate entities

young walrus
#

yeah

buoyant wasp
#

for...reasons

young walrus
#

ah gotcha

buoyant wasp
#

i'll get it sorted here in a sec

leaden hedge
#

I think it was added at different times

buoyant wasp
#

ah, probably because of the hidden dreams dlc

leaden hedge
#

like originally there was just a dream nail, then they added an upgraded version later on, and was too lazy to make everything old work with an int

young walrus
#

awoken nail was base game

#

white palace was a stretch goal though

leaden hedge
#

ye but it might not have been planned when they added base dream nail

young walrus
#

so they might have still added it later

leaden hedge
#

whereas lv2 spells probably were

#

which is pretty much the only other psuedo bool / int thing

#

oh and dash

#

is 2 bools too

daring snow
#

@buoyant obsidian been messing with the most recent Lightbringer w/ the passive soul regen adjusted. It's signifcantly slower to the point where using "Eye of the Storm" feel pretty worthless (especially on the speedrun routing)

rain cedar
#

That's with an almost 2x buff

#

After I told him it was too weak

daring snow
#

it's extremely slow

#

it didn't even full to fill after exiting to Dirmouth

#

fill to full*

buoyant wasp
rain cedar
#

Yeah it should take I think 2 minutes to get full soul

daring snow
#

ah I see

rain cedar
#

And 12 seconds to cast with eye of the storm

daring snow
#

if that's intended, then it's fine

rain cedar
#

I mean I don't know if it's intended

#

That's just how the code is right now

leaden hedge
#

the change was because of a bug

buoyant obsidian
#

@daring snow I'll look into it tonight and update it accordlingly

rain cedar
#

If you equip a couple charms that buff mp regen it's really not bad

young walrus
#

sick

rain cedar
#

It's not easy to balance around weak mp regen without making the charms OP

buoyant wasp
#

WoW has spent over a decade trying to deal with the problems surrounding mana regen.

#

so it's not easy to get right ๐Ÿ˜ƒ

daring snow
#

yeah that's fair - i'm only complaining because it alters my route squilLUL

#

using Eye of the Storm for speedruns is awesome

rain cedar
#

Shit, I don't think OBS classic has browser source as an option

#

Guess I can't really use the tracker

#

Oh well

young walrus
#

it has a CLR plug in

leaden hedge
#

you can use the clr plugin

buoyant wasp
#

disclaimer, haven't tried it on the CLR one, would assume it works, but i only have OBS Studio

rain cedar
#

You mean you only have the bad OBS hollowface

buoyant wasp
#

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

buoyant obsidian
#

I need to see some of these speedruns some time

buoyant wasp
#

I don't stream often enough to care too terribly much, it works for me, which is enough

buoyant obsidian
#

whenever I'm not studying for 3 exams

daring snow
#

no worries!

buoyant wasp
#

the race this afternoon was hilarious if you weren't running it

daring snow
#

I'm still kind of routing it

young walrus
#

..... that's one word for it. lol

leaden hedge
#

ye

#

I enjoyed it

rain cedar
#

Alright I've got the CLR plugin in my OBS plugins folder but it didn't do anything

#

Can't add browser source and don't see it under plugins

#

I figured it out

buoyant wasp
#

it's called BrowserSource I think

rain cedar
#

I have two installations of OBS because I'm a fucking idiot

buoyant wasp
#

oh, hah

rain cedar
#

@leaden hedge

Error: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
  at System.Reflection.Assembly.GetExportedTypes () [0x00000] in <filename unknown>:0 ```
leaden hedge
#

er

rain cedar
#

I know, it's a wildly unhelpful error

#

But that's all I got

leaden hedge
#

did you copy the dump.dll only

rain cedar
#

Yeah

#

I just downloaded the last one you posted here

leaden hedge
#

ah

#

check the gdrive

#

it has a dependancy

#

websocket-sharp.dll

rain cedar
#

Alright

#

Do I need test.html?

leaden hedge
#

nope

#

thats just to test it works

rain cedar
#

Makes sense

leaden hedge
#

unrelated, you should probably put a version string in your xml

#

and append it to your randomizer version string

rain cedar
#

Yeah, that's not a bad idea

#

Alright cool I've got the tracker working

leaden hedge
#

oh whilst your here, any chance of dumping the mapping to a json file

rain cedar
#

What for? Seems like the tracker is working fine without that

leaden hedge
#

it works, but it sends the entire json every update

rain cedar
#

Alright

#

Yeah I can do that, then

buoyant wasp
#

basically the problem is that when he get's the value for things like charms via the events

#

it is the "vanilla" version, regardless of what you get

#

so we're mostly just using those events to say, "oh something changed, ask for the entire playerdata"

#

not really a 'problem' per se. it works, it's just not "efficient" ๐Ÿ˜ƒ

leaden hedge
#

I'm going to sleep, so no rush on those features

civic hatch
#

what are ppl working on here? owo

summer tapir
#

mods ๐Ÿ‘€

#

you can check out the pinned messages, there is link to a drive folder with all available mods

civic hatch
#

I know

solemn rivet
#

an overlay for randomizer races

summer tapir
#

o

civic hatch
#

but what is work in progress rn?

#

Alrighto

solemn rivet
#

lotsa work

#

but it looks good

buoyant wasp
#

yeah, this weekend was UI Overlay (which while geared towards randomizer works for non-rando), and sean did somme updates to the modding api i think (to give us versions) and some fixes for the rando logic

summer tapir
#

I saw you implemented the dreamer stuff

#

whats the name of the ui element?

#

#???

buoyant wasp
#

the only thing i really need to do for non-rando is to make it so you can easily shrink the charms down to only hte ones you need for your specific run instead of the whole list

#

uhm, #misc_hasDreamNail and #misc_dreamNailUpgraded, and #misc_hasDreamGate

summer tapir
#

oh, and for the whole row?

#

like #spells

buoyant wasp
#

they are under #misc

summer tapir
#

ah alright

buoyant wasp
#

so that'd be those and the masks

summer tapir
#

did you remove the items?

buoyant wasp
#

not exactly

#

they are hidden until you get them

summer tapir
#

got you

buoyant wasp
#

there is an update in the readme

#

if you want to show them like the others

summer tapir
#

there is no need to redownload or?

buoyant wasp
#

nope

#

might have to hide/show the scene

#

but otherwise you'll be up to date

summer tapir
#

if I have only a wanderes journal, would it be displayed on the far left side or right side of the row? Assuming the items are hidden until I pick them up

buoyant wasp
#

far left

summer tapir
#

ok, looks good again cirThree

#

I hope you guys wont have too much trouble with the dlc and the mods

#

I like that you changed the charms

#

to empty spots

#

makes it less clustered

buoyant wasp
#

meh, right now i'm not terrible concerned with other mods. like, i'll look into them, but for now, most concerned with the basic UI working well. probably the next thing on my list is to make configuration less dependent on fiddling with the CSS

summer tapir
#

did you say you make this in javascript?

buoyant wasp
#

yup

summer tapir
#

because I think javascript has some easy drag and drop functions

buoyant wasp
#

there's really not alot too it

#

oh, yeah, certainly

#

mostly it's providing a way to get that config into OBS ๐Ÿ˜ƒ

#

and then going back and altering some of the generation structures. right now I have alot of the special rules on how to handle things like charms coded to only work in the "charms" area. Ideally it should know what to do with the icon based on the core config. Then you can do whatever you want with it's placement.

buoyant obsidian
#

@daring snow

#

keep in mind the non-steam version is quite a bit behind

hazy sentinel
#

it also doesn't work

#

so there's that

buoyant obsidian
#

Non-steam?

hazy sentinel
#

yes

buoyant obsidian
#

Well that's awfully unfortunate. Someone else could try to port it over but I'm way too busy at the moment

#

otherwise I'll get to it by the end of the week hopefully

dapper folio
#

will update the drive folder
updated

zinc berry
#

is there a way to upgrade nail with debug mod?

leaden hedge
#

ye

#
  • and =
zinc berry
#

thanks kdt

rain cedar
#

Tfw nobody looks at the help panel

leaden hedge
#

is that even on the help panel

rain cedar
#

Pretty sure

high moat
#

The readme is for english keyboards. Hiding shortcuts for me is for example with "รฆ" and not "'"
So sometimes its a bit confusing

rain cedar
#

I don't really know how to fix that

#

I mean I'm checking KeyCode.F1 etc for keys

#

Not hardcoding a string for the key or anything like that

#

I assumed that would work regardless of layout

solemn rivet
#

seanpr and KDT: I've talked to firzen a few days ago and he taught me the basics on porting the bonfire mod to the modding api. The thing is, I can't seem to grasp how to write new hooks... Could I ask you for help on that?

rain cedar
#

You need to add a delegate for the event in a new class, then an event for that delegate in ModHooks

#

Then just make a function that calls the methods in the event and put that where you need the hook

solemn rivet
#

I got that, but I couldn't figure out how to make the hook behave the way I want it to

#

like, there's already a hook for "after attack"

#

but how would I make a hook to "before attack" or even a hook to override portions of Attack()?

rain cedar
#

AttackHandler is the before attack hook

#

And to override the attack just set cState.attacking to false in after attack then do whatever your replacement attack code is

solemn rivet
#

I need, for instance, to add a few lines to GameManager.LoadGame()... Not before, after or completely override the code - simply add a few lines somewhere in the middle of the code

rain cedar
#

Then you put a hook there

#

Or you could even just move the existing hook there

leaden hedge
#

oh yeah, gradow needs to add stuff to the save

rain cedar
#

Oh ok, that's a bit more complicated

solemn rivet
#

yeah

rain cedar
#

It's on the to do list to have a function that you can pass something like a FieldInfo and have it saved automatically

#

Probably just a string of the variable name makes more sense

solemn rivet
#

that's basically my main issue with the porting process right now

rain cedar
#

For now you can just make a separate save file like I do with randomizer

#

It's a bit messy but it works

solemn rivet
#

yeah, that's what it used to do

#

ok

#

also, speaking of randomizer, that seed you and risky used on the race was really interesting xD

#

most of the movement upgrades were easily accessible

rain cedar
#

Yeah that happens sometimes

solemn rivet
#

I wish we could have one of those on GDQ

rain cedar
#

Eh

leaden hedge
#

what if mantis claw was at abyss shriek

rain cedar
#

It's possible

leaden hedge
#

ye I know

#

I was looking for a seed with it

rain cedar
#

Shriek requirements actually make no sense at all right now

#

I'm gonna change those

#

I don't even know what I was thinking

solemn rivet
#

that would be an awful seed

leaden hedge
#

exactly hollowface

#

whens the extreme version when it tries to place movement abilities in hard a position as possible

#

and vengeful as early as possible

solemn rivet
#

how many viable seeds are there (not counting relics)?

rain cedar
#

9^10

solemn rivet
#

do we know such a number?

#

oh

rain cedar
#

Wait

#

10^9

#

There's probably a ton of seeds that are duplicates

solemn rivet
#

yeah

rain cedar
#

But it's 9 digits and 10 options per digit

solemn rivet
#

I wanted to know unique seeds

#

that's why I ecluded relics

rain cedar
#

33 charms, 5 movement abilities, 6 spells

leaden hedge
#

you can do 1->8 digits too

solemn rivet
#

because if you coun those, there are basically infinite seeds

#

*count

#

well, not really

leaden hedge
#

although I guess if you count leading 0s as a digit

solemn rivet
#

it's one of those annoying counting problems where "you have 33+5+6 spaces, but you can't have X before Y" etc.

leaden hedge
#

theres a lot of possible seeds anyway

rain cedar
#

Wait I forgot dream nail stuff

leaden hedge
#

36^35 + 35^34 ...

rain cedar
#

So 3 more things

leaden hedge
#

pretty sure any charm can be any charm

rain cedar
#

Nah, some charms are included in the logic so they're weighted differently

#

Although I guess weight doesn't mean anything

solemn rivet
#

not only that, with some charms you can kill baldurs, so it changes orders

rain cedar
#

In this situation, at least

#

Well yeah that's what I mean by them being in the logic

leaden hedge
#

is glowing womb taken into account?

rain cedar
#

Oh, does that actually generate enough damage to kill one before you run out of soul?

#

I thought it did crap damage

leaden hedge
#

kills it in 2 hits or something

rain cedar
#

Oh, weird

leaden hedge
#

xeph did it

rain cedar
#

Maybe it's better than I thought

solemn rivet
#

srsly?

leaden hedge
#

went in with 4 and left with 2

#

dunno if its a weird interaction with glowing womb and baldurs

solemn rivet
#

womb op, from pls nerf

rain cedar
#

I'll add that, I suppose

#

Actually nah

#

I'll do it when I've made the XML format better

#

Baldur shell XML is already unreadable garbage

leaden hedge
#

I think it might be like elegy

#

where it hits constantly

rain cedar
#

That's only at certain distances

#

Elegy is weird

summer tapir
#

xeph killed the elder with the womb?

#

she has weird ideas I would never think of

rain cedar
#

@leaden hedge Is this good formatting to use for the item tracker?

leaden hedge
#

ye thats fine

rain cedar
#

Alright, cool

leaden hedge
#

seed?

#

that'd be nice

#

to put up automatically

rain cedar
#

Alright I'll log that too

#

Alright I put the new version with that up

#

The file gets put in the save directory

#

Logs the seed, mode, and all permutations

leaden hedge
#

nice

leaden hedge
#

@buoyant wasp its done now, you need to do ws.send("random") to get the randomizer mappings

warped sinew
#

is the latest bonfire mod the one in the gdrive?

leaden hedge
#

@solemn rivet

warped sinew
#

will wants to check it out

royal ridge
#

๐Ÿ‘€

#

I should try it sometime

#

Seems like a lot of fun

warped sinew
#

yeah its good

leaden hedge
#

yeah its probably up to date

#

when are you entering rando races @warped sinew hollowface

royal ridge
#

In terms of the randomizer mod is it all pick ups changed?

#

/ shop items

warped sinew
#

i wont enter as it wont be fair :p

royal ridge
#

o shit

leaden hedge
#

everything except relics/hp/soul/notches

#

relics random with themselves

warped sinew
#

THROWING DAT SHADE

#

haha yeah i might enter sounds fun

leaden hedge
#

I dunno

royal ridge
#

oh okay I'll talk with Simo we might have a race and try to start joining in

#

or hosting some

leaden hedge
#

trinomi is really good atm

royal ridge
#

Graig ๐Ÿ‘€

leaden hedge
#

he finished a really hard seed like 30m before everyone else

royal ridge
#

Legend

leaden hedge
#

fireb0rn came last

#

took him like 3hrs

royal ridge
#

wtf

#

fireb0rn and last being in the same sentence has never happened

warped sinew
#

is it just any%?

royal ridge
#

any% nmg

leaden hedge
#

any% nmg

royal ridge
#

so quick

warped sinew
#

right

leaden hedge
#

I think all bosses would be cool

rain cedar
#

It's not technically possible to get 100% with randomizer

leaden hedge
#

considering you have to run around everywhere

rain cedar
#

Because of how I'm doing spells

warped sinew
#

so like does everyone get different randoms? lol

#

thats kinda great

leaden hedge
#

same seed

warped sinew
#

oh right

royal ridge
#

Show Will ๐Ÿ‘€

leaden hedge
#

dont show will anything by magolor hollowface

warped sinew
#

"thats really cool" from william about that skip

royal ridge
#

have fun with the Bonfire mod ๐Ÿ˜„

broken fable
#

I'm interested in contributing to Randomizer development and Modding API development. I believe Randomizer is on github, but not Modding API. Is there a place I can find the Modding API source?

leaden hedge
#

there isnt

#

its via dnspy

broken fable
#

one project i'd like to do is figure out a way to get the modding api source on github in a way that doesn't infringe on copyright. it might not be feasible, but i know it's theoretically possible. like just comitting diffs from the original, or perhaps diffs that don't include the - lines.

#

@leaden hedge so you're saying that the Modding API is really just a binary that sean and firzen edit with dnspy? like there is no source code at all?

leaden hedge
#

yep

#

its assembly-csharp.dll

#

anyone can add it

#

aslong as it works

broken fable
#

alright, thanks. i think i understand the problem i'm trying to solve now. ๐Ÿ‘

#

do any of the bots in this channel post github notifications?

leaden hedge
#

not that I know of

royal ridge
#

No, they don't as of yet

broken fable
#

ok thanks. is there any mechanism in place currently for preventing multiple users (like sean and firzen) from editing the modding api at the same time and uploading conflicting binaries and clobbering each other?

royal ridge
#

I would not know the answer to that question, maybe shoot them a PM unless someone else knows

young walrus
#

Communication

leaden hedge
#

not really

#

you just send sean the api

#

if it gets updated by two people, whoever made the least changes remakes them with the others api

broken fable
#

ok. thanks.

#

i've got a design in my mind of a way to have the modding api github accessible, although it's not going to be pretty. i'll write up an explanation and post it here. standby.

solemn rivet
#

@warped sinew dunno about the version on gdrive, but this should be the most up-to-date version

#

I haven't touched it for a while - mostly due to real life issues and trying to make it compatible with the modding API

buoyant wasp
#

@leaden hedge - if I send("random") on a save that isn't randomized, what will i get back?

leaden hedge
#

undefined

#

actually

#

hey @rain cedar

#

do you delete the file when the save isn't running?

rain cedar
#

I'm not deleting it ever, it just gets overwritten

leaden hedge
#

ah

#

then you'd get the last mapping

#

not sure if theres a way for me to know

rain cedar
#

I could make it delete the file if you load a non-randomizer save or start a new game

leaden hedge
#

that + onquit

#

would probably make it work well

#

you could always add a parameter though wyza

buoyant wasp
#

yeah, cause the tracker really isn't randomizer dependent

leaden hedge
#

?random=true or something

buoyant wasp
#

er

#

yeah, i guess that'd work

#

though

#

hmm

#

yeah, that's fine. cause the update i'm working on right now will let folks have a great deal more control over what's on screen. The notion being you'll have the "randomizer" layout, but you could have a layout for say any%nmg which would just have the charms/items/skills that you know will be part of your run and nothing else. and those would just be separate sources in OBS that you could hide/show depending on what run they are doing

#

so having an option in that config to say "this is for randomizer" would be fine

rain cedar
#

I don't see much point in using this for regular runs as it is right now

#

Since it requires a modded game

#

I'm not gonna accept runs on a modded game unless they're really bad

buoyant wasp
#

ยฏ_(ใƒ„)_/ยฏ that's your prerogative of course. I'm just gonna provide the tool as an option and let the leadership decide if it can be used in a specific way ๐Ÿ˜ƒ

#

though since your mod API shows version info now, you could easily show that the only mod loaded is the data API to expose this info

rain cedar
#

Still a modded game

young walrus
#

If it was click to turn on/off of items or plugged into chat without any game interaction, then could be used for 100% runs. I know I won't be using it for any% runs

rain cedar
#

Well anyway the item tracker doesn't entirely rely on the mod

#

It could in theory also work with a program that periodically decrypts the save files

buoyant wasp
#

true

rain cedar
#

So should I still be making randomizer delete the json file or nah?

#

Sounded like you might've got that worked out

buoyant wasp
#

i think you can leave it, shouldn't hurt anything

#

@leaden hedge - can you send me the source files for your stuff for this thing? and is there a code snippet somewhere about decrypting the save files? Dunno that i'll do it, but want to at least look at what would be required to do the save file approach for non-modded runs

leaden hedge
#

yeah if you check my save editor

#

theres snippet for decrypting the files

#

as for the src one sec

buoyant wasp
#

thanks ๐Ÿ˜ƒ

leaden hedge
buoyant wasp
#

was thinking I could put your stuff under the same git repo as the UI, so that the code is all one place, or not, idc just an offer. (if I do that I can add you as a maintainer to the repo, if you want)

leaden hedge
#

you can put it up there

#

as for github

#

KayDeeTee

buoyant wasp
#

k

#

will do that after work then. thanks.

buoyant wasp
#

can you add a "send" command to get the version for the PlayerDataDump mod? That way I can check on the UI side if we make some breaking change and the mod needs to be updated and notify the user.

leaden hedge
#

eating rn

#

10m

buoyant wasp
#

oh, no rush. i'm at work for the next 5 hours ๐Ÿ˜ƒ

#

just eating lunch myself

#

or even, dump the version of all mods, if that's an option. Dunno what i might do with the information, but it could be worth something maybe

leaden hedge
#

dont think I can access other mods data

buoyant wasp
#

didn't know if the modding API had a function to dump the list of installed mods

#

if it doesn't, perhaps it should so that mods can query on what other mods are installed @rain cedar

#

for these cs files, how are you compiling them to DLLs, do you have a backing csproj for them or are you just doing some single file compile?

buoyant wasp
#

๐Ÿ˜ƒ thanks

leaden hedge
#

I think the current gdrive version will accept version

broken fable
trim totem
#

Does the randomizer work with blackmoth and lightbringer

leaden hedge
#

yes

#

all api mods work together

trim totem
#

Cool thanks

vale zenith
#

Genuinely no-one knows that I wrote the modding API smh

leaden hedge
#

you're listed as an author hollowface

broken fable
#

Hey @vale zenith . Your feedback would be appreciated too ๐Ÿ˜ƒ

vale zenith
#

Honestly i think the best option is to have some form of dialogue with team cherry

#

Otherwise we are trying to solve a problem that might not even exist

leaden hedge
#

no need to complicate the process unless they want us to

vale zenith
#

My ideal outcome is that they would integrate the modding API into their code

#

But i think that's very unlikely

leaden hedge
#

as for the legal issue you worry about thats quite unlikely, as they've publicly promoted 753's mods which are distributed via assembly-csharp, and they play other mods too