#archived-modding-development

1 messages ยท Page 38 of 1

rotund karma
#

be shoosh

buoyant wasp
#

lol, I didn't even start playing until like 1.1.8, so i have no idea what i missed

rain cedar
#

The joke is that 1.1.4.9 was never a version

buoyant wasp
#

lol

rain cedar
#

It went straight from 1.1.1.8 -> 1.2.1.0

buoyant wasp
#

1.1.4.9 must have been the version where they had optimized the game perfectly, and removed all the bugs that nsoob uses, but then someone found out and deleted it to save the speedrunners

#

though it is amusing that some of the lag reduction things they've done have made those tricks a little harder

late sphinx
fair rampart
#

Dam

late sphinx
#

h m m m m m

#

glowing womb is destroying everything

fair rampart
#

NOICEE

knotty tapir
#

Glowing Womb deals 7 damage so like, they're better than old nail

#

or 9

#

i don't actually know, but it's a lot

fair rampart
#

ye

late sphinx
#

ffs hardmode is not possible i tell you

young walrus
#

Hard mode was designed for speedrunners

#

If you don't know a lot of the skips, you're going to have a bad time

late sphinx
#

well shit

young walrus
#

Could we put a disclaimer on the UI that says that?

late sphinx
#

you probably should

young walrus
#

Just so people who don't run the game don't get stuck

late sphinx
#

to avoid broken controllers

#

or keyboards

young walrus
#

I mean.... It says "hard"

manic wing
#

is that a randomiser of some kind?

young walrus
#

You'd expect the hard mode to be hard

#

Yes it is

late sphinx
#

i didn't think it would be that hard

young walrus
#

Surprise

#

throws hands up in an unenthusiastic manner

late sphinx
#

you need to make the ui say the thing for stupid people like me

young walrus
#

Warning: hard mode is actually hard

#

Lol

late sphinx
#

i didn't think i'd need to know every shortcut

young walrus
#

So yeah. I'd stick to easy. Unless you want to learn the skips

#

The skips are what make it fun though, imo

#

How wacky the routing can get

#

I think my favorite is going through Crystal peaks with only wings and dash

manic wing
#

wut

#

how even

late sphinx
solemn rivet
#

maybe we can help you?

#

where you stuck? What you have?

knotty tapir
#

based on 999999999 i think you need pfloat too

rain cedar
#

You'll never need glitches

solemn rivet
#

^

young walrus
#

^

solemn rivet
fair rampart
#

lol

solemn rivet
#

Ascend? Why, he already has ascended!

fair rampart
#

lol

solemn rivet
#

well, shucks

#

seems like I can't make a list of all spells objects and just call that list whenever I want to change their damage

fair rampart
#

When u have crippling depression

#

you cant actually ascend u just fall over and over again

solemn rivet
#

guess I'll just do the costly "set damage on hit" implementation

buoyant wasp
#

"Disclaimer: Hard means hard."

solemn rivet
#
public class Spells
{
    public List<GameObject> SpellList { get; set; }
    public List<PlayMakerFSM> FSMList { get; set; }
    public List<int> StateList { get; set; }
}

public Spells SpellData;


public void FillSpellList()
{
    Spells spell = new Spells();
    if (SpellData == null)
    {
        GameObject[] array = UnityEngine.Object.FindObjectsOfType<GameObject>();
        for (int i = 0; i < array.Length; i++)
        {
            foreach (PlayMakerFSM playMakerFSM in array[i].GetComponents<PlayMakerFSM>())
            {
                if (playMakerFSM != null)
                {
                    for (int j = 0; j < playMakerFSM.FsmStates.Length; j++)
                    {
                        if (playMakerFSM.FsmStates[j].Name == "Set Damage")
                        {
                            LogDebug("Spell found: " + array[i].name);
                            spell.SpellList.Add(array[i]);
                            spell.FSMList.Add(playMakerFSM);
                            spell.StateList.Add(j);
                        }
                    }
                }
            }
        }
    }
    SpellData = spell;
    Log("Spell List filled:" + SpellData);
}```
#

anyone got any idea why this doesn't work?

#

I've hooked FillSpellList() to HeroUpdateHook and to onSceneLoad

buoyant wasp
#

hmm

solemn rivet
#
  at BonfireMod.BonfireMod.FillSpellList () [0x00000] in <filename unknown>:0 
  at (wrapper delegate-invoke) GameManager/UnloadLevel:invoke_void__this__ ()
  at Modding.ModHooks.OnHeroUpdate () [0x00000] in <filename unknown>:0 
  at HeroController.Update () [0x00000] in <filename unknown>:0 ```
buoyant wasp
#

well, one thing to warn you of, HeroController.Update happens alot

#

like I used to log at the finest level when the hook was called

#

but in 1 minute it logged 30,000 lines

solemn rivet
#

maybe if the object isn't instantiated I can't look through its FSM?

#

that shouldn't be the case, because that's basically how I set the SharpShadow object in Blackmoth

#

and it works fine there

buoyant wasp
#

no, your NRE is probably because you haven't instantiated the objects in your Spells class

#

so

#

you did this

#
Spells spell = new Spells();
#

but that only makes a new Spells object

#

SpellsList, FSMList and StateList are all still null

#

add this to your Spells class

#
public Spells() {
    SpellList = new List<GameObject>();
    FSMList = new List<PlayMekerFSM>();
    StateList = new List<int>();
}
leaden hedge
#

it's called every frame

solemn rivet
#

yeah

#

I tried onSceneLoad at first

#

sorry, my connection is shitty today

leaden hedge
#

using QUIK MATHS wyza runs the game at 500fps hollowface

buoyant wasp
#

on the menu it's between 800 and 1000

leaden hedge
#

herocontroller shouldnt exist in the menu

buoyant wasp
#

in game it's 200-350 ๐Ÿ˜‰

#

so maybe it was 2 minutes

#

but still, it's called alot

leaden hedge
#

well its update

buoyant wasp
#

and fetching those FSMs on every frame is gonna murder the performance

solemn rivet
#

not if the list is already filled

leaden hedge
#

it won't work anyway

#

the whole reason my code doesn't work is because of the game being coded like shit

solemn rivet
#

yeah, I guess

#

I remember when we were trying to figure out how to set spells damage and you magically managed to make it work

#

it... Worked

#

:x

leaden hedge
#

does it work when you cast multiple spells

solemn rivet
#

no, so far I'm only creating the list

#

now I'm gonna use that list to change spells

buoyant wasp
#

also, you should move Spells spell = new Spells(); and SpellData = spell; Log("Spell List filled:" + SpellData); inside of your if (SpellData==null)

solemn rivet
#

yup

#

already did that

#

it printed out like a zillion times

leaden hedge
#

@buoyant wasp theres ObjectPool.Spawn(GameObject prefab, Transform parent, Vector3 position, Quaternion rotation) is what does pooling

#

you could trying putting a hook there that passes the gameObject to somewhere else

#

because thats what spawns the extra instances of stuff

buoyant wasp
#

oh to help with gradow's issue of the first 4 working but nothing after that?

#

or whatever that was

leaden hedge
#

ye

buoyant wasp
#

yeah I could probably add something there. Can take a look when i get home this evening

solemn rivet
#

well, guess I just wasted a lot of time

