#archived-modding-development
1 messages · Page 485 of 1
i took a big spike hitbox and just resized it a bunch of times
Mhm. It's what I assumed
make your own hitbox or something
The problem is though, the hitbox in King's pass is not an actual rectangle
It's 2 in 1 object
that's nice
which one
The only hitbox I was able to find was _Props_Spike 1 iirc
Let me check just in case
This one _Props\Cave Spikes (1)
where did you find it?
It's from Tutorial_01, King's pass scene
I think they mean what program
are you using the text files
Oh, yeah. HKedit2 and the extracted text files
the hit box i used was cave spikes
no number
there are multiple spikes with the same name
it picks the first one
not sure how to deal with that
i think so
yay
Finally a spike hitbox
eat the spike
yay
YAY SPIKES
Can't wait to litter them everywhere
And I think it's the size of the decoration as well
I'm going to try to make assetbundled spikes when I get the chance
Sorry I don't know what that means
And I'm not gonna try to guess cuz I'm gonna sound stupid lol
idk
It will come in incredibly useful
ok
ok
Ok, for anyone curious the feature I was thinking of is not in the debug mod it's a separate mod called 'Show Hitboxes', go figure
Mhm it's what I thought too
But it's just for enemies
From what I saw at least
Oh no, these collisions are definitely not spike sized
Good to know
lol
how do i edit the sprite png to make a new skin for CustomKnight?
would firealpaca will suffice?
i didnt really figure out how to use the spritepacker
Have you watched the vid in pins?
I can't believe 56 doesn't know every art program in existence
i did but i didnt get how to get the files to work with it
i dont have to money for photoshop haha 😅
so yeah. didnt reall get how to use it
Please teach me Sid
teach what
what's the difference between the circle and the line, I don't get it
a circle is a line in the shape of a circle
So judging by the fact that you can create a custom switch gate and toll gates with the item placer with relative ease, I'm assuming it's not all that difficult to do in actual mods. Problem is I couldn't find anything about it on the documentation, so if someone could tell me how it's done it'd be greatly appreciated.
If you need to just preload the objects I'm a bit worried that this will affect the other actual switches that were preloaded or won't open the gate properly, and what if I want to create multiple in a room? So I'd like to clear some of these questions up
Hm. I guess I'll do that
So I've encountered something odd, I can't preload the lever or gate objects
Preloading other objects works fine
But for some reason whenever I try to preload any lever object my mod doesn't load
Your mod is failing to load because of an exception. It may be a good use of time to review common exceptions, like performing operations on a null object or requesting a key not present in a dictionary. It is not failing because of any issue with the preloader.
You can use try/catch blocks and logging to identify the exact exception that is occurring. We will not be able to guess what the mistake in your code is.
Hrm. Well it worked with the lever from the cross roads.
Oh and btw, I was literally just trying to preload the objects, that's it
I didn't actually do anything with the preloaded object, that's why I was confused
Yeah so I made switch gates
They reset once you reload the room, but I think that makes it even better for what I'm trying to do
why
^more context on that image
i fucking hate you
Yeah looking at the video I think it's something to do with hazard respawn but someone else should look too
yea idk why it’s like that, 56 looked into it but couldn’t figure it out
it actually doesn't load the additive scene
and i unironically don't know why
it's just BeginSceneTransition
works fine if i do it with the debug savestates
which literally do the same thing
because i took the code from them
it checks entry gate apparently
just set it to dgate
@unborn flicker btw GameManager::FadeSceneIn might work better for the gg transitions
Didn't test godhome specifically but for general scene transitions it seemed to work
bruh
why are you bruhing me khan
he's bruhing your mom not you
bruh
) :
good
What the fuck how can you hate yusuf
Yusuf I love you
Friendship ended with Sid
i am sorry, it has to be like this
Is there a way to edit the fsms for every enemy of one type in the game
I believe the only way to do that is to check for the enemy every time the knight enters a new scene and edit it
...ok
prob want OnColliderCreate if the enemies are spawned in arenas or anything fwiw
I am new to modding and I am trying to make a simple mod that increases the nail damage each time when the player attacks.
The problem is after I had increased the 'PlayerData.instance.nailDamage', it did not actually change the nail damage in the game.
Is there a way to update it?
PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");
It shows an error which says 'PlayMakerFSM' does not contain a definition for 'BroadcastEvent'
reference Playmaker.dll
It works, thanks
np
np
np
np

i actually do tho
the boss rush mod doesn't work anymore
56 didn't even fix it
i just want 56 to fix it


