#archived-modding-development

1 messages ยท Page 95 of 1

compact sedge
#

but I forgot to give elderbug flower

copper nacelle
#

i noticed

compact sedge
#

but I didn't get the chevo for flower so I'm gonna edit my save to redo it

#

some day

rain cedar
#

Literally just get off the bench though

copper nacelle
#

takes 50 years to activate imo

#

and then you have to wait through the noise

#

i mean it's not bad

#

but it's annoying

compact sedge
#

geeze that's a giant save file what the heck

copper nacelle
#

uhh

#

untested btw

compact sedge
#

what is this

copper nacelle
#

ur save but you have the flower in your inventory and grey mourner thinks you haven't done the quest

compact sedge
#

oh thanks I appreciate it but I already beat you to making it

copper nacelle
#

ree

compact sedge
#

also I don't wanna lose 20k geo

#

thanks anyway though

copper nacelle
#

lose 20k geo?

#

do you have 40k now or something

compact sedge
#

I'm at 34k right now and the save I sent you had 10k

#

just from fighting grimm

copper nacelle
solemn rivet
#

just add 99999 geo using HKSM imo

copper nacelle
#

^

solemn rivet
#

oh shit, I need to learn coroutines

#

because I was just trying to check if the game was paused to dim the bars

#

but with the game paused, it doesn't Update

rain cedar
#

Oh that makes sense but it's annnoying

#

I guess coroutines run according to timescale

#

They shouldn't

solemn rivet
#

ok, good news

#

I got it to render under everything else

#

yay

#

but that broke the mod

#

^ bad news

rain cedar
#

Nice

solemn rivet
#

easy to fix tho

#

but kek worthy

#

idk why I find that so funny

copper nacelle
#

lmfao

rain cedar
#

How did you even manage to change its size?

solemn rivet
#

I didn't

#

canvas = CanvasUtil.CreateCanvas(RenderMode.WorldSpace, new Vector2(Screen.width, Screen.height));

#

just changed this boi

#

it was canvas = CanvasUtil.CreateCanvas(RenderMode.ScreenSpaceOverlay, new Vector2(Screen.width, Screen.height)); before

rain cedar
#

Nice

solemn rivet
#

but now the whole world is screen-sized

#

so the bars get huge

#

but, at least, if I make the canvas in worldspace, it respects layering

#

while ScreenSpaceOverlay, well, overlays

compact sedge
#

I was gonna download gnu bash to prove you wrong about license naming conventions...

#

but they use a file called COPYING

#

@copper nacelle

copper nacelle
#

nice

solemn rivet
lunar knot
#

wew

copper nacelle
#

lmao

compact sedge
#

um why does grimmchild attack exactly every 1.482669 seconds?

#

why that number

deep sleet
#

Probably was inteded to be 1.5 but computer was like "that is 1.482669"

compact sedge
#

that's too big of an error to be a computer rounding mistake

#

probably them dragging the slider in the editor as close to 1.5 as they could

deep sleet
#

That sounds more plausible

compact sedge
#

I don't wanna report it as a bug because if I do they'll probably nerf it so it's actually 1.5

young walrus
#

don't report anything to TC ever

compact sedge
#

I reported pogoing off sleeping grimm because it's dumb

#

and doesn't affect gameplay

young walrus
#

yeah. just like many other "bugs"

#

like moving the VS pickup until after you're behind the gate

#

huge "bug"

steel patio
#

is it easy to mod?

#

i wanted to make a mod that made glowing womb better s:

steel patio
#

oh well

#

It's not really a mod per se, but i made a save file with the following conditions

rain cedar
#

@quick ravine was working on a glowing womb buff mod a loooooooooong time ago

#

Maybe they can help

steel patio
#

At the very beginning of the game after the opening cutscenes
All charms are equipped mandatorily (Carefree Melody, Void Soul, Unbreakables) and Salubra's Blessing is obtained.
The Knight is permanently Overcharmed.
All notches have been obtained (just in case, i suppose.)
The game is in Steel Soul mode.

#

Do note that you will see the Grimmchild at level 1, and attack as if it were level 2. This is purely (or almost purely) aesthetic, as the attack itself does little to no damage.

#

Good luck ๐Ÿ˜ƒ

young walrus
#

so it's just glass soul, but you're OP

steel patio
#

maybe?

#

i mean you have a base max hp of 1, but you have joni's and stuff so

compact sedge
#

so a base HP of 2?

steel patio
#

no

#

the actual hp value is pretty high

young walrus
#

so..... you have way more hp

#

and you're op

steel patio
#

but you're permanently overcharmed

#

so you always take double damage anyway

#

and you can't unequip charms... i think.

young walrus
#

okay

#

but you have all of them equipped right?

steel patio
#

yes

young walrus
#

yeah. that's OP as fuck

steel patio
#

have fun in fog canyon

#

๐Ÿ˜ƒ

#

i think it'll be interesting

young walrus
#

if you've never seen what having all charms equipped does, sure

compact sedge
#

Hey, what determines mod load order?

#

my mods are loading in the wrong order

steel patio
#

oh i was wrong base max hp isn't one. ๐Ÿ˜ฆ

#

oh well i tried

compact sedge
#

I hope it's not a silly question

young walrus
#

the API probably

#

i dunno.

#

thought it just "loads all mods"

#

but that's not true

compact sedge
#

ok but here's the problem, I need one mod to load before another

young walrus
#

like, it can't physically load all mods at the exact same time. one has to go first

compact sedge
#

(so I can do a cutesy thing in the logs that I saw some minecraft mods doing.)

#

but seriously

#

I need one to load first because the other optionally depends on the first one

#

so I guess my question is how do mods like modcommon take priority over other mods and how can I set my own priorities?

#

nvm found it

#
public override int LoadPriority()
        {
            return x;
        }
compact sedge
#

Hey seanpr, is there any way to determine order of running the Initialize() function other than namespace name?

#

I have mod X at a load priority of 1 and mod Y at a load priority of 2 but the order of Initialize() seems unaffected by this and only affected by namespace name.

#

IE the mod with LoadPriority 2 loads second only if its namespace comes after the mod with LoadPriority 1

rain cedar
#

That shouldn't be how it works