#

because it doesn't even work

cunning basalt
#

hey guys

#

question

#

what does the glass soul mod do

#

cant find any info in the drive

fair rampart
#

1 health

cunning basalt
#

oh

#

so always one hit death ??

fair rampart
#

Yes

#

it replaces both modes btw

#

u have glass soul mode and steel glass soul mode

small nest
#

Basically flower challenge deluxe

buoyant wasp
#

fireborn did a steel glass soul run sometime in the last couple of weeks

solemn rivet
#

and it also makes your damage scale with total masks

#

so charms that give masks are not useless

buoyant obsidian
#

If you open up the .zip file, there's a readme.txt that explains all the features in it.

buoyant wasp
#

@leaden hedge / @solemn rivet - so is there something i can do in the API to help you with the spell damage modifier problem or is that we don't even know why it's not working yet?

solemn rivet
#

so, a quick rundown of what we know

#

what defines spells' damage is an FSM state "Set Damage"

#

so we tried changing that

#

and it worked... Until it didn't

#

it worked for the first few casts of each spell, and then stopped working

#

we figured it was because it was running out of prefabs and when it instantiated a new one, it got default damage

buoyant wasp
#

right, which is why kdt suggested a hook on the object initializer so you could update it when new prefabs got created. I can do that. so is it working for your first few casts at this point, or not even for those now?

solemn rivet
#

not even those

#

and this is what KDT came up with that worked for quake and scream:

#
public void spellDamage(GameObject go)
{
    foreach (PlayMakerFSM playMakerFSM in go.GetComponents<PlayMakerFSM>())
    {
        if (playMakerFSM != null)
        {
            for (int j = 0; j < playMakerFSM.FsmStates.Length; j++)
            {
                if (playMakerFSM.FsmStates[j].Name == "Set Damage")
                {
                    Debug.Log("[SDT] " + go.name);
                    FieldInfo[] fields = typeof(ActionData).GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                    for (int k = 0; k < fields.Length; k++)
                    {
                        if (fields[k].Name == "byteData")
                        {
                            List<byte> list = (List<byte>)fields[k].GetValue(playMakerFSM.FsmStates[j].ActionData);
                            list[0] = (byte)damageWithoutShaman;
                            list[14] = (byte)damageWithShaman;
                            fields[k].SetValue(playMakerFSM.FsmStates[j].ActionData, list);
                            playMakerFSM.FsmStates[j].LoadActions();
                            playMakerFSM.SetState("Set Damage");
                        }
                    }
                }
            }
        }
    }
}```
#

this runs under PlayMakerUnity2d.Start() and the GameObject is PlayMakerUnity2d.base.gameObject

#

this works on the non-api version, btw

buoyant wasp
#

so this works for quake/scream on non-api, but not for fireball on non-api? or did it work for all 3 on non-api?

solemn rivet
#

quake/scream

buoyant wasp
#

k

solemn rivet
#

fireball is more complicated because of its interactions with fluke and stuff

fair rampart
#

y is it called fireball in the code tho>?

buoyant wasp
#

i'll see what i can do about it this evening. it could be just a timing issue where we're trying to set it too early in the API

#

for the same reason dive is called quake

#

and wraiths is called scream

leaden hedge
#

its not to do with that

#

its to do with fireballs being pooled

#

because you can have like 8 on screen at a time

buoyant wasp
#

because they changed the name at some point and the effort to go change the name in code was worth going back and changing it from fireball to vengeful spirit ๐Ÿ˜‰

#

yeah, but @leaden hedge - shouldn't that mean that at least some of them should be affected?

leaden hedge
#

they are

#

until it starts using the pooled ones

buoyant wasp
#

it sounds like right now 0 of them are

leaden hedge
#

it spawns the object, then goes oh im out of objects

#

and respawns it

solemn rivet
#

on API, nothing works

fair rampart
#

Guys is it possible to revive myself in a steel soul run?

buoyant wasp
#

^

fair rampart
#

like, edit the file?

solemn rivet
#

or, rather

#

it works

#

but if I try to change the hook, it doesn't

#

or if I try to cache the spells object in order to optimize the code, it doesn't work

buoyant wasp
#

@fair rampart - you can probably use the save file editor to do it, but that completely defeats the point of steel soul. like, if you wanted to revive, you shouldn't have started a steel soul save

fair rampart
#

yea

#

i wont actually do that

#

I never made it that far into a steel soul run to actually need get annoyed for dying

solemn rivet
buoyant wasp
#

(completely unrelated, what do you use to make your gifs?)

buoyant obsidian
#

I can't speak for him but ShareX is bae

leaden hedge
#

you can just record in obs

#

then upload it to gfycat

buoyant wasp
#

that's what i do now kdt, but was wondering if there was something that cut out that intermediate step

#

just "record this area as a gif, done"

buoyant obsidian
#

ShareX can do it but it bugs out in certain fullscreen games

solemn rivet
#

ShareX

#

Be prepared for big filesizes when recording at high fps tho

#

That gif was 85MB

buoyant obsidian
#

it was super super smooth though

solemn rivet
#

Yeah

#

Best thing of sharex is hotkeys

leaden hedge
#

you want super smooth ๐Ÿค”

#

let me record at 600fps at 1/10th speed

#

then give 100 frames to each frame ๐Ÿค”

fair rampart
#

lol

#

how big of a size will such a file be?

#

what resolution even?

jade lotus
#

what's a mod that allows to equip all the charms?

leaden hedge
#

there isn't one (listed)

#

although the save editor lets you change charm costs

solemn rivet
#

Ezpz

#

Just grab the save editor and set the notch cost of all charms to 0

young walrus
#

You could downpatch and use the notch duping glitch too

solemn rivet
#

Or...

#

_gitgud

fair rampart
young walrus
#

That too

jade lotus
#

I just want to mess around with the game.
can you give a noob explanaition for using save mod?

solemn rivet
#

Put it in your saves folder

#

Run it

#

Edit saves

leaden hedge
#

put it anywhere

#

click on the select save folder button ๐Ÿค”

solemn rivet
#

Yeah, but easier to put it there

#

Specially since he asked for a noob explanation

leaden hedge
#

but you didn't even say where it is

solemn rivet
#

Touche

#

/appdata/locallow/team cherry /hollow Knight /

#

There

jade lotus
#

a link to downlad it?

solemn rivet
#

It's in the pins

leaden hedge
jade lotus
#

thanks grubfather

solemn rivet
#

You can also give yourself every charm, if you so desire

leaden hedge
#

except the 4 new ones

solemn rivet
#

Yeah

#

That answers my next question about whether or not it had been updated to TGT

fair rampart
#

_gitgud

buoyant wasp
#

just do bossrush, do perfect kills on every boss, and you'll end up at radiance with all the charms or nearly so.

#

๐Ÿ˜‰

timber gale
#

Except for perfect kills on gruz mother, that's impossible

buoyant wasp
#

lol

trim nimbus
#

yo guys

#

I think I might be softlocked (or I suck) with randomizer

#

I picked up mantis claw at the place of fury

#

then got whats supposed to be: Vengeful spirit, soul catcher, and I unlocked salubra, sly and the map shop.

#

I don't have any spells nor additional movement abilities

#

oh wait I can go to howling cliffs I think

young walrus
#

joni's blessing dark room hype!!

#

did you go through the dark room in crystal peaks to get to dream nail/shield yet?

#

could also do a shade pogo at salubra to get over there

buoyant wasp
#

you have claw

trim nimbus
#

without dash?

#

you can salubra shade skip without dash?

buoyant wasp
#

you can get to like half the game with claw ๐Ÿ˜›

#

you can get to dream nail and dream shield with no items at all

trim nimbus
#

well I know that

young walrus
#

yes you can para

trim nimbus
#

oh

#

I guess I need to get better at it then

#

cause I tried

young walrus
#

it's much easier with dash

buoyant wasp
#

joni's with claw, baulder with claw

young walrus
#

but definitely possible with claw only

#

have to pogo twice

buoyant wasp
#

leg eater too

young walrus
#

instead of once

trim nimbus
#

oh

young walrus
#

the whole game is open with claw

trim nimbus
#

well this will be great

buoyant wasp
#

have you done hornet?

trim nimbus
#

dont have fireball

#

to get to greenpath

buoyant wasp
#

what do you have?

trim nimbus
#

mantis claw

#

literally it

buoyant wasp
#

you picked up 6 items

#

and you got 1?

trim nimbus
#

everything is like charms I don't need

buoyant wasp
#

what charms

trim nimbus
#

well I can't remember

buoyant wasp
#

there are like 10 charms that let you into greenpath

trim nimbus
#

I saw gathering swarm

#

defenders crest

#

and stuff

#

I double checked everything and none of it helps me

buoyant wasp
#

sporeshroom, defenders crest, mark of pride, glowing womb?

#

glubberflies elegy

young walrus
#

you can get into greenpath through howling cliffs

trim nimbus
#

defenders crest

young walrus
#

with claw

buoyant wasp
#

that too

trim nimbus
#

oh yea you can mick

#

thanks

buoyant wasp
#

and re: dark room in CP to dream nail, you should take the time to learn it

young walrus
#

the whole game is pretty damn open now

#

^^

#

you probably should

#

comes up a lot

buoyant wasp
#

it's required in at least half the seeds

trim nimbus
#

salubra sells dream nail

#

for 800

buoyant wasp
#

no, the dream nail location

young walrus
#

^

buoyant wasp
#

as in where you'd get it in vanilla

trim nimbus
#

ahh

buoyant wasp
#

you go through crystal peaks where you'd go to descending dark, drop down into the resting grounds

#

pickup whatever dreamnail is, and dream shield

young walrus
#

i'd do the shade pogo though

#

opens up the path to CoT

#

otherwise you'd need dive

buoyant wasp
#

yeah with claw you can do that

#

or wings ?

young walrus
#

yeah

#

wings makes it trivial

#

SUPER trivial

upper tendon
#

is there a place where i can see the progress on the boss rush mod?

young walrus
#

claw only shade pogo is probably the hardest

buoyant wasp
#

@upper tendon - not really

trim nimbus
#

I think I can do it

#

if I try long enough

upper tendon
#

aw

buoyant wasp
#

but it's easy

#

9+9+8

trim nimbus
#

is that in the logic though?

upper tendon
#

thanks

young walrus
#

yes

#

claw only shade pogo is in the logic

#

VS only shade pogo is not

buoyant wasp
#

(hard logic, dunno if that one is in easy logic)

trim nimbus
#

I should add I'm playing on Hard

buoyant wasp
#

@upper tendon - at least, assuming you're on the most recent version of boss rush, the one where you get 9 tiles to select from.

trim nimbus
#

but Mick already knows since he was in stayplus chat when I said I'm doing it

buoyant wasp
#

all that said, now that you have claw, it's fairly unlikely any super hard skips are going to be in this seed. you're likely going to find at least one more movement ability without any skips with how much is open to you

#

cause with greenpath, you have wraiths/spore shroom/leg eater/claw/mark of pride/dashmaster/hornet/baulders

young walrus
#

yeah. might just have to walk everywhere though

#

or search for ages

trim nimbus
#

im about to fight hornet let's see what that gives me

#

last time I had a pretty mean easy seed

#

so I had to go out of my way into many places anyway

#

it was fun

buoyant wasp
#

had a seed a couple nights ago that had 0 movement abilities for an hour. course then after getting the first one got the rest in like 20 minutes, but still

#

had to get all the way to fluke with nothing but dive

trim nimbus
#

ok killed hornet

#

holding my breath and picking up item

young walrus
#

that's the worst, wyza

buoyant wasp
#

mmmhmm

trim nimbus
#

howling wraiths lol

young walrus
#

congrats, you can now do some stalling skips

trim nimbus
#

yep

#

you think that can help with salubra skip?

#

I think it works similar to fireball?

young walrus
#

works the same

#

actually.... a little worse

trim nimbus
#

yeah I guessed

young walrus
#

cuz you don't get the backwards movement

trim nimbus
#

yeah

young walrus
#

but you can do all the skips you can w/ fireball

buoyant wasp
#

personally, i'd go down to wraiths->bench at queens station, spore shroom, s&q, then up to leg eater

young walrus
#

just... a little harder

#

can't do spore shroom

#

with only claw

buoyant wasp
#

oh, right no dash

#

well, wraiths then leg eater and probably claw and dashmaster, since those are all easy and fast

#

and in a nice loop

young walrus
#

yeah

#

add MoP in there too

buoyant wasp
#

yup

young walrus
#

can pretty much full clear Fungal

trim nimbus
#

yeah I'm off to fungal wastes now

buoyant wasp
#

fungal is pretty much the "best" place in the game in terms of item density per effort spent. (outside of shops)

young walrus
#

yeah

#

CP is damn good too

#

but there's a lot of stipulations

trim nimbus
#

doing CP without mantis claw was so fun

#

I did have double jump though so it made it easier

buoyant wasp
#

you get up to sly key? ๐Ÿ˜‰

young walrus
#

ugh

trim nimbus
#

I did get it yea

young walrus
#

the last race we did, fucking triple dipped into CP

buoyant wasp
#

yeah

young walrus
#

did that stupid spike gauntlet like 4 times

#

won by half an hour though

#

so whatever. lol

buoyant wasp
#

the seed required 1 revisit for sure if memory serves

young walrus
#

i don't remember

#

i think you only needed to get up to key

#

and that was it

#

there was something useful at CH

#

maybe it was isma's?

buoyant wasp
#

you needed key, to get CH to get to whatever was at CH

young walrus
#

yeah. i really don't remember. lol

#

huh.... most recent race wasn't recorded on SRL

#

weird

buoyant wasp
#

@solemn rivet - Do you have a test case i can use for the spell damage thing? Like a save with X stats and it should take Y hits to kill something with the spell?

#

that way i can try and figure out what's up with it working in non-api vs api

#

@leaden hedge - did you have a chance to test the updated SaveStats class to see if it meets your needs?

leaden hedge
#

nah ill test it tomorrow hollowface

buoyant wasp
#

k,np

trim nimbus
#

coming from queen's station

#

I don't think I have anything to do with fungal wastes

buoyant wasp
#

huh?

trim nimbus
#

if I only have mantis claw

#

everything is blocked off by a gate

#

so I guess trying to get dream nail will be my best bet

buoyant wasp
#

have you done 100% of fungal?

trim nimbus
#

I can't

#

cause I can only come in from queens station

#

and every pickup is blocked off by a gate

buoyant wasp
#

no, they aren't. there is a path below the gate that lets you go around. mantis literally gives you 100% access without any skips.

#

can't get a map out atm, dinner, but there's a way

trim nimbus
#

but don't you need dash for it?

#

looked like a very long jump for me

#

@buoyant wasp

#

do you mean this?

#

I don't see a way to do this with just mantis

#

nevermind

#

I'm dumb

#

I found it

#

thanks wyza

buoyant wasp
#

lol, np

trim nimbus
#

i got grub song

buoyant wasp
#

randomizer really teaches you about the game in ways you didn't realize

trim nimbus
#

which should let me get baldur shell?

#

oh yes Wyza, which is why I'm doing it on hard

buoyant wasp
#

grubsong? or gluberfly

#

grubsong is the damage->soul+

trim nimbus
#

grubsong

#

wouldn't that let me heal in front of a baldur

#

then move away

#

and let the dot damage it

buoyant wasp
#

sporeshroom does that

trim nimbus
#

AHHHHHH

buoyant wasp
#

grubsong just gives you more soul for getting hit

trim nimbus
#

๐Ÿคฆ

#

I'm dumb

#

lmao

buoyant wasp
#

what was at leg-eater?

trim nimbus
#

nothing good

#

grubsong was one

#

fragile heart

#

and I forgot last one

buoyant wasp
#

claw/dashmaster/mop locations yet?

trim nimbus
#

joni's blessing

#

I didn't check any of these yet

#

they're my next

buoyant wasp
#

nice, yeah, i'd do dashmaster->claw then if necessary you can go down and do mop

trim nimbus
#

I will do mop anyway

#

mantis lords are some of my fav bosses in the game

buoyant wasp
#

haha

trim nimbus
#

not fighting them would be a waste

hazy sentinel
#

a fungal waste

trim nimbus
#

MC had baldur shell lmao

#

dashmaster had sprint master

#

epic meme

young walrus
#

Sprint master actually useful

#

Since you don't have dash

#

Or CH

#

Or anything

trim nimbus
#

I equipped it

#

it makes exploring less painful

timber gale
#

Cute animation meta

trim nimbus
#

WOW WHAT A TROLL

#

MOP was sharp shadow

#

:)

solemn rivet
#

Wyza: when I want to test, I just set it to 0 and see how long it works

#

@buoyant wasp

buoyant wasp
#

ah

#

make sense

#

k

#

is the latest broken version on git?

solemn rivet
#

no

#

just a sec, I'll push it

#

pushed

#

I had to revert the changes

buoyant wasp
#

np, thanks.

solemn rivet
#

so, the thing is

#

if I do it the old way, it works

#

but it's not optimal

#

it's running everytime something collides

buoyant wasp
#

do we know how to get access to the GameObject prefabs ?

#

(specifically for spells)

leaden hedge
#

they are probably all pooled

#

so they are probably in ObjectPool

#

under pooledObjects / spawnedObjects

buoyant wasp
#

could be startupPools i suppose

leaden hedge
#

doesn't really matter

#

public static GameObject Spawn(GameObject prefab, Transform parent, Vector3 position, Quaternion rotation)

buoyant wasp
#

it's not that i can't put a hook into the spawn function, but doing so means i either have to copy the function out and modify it, or modify the IL (if i want to keep the current API as buildable in 1 button).

leaden hedge
#

it returns the thing

buoyant wasp
#

but you can't know if the thing it returns is new or not...i guess it doesn't matter a ton

leaden hedge
#

you want it to return anyway

#

so you have a reference to the new object

buoyant wasp
#

yeah. i guess even if it's a recycle, doesn't matter, just assume the object you get back has to be modified and be done with it

leaden hedge
#

I like that it recycles it by putting it at -20, -20 ๐Ÿค”

buoyant wasp
#

"recycle"

leaden hedge
#

but I think startup pools are just what it makes when it start ups

#

so it'll make 3 fireballs whenever object pool is created

#

and I dunno if you'd be able to intercept that

buoyant wasp
#

eh, worst case is we just do the scene load check

#

to change the startups

buoyant wasp
#

well...that's something

buoyant obsidian
#

They might also be in the player's personal pool, which I'm pretty sure includes stuff like Glowing Womblings (I'm possibly 100% wrong here)

buoyant wasp
#

so, i have this now

#

        private static readonly FieldInfo[] ActionDataFields = typeof(ActionData).GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
        private static readonly FieldInfo ActionSpellData = ActionDataFields.Single(x => x.Name == "byteData");
            ModHooks.Instance.ObjectPoolSpawnHook += SpellDamage;

public GameObject SpellDamage(GameObject go)
       {
            if (go.name != "Fireball(Clone)") return go;

           Log(go.name);
            
            foreach (PlayMakerFSM playMakerFSM in go.GetComponents<PlayMakerFSM>())
            {
                if (playMakerFSM == null) continue;

                foreach (FsmState state in playMakerFSM.FsmStates)
                {
                    if (state.Name != "Set Damage") continue;

                    LogDebug("Spell found: " + go.name);
                    List<byte> list = (List<byte>)ActionSpellData.GetValue(state.ActionData);
                    list[0] = 0;
                    list[14] = 0;
                    ActionSpellData.SetValue(state.ActionData, list);
                    state.LoadActions();
                    playMakerFSM.SetState("Set Damage");
                }
            }
           return go;
       }
#

and i'm getting logs for the "Spell found:" so i know it's hitting it

#

my hook is

#
        public GameObject OnObjectPoolSpawn(GameObject go)
        {
            //Logger.LogFine("[API] - OnObjectPool Invoked"); // Too Spammy
            if (_ObjectPoolSpawnHook == null) return go;

            Delegate[] invocationList = _ObjectPoolSpawnHook.GetInvocationList();
            foreach (Delegate toInvoke in invocationList)
            {
                go = (GameObject)toInvoke.DynamicInvoke(go);
            }
            return go;
        }
#

and that's called via

        public static GameObject Spawn(GameObject prefab, Transform parent, Vector3 position, Quaternion rotation)
        {
            GameObject obj = orig_Spawn(prefab, parent, position, rotation);
            return ModHooks.Instance.OnObjectPoolSpawn(obj);
        }
buoyant wasp
#

@knotty grove - re - that skip for rando, that'd suck, but i'm not the decision maker there, sean is

knotty grove
#

It's not actually that bad, and there's respawning crawlids in that room to farm soul

rotund karma
#

@leaden hedge why is grimmchild charm drop level one

#

like

#

its useless

#

he is a cute little buddy to have tho :3

heavy geyser
#

dr wily not in the center

rotund karma
#

false knight is dr wily robot

fair rampart
#

hey does a full psd of the map+markers exist?

#

thinking about using it for a D&D Campaign

#

would be cool if I could save different versions for my players, and actually like, turn stuff on as they found it in future sessions

rain cedar
civic hatch
#

This guy has great tutorials for these stuff

late sphinx
#

you can get grimmchild multiple times

#

to level it up

solemn rivet
#

you need to beat Grimm tho

buoyant wasp
#

@fair rampart - pretty sure the map PSD is in the resources section of the speedrun site

#

23k tests in 680ms? that's.....unlikely

leaden hedge
#

you don't need to beat grimm for grimmchild anymore

#

also @fair rampart heres all the sprites for the map, just not aligned in anyway hollowface

buoyant wasp
#

@leaden hedge or @rain cedar either of you have any ideas on the fireball FSM stuff? I just don't know enough about how they work to explain the odd behavior

weary pecan
#

Quick mod question?

buoyant wasp
#

shoot (go for it)

weary pecan
#

Where would I find charm damage modifiers (where applicable)?

buoyant wasp
#

you mean to change them?

#

cause...that's complicated

#

some charms have their stuff in C# code

#

some of it is in the FSMs

weary pecan
#

I'm specifically looking to "fix" Weaversong from 2 dmg per to, say, 3-4

buoyant wasp
#

my guess is that's a FSM, but I haven't looked at Weaversong really. @leaden hedge i think went and found the damage value, so he likely knows where it'd be to change it

#

weaversong really should scale with nail damage imo, but TC hates the nail

leaden hedge
#

it might be on the charm effects object

#

but its probably on the actual spider itself

buoyant wasp
#

that was my guess, but at work, so don't have the code handy to look

weary pecan
#

Alright, if you would, check on it later and write back here? I'm at work also

#

Problem with nail scaling is that nail is OP already, and if Weaver scales shouldn't Glowing Womb and Spore Shroom and...?

#

That's why Thorns is a bit OP too, cuz of nail scaling

leaden hedge
#

nail is extremely weak

buoyant wasp
#

spells are better in pretty much 100% of all situations

#

level 2 + shaman + twister + fluke + soul catcher = most bosses die in 3 hits

weary pecan
#

I was looking at charm rankings earlier (as I am modding some costs for balance purposes now, after playing close to 200 hrs) and everybody puts all the nail charms (specifically: Pride, Q Slash, Longnail) way up on top. I like my spells too, though!

leaden hedge
#

those are bad

#

best charms are
F Str, Flukenest, Shaman Stone, Spell Twister

buoyant wasp
#

if you want to know what charms are good, look at the speedrunners in categories that actually get charms

weary pecan
#

Right, just yesterday I took down Uumuu in one opening with 3 Fluke shots.

buoyant wasp
#

yup

leaden hedge
#

special mentions to,
Dreamwielder, Fury of the Fallen, Soul eater, Soul catcher and nailmasters glory

buoyant wasp
#

HK with spell loadout gets to attack 4 times before you kill him

leaden hedge
#

pretty much every charm other than those 9 are complete waste of slots

buoyant wasp
#

the only time nail can even come close to competing is if you do fury build

#

imo

leaden hedge
#

its still slower than fluke

buoyant wasp
#

didn't say it was better, just that it came closer ๐Ÿ˜‰

leaden hedge
#

only place you use nail for in speed run is colo

weary pecan
#

Anyway, would appreciate some help with the spiderlings' dmg

buoyant wasp
#

yeah, try and remind me in like 6 hours

leaden hedge
#

get the fsm dumper, get the fsm viewer hollowface

#

and spend the next few days figuring out the arcane

weary pecan
#

Despite the fact that some charms are clearly favored over others, I'd like some attempt at balancing things out a bit better

buoyant wasp
#

but considering i still don't understand why fireball is freaking out on me, i'm probably the wrong person to ask ๐Ÿ˜‰

leaden hedge
#

you can't balance the charms

buoyant wasp
#

"literally black magic"

leaden hedge
#

half of them do nothing

#

how are you gonna make fragile greed a viable charm ๐Ÿค”

weary pecan
#

No viable solution. Except for Weaver I wasn't planning on altering anything but notches by +1 or -1. I don't imagine increasing Geo % would make a significant difference for the better or worse, so dropping to 1 notch maybe? It's only really worth for slightly speeding up acquisition of Lantern. Or... for those who die a lot to their own shades.

#

The problem is, the more you think of it, the more you feel most charms could be reworked somewhat. And the problem with that is, as always, one thing imbalances another and the cycle never ends...

#

So I'm trying to keep changes as minimal and as close to vanilla as possible.

#

I have the unfortunate experience of having spent more time modding than playing other games before, which ultimately takes away from the fun and experience of just actually playing the damn game! And I really don't want to ruin my HK experience zote

timber gale
#

I'd recommend buffing charms you find to be fun but underpowered

#

So that you can have fun with a charm while not being handicapped by it

#

Like making carefree melody consistent or dreamshield spin faster

young walrus
#

Then just play the game??

lusty lantern
#

I thought someone was making a dreamshield weapon mod.

leaden hedge
#

its in lightbringer

solemn rivet
#

Orz: only real way is to do as KDT suggested

#

go through the FSM with the viewer, find what you want and edit it

trim totem
#

We need a minion mod

young walrus
#

lightbringer mod doesn't work on Mac right?

buoyant wasp
#

afaik, no

#

@trim totem -why? There are now...what, 4 charms that give you minion like things (shield, womb, weaversong, grimmchild)

trim totem
#

Because those charms are bad

young walrus
#

none of our mods work on Mac right? cuz it's different

#

like.... 96% sure

trim totem
#

I'd like to see a dedicated grimmchild or dreamshield mod

young walrus
#

just need a confirmation

leaden hedge
#

api mods work if theres an api released for it

young walrus
#

but lightbringer definitely doesn't?

solemn rivet
#

well

#

API works on DRM-free

#

and it wasn't built for that

leaden hedge
#

lightbringer isn't API

solemn rivet
#

maybe it works mac as well?

leaden hedge
#

potentially if it works for DRM-FREE

solemn rivet
#

Lightbringer isn't API, so only if 753 manually ported it

#

I checked myself a few days ago KDT, it works for gog

#

ever since TGT there's a new method in the Assembly called GOGSomethingOrOther

#

and I thought that maybe it meant that the assembly was now "merged"

buoyant wasp
#

i was gonna get the gog version of the game anyway to have a separate install, i can do a comparison to see if they are identical at this point.

#

mac wise, we might be able to build an API version of it, but I'd need someone who is willing to do the guinea pig testing which likely will be tedious back and forth

young walrus
#

i mean... i'm just asking for a reddit post

#

someone complaining the mod isn't working on Mac

buoyant wasp
#

yeah, mac dlls are probably different

#

like 99.9% sure non-api mods won't work for them. api mods might, but ...

young walrus
#

kk.

#

well imma respond then. lol

buoyant wasp
#

now that we have all of the API building in a single step, the prospect of building a mac version is much less time consuming....maybe....

young walrus
#

lol

#

i like the confidence

buoyant wasp
#

honestly it really just depends on how the mac stuff is compiled

#

if it's just pure mono compilations, I don't think it'll be bad

solemn rivet
#

I can confirm that non-api mods do not work on mac, at least on older versions

young walrus
#

why people game on own Macs at all... i'll never understand

leaden hedge
#

its got an apple on it

#

and more money = more good

young walrus
#

๐Ÿค”

#

larger numbers is more better always

leaden hedge
#

thats why I keep my temps at 125c

young walrus
#

why not 126?

leaden hedge
#

125 is the cutoff point for my gpu iirc

#

126 and it'll shut down

buoyant wasp
#

lol

#

course at anything over what, 65?, you start getting throttled

young walrus
#

my ISP throttles me for far less

buoyant wasp
#

just wait until 12/15

#

then they can throttle you and not even tell you ๐Ÿ˜ƒ

young walrus
#

-_-

buoyant obsidian
#

Yeah no MAC support unless somebody wants to buy me a macbook ;)

solemn rivet
#

there was someone who tested the mac version of blackmoth for me

#

don't remember who it was tho

trim nimbus
#

if I want to install randomizer for 1214

#

is it just the file in the document?

#

does it work for every patch?

buoyant wasp
#

you'll need to get the modding API for 1.2.1.4. I am pretty sure the randomizer is backwards compatible with that version

#

though honestly there isn't a good reason not to play rando on CP

trim nimbus
#

fuck new watchers

#

literally the only reason

#

I don't really wanna get used to new watchers when I run any% NMG

young walrus
#

Then you'd have to run rando on 1.1.1.8

trim nimbus
#

wait

#

was it 1214 or 1221

#

that watchers were changed?

young walrus
#

Or were they changed in 1.2.2.1. I can't remember

trim nimbus
#

I think so

#

also Mick grats on the PB. I'm watching it now

young walrus
#

Nope. 1.2.1.4

trim nimbus
#

really?

young walrus
#

So you're playing with watchers AI now

trim nimbus
#

rip lol

#

I was so sure it's 1221 but fair enough

#

I guess since I started I'll finish this anyway

young walrus
#

Just checked the patch notes

trim nimbus
#

can't deny facts

#

yea

young walrus
#

Was actually added on 1.2.1.3

trim nimbus
#

oh lol

buoyant wasp
#

1.2.2.1 actually made the new watchers easier

#

cause it was the patch where they could be hit by spells where spinning

#

1.2.1.4 is really the worst of the 3

trim nimbus
#

LMAO

young walrus
#

That was 1.2.1.3 where they could be hit

trim nimbus
#

I'm good at making decisions please believe me

buoyant wasp
#

was it?

trim nimbus
#

also this seed is such a meme

young walrus
#

Yes

buoyant wasp
#

i thought there was a gap

trim nimbus
#

fury had dash

#

salubra has mantis

buoyant wasp
#

how is that troll?

young walrus
#

No. Same patch they were allowed to be hit was when AI was changed

buoyant wasp
#

ah

young walrus
#

Yeah, how is that a meme. That's really good luck

trim nimbus
#

oh I didn't mean "meme" as in bad

#

more like, funny cause I just unlocked every place in the first 10 mins

#

LUL

#

dream nail had crystal heart

buoyant wasp
#

is this an "easy" seed?

trim nimbus
#

yeah

#

I'm tired so I didn't do a hard one

buoyant wasp
#

ah, ok, this makes more sense

trim nimbus
#

oh yeah

#

I should stop playing on easy seeds. Especially since I managed to complete a hard one

weary pecan
#

So... back to my original inquiry: where to mod spiderlings dmg values?

#

(What about enemy values? Outta curiosity)

leaden hedge
#

the 2 values health and damage are
health_manager_enemy.health
and
damages_hero.damageDealt

weary pecan
leaden hedge
#

well it technically is I guess

weary pecan
#

I readily admit I ain't too familiar with this engine

leaden hedge
#

well thats fine because being familiar with unity probably won't help you

#

so every entity in the game is represented by a GameObject
and GameObjects are controlled by one or more Components

#

this game is coded with PlayMakerFSM which is a component

#

so every enemy will have a PlaymakerFSM component, named health_manager_enemy

#

which will then have a variable named health

#

now to mod this, you have to find a reference to said PlayMakerFSM at runtime and edit it

#

I'd recommend looking at the PlayMakerUnity2DProxy class, as that component is on every GameObject which has both a collider and a playmakerfsm

weary pecan
#

Alright, thanks, will need to look further into it!

#

Was hoping it'd just be as easy as modding charm notches grubfather

buoyant wasp
#

@leaden hedge - how did oyu figure out that slot 0 and 14 were the 2 values needed to change the spell damage values?

buoyant obsidian
buoyant wasp
#

hilarious, but not helpful

leaden hedge
buoyant wasp
#

yeah, i have the fsm

leaden hedge
#

ok

buoyant wasp
#

i see the byte data array

#

just not how it correlates

leaden hedge
#

look at paramName

#

and then paramDataPos

#

the paramDataType, paramName,paramDataPos and paramByteDataSize are all linked

buoyant wasp
#

hmm

leaden hedge
#

0th element on them all describe the same piece of data

#

so 3rd and 12th value in paramName = "setValue"

#

which are the values that SetFsmInt use

#

and the 3rd and 12th values in paramDataPos are 0 and 14

buoyant wasp
#

ah

#

ok

leaden hedge
#

technically I wouldn't even do it this way anymore

buoyant wasp
#

i'm open to alternatives, just trying to help gradow get bonfire working

leaden hedge
#

I'd do

FsmState state = fsm.States[0];
(FsmSetInt) baseDamage = state.Actions[0];
baseDamage.setValue = 0;
(FsmSetInt) shamanDamage = state.Actions[2];
shamanDamage.setValue = 0;
buoyant wasp
#

States[0] might not be the damage state though right?

leaden hedge
#

nah

#

you could do

foreach(FsmState state in fsm.States)
    if(state.Name == "Set Damage")
buoyant wasp
#

yeah, that's what it does now

leaden hedge
#

and I dunno if you can get the original type of a abstracted class

#

when its put into an array

buoyant wasp
#

usually something like BaseType would do that i think.

#

so

#

does Set Damage still need to be called?

#

and loadActions?

leaden hedge
#

you'd need to re enter Set damage

#

loadActions you definitely don't want to do

#

thats what loads the data from the byte array

#

working with actions is probably way easier than the byte array

#

its way more human readable than arcane sorcery hollowface

buoyant wasp
#

yeah

leaden hedge
#

also I think you can add actions, by creating a new one and adding it to Actions and LoadedActions

#

whereas trying to add actions the old way

#

was just good luck lol

buoyant wasp
#

hmmm, so FsmSetInt doesn't a type

leaden hedge
#

its SetFsmInt hollowface

buoyant wasp
#

yeah, got it

#

so now i have

                foreach (FsmState state in playMakerFSM.FsmStates)
                {
                    if (state.Name != "Set Damage") continue;

                    LogDebug("Spell found: " + go.name);

                    SetFsmInt baseDamage = (SetFsmInt)state.Actions[0];
                    baseDamage.setValue = 0;
                    SetFsmInt shamanDamage = (SetFsmInt)state.Actions[2];
                    shamanDamage.setValue = 0;
                    playMakerFSM.SetState("Set Damage");
    }
#

which definitely modifies the spell, but not the way we want it to, (it does the thing like the gif i posted where it basically doesn't spawn the fireball)

#

ah, it's unhappy about a cast

leaden hedge
buoyant wasp
#

ah

#

so for fireball it's 3 and 5 i think

#
 "actionNames": [
                    "HutongGames.PlayMaker.Actions.SetScale",
                    "HutongGames.PlayMaker.Actions.SetMeshRenderer",
                    "HutongGames.PlayMaker.Actions.SetCollider",
                    "HutongGames.PlayMaker.Actions.SetFsmInt",
                    "HutongGames.PlayMaker.Actions.PlayerDataBoolTest",
                    "HutongGames.PlayMaker.Actions.SetFsmInt",
                    "HutongGames.PlayMaker.Actions.GetScale",
                    "HutongGames.PlayMaker.Actions.FloatMultiply",
                    "HutongGames.PlayMaker.Actions.FloatMultiply",
                    "HutongGames.PlayMaker.Actions.SetScale"
                ],
leaden hedge
#

I would agree with that assumption

#

but thats fireball2

#

not sure about fireball1 or fluke

buoyant wasp
#

ah, yes, fireball1 is 2,4

#

well, that's closer

#

newly created fireballs are now being set to 0

buoyant wasp
#

still getting some fireballs that are wrong though

#

where the fireball itself never spawns

solemn rivet
#

welp

#

wait

#

oh

buoyant wasp
#

@solemn rivet - do you still have the old code that worked on the first 4, but failed after that?

solemn rivet
#

you mean, KDT's code?

buoyant wasp
#

yeah

solemn rivet
#

sure

buoyant wasp
#

the one you used back before the API

solemn rivet
#
public void spellDamage(GameObject go)
{
    foreach (PlayMakerFSM playMakerFSM in go.GetComponents<PlayMakerFSM>())
    {
        if (playMakerFSM != null)
        {
            for (int j = 0; j < playMakerFSM.FsmStates.Length; j++)
            {
                if (playMakerFSM.FsmStates[j].Name == "Set Damage")
                {
                    Debug.Log("[SDT] " + go.name);
                    FieldInfo[] fields = typeof(ActionData).GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                    for (int k = 0; k < fields.Length; k++)
                    {
                        if (fields[k].Name == "byteData")
                        {
                            List<byte> list = (List<byte>)fields[k].GetValue(playMakerFSM.FsmStates[j].ActionData);
                            list[0] = (byte)LevellingSystem.instance.SpellDamage((int)list[0], this.statInt);
                            list[14] = (byte)LevellingSystem.instance.SpellDamage((int)list[14], this.statInt);
                            fields[k].SetValue(playMakerFSM.FsmStates[j].ActionData, list);
                            playMakerFSM.FsmStates[j].LoadActions();
                            playMakerFSM.SetState("Set Damage");
                        }
                    }
                }
            }
        }
    }
}```here it is
buoyant wasp
#