Me neither
@mossy saddle dont advertise
Sorry
hello! im just starting out with modding hw and i was following 56's tutorial, but i keep getting this error and im not sure what it means, can anyone help me?
using Modding;
namespace Test
{
public class Class1 : Mod
{
public override void Initialize()
{
Log("Initializing test mod.");
}
}
}
it means you have a reference to windows forms
which it's trying to load
but that isn't part of hk so it dies
@surreal sable
so how would i go about removing that reference?
So I'm doing an FSM edit and I'm trying to make Crystal Guardian's jumps cause shockwaves, and it doesn't work. Setting the gameObject = shockwave, to gameObject = minion1 works fine and vengeflies spawn as they should. Now I assume this is because the Shockwave requires additional parameters problem is, I don't know how to set them.
These are a few of the parameters that I've found but don't know how to set
Specifically I've been having trouble with the name of the object
Aka the gameObject parameters
you need to store the object somewhere if you are doing it that way
Oh, you mean preload it with the rest of the preloaded objects?
wdym
you need to store the object somewhere if you are doing it that way
What do you mean by this? Do I need to preload the Shockwave object at initialize?
Because I tried doing this as well gameObject = new FsmGameObject("Shockwave Wave"), and it didn't work either
Aight, @ me when you're back
because it is a gameobject not a fsm gameobject
I'll edit your screenshot to show you what I mean
I can give the code in plain text if it helps
I'm editing the screenshot of the fsm to better tell you what is happening
Aha, alright then
Yeah go on
you need to preload the boss that the fsm is on
then
you need to get that exact object from the fsm
it's the shockwave gameobject
Ok, so do I need to preload Crystal Guardian, or the enemy I'm getting the shockwave from?
the enemy this fsm is from
Aha, yeah I've done that
ok
After that?
hold on
@compact cobalt is that the entire fsm state you sent in that screenshot?
I specifically need to know if there is anything above the first action in it
The fsm viewer or my code?
fsmviewer
It's just the FSM for Husk Guard in Crossroads_48. Hold up let me send it
ok
Here it is
Although I doubt it matters much judging by the names, although I might be wrong
AudioOneShotPlayerSingle is the title of the first one
You can't see it in the screenshot
Land
ok
you need to do something like this to get the object
Shockwave = preload.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value;
that instead of var shockwave = new FsmGameObject("Shockwave Wave [8,63]");?
yeah
yeah
you are supposed to put the preloaded object in place of that
I didn't get to see where you put it after preloading
Oh, so the Zombie Guard?
yeah
or did I misunderstand?
you need to put in the zombie guard
wait
I also forgot something
you need to instantiate the object
The shockwave?
UnityEngine.Object.Instantiate(preload.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value);
Ok, so after I do this do I need to make the additional fsm edits or will this work?
I'll have to try it a bit later though, will you still be here?
Thanks a bunch!
np
?mods
Mods
Google Drive with Mods - https://drive.google.com/drive/folders/0B_b9PFqx_PR9Um9MeFZMV21oWGs
Installer - https://radiance.host/mods/ModInstaller.exe
Mod Summaries - https://docs.google.com/document/d/1cz5tcggpGofrBcM90XyTkMWjMelDHzugvQM6HpB13Ew
it's on the installer
Alright I'm back
So what I've got so far is:
var minion1 = GameObject.Instantiate(Hollowed_Mode.preloadedGO["ZombieGuard"]);
minion1.SetActive(true);
UnityEngine.Object.Instantiate(minion1.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value);
var shockwave = minion1.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value;
boss.GetComponent<HealthManager>().hp = 35;
PlayMakerFSM bossFsm = boss.LocateMyFSM("Beam Miner");
bossFsm.InsertAction("Land", new SpawnObjectFromGlobalPool()
{
gameObject = shockwave,
spawnPoint = boss,
position = new Vector3(0f, -0.9f, 0f),
rotation = new Vector3(0f, 0f, 0f),
storeObject = shockwave
}, 0);```
And it still doesn't work, but there's progress
I have found some stuff that is problematic in your code
Go on
hold on
try to use add action instead of insert action
bossFsm.AddAction("Land", new SpawnObjectFromGlobalPool()
{
gameObject = UnityEngine.Object.Instantiate(preload.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value),
spawnPoint = boss,
position = new Vector3(0f, -0.9f, 0),
rotation = Vector3.zero,
storeObject = Shockwave
});
Is the rest fine?
well, you can delete the other stuff with the code I gave you before
since it is now in addaction
So this should work? Even if the other states are missing?
Hrm. Problem is though, storeObject = Shockwave gives an error if I don't have a variable by that name
replace it with the gameobject variable that will store the shockwave
I'll make SetScale for you
Aight. Thanks again, I appreciate all the help
bossFsm.AddAction("Land", new SetScale()
{
gameObject = Shockwave,
vector = new Vector3(0, 0, 0)
x = 1.25,
y = 0,
z = 0,
everyFrame = false,
lateUpdate = false
});
again replace shockwave with your variable to store the object
I'm getting errors with the variable
yeah
How exactly do I define it?
just do public GameObject Shockwave; and it will work
bossFsm.AddAction("Land", new SetFsmBool()
{
gameObject = Shockwave,
fsmName = "shockwave",
variableName = "Facing Right",
setValue = true,
everyFrame = false
});
there is the next one
here is the last one
bossFsm.AddAction("Land", new SetFsmFloat()
{
gameObject = Shockwave,
fsmName = "shockwave",
variableName = "Speed",
setValue = 18,
everyFrame = false
});
after those, it should work
So uh... sorry but I still don't get how I'm supposed to define the variable
I'm still relatively new to this so you'll have to forgive me
ok
so just paste public GameObject Shockwave; outside of the method
show me a screenshot of your code(also show me slightly above and below)
any triple grave formatting
I'm so confused. So I just put public GameObject Shockwave; outside of private void OnSceneChanged(UnityEngine.SceneManagement.Scene from, UnityEngine.SceneManagement.Scene to) that's what I needed to do, right?
yes
And do I just leave the gameObject = Shockwave, or do I replace it with something, I didn't really get that part
yes
now that you have the public gameobject Shcokwave; put in you should keep it the same
So I just keep gameObject = Shockwave?
Cuz it doesn't work
what's the error?
try changing public GameObject Shockwave; to public GameObject Shockwave = new GameObject("shockwave");
???
Wait what? Member with same name defined. I'm sure I don't have one like that
oh
Let me try and change it anyway
maybe you have one with the same name as a local variable?
Well I changed it but it still doesn't work. The error is gone at least, but there are errors in the fsm edits
hold up I'll send them
Cannot convert type 'UnityEngine.GameObject' to target type 'HutongGames.PlayMaker.FsmOwnerDefault'
Right, I didn't even say. It's on the gameObject = Shockwave on the fsm states you sent me
ok
let me check mine
wait
@compact cobalt fixed it
bossFsm.AddAction("Land", new SetScale()
{
gameObject = new FsmOwnerDefault()
{
OwnerOption = OwnerDefaultOption.SpecifyGameObject,
GameObject = Shockwave
},
vector = new Vector3(0, 0, 0),
x = 1.25f,
y = 0f,
z = 0f,
everyFrame = false,
lateUpdate = false
});
bossFsm.AddAction("Land", new SetFsmBool()
{
gameObject = new FsmOwnerDefault()
{
OwnerOption = OwnerDefaultOption.SpecifyGameObject,
GameObject = Shockwave
},
fsmName = "shockwave",
variableName = "Facing Right",
setValue = true,
everyFrame = false
});
bossFsm.AddAction("Land", new SetFsmFloat()
{
gameObject = new FsmOwnerDefault()
{
OwnerOption = OwnerDefaultOption.SpecifyGameObject,
GameObject = Shockwave
},
fsmName = "shockwave",
variableName = "Speed",
setValue = 18f,
everyFrame = false
});
if that doesn't work I have another idea
gl
It still doesn't work and I am very very confused
Why would shockwaves be so complicated to implement?
The only thing I could imagine being wrong now is the position vector here:
bossFsm.AddAction("Land", new SpawnObjectFromGlobalPool()
{
gameObject = UnityEngine.Object.Instantiate(minion1.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value),
spawnPoint = boss,
position = new Vector3(0f, -0.9f, 0),
rotation = Vector3.zero,
storeObject = Shockwave
});```
Although, I did double check, that's the difference from the crystal guardian's position compared to the floor
maybe they are being summoned to low?
Maybe the z coordinate matters more than I thought?
try making logs
in between adding the fsm stuff
and use qol and vasi
then check your modlog
I'm actually so mad. Everything was properly loaded according to the log so I figured that the object (Zombie Guard's Shockwave) is the problem, so I tried to load Soul Master's shockwave instead and now nothing loads, despite the mod having no errors. At this point I'm just venting.
I'm taking a short break and I'll see what I can do to fix it
Ah dang man, that sucks, hopefully you can get that sorted out
Hopefully
Hi. N00b here. Actually not mod developer. I am helping the HK wiki to debug how the Joni blue masks are calculated. So far we see there should be a function named GameManager.UpdateBlueHealth() and we believe the logic should live in there. Could anyone tell me how to get the source code of that function? Or if it's convenient enough for you, could anyone send me the file? My goal is to read that source code and understand the logic and thus can update the wiki accurately.
(Also terribly sorry if this is not the right place for this question. In that case I will appreciate a pointer of redirection if you will.)
😍
Thank you so much! BTW, LOL the username - I asked "Could anyone", and there you go
lol
public void UpdateBlueHealth()
{
this.playerData.UpdateBlueHealth();
}
Could you be kind enough to give the PlayerData file, too? (And to save some back-and-forth trouble, any core logic file that you think might be concerned.)
I was about to say that
oh okay there is a more scalable way. nice
Or ilspy
@vocal spire is there already instruction of downloading dnSpy or ilspy?
Now start making mods!
Now start making mods!
@vocal spire K I will think about it 😄
lol
thx for the pointer 🙂
Also, do we have a charm enum -> charm name mapping somewhere?
E.g. I want to know what's charm_23 and also what's Joni's number.
Got it! thx @vocal spire
Np
Speaking of apidocs
I just added the scene making video on to there along with the problems SFG found with it. Also added LoadFromStream() and fixed the bug on the hooks page where code was running off the window.
awesome
I think I’ll get my boss tutorial out this week!
Please do, and please include how to do shockwaves I still can't get it to work
Propeller Knight uses them
https://github.com/SalehAce1/Propeller-Knight/tree/master/PropellerKnight
Propeller Knight uses them
https://github.com/SalehAce1/Propeller-Knight/tree/master/PropellerKnight
I know and I've been trying to recreate them
And uh, no luck
Preload ("Ruins1_24_boss", "Mage Lord")
then do
private void SpawnWave(bool faceRight)
{
PlayMakerFSM lord = PropellerKnight.preloadedGO["wave"].LocateMyFSM("Mage Lord");
GameObject go = Instantiate(lord.GetAction<SpawnObjectFromGlobalPool>("Quake Waves", 0).gameObject.Value);
go.transform.localScale = new Vector2(1.5f, 1f);
PlayMakerFSM shock = go.LocateMyFSM("shockwave");
shock.FsmVariables.FindFsmBool("Facing Right").Value = faceRight;
shock.FsmVariables.FindFsmFloat("Speed").Value = 22f;
go.SetActive(true);
go.transform.SetPosition2D(gameObject.transform.position.x, gameObject.transform.position.y-0.2f);
}
this is actually not the best way to do it
but it should it work
the waves also need to be on the ground or they won't spawn
oh yea ^^
so you want to change this line
go.transform.SetPosition2D(gameObject.transform.position.x, gameObject.transform.position.y-0.2f);
Aight I'll check it out later, can't rn
But I think I pretty much did the same thing
Oh, no this won't work, I'm trying to edit FSM
So unless I can call functions in FSM, this won't work or at least I don't think it will
you can
Oh, how?
Uh, I can't see anything about sub-programs there
InsertMethod
I cannot believe Saleh put a warning and then pr'd modcommon without fixing it
I didn't feel like it ok
Also do the shockwaves need to be EXACTLY floor level right?
plus, isn't Vasi a thing now?
OHH I should make a guide for that
vasi has it right because when I break someone else's mod for using it I won't care
EYEmMIKE, not exactly, they need to touch the floor
So a bit in it is fine?
yea
Alright let me try this now
I'm in for the "Vasi will break one day" ride
ok so I cant do a tutorial on vasi
I mean you can
I'll just up the major version eventually and break something
I just don't want it to become something I never touch again because if I change anything 80 mods break
no
wait so why would you expect me to change modcommon's insertmethod method when it will break a lot of mods
oh yea
I would probably rewrite modcommon's fsmutil but I already rewrote it with a different abi is my point
I can't change it there because no one's going to bother
I don't want it to be the case with a library I wrote myself for myself
Holy shit it actually works
I almost can't believe it
Dude you have no idea how much you've helped me out
If I want to make it travel both ways, i just add another one and do faceRight = false yeah?
if you were using true before yeah
This was me when I did it for the first too 
but please read the docs more carefully next time 
I guess I’ll use shockwave spam for my next boss mod
but please read the docs more carefully next time
Yeah I honestly have no idea how I missed that my first time through. Thanks for the help!
I guess I’ll use shockwave spam for my next boss mod
cough Grey Prince Zote cough
That was probably TC's mindset when they designed that boss
Imagine vengefly king with shockwaves
Hmmm I'm stealing that
Aha, yeah I thought you already did
Nice, it's gonna be a massive help to people like me who are just learning how to mod
how does a roar create ground shock waves
Be sure to share it, I'd love to see what you've made
Idk
how does a roar create ground shock waves
why not
Just insert method
at least make it slam into the ground
^
And don’t question
That would be better
gruzzfly king
Nah, idk how to properly edit random events
In Uuwuu I just replaced original attacks over and over again
In lifeblood master I just chained multiple of the different phases for more attacks
I see. Also question, why lifeblood master?
Are bees connected to lifeblood in any way?
Don’t ask about the name
Or was it just cool?
lifeblood update added bee boss
I let other people come up with better reasons for me
lifeblood update added bee boss
@ornate rivet not the real reason but another better one
Also yeah learn random events so I don't have to and you can just tell me
I haven’t seen other mods do it though. If you know a mod that does, I would like to know how to
Well, y'know I'm still a newbie to all of this so I wouldn't really know
I assume Pardoner Fennel does it?
DoH
I do
DoH?
Daughter of Hallownest
Ok
I thought I looked at those
idk how to properly edit random events
wdym
just remove it and add your own method then
Yeah