#
foreach (IMod mod in LoadedMods.OrderBy(x => x.LoadPriority()))
{
    try
    {
        LoadMod(mod, false);
    }
    catch (Exception ex)
    {
        Errors.Add(string.Concat(mod.GetName(), ": FAILED TO LOAD! Check ModLog.txt."));
        Logger.LogError("[API] - Error: " + ex);
    }
}```
compact sedge
#

I'll make a test case real quick

rain cedar
#

Alright

compact sedge
#

ok nvm uh what I cleaned my solution and rebuilt and it fixed itself

rain cedar
#

Nice

compact sedge
#

I'm so confused the timestamps on the dlls indicate I didn't forget to do a build

#

and yet cleaning and rebuilding somehow fixes it?

rain cedar
#

Yeah idk

compact sedge
#

nvm sry

compact sedge
#

is non-global settings supposed to be per save?

#

IModSettings but the non global one

rain cedar
#

Yeah

compact sedge
#

huh it's not getting reset when I quit out of one save and load another

#

and I know I'm definitely doing something wrong

quick ravine
#

I know I'm late to respond to my ping, but I am still intending to make that glowing womb mod at some point. I just want to wait for all the content packs so I can figure out what I'm dealing with before diving in. I know basically what I want for the mod in terms of how it'll progress but other new charms may affect how I go about it.

#

Like Grim Child changed how I want to approach the mod pretty significantly.

rain cedar
#

Alright is this second save you're loading one that hasn't been loaded with the mod before?

#

I think I see the oversight here

#

If that is the case, that is

compact sedge
#

yes it was my 5 hour save

#

never used it with the mod

rain cedar
#

Then yeah

#

It loads settings if they're there

compact sedge
#

I load it with the mod and the default is whatever save 1 was not 0

rain cedar
#

It needs to always reset them on load, then try loading

compact sedge
#

savedata storage

#

is there a check if the setting exists?

#

in the save file I mean

rain cedar
#
string name = GetType().Name;
Log("Loading Mod Settings from Save.");
if (data?.modData != null && data.modData.ContainsKey(name))
{
    Settings = new TSaveSettings();
    Settings.SetSettings(data.modData[name]);
}```
#

So if there's no existing save data old data will carry over

compact sedge
#

is there a quit to main menu hook?

rain cedar
#

There's something similar to that but you shouldn't fix this in your mod

#

It's a problem with the API

compact sedge
#

I'm thinking an easy fix in my mod is:

on quit to main menu hook:

Settings.value = 0;
rain cedar
#

The best option for a quit to menu hook is just activeSceneChanged

#

Then check if it's "Menu_Title"

compact sedge
#

...Well I guess I'm glad I found a real bug in the API after finding a fake bug in the API.

rain cedar
#

Really the entire mod class needs to be reworked

#

It shouldn't be a generic, that makes no sense

compact sedge
#
[INFO]:[Infinite Grimm] Current damage record for this file is: 76
[INFO]:[Infinite Grimm] Please welcome Grimm to your world!
[INFO]:[Infinite Grimm] killed NKG? True killed grimm? True
[INFO]:[ModCommon] - Adding Settings to Save file
[INFO]:[InfiniteGrimmMod] - Adding Settings to Save file
[INFO]:[Infinite Grimm] Logging your damage record of 76!
[INFO]:[Infinite Grimm] Unloaded Dirtmouth
[INFO]:[Infinite Grimm] Unloaded Tent!
[INFO]:[Infinite Grimm] Unloaded Grimm!
[INFO]:GameLoading
[INFO]:[Infinite Grimm] Current damage record for this file is: 0
[INFO]:[Infinite Grimm] Please welcome Grimm to your world!
[INFO]:[Infinite Grimm] killed NKG? False killed grimm? False

Well using activeSceneChange fixed it.

#

this is after making a new save

#

unless it's only triggered by loading existing saves in which case I'm out of existing saves to test

rain cedar
#

Nah, new save would probably still cause the problem

#

Only time it's ever being reset is in LoadSettings

#

Which is hooked to the game loading

compact sedge
#

Also while I'm here can I request a feature? Can we get an override for GetName() ?

#

Since you're tearing up Mod.cs anyway

rain cedar
#

Well not necessarily

#

Even if something should be done, it might not be worth breaking every existing mod

compact sedge
#

can't you have optional overrides

#

or no

rain cedar
#

Yeah you can easily, I was referring to you saying "tearing up mod.cs"

#

Which I thought was in reference to me saying mod should be remade as not a generic

compact sedge
#

I was being mildly sardonic

#

But uh yeah would you kindly consider adding an override for GetName()?

#

I kinda wanna have spaces in my mod name

rain cedar
#

Yeah, I'll try to find all the spots that just do GetType().Name and change those in a bit

#

I can just make the default so it won't break anything

compact sedge
#

thank you so much

rain cedar
#

But yeah in c# only abstract methods are mandatory to override

#

Actually it looks like how it's set up now every mod already has a Name field

#

It's just readonly

#

Should be able to fix that by just encapsulating the field in a property

#

To allow only the mod to change it

#

Actually nevermind on that, allowing any time name changes is a terrible idea

#

But an override would allow the same so idk

#

Wow this is implemented incredibly poorly too

#

Almost nothing actually uses the name field, just GetType() everywhere

compact sedge
#

There's really only two reasons I want to change the name of my mod.

  1. so the [Mod Name] in modlog matches
  2. so the mod name in the top left matches
rain cedar
#

Yeah fair point, I'm thinking too much into this

#

The mods can all still have consistent internal names the same as before

#

Just change the logging

#

But now the question is what the cleanest way to transfer data into a base class is

#

Since Loggable is what controls the logging and that class has nothing to do with Mod

#

Other than that Mod inherits from it, at least

#

Actually that's pretty simple, this kind of situation is exactly what the protected keyword exists for

compact sedge
#

yeah internally the mod can be called whatever so long as it appears to people using it the way I want it to.

compact sedge
#

Oh I figured out why grimmchild has such an arbitrary attack speed value:

 \----PFSM ---- RandomFloat (min) = 1.5
 \----PFSM ---- RandomFloat (max) = 1.5
 \----PFSM ---- RandomFloat (storeResult) = 1.482669
#

thanks playmakerFSM random number generator

rain cedar
#

Oh, that explains a bug I had in randomizer as well

#

I was giving object flings a "random" angle between 270 and 270

#

And it wasn't always straight down

compact sedge
#

The only Random I trust is the C# random

#

I don't even trust the Unity Engine one tbh

rain cedar
#

Yeah, no reason to use it ever

#

It just gets in the way because it's the same class name

#

Something I learned fairly recently though is C# lets you set up aliases to override ambiguous type errors

#
using Random = System.Random;
compact sedge
#

Ambiguous typing wouldn't be a problem if C# didn't encourage you to import so many namespaces

#

but that is smart if you're calling Random more than once

#

and want to distinguish between the two

rain cedar
#

I always end up doing the same for UnityEngine.Object in basically every file

compact sedge
#

why does c# let you divide by 0?

#

(with doubles)

#

and give you infinity

leaden hedge
#

unity actually tells you not to use their random number generator

#

and use system instead

pearl sentinel
#

Just use the random number gen in modcommon

#

It's backed by the mersenne twister algorithm

#

Plus you can make multiple sequence generators to keep global rng calls from polluting the rng on your important sequences.

#

If you're wondering about the quality of the MT RNG, it's good enough for our slot machines and their regulators around the world

supple sigil
#

.

weary oyster
#

out of curiosity, are custom levels possible with mods?

#

like totally custom architechture

exotic venture
#

not yet iirc

#

because that means shipping out the game with playmaker.dll which is like, the entirety of the game

#

or so i recall

weary oyster
#

hmm shame

#

i bet people could come up with some sick platforming stuff

exotic venture
#

hell yeah man

#

i'd totally want to put my puzzle making skills to work too