and that list was getting fetched via UnityEngine.Object.FindObjectsOfType<GameObject>() ?

solemn rivet
#

this was called at the end of PlayMakerUnity2DProxy.Start()

#

and it was called with the base.gameObject as argument

buoyant wasp
#

hmm

#

k

solemn rivet
#

so it's basically running very ofter

buoyant wasp
#

yeah

solemn rivet
#

not every frame

#

but still very often

buoyant wasp
#

i have it working so that all new fireballs work 100% of the time

#

at least, as far as i can tell

#

my problem is figuring out how to get the ones that are already loaded, because i think they might get loaded before even the mods load...maybe

#

or, they aren't being created by the pool spawner

solemn rivet
#

when are you running your code?

leaden hedge
#

I'd assume they are made by the startup pool in objectpool

solemn rivet
#

maybe they are pooled in between scenes?

buoyant wasp
#

i've got it checking twice, once at the end of scene load for all objects, then i added a hook that is called with teh GameObject at the end of the spawn

solemn rivet
#

oh

buoyant wasp
#

so, it should be finding them

solemn rivet
#

yeah

buoyant wasp
#

but the UnityEngine.Object.FindObjectsOfType<GameObject>() doesn't appear to do so

solemn rivet
#

UnityEngine.Object.FindObjectsOfType<GameObject>()is a weirdo