I didn’t think of it when I made Uuwuu and lm
Thanks for clarifying that I should still use methods instead
A lot
From what I know
Idk
I haven’t looked at boss fsms in a while
I think crystal guardian uses it
That’s where I tried to edit it
Ok
Just remove it and add a method to do it instead?
I tried that and it didn’t work
Crystal guardian just got stuck in a staring battle with me
Ok
Please tell me if I’m dumb
lol
idr if I threw it in modcommon
ah
lmao
Thanks
I’ll include both ways in the boss tutorial
If I can get the courage to use my voice
Ok
lol
I’ll probably use my voice though
I just need to write and rehearse a script
Is there where I would ask about how to dive into the code of the game?
So I'm looking this in ILSpy, is there a way to figure out the actual effect?
Yeah I was trying to figure out how much soul you get when taking damage while Grubsong is equipped, and got to that
That may be in a fsm or something
Yeah, that's actually how I found it
I could track the actual amount of soul before and after getting hit... just wondered if there was a way to find it without doing that
I mean if you found the int you could analyse uses and see methods which use it
Or if you analyzed AddMPCharge you could see what adds soul and where
The TakeDamage is the only thing that uses GRUB_SOUL_MP and the picture above is where it's used there
Yeah
just log it while in game
yeah
You can get ModConsole if you don't want to build anything
Just HeroController.instance.GRUB_SOUL_MP
Well that was easier than I thought it'd be; I guess the game just sets various ints when you boot it up or something?
maybe it's in a fsm?
in assets I assume
Thank you both!
who
Why do they want access to the mod summaries?
If I have questions about the accuracy of values that I data-mined, should I ask here?
My game seems to say that ATTACK_DURATION and ATTACK_DURATION_CH are 0.35 and 0.28 respectively. The Wiki page for Quick Slash seems to say those values are actually 0.36 and 0.25: https://hollowknight.fandom.com/wiki/Quick_Slash
It also seems to say that DASH_COOLDOWN and DASH_COOLDOWN_CH are 0.6, and 0.4 respectively. The Wiki page on Dashmaster says the charm reduces the time by 50%: https://hollowknight.fandom.com/wiki/Dashmaster
It also seems to say that NAIL_CHARGE_TIME_DEFAULT is 1.35. The Wiki page on Nailmaster's Glory says it is 1.75: https://hollowknight.fandom.com/wiki/Nailmaster's_Glory
Oh wow, thank you!
Do you happen to have the length of the nail when using no charms, Longnail, Mark of Pride, and both? I was looking but what I found was some coding I couldn't entirely understand
Hmm alright, guess it was my not understanding the code that confused me then. I thought it was 1.20, 1.30, and 1.50 respsectively
Longnail length*(1/1.15) = normal length
should be good enough maths
Yup, I guess the formula just make it look like it's 1.20
How do a create a mod?
you don't
you eat c#
Very helpful community
read this first
and you can navigate through the website on your own
you would want dnSpy to look at the game's code and fsmviewer as decent portion of the game is coded with fsms
as for the ide, you would want either visual studio (which is free) or rider (it's paid but you can get it if you are a student)
tho i do recommend learning basic c# if you don't know it already, it will help greatly
Ok thank you.
I'm having a bit of trouble getting double damage to work, or well rather, custom damage
I tried to do this, but it doesn't work
DamageHero dmg = boss.GetComponent<DamageHero>();
dmg.damageDealt = 2;```
dump the object (ref modcommon, using ModCommon; boss.PrintSceneHierarchyTree(); file is in mods folder)
might be on a child and you use GetComponentInChildren
If it's old it might be on an fsm
Yeah I tried GetComponentInChildren and it didn't work so it might be in fsm
It's for the Vengefly King, so it very well might be
Although I didn't see anything like that in the fsm. How would the fsm action be called?
no it would just be an fsm called "damages_hero"
Aha. Aight then I'll look for it
If you have a dump I can take a look rq
either works tbh
Yeah I do, it's from the GG_Scenes, hold up
Here it is
Although I tried it on multiple enemies and none of them worked, that's why I think the problem is in my coding
Most of them were bosses with complex fsm, so that might be why
Mhm. So how would I change it? I can't find damageHero in the fsm viewer. Still relatively new to changing FSM I've just changed 5 boss AIs so far and I haven't seen anything damage related in any of them
did you check logs?
I'd bet on it not finding the game object and then throwing on the next line
Didn't use logs yet since I thought I'd get it first try. That's probably it, or I'm trying to modify an incorrect parameter/component
It actually was FSM, this ended up doing it bossFsm.GetAction<SetDamageHeroAmount>("Intro Roar Antic", 6).damageDealt = 3;
Yay
Yay indeed
Now for another thing, I'm trying to modify the damage that shockwaves do, but just because of HK mechanics that might be impossible?
I haven't looked at the FSM of the shockwave object so I might be wrong on that one
Aren't they the same object?
Not Traitor Lord's shockwaves
Just regular shockwaves that False Knight, Husk Guards, Zote do for example
Can their damage be modified, or is it hard coded? Needless to say this doesn't work
x.damageDealt = 2;```
Aight
Yeah same thing, I don't know where the FSM would be
I want to change it though, because on bosses that do 2 masks of damage it's just bad when you can get away with only taking 1 damage because of the shockwave
I know Zote shockwaves do more than 1 damage, but I think that just might be a global modifier to all sources of damage like Radiant and Ascended difficulty are
Hm. Actually I might just do that
If there's no way to modify shockwave damage, I'll just modify all of the enemies' damage to be 1 and then just change the damage modifier when entering the room
Modifying shockwave damage would still be a much cleaner solution though
Oh
Do tell
Hm. Alright let me try that
I messed up something in my function, can you take a look?
{
PlayMakerFSM lord = Hollowed_Mode.preloadedGO["Soul Master"].LocateMyFSM("Mage Lord");
GameObject go = GameObject.Instantiate(lord.GetAction<SpawnObjectFromGlobalPool>("Quake Waves", 0).gameObject.Value);
go.transform.localScale = new Vector2(scale, scale);
PlayMakerFSM shock = go.LocateMyFSM("shockwave");
shock.FsmVariables.FindFsmBool("Facing Right").Value = faceRight;
shock.FsmVariables.FindFsmFloat("Speed").Value = speed;
PlayMakerFSM shockFsm = go.LocateMyFSM("Spawn");
var shockFsmVar = shockFsm.FsmVariables;
shockFsmVar.GetFsmInt("Damage").Value = 3;
go.SetActive(true);
go.transform.SetPosition2D(posX, posY);
}```
Yeah I know that, I'm just doing this for testing purpuses
It doesn't though, the enemies just softlock when I have this method inserted in the AI
Where did you find the fsm?
Maybe I'll be able to see what I'm doing wrong
Hm. Then I guess I'll have to switch from Soul Master's shockwaves to GPZ shockwaves
Actually, hold up
Is that variable in GPZ's fsm or in GPZ Shockwave's FSM?
mhm. Alright then I'll have to take a closer look
Alright so there's a thing I actually can't explain. I modified Brooding Mawlek's FSM in the Crossroads without any problems, I've tested it and it works perfectly. Problem is whenever I try to change Mawlek's FSM in Godhome it just doesn't work. The room loads, other changes (like adding in preloaded objects) work absolutely fine, and even the object according to the logs gets loaded successfully, but if I try to modify them or change their FSM the rest of the code is just ignored. Why could this be happening?
It's not like the FSM is different for the 2 different Mawleks, in fact I edited the one in Crossroads just by looking at the FSM of the one in Godhome, so I really have no idea why this is happening
wait until the object is loaded
do something like this
private static IEnumerator AddComponent()
{
yield return null;
yield return new WaitWhile(() => !GameObject.Find("bossname"));
GameObject.Find("bossname").AddComponent<Boss>();
yield break;
}
then make the fsm edits in place of addcomponent or make a monobehavior that does the edits
I'll try it out
How do I begin modding, like what software language etc
Can someone explain to me why this doesn't work, cuz I'm losing my mind
You have to call StartCoroutine(waiter()) on a MonoBehaviour
Alright, will that make the code afterwards (even if it's not in the monobehaviour) execute after the wait is finished?
Is there literally, no other way to just wait 2 damn seconds before executing the code?
There's no way to block unless you're in a coroutine
Great
56, if you can help me in any way, then by all means finish what you were typing
it was a joke
idk why you're just incrementing the local scale though
it would look better if you lerp'd
Idk I just wanted to try anything to see of it worked
I'm new to unity scripting, but it seems very silly that there is no simple wait command
God, the typos
I guess I'll have to write monobehaviours, but it's stupid that I need to do that just because the damn mawlek object appears 2 seconds after room load
there's just the search bar
You can filter by class member and within an assembly
If that's the only problem you could do something like
private IEnumerator WaitForMawlek()
{
mawlek = null;
while (mawlek == null)
{
mawlek = Object.Find("WhateverMawlekIsCalled");
yield return null;
}
foundMawlek = true;
}```
So I'm looking around using FSMView and ILSpy trying to find the formulas for Fury of the Fallen, Unbreakable Strength, and Grubberfly's Elegy but not having much luck. I found this, but that's about it. Does anybody know where I'd find them?
I don’t think they are used in any scenes so you can’t view those fsms
Does that mean I can't find them or there's some other program/method?
You probably can’t find them
@jolly oriole Has helped me out; all is well, thank you again
np
lol
Hello!
Where I can get the Glacier Knight Skin - Cold as Ice - Custom Skin by dreamlike?
#archived-modding-help If it's not in the folder with custom knights then ask here
I did the most messy solution ever but at least the mawlek works now
Haha mood

but really, how come utiny ripper cant properly export script files
even dnspy can do that
why cant utiny do that

what's the problem with that
it would be nice if it decompiled all the script files for me
I'm going to have to replace a ton of script files if I do that
it sounds like effort

If you're just doing that there's an option in dnspy's GUI too
just file -> export to solution
do you happen to have a helper class for making new maps too 
can't wait
That video isn't for a mod (although I would love to make an abyss mod one day), it's for a guide I'm making on editing scenes
death 
then hyped I shall be
Good luck grenade
How do I get the scene's music to play properly? I keep getting this error
[ERROR]:[UNITY] - NullReferenceException: Object reference not set to an instance of an object
[ERROR]:[UNITY] - AudioManager+<BeginApplyAtmosCue>c__Iterator0.MoveNext ()
[ERROR]:[UNITY] - UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
[ERROR]:[UNITY] - UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
[ERROR]:[UNITY] - AudioManager:ApplyAtmosCue(AtmosCue, Single)
[ERROR]:[UNITY] - SceneManager:DMD<SceneManager::Start>(SceneManager)
[ERROR]:[UNITY] - SceneTutorial.LoadScene:SceneManagerOnStart(orig_Start, SceneManager)
[ERROR]:[UNITY] - MonoMod.Utils.DynamicMethodDefinition:DMD<DMD<Hook<SceneManager::Start>?187075584>?-862727808::Hook<SceneManager::Start>?187075584>(SceneManager)
Right now i set the scenemanager properties of the original scene to the new one
foreach (FieldInfo fi in typeof(SceneManager).GetFields())
{
fi.SetValue(self, fi.GetValue(SceneTutorial.sm.GetComponent<SceneManager>()));
}
remove the old one, yes?
didn't saleh have modding staff
no?
also any Vasi
I haven't looked at vasi yet
better modcommon
far better
like 100x at least
neither have i
because effort
:feelsokayman:
he is slowing turning into me
don't worry about it
what do you think of this one
how do you get them
it's owo what's this image host
it's invite only, but i already used my invite on someone else

replacing the gamemanager didn't work
I meant scenemanager
my bad
I'm guessing I wasn't doing it early enough
I hooked to scenemanager's Start() and replaced the self with
orig(SceneTutorial.sm.GetComponent<SceneManager>());
now it works

yea but it doesn't matter
right?
true
wtf it doesn't work anymore
It doesn't give the error though
Here is another instance of why doesn’t it work anymore
all the effects (breaking objects, spike tink, etc) only work once, after that, the material breaks (turn pink)
and I still dont know how to stop the godhome music
it doesn't stop playing the music from the previous scene
I thought copying the abyss's sm stuff was supposed to fix it
abyss_09
yea, I tried dirtmouth too
thx
ahhh that explains why switching to the real scene didn't fix the music either
thanks!
editing scenes is so much fun once all the technical issues are fixed
it's really satisfying
Is editing scenes just moving stuff around in hkedit or something like that?
not hkedit but with the unity project utiny ripper makes
working on a doc for it rn
https://radiance.host/apidocs/EditScene.html
Cool!
all I have to do now is get the water working and I'm done
Yay
lol
wdym, text telling you where to go without knowing where to go without a link is perfect
yessir
lol
Yay
it will help yall make the arenas so it is Pale Court work
Do You Not Remember That You Are But A Slave To Others' Expectations Of The Mod
sounds kinky
thanks
can't wait to enslave every hollow knight player by making harder versions of maps
Should I be scared
but it does
https://youtu.be/O_nSYGb6BCQ
thanks for reminding me to add that 
welp
can't you just place a new gateway thing to one of the new scenes in kings pass then connect all of the new scenes?
yea
yay
oooooooooooooo
i am proud
Would it be better to make a new SFCore section?
I'm planning on doing a vasi one eventually if 56 doesn't
do you want me to put that zip on the modinstaller SFG?
okie
Does it have any dependencies like modcommon?
yay
I don't need to update charm helper anymore
I wonder what happened to them
So we just do everything the same except don’t have our own charm helper class?
Cool
I will take that as a no
ok
just make a new .rst file
then add its name to the index.rst file
@copper nacelle add a search bar to modinstaller 2 pls
SFCore should be on the modinstaller now, test it to make sure
yay
lol
why are you asking yourself
does any person know how to make an enemy such as watcher knight not have a special dying animation?
or possibly change it?
change the fsm?
You can make hyperlinks with
`Text <https://radiance.host/apidocs/Assets.html>`_
@jolly oriole
you can do that too
but that's kinda annoying
How much faster/less memory intensive is preloading objects from the same scene compared to getting them from different ones
ughhhhh
I moved the section to after PlayMakerFSM instead of at the very end
ah whoops, thanks for telling me
ah it just needed an empty line before you start bulleting
Added it, thanks SFG! 🎊
https://radiance.host/apidocs/SFCore.html
we better start getting high tier mods now
ToT when


I might make a mod that replaces boring charms with stuff like laser beams and grimm attacks
that sounds cool
maybe just make new charms though?
new charms are easy to make
yeah, that's why you do that and not replace old one
oh yea I meant new charms
that seems fun to make
:macebug: when
thats glorious, and somewhat concerning
thank you, it's beautiful
cool that we can replace those sprites, are you working on adding to the map?
good luck also if you are able to do it, are you going to make it into a helper class?
cool
u r cool
?
are they ok?

if it crashes will you be kind of mad or really mad?
ok
yay
good job!
the world has forever changed
lol
because why wouldn't they
......why?.....

yaaaaaaaaaaaaayyyyyyyy
awwwwwwwwwwwww
ancient basic or custom fits surprisingly well with deepnest
that does seem like it could be useful to access that
well
makes it seem like it could kind of be useful
can you not just reflect
I would say that but I didn't want to accidentally be dumb if I said the wrong thing
we better start getting high tier mods now
Me: makes one-hit kill mod
too simple
we must MURDER the player with new/modded bosses and have soooo many maps and new stuff that they must to 99999% the game
mod that adds an addition 337% to the game, another path of pain, and an all modded bosses pantheon?
sounds fun
I haven't modded in a while (aka like 2 weeks), so this may be a stupid question, but after summoning the primal aspid, how would i activate it? would i just use fsm.SetState("Init")
nvm, I think I got it
Hey creators of Pale Court I found a leak in here
?
wdym
if youre talking about the old build that redfrog leaked a while ago we know
from?

I can show you if you want
yes?
sure
Woah orange knightmere, congrats
the whole isma fight is "leaked" if we go by that definition
we posted it here a long time ago
yea
nvm, I think I got it
@fallow wind Actually can you tell me as well?
Been trying to activate Primal Aspids with no luck, because if you're modding, but can't spam primal aspids, then what's the point amirite?
so i haven't tried it yet due to my messed-up scedule, but i think you just send the "finished" event or something
don't take my word for it
Can't hurt to try
Hello, I created a mod that turns your life into hell, huh,and to be honest, it just changes the characters of the main character a little
(This is my first mod,do not judge strictly)
Changes:
- player mobility has been increased
- the jump height was increased
- the player's health was reduced from 5 to 3
(Many thanks to @vocal spire for introducing me to C# and creating mods)
i think it was originally 3 masks
when team cherry first started
i'm not judging it, it's much better compared to my first mod
(which basically turns the game into nothing but an annoyance)
(which basically turns the game into nothing but an annoyance)
Thank you for advice
? I meant my mod
Oh, I'm sorry, I don't know much English
it's fine
fsm viewer keeps crashing...
that's sad
One bug I notice, and fairly big: the mod doesn't do anything to revert health when you uninstall it, and I don't think it accounts for extra masks retroactively. Disabling it leaves the file with 3 masks, so anyone playing with this right now should be sure not to test it on a main file.
another thing: Sprintmaster slows you down with this.
i thought I told them to make it faster......
I noticed that they did that
and told them that
just hook getint
there's no need to set stuff when literally every access to a pd field is detoured
if you bundle multiple scenes then the scene bundles shouldn't have duplicate assets?
ok that's what I meant.
is there a way to stop unity from automatically including the same dependencies across multiple bundles?
ok I just dragged all the auto dependencies into a separate bundle
hopefully this works
What are the reasons for the screen in my new scene being entirely black
the camera's state is fine
ok camera being far off is correct I think, because it's set to locked instead of following
well freak
that didn't fix it
oof
I have begun the long process of using utiny
I saw someone else tried to do something like that and it didn’t work
Maybe you need to add the event?
Like add it to the state?
In the play maker editor, adding the event to the state and adding a transition are 2 different things
that looks awesome!
Wow, that’s awesome!
utiny finally finished
damn 3 hours
why tc
why make a spiderweb
when you can make a good, understandable, neat fsm
it's not a question of how not to. it's a question of how to make it less
unity is still opening the exported project.......

Yessss unity loaded
I can make my pop mod finally....
*easily make
fixing errors
fixed
time to violently murder players with my pop/wp remix
going to include your abyss edit too bc it looks cool
what's the easiest way to edit things like sound assets?
hey saleh, on the editing scenes guide I was matching my lighting settings but I seem to have an setting not described there called Ambient mode in the environment lighting section what should I set it to?
nvm
it disappeared after I did some other stuff later on
lol
prepare for another new path of pain(probably going to be connected to my modded boss pantheon mod when I make it)
y'al put the PoPs in other rooms pls
no
PK be like "time to put all my hidden treasures in the same room"
either way grenade you probably want to use new Hook(MethodInfo, MethodInfo)
can loop over stuff and call the constructor
With hook's constructor you can just use a Func/Action instead of the custom delegates and avoid having to repeat methods
Closest example I have is this
Which does a bunch of simple IL hooks which can be used repeatedly on multiple methods
You can also do Hook(Delegate, Delegate) or Hook(MethodInfo, Delegate) but delegates need an explicit type conversion from method group
but it's good for functions which return functions to generalize behaviour
Wait wheres the quick map fsm
I didn't know that existed but I actually need to look at that
Knight pickup?
Ah it's still awful
Epic
I have a switch that is pretty much just the Check Area spiderweb and was looking to replace it but I was a fool to think TC would have a better method
the light house room in the abyss doesn't work for some reason
and by that I mean, my screen is black
I can move around and I spawn in the correct, non-negative area
racism
trying out something, if that doesn't work I'll send the dll
ok the problem is the camera
it's weird because the camera and camera lock are in the exact same position the original and new scene but for some reason it doesn't work the same way in the edited scene
yes
I'm also having a problem with the lighthouse room
I placed a gate there but I spawn below everything. I know the gate is in the correct spot because when I go to the place where I placed it a screen transition still takes place
but when I go back the room seems to load and I can hear the sawblades(I placed the entrance in white palace) but I can't pause or control the knight
yaaaaaaaay
I'll post the code here
if (self.sceneName == "White_Palace_06")
{
CreateGateway("RedFrogPOP",
new Vector2(10f, 17f), new Vector2(1f,4f),
"RORA1", "right test",
true,false,
GameManager.SceneLoadVisualizations.Default);
}
else if (self.sceneName == "RORA1")
{
Modding.Logger.Log("MADE1");
CreateGateway("right test",
new Vector2(0.5f,26f), new Vector2(1f,4f),
"White_Palace_06", "RedFrogPOP",
true,false,
GameManager.SceneLoadVisualizations.Default);
base.StartCoroutine(blurplane());
Modding.Logger.Log("MADE1");
}
rora1 stands for road of redfrog abyss 1
also I can get back to the scene by using the water in it
so I know my scene loads