solemn rivet
#

KDT when's that level editor coming out?

leaden hedge
#

there wont be one for hk hollowface

#

tbh it'd be pretty easy to make levels

#

just load scenes into an asset bundle and load them

weary oyster
#

why has nobody made any thinkgrub

compact sedge
#

I wonder why.......

solemn rivet
#

it now includes the special hpbars for bosses

#

and doesn't overlay the bars over the screen, anymore, so you can pause etc.

flat forum
#

what special bars for bosses?

young walrus
#

artsy fartsy ones

flat forum
#

I'll just download it and go fight some boss

#

I know I can't get any info out of Mickely

young walrus
#

you've seen the enemy ones yeah?

#

they're that

#

more artsy

#

the KDT ones are a single gradient

solemn rivet
#

the bosses bar is just KDT's

flat forum
#

There's the usual enemy ones that are yellow and with those things from the Main Menu choice to each side of the HP Bar

solemn rivet
#

I just merged the two mods, basically

flat forum
#

mhm

#

I'll see it in a bit

solemn rivet
#

with his permission, ofc

young walrus
#

k. well your sentence made it sound like you updated the Ui of the boss ones too

#

shrugs

solemn rivet
#

well, yeah, I did, because as it was before, the bosses had the same hpbars as the enemies

#

heh

young walrus
solemn rivet
young walrus
#

i guess "special" to me were the enemy ones that y'all added

solemn rivet
#

so nice

#

you're special to all of us, mick

solemn rivet
#

wut

#

I disagree

#

but sure

hollow pier
#

well at least I'm on the board

solemn rivet
#

at least Ptkyr is right

young walrus
hollow pier
#

glad to be here

solemn rivet
#

also, Mick should be true neutral imo

#

and Sean should be lawful evil

young walrus
#

was by Vysuals

flat forum
#

I agree on Mickely being in "Chaotic Good"

iron crown
#

what

young walrus
#

i woulda said chaotic neutral.

solemn rivet
#

maybe

hollow pier
#

chaotic any% attempts

compact sedge
#

is it possible to mod/mess with a FsmGameObject in the same way you can a regular GameObject?

solemn rivet
#

can't you FsmGameObject.value and do what you want?

compact sedge
#

probably let me try, thanks

#

sweet it's null.

#

/s

#

ok thanks for the help that sorta worked but it's gonna present a very annoying problem about how I need to go about modifying an object that's just loaded from the global object pool every time it's needed

#

I'll probably figure something out

solemn rivet
#

well if you want to load a null gameobject you can just iterate through the transforms and then check the gameobject of that transform

#

that's what I do in berserkmod

#

because I need to get some references to some objects that don't always exist