leaden hedge
#

Spooky

solemn rivet
#

like, when I was trying to list all spells using that guy

#

for some reason it would only load the nail

#

no spell would be read by that

buoyant wasp
#

figures

solemn rivet
#

I assume that's why it wasn't working

leaden hedge
#

Have you tried iterating over all playmakerfsms

buoyant wasp
#

i think i have to add a method to the ObjectPool that will allow me to get all spawned/prefab objects

solemn rivet
#

yeesh

buoyant wasp
#

didn't even know you could ๐Ÿ˜ƒ

solemn rivet
#

foreach (PlayMakerFSM playMakerFSM in go.GetComponents<PlayMakerFSM>())this?

leaden hedge
#

Just put PlayMakerFSM instead of GameObject

solemn rivet
#

oh

leaden hedge
#

Works for any component

buoyant wasp
#

what would i use for the GameObject?

#

some top level one i assume

solemn rivet
#

so UnityEngine.Object.FindObjectsOfType<PlayMakerFSM>()?

leaden hedge
#

UnityEngine.Object.FindObjectsOfType

buoyant wasp
#

worth a shot

leaden hedge
#

Also iirc DontDestroyOnLoad objects go into another root object outside the current scene

buoyant wasp
#

well, that didn't help

solemn rivet
#

maybe... Hook that to InputHandler or something?