#
if (furyParticle == null)
{
    foreach (Transform transform in Object.FindObjectsOfType<Transform>())
    {
        if (!transform.gameObject.name.Contains("Fury Particle")) continue;
        furyParticle = transform.gameObject;
        Log($"Got fury particle effect {furyParticle}");
        break;
    }
}```
supple sigil
#

.

compact sedge
#

my theory is this. The game is calling SpawnObjectFromGlobalPool so my current plan is, on the very first time this is run (ideally forcing it early), capture the object it spawns. And then replace it with a different kind of spawn object function that lets me use the object I have captured as an input.

leaden hedge
#

but that wouldn't be pooled hollowface

compact sedge
#

tbf it will only need to be instigated the first time it occurs ever so it only needs to be reloaded on game reset and also I might just make a simple FSM that just runs SpawnObjectFromGlobalPool so I don't have to wait for the object to spawn naturally.

leaden hedge
#

you'd probably need a reference to the prefab its spawning to do that

compact sedge
#

I was just gonna copy the SpawnObjectFromGlobalPool from another FSM so I can run it without changing that other FSM's state

#

and presumably that has all the references it needs

#

and if not then it's gonna be one headache to debug

leaden hedge
#

well that shouldn't matter

#

the fsm you're trying to update should have a var thats being passed to spawnobjectfromglobalpool

#

so you should just be able to take that

compact sedge
#

ok

leaden hedge
#

but tbh messing with the globalpool was a pain

#

when trying to get spells to be modified

compact sedge
#

wait hold up are you implying you can mess with the globalpool directly?

#

I was just gonna bypass it but if I can then that would make my life somewhat easier

leaden hedge
#

yeah its just a class on gamemanger iirc

copper nacelle
#

monomod runtime detour imo

glacial panther
#

does nightmare god grimm work on the current build?

#

I can't get it to work for some reason

compact sedge
#

no

leaden hedge
#

no

glacial panther
#

alright that's reassuring

#

I thought I fucked something up

young walrus
#

you did.... by playing lifeblood hollowdab

compact sedge
#

lifeblood is best blood

leaden hedge
#

cant even inv drop

#

how do you expect to beat ngg without that necessary tech

compact sedge
#

huh modcommon has a function called... and I kid you not: "GetGameObjectFromSpawnObjectFromGlobalPoolInFSM"

rain cedar
#

Kerr made a lot of FSM helpers when he was working on the hornet thing

compact sedge
#

it's not really want I want but I just find it interesting that exists.

rain cedar
#

There's a function somewhere in there that you pass a struct and an fsm action to and it uses reflection to fill the struct with values of the same name/type from the fsmaction

compact sedge
#

um thanks I guess for letting me know that there exists somewhere in the world a function that does somewhat what I need to.

rain cedar
#

I just think it's cool

compact sedge
#

How do y'all find functions that do what you're trying to do? Besides just scrolling through the list of possible functions that VS presents you or copying other people's code.

rain cedar
#

Google

compact sedge
#

tfw you google a playmaker function and get 0 results because it's playmaker

rain cedar
#

Pretty much yeah

young walrus
#

Google OP

#

TC plz nerf

solemn rivet
#

for playmakerfsm functions, I inspect their definitions using VS and then dissect it using my own code

#

so for code like \----PFSM ---- PlayParticleEmitter(FsmGameObject, Fury Object) = Fury :: IsNone? = False \----PFSM ---- PlayParticleEmitter(GameObject, GameObject value) = Fury (UnityEngine.GameObject) \----PFSM ---- PlayParticleEmitter(String, GameObject value name) = Fury \----PFSM ---- PlayParticleEmitter(String, GameObject name) = Fury Object \----PFSM ---- PlayParticleEmitter(FsmInt, ) = 0 :: IsNone? = False

#

I get the object like I showed above and then furyParticle.GetComponent<ParticleSystem>().Play();

compact sedge
#

huh I just saw that vs can do that

solemn rivet
#

yeah

#

you just need to unravel wtf the fsmactions are actually doing

#

after that, it's a matter of getting the resources to do it yourself

compact sedge
rain cedar
#

Dnspy tbh

compact sedge
#

actually this isn't helpful at all but I see

copper nacelle
#

dnspy

compact sedge
#

what's the bloody difference

#

they both have the same backend disassembler

rain cedar
#

It shows the full class

compact sedge
#

oh

#

ok

#

I'll figure this stuff out later. It's all giving me a headache right now.

hexed vale
#

quick question just downloaded the HPbar mod, is it just for bosses or every enemy

hollow pier
#

which hpbar mod

hexed vale
#

one from the api mod installer in the pins

#

nvm got it working ,was clicking wrong button on the installer

pearl sentinel
#

Oh, @compact sedge if you want to extract data from an fsm action you can use the generic GetValueFromAction or GetDataFromAction (the struct one Sean was talking about).

#

From modcommon

compact sedge
#

nono I can get the data from the action just fine with my current code I'm just wondering if there's a better way to edit a game object in the global pool

#

other than copying it from the action and changing the action so it uses my object and not the object from the global pool

pearl sentinel
#

Nope. That's the best way

compact sedge
#

guess that's what I'll be doing then

pearl sentinel
#

Unless you want to make the object spawnable from other serialized data, like xml or json or binary or w/e, and load it at runtime

#

But that's a whole nother can of worms

#

Actually one I was making great progress on before I got my puppy

hexed vale
#

quick question which one do i use, the KDT-HPbar or Gradow,Hollow Nike +KDT HPbar?

copper nacelle
#

latter

hexed vale
#

ty

#

what are other recommend mods? only using the HP bar at the moment

copper nacelle
#

all of them

compact sedge
#

especially the assembly ones

#

that conflict with each other

#

especially the assembly ones that conflict with each other and are built for pre-grimm troupe versions of the game

copper nacelle
#

imo find the lightbringer github link 753 posted, convert it to monomod hooks, then use it

#

and dnspy dreamshield co-op

hollow pier
#

new art mod but no new modder what is this imbalance

compact sedge
#

is there supposed to be one modder for every art mod ๐Ÿค”

hollow pier
#

yes

compact sedge
#

Ok thanos

#

I guess this server needs perfect balance

hollow pier
#

except there are more modders

#

i think

compact sedge
#

you should become a modder

hollow pier
#

what

compact sedge
#

make things right

copper nacelle
#

there are more modders
you should become a modder

#

large think

compact sedge
#

uhh lol read that as no more modders

#

I'm dungo

#

I wonder how many people have made HK mods total

copper nacelle
#

i don't think there are any hk mods outside of this discord

#

at least

#

any well known ones

compact sedge
#

IDK how I'd find a HK mod outside this discord

copper nacelle
#

google hk mods

#

that's what i did

#

found lightbringer

#

played that

#

then eventually saw a video w/ blackmoth

compact sedge
#

and then google prints out every single mod that is in this discord

copper nacelle
#

which linked the discord

compact sedge
#

maybe I should put something on moddb since google lists that first

#

maybe lightbringer needs a lifeblood version

#

ree

copper nacelle
#

i mean

#

you can use the monomod detour version i made i guess

compact sedge
#

it was on the first page of google

copper nacelle
#

tbh i can't see any differences in the images

compact sedge
#

hold on let me get my microscope

#

because I can't either

#

oh if you look closely the butterflies have very slightly moved in the left image

copper nacelle
#

amazing

compact sedge
#

so excluding that, I guess 13 people then.

copper nacelle
#

13?

compact sedge
#

maybe 12 idk how to count

copper nacelle
#

sean, kein, firezen, wyza, me, 753, kerr, gradow, kdt, kcghost, maxtcc

compact sedge
#

You, the other number person, kdt, kerr, whoever made unending dreams, gradow, hollow niko, seanpr, firzen, and wyza

copper nacelle
#

other number person
corny

#

imo art doesn't count as modding

compact sedge
#

well if some of these people made art then idk

copper nacelle
#

niko made the art for enemy hp bars

#

like if we're counting modders imo don't count niko

#

if you're just counting contributors then count niko

compact sedge
#

ok so then 10, maybe 11 people

#

actually 10 since I think 0x0ade just made monomod which isn't HK specific

copper nacelle
#

11 - 12 imo

#

counting my list

#

you don't have kein on your list

compact sedge
#

oh sorry what did kein do?

copper nacelle
#

uhhh

#

original boss rush mod

#

idk about the rest

compact sedge
#

ahh ok makes sense

royal ridge
#

dmca

copper nacelle
#

i wasn't active on the server when he was around

compact sedge
#

did TC really send y'all a DMCA

copper nacelle
#

no

royal ridge
#

no kein did

#

for his mods

copper nacelle
#

Kein DMCA'd his mods

royal ridge
#

he left one day without reason

#

and dmca'd the mods

compact sedge
#

weird

copper nacelle
#

yeah

royal ridge
#

Yeah kein made Boss Rush and the original Debug mod

compact sedge
#

wait why would you send yourself a copyright infringement notice and not just... take it down

#

if it's your own mod

royal ridge
#

He sent it for us hosting it on the google drive

compact sedge
#

is this why most mods are open source now?

#

Because I think almost nobody here could actually send a DMCA notice if they wanted to

#

except, and I might be wrong, seanpr (but not on the modding API itself), maxtcc and maybe kcg, if idk they decided to for some silly reason.

copper nacelle
#

seanpr's stuff is open source

compact sedge
#

seanpr's stuff is not open source, the source code is available on github and they're a nice person who lets other people use it but they still reserve all copyright to their mods and included source code and could send a legally valid DMCA if they wanted.

copper nacelle
#

open source != free software

compact sedge
#

source code available != open source

#

idk

#

maybe I'm just using the wrong words

rain cedar
#

Really it is I just can't be bothered to put an open source license on it to be official about it

compact sedge
#

ok lol, thanks for the input on this I guess. I'm just saying you could technically decide to send a dmca if for whatever reason you wanted to.

rain cedar
#

I guess

#

But I won't

#

Also kein said shit in the iconoclasts server today

#

So he's alive at least

compact sedge
#

Well I'm glad he found a game he likes then I guess.

rain cedar
#

We'll see

buoyant obsidian
#

if anyone wants the Lightbringer code I'll provide it but beware, it's pure garbage

hollow pier
#

shitmodst code when

buoyant obsidian
#

I would never reveal the secrets behind my magnum opus

compact sedge
#

the code we've actually been waiting for

copper nacelle
#

imo you already posted it

floral furnace
#

srsly everyone would prefer shitmodst source or shitmodst 2 over gng

#

they just cant admit it

buoyant obsidian
#

If GNG comes out this month I might just be able to make Shitmodst 2

copper nacelle
#

stay woke

compact sedge
#

imo nothing you wrote in Lightbringer is worse than any of my code.

buoyant obsidian
#

but that's super dependent on when I end up moving this summer

floral furnace
#

having 5 nested if statements /s

compact sedge
#

I've hidden 5 nested if statements using functions

copper nacelle
#

iirc

floral furnace
#

well i did the hooks WITHOUT using other functions, so everything looks horrible

copper nacelle
compact sedge
#

Also in my roguelike I have a 4x nested for loop

copper nacelle
#

most of it is fine tho

#

like

#

i installed resharper

#

and it told me to wrap all of the lines

#

and make them ternary

buoyant obsidian
#

The prefab stuff is super gay yeah

copper nacelle
#

and this is with it wrapped and ternary

buoyant obsidian
#

eww I don't wanna touch ? : ever

copper nacelle
#

better than if else for all 50 of those imo

buoyant obsidian
#

maybe

compact sedge
#

I don't even want to post my code it makes me sad

copper nacelle
#

open source ez

compact sedge
#

it is but I know nobody reads source code anyway

copper nacelle
#

false

#

i read some of it

buoyant obsidian
#

experiencing other peoples shit code is what makes you a better modder

floral furnace
#

as long as you dont name each variable into
var1,var2,var3,var4 etc etc

copper nacelle
#

why do you have 50 readonly variables tho

buoyant obsidian
#

if you name variables like that just quit now :^)

floral furnace
#

or bool ifItsFalse; with those naming conventions

copper nacelle
#

Aaaaaaaaaaaaaaaaaa

buoyant obsidian
#

what's with that whitespace

copper nacelle
#

idk

compact sedge
#

ain't nothing wrong with readonly variables

#

that's the one part I think is good code

copper nacelle
#

that's just the stuff i got off the linked gdrive

floral furnace
#

remove whitespace they lower performance /s

buoyant obsidian
#

Oh that's not whitespace issues

#

that's just the fact that the final line is so fucking long

copper nacelle
#

lmao

compact sedge
copper nacelle
#

delet this

#

why are there four for loops

#

wtf

floral furnace
#

big O notation is just a suggestion

copper nacelle
#

O(n^4)

#

i actually can't tell how this does what it does

compact sedge
#

so basically in essence if you know what these math words mean I have an R2 -> R1 graph (2d input space, 1d output space), and I'm trying to combine all points that have the same output value and are also adjacent to each other into a vector.

copper nacelle
#

wouldn't 1d be a line

compact sedge
#

the output is 1d and represents the tile type

#

ie floor, hall, wall

#

etc

copper nacelle
#

o

compact sedge
#

the input is 2d coordinates

floral furnace
#

wait so is this a top down tile base roguelikes

compact sedge
#

that's what I am trying to eventually build when I have the spare time

#

the big O is awful but it's ok because it's only building a 20x80 map

#

or that's what I tell myself

copper nacelle
#

lol

compact sedge
#

Also two of the nested if statements are optimizing it so it runs faster, but in exchange the code looks worse

copper nacelle
#

have you seen rando's code

#

it looks so nice

compact sedge
#

I need good code to look at to cleanse my brain

copper nacelle
#

imo this looks nice

#

it's super readable

compact sedge
#

thank you

copper nacelle
#

i bet rando 2's code is even nicer

floral furnace
#

wait theres a 2nd randomizer?

copper nacelle
#

lifeblood rando is like

#

entirely rewritten

floral furnace
#

or is just that the enemy randomizer?

#

OHHH

#

did they rewrite shittons just for the sake of getting it working for lifeblood

copper nacelle
#

i think so

floral furnace
#

(also considering GnG wont be too much about changing the internal stuff like lifeblood, hopefully it doesnt break even more mods)

compact sedge
#

meh I hope GnG gets delayed because they do change a lot of the internal stuff to make it easier to mod

copper nacelle
#

i mean

#

less fsms and stuff would be great

#

but rewriting stuff is also annoying

#

worth it tho

compact sedge
#

GnG comes out and all objects in the game even unloaded ones from different scenes can be accessed and set active at any time.

#

And it's as simple as running GameObject.SetActive("Name")
and all the names for every object are available in a big text file with detailed comments about where they come from and what they do

#

then what

#

you gonna be sad then?

pearl sentinel
#

To make that happen all the enemy prefabs would have to be in an asset bundle and loaded at runtime

#

Which I don't see them doing

compact sedge
#

playmaker gets an update to make that happen without any work or reduced performance

#

what then

#

huh?

floral furnace
#

Too much work i guess

solemn rivet
#

next playmaker update - it's gone! Yay

copper nacelle
#

^

solemn rivet
#

the only update that could actually be good imo

compact sedge
#

"We've switched entirely to using C# scripting directly for everything" - TC announcement

pearl sentinel
#

Basically no enemies would be placed in scenes, placeholders would be instead that loaded from the asset bundle (streamed in) I think is how it would have to change

#

So yeah, to much work

solemn rivet
#

I mean

#

if

#

their usage of FSMs was minimal/sensible, there would be no issue

#

we can make do with a few fsms here and there

pearl sentinel
#

Which is why writing a system to create enemy game objects from serialization is the only realistic solution that removes the weird copy loading behavior

floral furnace
#

HealthManager was an fsm back then correct?

compact sedge
#

GnG comes out and you can add custom objects by just dropping them in a folder a la Kerbal Space Program, and they release a tool for easilly making them, which includes the ability to copy existing ones and modify them in any way.

copper nacelle
#

but tc has stuff like

#

hero jump particles are an fsm

solemn rivet
#

yeah it was, ttacco

pearl sentinel
#

No fsms make altering stuff easier

#

But if you want loading of random resources that's the best you could get

solemn rivet
#

I have a feeling Leth is listening on this convo

hexed vale
#

just looking through assembly-csharp, dont suppose anyone know where damage for stuff is kept? i wanna turn flukenest back into a 120 damage

solemn rivet
#

flukenest is fsm

#

so...

floral furnace
#

you get hit instance and jsut modify it if the player has flukenest equipped right? or would that affect each fluke

copper nacelle
#

new flukenest isn't fsm

solemn rivet
#

oh?

copper nacelle
#

in the new beta

#

iirc

compact sedge
#

Leth I will wait 3 years for GnG if by the end we get some real modding tools.

solemn rivet
#

is it actually in the assembly?

copper nacelle
#

yeah

#

i think

#

lemme grab the file

#

not in 1.3.1.5

solemn rivet
#

so it is

pearl sentinel
#

The way it is right now, scenes are basically asset bundles, so if you load a scene then you can save a reference to the resource in it. The main difference with an asset bundle is that you can open them without loading everything in it

solemn rivet
#

Kerr - can't you pool the inactive gameObjects using their transforms?

#

instead of loading each scene

rain cedar
#

I rewrote the randomizer because it was made like shit, not to get it to work on lifeblood

#

Could have updated the old one pretty easily, I imagine

floral furnace
#

wait what is burst in the spellfluke.cs supposed to be? the crest+fluke bomb?

solemn rivet
#

no

compact sedge
#

is this the real reason why you use the fluke spell so much 56 because it's programmed in assembly?

solemn rivet
#

seems to be the sequence for the flukes to explode

copper nacelle
#

imo i don't use fluke anymore

#

fluke garbage

solemn rivet
#
private void Burst()
{
    if (!this.hasBursted)
    {
        base.StartCoroutine(this.BurstSequence());
    }
    this.hasBursted = true;
}

private IEnumerator BurstSequence()
{
    if (this.meshRenderer)
    {
        this.meshRenderer.enabled = false;
    }
    if (this.body)
    {
        this.body.velocity = Vector2.zero;
        this.body.angularVelocity = 0f;
        this.body.isKinematic = true;
    }
    if (this.splatEffect)
    {
        this.splatEffect.SetActive(true);
    }
    this.splatSounds.SpawnAndPlayOneShot(this.audioPlayerPrefab, base.transform.position);
    yield return new WaitForSeconds(1f);
    base.gameObject.Recycle();
    yield break;
}
floral furnace
#

so the expiration if they dont hit something?

solemn rivet
#

well, it's set to true by default

#

Burst() is called twice

#

once after dealing damage

#
private void DoDamage(GameObject obj, int upwardRecursionAmount, bool burst = true)
{
    //stuff
    if (burst)
    {
        this.Burst();
    }
}```
#

once after it's expired

#
    private void Update()
    {
        if (this.hasBursted)
        {
            return;
        }
        if (!this.hasBounced)
        {
            Vector2 velocity = this.body.velocity;
            float z = Mathf.Atan2(velocity.y, velocity.x) * 57.2957764f;
            base.transform.localEulerAngles = new Vector3(0f, 0f, z);
        }
        if (Time.time >= this.lifeEndTime)
        {
            this.Burst();
        }
    }```
floral furnace
#

ahh i see i see

supple sigil
#

.

steep sail
#

Coding conventions for everyone!)

#

And... Can I download update for HPbars now through crossroads or it's not avialable?

manic zinc
#

So Say I had a new computer and I wanted to transfer my current hk save to my new one, could someone PM me instructions on how to do so?
my apologies if this isnt the suitable chat to ask

compact sedge
#

save paths are in pinned, just copy them over

manic zinc
#

ah alright

#

i'm not very good with transferring files

solemn rivet
#

@steep sail it's not on the drive yet. I'll post it here in a few hours

distant vale
#

Does anyone know of there's a version of Glass Soul for the current patch? The most recent version I can find is for 1.2.2.1.

young walrus
#

_guides

#

The any% guides have save file paths

solemn rivet
#

Boop

#

When you hit something

brave horizon
#

yeah, i found out, the readme-file was in the hollow_knight_data folder not next to it like most other mods, mb

young walrus
#

Current patch glass soul MOD is called "self discipline"

solemn rivet
#

See? Lawful evil

leaden hedge
#

tbh you can probably make that an api mod in 20 seconds lol

solemn rivet
#

iirc it did have an api port at some point

leaden hedge
#

it should just be

OnTakeDamageHook(){
    return PlayerData.instance.maxhp;
}

assuming glass soul is still just die in one hit,
but it increases damage too based on extra hearts iirc ๐Ÿค”

#

but thats also only a line

brave horizon
#

does anybody have trouble with the charming mod?

#

because i just got a bluescreen when i hit an enemy

solemn rivet
#

like

#

BSOD?

brave horizon
#

the windows 8 version of it

#

yeah

#

never had one before

solemn rivet
young walrus
#

charming mod?

solemn rivet
#

Dunno mate, might not even be the mod

brave horizon
#

true

solemn rivet
#

Anyway, send modlog and outputlog

young walrus
#

probably lack of resources. CPU or RAM

brave horizon
#

i probably overburdened it hollowsad

solemn rivet
#

Send logs mantiswhy

young walrus
brave horizon
#

that i find where? im sorry, im not well versed in that

solemn rivet
#

7/10 at best mick

young walrus
#

don't you hate on my logs

solemn rivet
#

One of them is in hollow_knight_data and the other one is in your saves folder

supple sigil
#

.

compact sedge
#

.

#

.

supple sigil
#

doot

compact sedge
#

I'm gonna ship you a giant escape key

supple sigil
#

no

buoyant obsidian
#

this.playerData.nailDamage += this.playerData.health + this.playerData.healthBlue - 4;

#
public void TakeHealth(int amount)
    {
        this.health = 0;
    }
#

There it is, glass soul.

fair rampart
#

so does hell mod make nail damage one and soul gain higher?

young walrus
#

nail dmg reduced, take more dmg, soul gain greatly reduced

#

basically it's a hard mode

#

spell dmg reduced

fair rampart
#

apparently dream shield is one notch in this mod

#

why though?

fair rampart
#

thanks much

iron crown
#

dream shield necessary buff

distant vale
#

Thanks all for the help, although I can't seem to find the Self-Discipline mod. I would update the code, but I have no idea how to make an APK or access that stuff so if someone could link me to the current version that would be great. Otherwise I'll just do a normal run quitting out when taking damage.

young walrus
#

That.... Is what the self discipline MOD is

#

You get hit, you quit

#

Aka... Self discipline

distant vale
#

Ah. The joke was unclear in text format and flew over my head. I was under the impression the Glass Soul Mod had been rebranded since the last update. Thanks!

compact sedge
#

you get hit, delete save file

bronze temple
#

you get hit, wipe disk

distant vale
#

Ah, thank you! Just for clarity, is this a pure '1 hit' file or does it include the damage amplification of the older version?

copper nacelle
#

latter

distant vale
#

Very cool, and much appreciated!

fair rampart
#

I have a question regarding the assets for the Gorb fight in Howling Cliffs. I've found the icons for his entry in the journal and his related battle and journal text, as well as the battle sound effects, but I don't know where to get the sprites that appear during battle. Does anyone know where I can find that?

copper nacelle
#

unity studio

fair rampart
#

Yeah, I'm using that.

#

That's how I got the sound effects and journal stuff. He's named Aladar in there, for some reason.

#

Also, strange notes there.

young walrus
#

so search aladar

#

and look for type: sprite

#

i can't remember if the sprite sheets had a different label. they might, but it should be pretty obvious

leaden hedge
mossy pike
#

gorb also seems to be named "brain-slug" when you look at the sprites in your left menu

supple sigil
#

.

fair rampart
#

Busy now, will look later. Thanks though.

steep sail
#

Does anyone encountered problem with using Flukes on 1.3.1.5 with enabled Modding API and EnemyHPbars mod?

#

They doesn`t deal damage