#

so it changes the damage values when cast button is pressed?

buoyant wasp
#

no, my problem is finding the object, the input handler wouldn't give me the object I don't hink

solemn rivet
#

oh, right

buoyant wasp
#

if i could find it

buoyant wasp
zenith panther
#

So I tried to install some mods (specifically api debug mod by seanpr) and my game just crashes with an error now.

#

Any idea what I did wrong?

buoyant obsidian
#

Are you on Windows? Did you install the API?

zenith panther
#

I tried to install the API (Which the best I can tell is just copying the assembly-csharp.dll file into the right place?)

#

windows, steam.

buoyant obsidian
#

That should work as far as installing the API goes

zenith panther
#

Well, for whatever reason my game won't load after that.

buoyant obsidian
#

It won't load after just installing the API?

#

Or did you install a mod with it too

zenith panther
#

I did not install any mods with it, just the api

buoyant obsidian
#

Try verifying your game files on Steam and doing it again

zenith panther
#

I tried full reinstalling, but ill try that.

young walrus
#

Did you install the correct version?

#

You also have to replace the. Dll

rotund karma
#

@leaden hedge boss rush broke

#

i had shape of unn

#

and i was in hollow knight fight

#

nah bro

#

it ๐Ÿ…ฑroke

#

now im anger