young walrus
#

against what

#

there's some enemies that fluke is bugged against

#

plus they super nerfed it

flat forum
#

wait, which enemies?

#

I haven't encountered such a problem

copper nacelle
#

cg2

young walrus
#

cg1

copper nacelle
#

thk now according to verulean

#

i think

young walrus
#

there might be others too b/c lifeblood

civic bough
#

What does the hook mod do

solemn rivet
#

it's a mod requirement, like the API

#

some mods require it

steep sail
#

I`ve encountered this versus Hollow Knight

flat forum
#

how does the game check for how much health is lost?

copper nacelle
#

wdym

flat forum
#

well

#

does the game check for empty masks

#

because

#

someone mentioned that based on health lost there's a way to make you gain attack

copper nacelle
#

wdym check for empty masks

#

there's a PlayerData health variable

#

and a maxHealth variable

flat forum
#

I'm confused

#

sorry

#

so

#

amount of masks lost can be calculated as "maxHealth - PlayerHealth = Lost masks"

#

like that?

copper nacelle
#

uhh

#

no

flat forum
#

how does the game find out how many masks you have lost

#

I'm trying to understand how a buff based on amount of health lost works

copper nacelle
#

like

#

amount of masks that are missing?

#

or amount of damage an attack does?

flat forum
#

yeah

#

how many masks are missing from your max health

copper nacelle
#

oh

#

yeah

#

you just do

#

PlayerData.instance.maxHealth - PlayerData.instance.health

#

there's also PlayerData.instance.healthBlue

flat forum
#

and a thing that buffs you based on lost health would be

Attack = Attack*(maxHealth - health)

#

or?

copper nacelle
#

that'd work

#

that'd be op af tho

flat forum
#

Ok

copper nacelle
#

also you wouldn't want 0 attack at max health

#

and stuff

flat forum
#

Attack = Attack + Attack*((maxHealth-health)/3)?

#

so this way

#

at max health your attack is the usual

rain cedar
#

That would stack

copper nacelle
#

^

flat forum
#

oh

#

Attack = Attack*((maxHealth - health)/3)

#

that one wouldn't tho, right?

rain cedar
#

Anything is going to stack if it's based on current attack

copper nacelle
#

set a variable to your attack on game load or something

#

then use that

flat forum
#

isn't base attack stored somewhere?

rain cedar
#

Nail upgrades is stored

#

As well as charms equipped

copper nacelle
#

5 + PlayerData.instance.nailSmithUpgrades * 4

#

i guess

flat forum
#

mhm

#

be back in a bit

flat forum
#

so, nail damage alone isn't stored anywhere?

#

how does Fragile Strength function then?

rain cedar
#

Nail damage is controlled by an FSM on the player's nail slash

#

Your base damage is just the nailDamage int in PlayerData

#

Or something like that now I'm doubting that's what it's called

#

But anyway the FSM can be gotten with

HeroController.instance.gameObject.transform.Find("Attacks/Slash").GetComponent<PlayMakerFSM>()```
compact sedge
#

it's weird because the code that's easy for you to edit is hard for TC to edit and the code that's hard for you to edit is easy for TC to.

solemn rivet
#

Oh, the duality of TC

solemn rivet
flat forum
#

Uuuuhh

#

@solemn rivet for some reason I can't extract it

#

says "Unknown Format or Damaged"

#

why does everything I want to mod need to be stored? I can't do that cryla

copper nacelle
#

need to be stored?

flat forum
#

Well

#

you said the attack needs to be kept as a different thing so it won't stack

#

Nil length as well

solemn rivet
#

Anyone else having that issue?

flat forum
#

I'll try redownloading it

copper nacelle
#

why can't you store it tho

flat forum
#

here

#

@copper nacelle I haven't worked with C#... or anything outside some small HTML stuff for that matter. Shortly - I understand not how to do it...

copper nacelle
#

reeeeeee

flat forum
#

sorry

copper nacelle
#

just use the after save load hook or any other hook that'd work

#

make a class variable called attack or whatever

#

and set it in the hook

solemn rivet
flat forum
#

newtonsoft?

solemn rivet
#

wut

flat forum
#

works fine

#

there was some newtonsoft.json.dll thing tho

solemn rivet
#

where?

flat forum
#

in the folder along the mod

#

it may have been from somewhere else, as I stored a few (2-3) other mods there as well

#

but I hadn't noticed it before downloading this one

solemn rivet
#

eh

flat forum
#

hmm

#

well

#

must have been from somewhere else

#

eh

torn fulcrum
leaden hedge
#

what don't you understand

solemn rivet
#

that seems pretty self explanatory

torn fulcrum
#

I sort of understand the skips part

#

but what is all bosses

solemn rivet
#

you have to beat all bosses

leaden hedge
#

shade skip = skips with your shade i.e. shade skip
acid skips are skips that involve crystal dashing over acid
spike tunnels are stuff like getting into ismas from the giant elevator
misc skip is other stuff
fireball skips is skips involving pushback from fireballs
mag skips are dumb practically tas only strats

#

QoL
salubra notches = you auto get charms notches when you have the required charms to buy them
lemm sell all = you sell all relics if you talk to lemm from right side iirc

#

restrictions are new afaik

#

probably just doesn't let you into black egg until you fulfil the criteria listed

torn fulcrum
#

alright

#

thanks

torn fulcrum
exotic venture
#

any examples of a mag skip?

void tree
solemn rivet
#

oh I thought that was considered a fireball skip

void tree
#

nah, but i'd imagine it would count as a tunnel skip + fireball skip if the final part with the puffers weren't as bad.

solemn rivet
#

what actually activates those puffers?

flat forum
#

which puffers?

#

I know that the Royal Waterways ones

#

get activated

#

by

#

ummm...

#

everything

#

any form of interaction with another entity activates them

void tree
#

the fireball iirc

solemn rivet
#

it kills one and that causes the other ones to puff?

leaden hedge
#

itemless thorns is a mag skip

compact sedge
#

I'm glad randomizer lets you play without having to do all these skips now.

leaden hedge
#

and the shape of unn skip too

solemn rivet
#

I'm pretty sure mag skips weren't part of the old rando, even in Hard

void tree
#

is shape of unn skip really a mag skip?

leaden hedge
#

might just be an acid skip

exotic venture
#

damn this seems pretty hard, don't recall ever having to do that

leaden hedge
#

itemless thorns is by far the hardest one

#

don't think anyone has done it real time

#

mag took several attempts to get it at 0.1x speed lol

exotic venture
#

considering there's only 1 item there, and also considering the requirements to get there the only real reason to go there is if it's cdash

#

and even then there's the possibility of just getting ismas

#

same goes with that shade skip to ancient basin

#

the only reason to go there is because of the lack of cdash

#

since you can't finish the game any% nmg without it

#

and as dash and doublejump are interchangeable in use, uhhhh

void tree
#

there's a way to skip cdash, if you have fireball + shade cloak + dashmaster + spell twister

#

and sharp shadow and double jump

exotic venture
#

i was like "wait what really"

#

but yeah with dash and doublejump i can see it being doable...

#

but even then, you can get either use cdash or ismas

leaden hedge
#

whens the update that lets us pogo off acid

exotic venture
#

because the only real need for cdash is in the teacher's archives, yeah?

#

so cdash and ismas can be used interchangeably in any% nmg

leaden hedge
#

theres very few uses besides acid skips for cdash either way

#

theres like ddark and a djump

exotic venture
#

yeah... but i'm trying to figure out reasoning for doing specific skips to get somewhere

#

doing tough-as-nails combos when lacking two or more essential items for one (probably) essential item doesn't add up to me

void tree
#

It's all about sequence breaking the logic, unless you're on mag difficulty

exotic venture
#

since you can probably do the skip required much easier with the other missing essential items

void tree
#

Gaining the upper hand if you're doing a race

exotic venture
#

even if it's a race, there's very few items that require you to jump through such loopholes with such a specific set of items

#

like, as if there's absolutely no other option to get there

#

and even then i doubt that

#

let's say, for example, that you need to get to ismas tear for dreamnail