#

it was a steel soul run as well

buoyant wasp
#

huh?

#

define "broke"

#

also, it's boss rush....do it again? it's designed to be 30-40 minutes long.

rotund karma
#

i killed hollow knight

#

and in the bit where it says focus

#

i couldnt

knotty grove
#

that's not a mod issue, also happens in the normal game

#

I posted a video about this the other day

rotund karma
#

oh great

royal ridge
#

Yeah

#

It's in the midst of being sent to the devs

rotund karma
#

oh ok

noble trout
#

where can i find the 1.2.2.1 bonfire mod?

#

also is the game still in 1.2.2.1 anymore?

#

in the github download i doesnt seem to be any Assembly-CSharp(steam).dll just Assembly-CSharp.dll

#

do i just paste that in?

#

ugghh bonfire always did problems to me and i never got it to work

noble trout
#

lol

#

ok but what do i do?

fair rampart
#

No idea honestly

#

i never coded

noble trout
#

me too

fair rampart
#

Lol

noble trout
#

i message gradow maybe he could help me

fair rampart
#

Alright

noble trout
#

i think i got it to work

#

but i will check later

#

the ui appears but when i hit the first door in king's pass it wont break

fair rampart
#

rip

noble trout
#

WHY CANT I HIT ANYTHING

fair rampart
#