#

worst case scenario

#

because that thing is 100% needed to finish the game

void tree
#

true, but there can be situations where you have claw and dreamnail after the first 20 minutes, the logic intends you to get shade cloak to get djump to get cdash, and isma's happens to be at glowing womb

exotic venture
#

you have the option to do the skip you just described

#

or get fireball + cdash, or even ismas tear itself

void tree
#

So you could be good to go after 30 minutes, or follow the logic and be able to complete the game after 1:10

exotic venture
#

which basically nullifies the challenge required

#

and even if one of those essential items is also locked behind a mag skip, you still have the other option left

void tree
#

it's not very likely, but doing that one hard skip doesn't take that long if you can do it

exotic venture
#

this can be reasoned all the way back to the essentials where it definitely requires you to jump through such hoops

#

but if it's not either mantis claw or dreamnail i doubt there would be use for such skips

#

only, and only if both of those are locked behind mag skips, and the ways to "cheese" them are locked behind insane ways to get them, are they relevant

#

but i'd like to hear your opinion on that, really

#

so djump is required for cdash

#

hm

#

also if you have claw and dreamnail, isn't getting dash and fireball enough to get to ismas

void tree
#

mag skips would never be 100% necessary, unless you're playing with mag skips on, of course there would be a way around it but I think we're looking at it from two different perspectives, I'm interested in knowing that you could theoretically finish a seed much faster than otherwise by doing a mag skip, not that you have to do them to progress

#

you'd need double jump as well for isma's

#

The logic will always ensure that you never have to do a mag skip if you didn't enable them, but that doesn't mean that you can't do them if you're tenacious enough, and you might get rewarded for it.

exotic venture
#

might

#

the chance of that is pretty low though

void tree
#

yeah, but there's a chance

exotic venture
#

could also get another damn charm

#

idk if the chance will pay out considering you just need 4 items to finish the game

#

5 if nmg

void tree
#

most likely doesn't, but you never know ๐Ÿคท

#

plus the skips themselves are fun to execute imo, so i don't mind doing them when i get the chance

exotic venture
#

i mean don't let my boring ass logic ruin your fun then!

void tree
#

Logic is meant to be broken happygrub

exotic venture
#

that's the main creed of speedrunning all right

fair rampart
#

I have a question about the SpriteDump mod. When I press F10, the game doesn't dump any sprites anywhere. It just starts stuttering. I don't think I have any read/write permissions disabled, so I don't know what's going on.

exotic venture
#

have you checked the place where it should be dumping sprites

fair rampart
#

It doesnโ€™t generate the folder.

exotic venture
#

try making the folder?

#

or run hollow knight as administrator

compact sedge
#

where is the folder supposed to be?

leaden hedge
#

save folder

#

/sprites

compact sedge
#

that should be accessable by non-admin

fair rampart
#

I thought so too, but maybe the stuttering is the game trying to do something and failing.

#

Iโ€™ll be away from my computer for about 30 minutes, so Iโ€™ll try again then.

leaden hedge
#

the lag is it rendering a 2048x2048 texture to a render texture, copying every byte back to a sprite, converting that to a png, hashing that so it doesn't dump sprites multiple times and then saving it ๐Ÿค”

fair rampart
#

Whatever it was, verifying the game files and reinstalling things worked.

cosmic comet
#

So... I beat the path of pain and want to do it again (Im one of the few people who actully ENJOYED the PoP)

#

But it appears as if it is locked away after you beat it

#

Is there a way to get it back?

exotic venture
#

you can noclip through the wall

cosmic comet
#

How do you get a noclip cheat?

exotic venture
#

there is, in the pins, the modding api

#

if you install that with a mod called Debug Mod

#

you can select in the nicely created menu "noclip"

#

and clip right through the wall

cosmic comet
#

Oke

#

TY!

exotic venture
#

if you need instructions on how to install it, there is a step by step guide in the pins too

#

be sure to get the right version!

cosmic comet
#

Thank you! ๐Ÿ˜„

#

Im %100 going to go for a PoP hitless run now XD

#

AFTERRR ALOT OF PRACTICE XD

exotic venture
#

good luck!

cosmic comet
#

TY ๐Ÿ˜›

#

My friend wants to play MC for a bit but I will do the PoP hitless practice soon xD

#

Bye ๐Ÿ˜›

#

And TY! ๐Ÿ˜„

rain cedar
#

๐Ÿ˜›

scenic slate
#

make a hollow knight minecraft mod

copper nacelle
#

_pleaseban @scenic slate

scenic slate
#

so u can play both

copper nacelle
#

a

#

n

scenic slate
#

I'm suprised I wasnt banned the milisecond I joined

#

I've done many sinful things

compact sedge
#

and that suggestion wasn't one of them

solid wagon
#

@rain cedar Lemm still bugged in Randomizer?

rain cedar
#

I'm not putting items in his shop

#

So kinda no

#

Haven't fixed the underlying issue, just working around it

solid wagon
#

okay just cause Sharp Shadow was in there in the most recent version

#

so i wasn't sure if that happening was intentional

#

wait did i forget to update

#

i downloaded it

#

now i gotta make sure i actually put it in the folder

#

oh FUCK scratch that i just forgot to put the dll in the folder

#

lmao

compact sedge
#

Is there an FSM State Action to spawn an arbitrary object that I can add to an FSM state?

#

wait, can I just add any function under the sun to an FSM state? (needs to be an FSM State Action)

#

I'm trying to take a state containing a SpawnObjectFromGlobalPool and have it instead spawn an object I have stored.

pearl sentinel
#

Can't you just take the game object reference in that action and set it to your own game object

compact sedge
#

things that didn't work:

given GameObject obj and SpawnObjectFromGlobalPool[] spawnObjs

spawnObjs[0].storeObject = obj
spawnObjs[0].gameObject = obj
#

neither worked

pearl sentinel
#

Sometimes another fsm action will set the variable on other actions

#

What other actions are on the state

compact sedge
#

GameObjectIsNull, FaceObject, Tk2dPlayAnimationWithEvents, and DecelerateV2 are all run before that action on that state.

pearl sentinel
#

Yeah those won't set anything

#

Did you check the action to see which variable has the prefab it spawns

compact sedge
#

hold up let me look at the other dump I have

#

wow ok that dump doesn't seem that helpful nvm

#

or at least idk what I'm supposed to be looking for

pearl sentinel
#

The name of a prefab that it spawns

compact sedge
#

is that of type GameObject?

pearl sentinel
#

A prefab is a game object that typically exists in Resources and not in the scene

compact sedge
#

ahh yeah

#

I know the name and it's not set in a variable just set there as part of the action.

#

I think

pearl sentinel
#

Try doing a Resources.FindObjectsOfTypeAll

#

With UnityEngine.Object for the generic type

compact sedge
#

ok

pearl sentinel
#

Just to see if that name shows up in the dump

#

Warning: list will be huge

compact sedge
#

do I need to run this after the object is spawned?

pearl sentinel
#

Nope

#

You should be able to find it as long as the scene that uses it is loaded