Um

#

Probs messed something up

noble trout
#

yeah

#

he told me to download the drive version

#

but now it doesnt work at all

solemn rivet
#

@zenith panther still need help?

zenith panther
#

Not infront of my pc but it was working

#

Thanks!

solemn rivet
hazy sentinel
#

does randomizer lower max completion to 100%?

fair rampart
#

not sure

hazy sentinel
#

cause I think I've done everything

#

do the spells not add completion or something thinkgrub

solemn rivet
#

maybe because of how they're coded?

#

like, the actual "spell" is still spawned

#

so it doesn't count as collected?

leaden hedge
#

You never collect spells

#

You get proxy variables instead

leaden hedge
#

Also I figured out why my game crashed so much
My GPU bricked last night RIP

#

So I guess I won't be working on anything until I replace it

buoyant wasp
#

๐Ÿ˜ฆ

#

sucky timing (at least if you live in the states)

#

probably less so elsewhere

#

@leaden hedge-what did you have before (GPU wise?)

#

also @leaden hedge or @rain cedar - I know how we get the dump of FSMs, but are there any logical links between the various json's. for example fireball has like 4 or 5 FSM files associated with it

buoyant obsidian
#

It's probably good timing with Black Friday coming up

#

might be able to find a new GPU cheap

buoyant wasp
#

really all depends on what he "needs"

#

a GTX 1060 would be a good low-end card to pickup

#

should play 99% of what he's likely to play for a decent price

#

unless he needs 4k 60fps

buoyant obsidian
#

That's considered low end these days?

rain cedar
#

Generally you want to look for an fsm with something like control in its name

buoyant wasp
#

the x60 series is generally the low end

#

xx60 = low, xx70 = medium, xx80=high, xx80Ti/TitanXX = enthusiast

#

k

#

i was just thinking about trying to improve kdt's fsm viewer

#

was hoping there was some sort of logical representation to tie them together

young walrus
#

Xx70 is usually the most cost effective imo

buoyant wasp
#

@young walrus yup

rain cedar
#

I think the 1060 is somewhat comparable to the 970 and that still runs everything fine on highest

#

So I wouldn't call it low end

young walrus
#

Yeah. Those are the same pretty much

buoyant wasp
#

the 10xx series cards are significantly less power intensive

young walrus
#

Slight edge to 1060

#

It's "low end" for the 10 series

#

But it's still a good card

rain cedar
#

It's only really when I stream that I ever have performance issues

buoyant wasp
#

difference is

#

a 970 is 300$

#

a 1060 can be had for ~200

young walrus
#

There's not really a reason to go 970 over the 1060

buoyant wasp
#

i personally run a EVGA 1070 SC. half the time the fans don't even run because it doesn't even need to

young walrus
#

The 10 series thermals are so good

buoyant wasp
#

yup

#

granted i went from a 680 to a 1070, so....yeah

#

that was a bit of a jump

young walrus
#

Even at 100%, my 1070 never goes above like 65

#

That's a hell of a jump

buoyant wasp
#

oh yeah. I spent a long time waffling on the 1080, but i couldn't justify the like, 60% cost increase for a 20% performance bump

young walrus
#

Yeah. I thought about the 1080 too. But that'd be super overkill since I play at 1080p

buoyant wasp
#

honestly nvidia just did a really good job with the 10xx series, not that the 900's were bad, but man, the 10xx was just so much better in every regard

young walrus
#

^

buoyant wasp
#

yeah, i play at 1080p as well, so, it didn't make sense for me. mostly because i wanted a IPS monitor at something around 23-24" and if you want IPS at above 1080p you need a much bigger monitor and I don't really gain much out of that with the games i play

#

but anyway, i guess it really all comes down to how much he wants to spend. if he plays games mostly at or around HK's requirements, then 1060 is going to crush it no problem at a affordable price. (well, for me, 200$ might be alot for someone else, i try to not make assumptions about folks financials). the 1050 might work too, though then you're getting into the budget end which meh.

leaden hedge
#

I had a 670 gtx before

buoyant wasp
#

nice

#

pretty much anything you get is gonna be a massive upgrade then

#

i'm personally an EVGA guy myself, though I've heard decent things about Gigabyte and MSI too

#

entirely unrelated. It turns out that alt+f4 in hollowknight still calls the game's application quit hook

buoyant wasp
#

is there a way to make the fsm dumper dump ALL the FSMs instead of just the ones that get loaded as you play?

rain cedar
#

I'd have to look into the playmaker dll to know

#

But it could be there's no way of knowing what exists until the game requests it

leaden hedge
#

The fsms are just a component on a gameobject, won't get loaded until the gameobject does

buoyant wasp
#

where are they stored though? I see some of them in the Assembly-CSharp, but not the majority of them

#

unless they are masquerading as something other that PlayMakerFSM objects

leaden hedge
#

You shouldn't see any in assembly-csharp, they should be on the objects / prefabs in levels / assets

buoyant wasp
#

wonder if there is a way to parse the asset files in bulk to get them out

timber gale
#

Nice cards nowadays are for either 120 fps or 4k

#

Then again when I upgrade I'm gonna be going from a 660 so that'll be fun

daring snow
#

Going to try out Bonfire mod tomorrow ๐Ÿ˜ƒ

buoyant wasp
#

fair warning, spell damage is still....not quite right, yes, lets go with that

daring snow
#

I played a bit and looked at the data sheet

#

why increase enemy health per level?

buoyant wasp
#

because you get stronger per level

daring snow
#

does that not defeat the purpose of levelling then?

buoyant wasp
#

you gain strength faster than they gain health

#

otherwise about halfway through the game, there is 0 challenge because you 1 shot everything

daring snow
#

also, I noticed selling artifacts to Lemm is better than consuming them to level

#

no incentive to use them for levelling

#

same with nail upgrade

#

still worth

buoyant wasp
#

pretty sure selling stuff to lemm is supposed to be disabled

daring snow
#

nope

#

most definitely sold it

buoyant wasp
#

supposed to be, not is ๐Ÿ˜‰

#

@solemn rivet

daring snow
#

i'll do more testing tomorrow

#

I was mostly looking into speedrunning it

#

so I was thinking about routing

buoyant wasp
#

ah, well, it's not 100% stable yet, so, YMMV

daring snow
#

no worries - good work guys!

buoyant wasp
#

it's 99% @solemn rivet

daring snow
#

also this is the first time I saw the new watchers in action

#

ugh

#

bleh

knotty grove
#

hahah ๐Ÿ˜„

knotty grove
#

ayy jumping down in false knight boss rush softlocks ๐Ÿ˜‚

buoyant wasp
#

well, yeah, don't do that

#

๐Ÿ˜›

knotty grove
#

hp bar for boss rush mode would be such a cool idea xD

buoyant wasp
#

install debug mod, done

knotty grove
#

or use hp in geo counter

#

I mean besides that

#

like a nice fat hp bar on the bottom