#archived-modding-development

1 messages · Page 485 of 1

compact cobalt
#

why do you need to make the saws transperant?
Just aestetics, saws don't fit in the Crossroads for example

trim totem
#

i took a big spike hitbox and just resized it a bunch of times

compact cobalt
#

Mhm. It's what I assumed

vocal spire
#

make your own hitbox or something

compact cobalt
#

The problem is though, the hitbox in King's pass is not an actual rectangle

#

It's 2 in 1 object

vocal spire
#

that's nice

trim totem
#

which one

compact cobalt
#

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)

trim totem
#

where did you find it?

compact cobalt
#

It's from Tutorial_01, King's pass scene

vocal spire
#

I think they mean what program

trim totem
#

are you using the text files

compact cobalt
#

Oh, yeah. HKedit2 and the extracted text files

trim totem
#

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

compact cobalt
#

oh yeah found it

#

And it's definitely a hitbox

#

Is it a perfect rectangle?

trim totem
#

i think so

compact cobalt
#

Perfect! Let me try it out

#

Yep that's it

vocal spire
#

yay

compact cobalt
#

Finally a spike hitbox

vocal spire
#

eat the spike

compact cobalt
#

yay
YAY SPIKES

#

Can't wait to litter them everywhere

#

And I think it's the size of the decoration as well

vocal spire
#

I'm going to try to make assetbundled spikes when I get the chance

compact cobalt
#

Sorry I don't know what that means

#

And I'm not gonna try to guess cuz I'm gonna sound stupid lol

compact cobalt
#

Aha

#

Wait, there was a way to activate all collisions with Debug mod right?

vocal spire
#

idk

compact cobalt
#

It will come in incredibly useful

vocal spire
#

ok

compact cobalt
#

I'll just look around for it

#

It will come in incredibly useful
ok
lol nice

vocal spire
#

ok

compact cobalt
#

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

vocal spire
#

lol

#

debug does have a show hitboxes feature

compact cobalt
#

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

vocal spire
#

lol

floral fractal
#

how do i edit the sprite png to make a new skin for CustomKnight?

copper nacelle
#

¿

#

photoshop or something bro

floral fractal
#

would firealpaca will suffice?

copper nacelle
#

I have literally no idea what this is

#

so probably

knotty monolith
#

Anything that does transparency

#

Also use spritepacker to not go insane

floral fractal
#

i didnt really figure out how to use the spritepacker

knotty monolith
#

Have you watched the vid in pins?

fair rampart
#

I can't believe 56 doesn't know every art program in existence

floral fractal
#

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

safe hamlet
#

0, 1

#

just that good

blissful burrow
#

Please teach me Sid

safe hamlet
#

teach what

unborn flicker
#

what's the difference between the circle and the line, I don't get it

languid goblet
#

a circle is a line in the shape of a circle

compact cobalt
#

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

young walrus
#

look at the source code for plando

#

see how homothety does it

compact cobalt
#

Hm. I guess I'll do that

compact cobalt
#

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

unborn flicker
#

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.

compact cobalt
#

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

compact cobalt
#

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

copper nacelle
safe hamlet
gilded lotus
#

i fucking hate you

blissful burrow
#

Yeah looking at the video I think it's something to do with hazard respawn but someone else should look too

safe hamlet
#

yea idk why it’s like that, 56 looked into it but couldn’t figure it out

copper nacelle
#

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

copper nacelle
#

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

trim totem
#

bruh

safe hamlet
#

why are you bruhing me khan

ornate rivet
#

he's bruhing your mom not you

vocal spire
#

bruh

safe hamlet
#

modding is so toxic

#

i hate modders

#

all of them

#

yes even 56

vocal spire
#

) :

ornate rivet
#

good

blissful burrow
#

What the fuck how can you hate yusuf

#

Yusuf I love you

#

Friendship ended with Sid

safe hamlet
#

i am sorry, it has to be like this

fallow wind
#

Is there a way to edit the fsms for every enemy of one type in the game

ornate rivet
#

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

fallow wind
#

...ok

copper nacelle
#

prob want OnColliderCreate if the enemies are spawned in arenas or anything fwiw

torpid epoch
#

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?

copper nacelle
#

PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");

torpid epoch
#

It shows an error which says 'PlayMakerFSM' does not contain a definition for 'BroadcastEvent'

copper nacelle
#

reference Playmaker.dll

torpid epoch
#

It works, thanks

safe hamlet
#

np

safe hamlet
#

i need help with my mod

#

can someone help me

floral furnace
#

np

copper nacelle
#

np

weak lodge
#

np

trim totem
safe hamlet
#

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

copper nacelle
blissful burrow
vocal spire
#

Me neither

gilded lotus
#

@mossy saddle dont advertise

mossy saddle
#

Sorry

surreal sable
#

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.");
            }
    }
}
copper nacelle
#

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

surreal sable
#

so how would i go about removing that reference?

copper nacelle
compact cobalt
#

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

vocal spire
#

you need to store the object somewhere if you are doing it that way

compact cobalt
#

Oh, you mean preload it with the rest of the preloaded objects?

vocal spire
#

wdym

compact cobalt
#

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?

vocal spire
#

no

#

I'll help in a min

compact cobalt
#

Because I tried doing this as well gameObject = new FsmGameObject("Shockwave Wave"), and it didn't work either

#

Aight, @ me when you're back

vocal spire
#

because it is a gameobject not a fsm gameobject

#

I'll edit your screenshot to show you what I mean

compact cobalt
#

I can give the code in plain text if it helps

vocal spire
#

I'm editing the screenshot of the fsm to better tell you what is happening

compact cobalt
#

Aha, alright then

vocal spire
#

I should probably talk more about the blue area

#

@compact cobalt

compact cobalt
#

Yeah go on

vocal spire
#

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

compact cobalt
#

Ok, so do I need to preload Crystal Guardian, or the enemy I'm getting the shockwave from?

vocal spire
#

the enemy this fsm is from

compact cobalt
#

Aha, yeah I've done that

vocal spire
#

ok

compact cobalt
#

After that?

vocal spire
#

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

compact cobalt
#

The fsm viewer or my code?

vocal spire
#

fsmviewer

compact cobalt
#

It's just the FSM for Husk Guard in Crossroads_48. Hold up let me send it

vocal spire
#

ok

compact cobalt
#

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

vocal spire
#

ok

#

I just needed to know how many were before the first one in the first screenshot

compact cobalt
#

That's all of them

#

Right below the last one is the shockwave one

vocal spire
#

ok

#

also

#

what's the name of the fsm state this is

compact cobalt
#

Land

vocal spire
#

ok

#

what's the name of the fsm?

compact cobalt
#

Zombie Guard-Zombie Guard

#

So that's just Zombie Guard

vocal spire
#

ok

#

you need to do something like this to get the object

#

Shockwave = preload.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value;

compact cobalt
#

that instead of var shockwave = new FsmGameObject("Shockwave Wave [8,63]");?

vocal spire
#

yeah

compact cobalt
#

aight, let me try that

#

preload doesn't work

vocal spire
#

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

compact cobalt
#

Oh, so the Zombie Guard?

vocal spire
#

yeah

compact cobalt
#

or did I misunderstand?

vocal spire
#

you need to put in the zombie guard

#

wait

#

I also forgot something

#

you need to instantiate the object

compact cobalt
#

The shockwave?

vocal spire
#

UnityEngine.Object.Instantiate(preload.LocateMyFSM("Zombie Guard").GetAction<SpawnObjectFromGlobalPool>("Land", 7).gameObject.Value);

compact cobalt
#

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?

vocal spire
#

yea

#

probably

#

to both

#

I'll make some for you

compact cobalt
#

Thanks a bunch!

vocal spire
#

np

patent zealot
#

?mods

vocal spire
#

it's on the installer

compact cobalt
#

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

vocal spire
#

I have found some stuff that is problematic in your code

compact cobalt
#

Go on

vocal spire
#

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
});

compact cobalt
#

Is the rest fine?

vocal spire
#

well, you can delete the other stuff with the code I gave you before

#

since it is now in addaction

compact cobalt
#

So this should work? Even if the other states are missing?

vocal spire
#

no

#

but

#

just do what the other states do

#

they should work perfectly fine

compact cobalt
#

Hrm. Problem is though, storeObject = Shockwave gives an error if I don't have a variable by that name

vocal spire
#

replace it with the gameobject variable that will store the shockwave

#

I'll make SetScale for you

compact cobalt
#

Aight. Thanks again, I appreciate all the help

vocal spire
#

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

compact cobalt
#

I'm getting errors with the variable

vocal spire
#

yeah

compact cobalt
#

How exactly do I define it?

vocal spire
#

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

compact cobalt
#

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

vocal spire
#

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)

fair rampart
#

any triple grave formatting

compact cobalt
#

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?

vocal spire
#

yes

compact cobalt
#

And do I just leave the gameObject = Shockwave, or do I replace it with something, I didn't really get that part

vocal spire
#

yes

#

now that you have the public gameobject Shcokwave; put in you should keep it the same

compact cobalt
#

So I just keep gameObject = Shockwave?
Cuz it doesn't work

vocal spire
#

what's the error?

compact cobalt
#

Even the variable doesn't declare properly

#

Hold up

vocal spire
#

try changing public GameObject Shockwave; to public GameObject Shockwave = new GameObject("shockwave");

compact cobalt
#

???
Wait what? Member with same name defined. I'm sure I don't have one like that

vocal spire
#

oh

compact cobalt
#

Let me try and change it anyway

vocal spire
#

maybe you have one with the same name as a local variable?

compact cobalt
#

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'

vocal spire
#

oh

#

I think I know where that is

#

can you see exactly where the error is

compact cobalt
#

Right, I didn't even say. It's on the gameObject = Shockwave on the fsm states you sent me

vocal spire
#

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

compact cobalt
#

Alright let me try it

#

It compiled successfully, now I have to try it in game

vocal spire
#

gl

compact cobalt
#

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

vocal spire
#

maybe they are being summoned to low?

compact cobalt
#

Maybe the z coordinate matters more than I thought?

vocal spire
#

try making logs

#

in between adding the fsm stuff

#

and use qol and vasi

#

then check your modlog

compact cobalt
#

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

warm copper
#

Ah dang man, that sucks, hopefully you can get that sorted out

compact cobalt
#

Hopefully

mellow stag
#

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

vocal spire
#

lol

mellow stag
#
    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.)

safe hamlet
#

just download dnSpy

#

it's much easier to navigate around

vocal spire
#

I was about to say that

mellow stag
#

oh okay there is a more scalable way. nice

vocal spire
#

Or ilspy

unborn flicker
#

I don't know what you're looking for in the code

mellow stag
#

@vocal spire is there already instruction of downloading dnSpy or ilspy?

vocal spire
#

Just look it up

#

Download it

#

Open the .exe

mellow stag
#

👍

#

This group is so helpful.

vocal spire
#

Now start making mods!

mellow stag
#

Now start making mods!
@vocal spire K I will think about it 😄

vocal spire
#

lol

mellow stag
#

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.

vocal spire
#

In the pins

#

Or in another channel’s pins

mellow stag
#

Got it! thx @vocal spire

vocal spire
#

Np

ornate rivet
#

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.

vocal spire
#

Yay

#

I think I’ll get my boss tutorial out this week!

ornate rivet
#

awesome

compact cobalt
#

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 notlikequirrel

ornate rivet
compact cobalt
#

And uh, no luck

ornate rivet
#

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

fair rampart
#

the waves also need to be on the ground or they won't spawn

ornate rivet
#

oh yea ^^

#

so you want to change this line
go.transform.SetPosition2D(gameObject.transform.position.x, gameObject.transform.position.y-0.2f);

compact cobalt
#

Aight I'll check it out later, can't rn

#

But I think I pretty much did the same thing

compact cobalt
#

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

ornate rivet
#

you can

compact cobalt
#

Oh, how?

compact cobalt
#

Uh, I can't see anything about sub-programs there

ornate rivet
#

InsertMethod

compact cobalt
#

Mhm

#

Well this makes things much easier

#

I don't know how I missed it

copper nacelle
#

I cannot believe Saleh put a warning and then pr'd modcommon without fixing it

ornate rivet
#

I didn't feel like it ok

compact cobalt
#

Also do the shockwaves need to be EXACTLY floor level right?

ornate rivet
#

plus, isn't Vasi a thing now?

copper nacelle
#

Same but I'm not the one calling it incredibly questionable

#

shaking my head

ornate rivet
#

OHH I should make a guide for that

copper nacelle
#

vasi has it right because when I break someone else's mod for using it I won't care

ornate rivet
#

EYEmMIKE, not exactly, they need to touch the floor

compact cobalt
#

So a bit in it is fine?

ornate rivet
#

yea

compact cobalt
#

Alright let me try this now

blissful burrow
#

I'm in for the "Vasi will break one day" ride

ornate rivet
#

ok so I cant do a tutorial on vasi

copper nacelle
#

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

ornate rivet
#

wait so why would you expect me to change modcommon's insertmethod method when it will break a lot of mods

copper nacelle
#

800 years of legacy code no thanks

#

just add another one shaking my head

ornate rivet
#

oh yea

copper nacelle
#

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

compact cobalt
#

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?

copper nacelle
#

if you were using true before yeah

compact cobalt
#

yep

#

There has never been a man more excited about shockwaves than me lol

ornate rivet
#

This was me when I did it for the first too shroompog

#

but please read the docs more carefully next time garmond

vocal spire
#

I guess I’ll use shockwave spam for my next boss mod

compact cobalt
#

but please read the docs more carefully next time garmond
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

vocal spire
#

Imagine vengefly king with shockwaves

compact cobalt
#

How would that work?

#

Unless you add a new attack of course

vocal spire
#

Just have a place for shockwaves

#

Whenever vengefly roars

#

Shockwaves appear there

compact cobalt
#

Hmmm I'm stealing that

vocal spire
#

No you aren’t

#

My boss tutorial is vengefly

#

I already made it

compact cobalt
#

Oh, nice

#

Did you upload it yet?

vocal spire
#

Double vengefly spawns 5x faster

#

No

#

I’m going to make the tutorial first

compact cobalt
#

Aha, yeah I thought you already did

vocal spire
#

No

#

I haven’t uploaded anything in a month

compact cobalt
#

Nice, it's gonna be a massive help to people like me who are just learning how to mod

ornate rivet
#

how does a roar create ground shock waves

compact cobalt
#

Be sure to share it, I'd love to see what you've made

vocal spire
#

Idk

compact cobalt
#

how does a roar create ground shock waves
why not

vocal spire
#

Just insert method

ornate rivet
#

at least make it slam into the ground

compact cobalt
#

^

vocal spire
#

And don’t question

compact cobalt
#

That would be better

ornate rivet
#

gruzzfly king

compact cobalt
#

Since you show how to also add a new attack

#

That'd be awesome

vocal spire
#

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

compact cobalt
#

I see. Also question, why lifeblood master?

ornate rivet
#

well learn it

#

how else will you teach it

compact cobalt
#

Are bees connected to lifeblood in any way?

vocal spire
#

Don’t ask about the name

compact cobalt
#

Or was it just cool?

ornate rivet
#

lifeblood update added bee boss

vocal spire
#

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

compact cobalt
#

Also yeah learn random events so I don't have to and you can just tell me

vocal spire
#

I haven’t seen other mods do it though. If you know a mod that does, I would like to know how to

compact cobalt
#

Well, y'know I'm still a newbie to all of this so I wouldn't really know

#

I assume Pardoner Fennel does it?

ornate rivet
#

DoH

vocal spire
#

Those are monobehaviors

#

Oh

#

Should have known

ornate rivet
#

you dont want to look at that though

#

pale prince

vocal spire
#

I do

compact cobalt
#

DoH?

ornate rivet
#

Daughter of Hallownest

vocal spire
#

Ok

compact cobalt
#

Oh daugher of hallownest

#

Yeah, I remembered

vocal spire
#

I thought I looked at those

ornate rivet
#

pale prince does it better, or lost lord for simpler code

#

what can you not do rn?

vocal spire
#

I’ll go back and look at those

#

?

ornate rivet
#

idk how to properly edit random events
wdym

vocal spire
#

I tried to edit SendRandomEventV3

#

And it didn’t work

ornate rivet
#

just remove it and add your own method then

vocal spire
#

Oh

#

I was doing that

#

lol

ornate rivet
#

ok so what's wrong then

#

you should be able to add new attacks then

vocal spire
#

Yeah

ornate rivet
vocal spire
#

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

copper nacelle
#

idr if I threw it in modcommon

#

ah

#

lmao

vocal spire
#

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

limber storm
#

Is there where I would ask about how to dive into the code of the game?

vocal spire
#

Wdym by that

#

Do you mean modding or just looking at the code

limber storm
#

So I'm looking this in ILSpy, is there a way to figure out the actual effect?

vocal spire
#

Are you looking at a single integer?

#

Also wdym again

limber storm
#

Yeah I was trying to figure out how much soul you get when taking damage while Grubsong is equipped, and got to that

vocal spire
#

That may be in a fsm or something

copper nacelle
#

did you analyse uses?

#

iirc that's used in HeroControlle::TakeDamage

limber storm
#

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

copper nacelle
#

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

limber storm
#

The TakeDamage is the only thing that uses GRUB_SOUL_MP and the picture above is where it's used there

copper nacelle
#

yes

#

I don't get it

#

oh like the value of the int?

limber storm
#

Yeah

copper nacelle
#

just log it while in game

vocal spire
#

yeah

copper nacelle
#

You can get ModConsole if you don't want to build anything

#

Just HeroController.instance.GRUB_SOUL_MP

limber storm
#

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?

vocal spire
#

maybe it's in a fsm?

copper nacelle
#

in assets I assume

limber storm
#

Thank you both!

copper nacelle
vocal spire
#

Why do they want access to the mod summaries?

limber storm
#

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!

blissful burrow
#

God I love the wiki

#

Never wrong

limber storm
#

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

west ridge
#

Longnail length*(1/1.15) = normal length
should be good enough maths

limber storm
#

Yup, I guess the formula just make it look like it's 1.20

fair rampart
#

How do a create a mod?

safe hamlet
#

you don't

vocal spire
#

you eat c#

rain cedar
#

Very helpful community

safe hamlet
#

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

fair rampart
#

Ok thank you.

compact cobalt
#

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;```
copper nacelle
#

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

compact cobalt
#

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?

copper nacelle
#

no it would just be an fsm called "damages_hero"

compact cobalt
#

Aha. Aight then I'll look for it

copper nacelle
#

If you have a dump I can take a look rq

compact cobalt
#

Dump of the object or the room?

#

It's kinda the same I suppose

copper nacelle
#

either works tbh

compact cobalt
#

Yeah I do, it's from the GG_Scenes, hold up

#

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

copper nacelle
#

Yeah it has a damage hero

#

probably need to wait a frame

compact cobalt
#

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

copper nacelle
#

it's not an fsm is what I mean

#

you can see the component in the dump

compact cobalt
#

Aha, I misunderstood.

#

Hm. So why doesn't it work?

copper nacelle
#

did you check logs?

#

I'd bet on it not finding the game object and then throwing on the next line

compact cobalt
#

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

compact cobalt
#

It actually was FSM, this ended up doing it bossFsm.GetAction<SetDamageHeroAmount>("Intro Roar Antic", 6).damageDealt = 3;

vocal spire
#

Yay

compact cobalt
#

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

compact cobalt
#

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

vocal spire
#

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

compact cobalt
#

I'll try it out

calm mesa
#

How do I begin modding, like what software language etc

pseudo geode
compact cobalt
#

Can someone explain to me why this doesn't work, cuz I'm losing my mind

rain cedar
#

You have to call StartCoroutine(waiter()) on a MonoBehaviour

compact cobalt
#

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?

rain cedar
#

There's no way to block unless you're in a coroutine

compact cobalt
#

Great

#

56, if you can help me in any way, then by all means finish what you were typing

copper nacelle
#

it was a joke

#

idk why you're just incrementing the local scale though

#

it would look better if you lerp'd

compact cobalt
#

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

copper nacelle
#

there's just the search bar

#

You can filter by class member and within an assembly

rain cedar
#

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;
}```
limber storm
#

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?

vocal spire
#

I don’t think they are used in any scenes so you can’t view those fsms

limber storm
#

Does that mean I can't find them or there's some other program/method?

vocal spire
#

You probably can’t find them

limber storm
#

@jolly oriole Has helped me out; all is well, thank you again

safe hamlet
#

np

vocal spire
#

lol

vocal spire
#

yeah

#

Think it's just Update

fair rampart
#

Hello!

#

Where I can get the Glacier Knight Skin - Cold as Ice - Custom Skin by dreamlike?

compact cobalt
#

I did the most messy solution ever but at least the mawlek works now

ornate rivet
#

Why is removing this tower so painful

#

fuck unity

gusty drum
#

Haha mood

ornate rivet
#

but really, how come utiny ripper cant properly export script files

#

even dnspy can do that

#

why cant utiny do that

copper nacelle
#

what's the problem with that

ornate rivet
#

it would be nice if it decompiled all the script files for me

copper nacelle
#

why though

#

when you have dnspy

ornate rivet
#

I'm going to have to replace a ton of script files if I do that

copper nacelle
#

just automate it bro

#

dnspy has a console option

ornate rivet
#

it sounds like effort

copper nacelle
#

If you're just doing that there's an option in dnspy's GUI too

#

just file -> export to solution

ornate rivet
#

do you happen to have a helper class for making new maps too zote

#

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

ornate rivet
#

death shroompog

ornate rivet
#

then hyped I shall be

vocal spire
#

Good luck grenade

ornate rivet
#

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?

safe hamlet
#

didn't saleh have modding staff

ornate rivet
#

no?

safe hamlet
#

scammed

#

oh it's because of meme

#

you have the modder role there

ornate rivet
#

that's the only place it matters

#

I shall report back grenade

safe hamlet
#

also any Vasi

ornate rivet
#

I haven't looked at vasi yet

safe hamlet
#

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

ornate rivet
#

how do you get them

safe hamlet
#

it's owo what's this image host

#

it's invite only, but i already used my invite on someone else

ornate rivet
#

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

vocal spire
#

Here is another instance of why doesn’t it work anymore

coral cloud
ornate rivet
#

all the effects (breaking objects, spike tink, etc) only work once, after that, the material breaks (turn pink)

ornate rivet
#

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

ornate rivet
#

ahhh that explains why switching to the real scene didn't fix the music either

#

thanks!

ornate rivet
#

editing scenes is so much fun once all the technical issues are fixed

#

it's really satisfying

vocal spire
#

Is editing scenes just moving stuff around in hkedit or something like that?

ornate rivet
#

not hkedit but with the unity project utiny ripper makes

vocal spire
#

Ok

#

I’ll remember that

ornate rivet
vocal spire
#

Cool!

ornate rivet
#

all I have to do now is get the water working and I'm done

vocal spire
#

Yay

vocal spire
#

lol

#

wdym, text telling you where to go without knowing where to go without a link is perfect

ornate rivet
#

yessir

vocal spire
#

lol

vocal spire
#

Yay

flat forum
#

wow Saleh

#

is that a not working on Pale Court I see

ornate rivet
#

it will help yall make the arenas so it is Pale Court work

flat forum
#

Do You Not Remember That You Are But A Slave To Others' Expectations Of The Mod

ornate rivet
#

sounds kinky

flat forum
#

jkjk

#

this looks cool

ornate rivet
#

thanks

vocal spire
#

can't wait to enslave every hollow knight player by making harder versions of maps

grizzled steppe
#

Should I be scared

vocal spire
#

(yes)

#

(very scared)

ornate rivet
#

thanks for reminding me to add that zote

#

welp

vocal spire
#

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?

ornate rivet
#

yea

ornate rivet
#

ok it's finally done shroompog

vocal spire
#

yay

sage holly
#

some sprites for a thing

ornate rivet
#

@jolly oriole yea

safe hamlet
#

misspelling stuff is the first step towards writing great code

#

keep going saleh

vocal spire
#

oooooooooooooo

safe hamlet
#

i am proud

ornate rivet
#

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?

vocal spire
#

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

ornate rivet
#

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

vocal spire
#

yay

vocal spire
#

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?

ornate rivet
#

change the fsm?

vocal spire
#

I don't see it in the fsm

#

ok

#

I'll look at lost lord since I think it does that

ornate rivet
#

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

#

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

#

we better start getting high tier mods now

#

ToT when

vocal spire
#

lol

#

a fight between 2 crate mod crators

ornate rivet
ornate rivet
#

I might make a mod that replaces boring charms with stuff like laser beams and grimm attacks

vocal spire
#

that sounds cool

dire glen
#

maybe just make new charms though?

vocal spire
#

new charms are easy to make

dire glen
#

yeah, that's why you do that and not replace old one

ornate rivet
#

oh yea I meant new charms

vocal spire
#

that seems fun to make

languid goblet
#

:macebug: when

dire glen
#

thats glorious, and somewhat concerning

vocal spire
#

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?

vocal spire
#

hope it works!

#

well, did it crash?

#

lol

#

ok

#

good luck again!

vocal spire
#

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?.....

ornate rivet
vocal spire
#

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

copper nacelle
#

can you not just reflect

vocal spire
#

I would say that but I didn't want to accidentally be dumb if I said the wrong thing

vocal spire
#

yay

#

can't wait to mess with this until the universe breaks

fallow wind
#

we better start getting high tier mods now
Me: makes one-hit kill mod

vocal spire
#

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

dire glen
#

mod that adds an addition 337% to the game, another path of pain, and an all modded bosses pantheon?

#

sounds fun

fallow wind
#

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")

fallow wind
#

nvm, I think I got it

pine girder
#

Hey creators of Pale Court I found a leak in here

weak lodge
#

?

#

wdym

#

if youre talking about the old build that redfrog leaked a while ago we know

flat forum
#

Knight is a mod now too???

#

also @pine girder whaddya mean

#

Knight gimme your mod

weak lodge
#

KoL will be done by new years

#

promise

pine girder
#

No no

#

It is about isma

#

I found only three sprites

weak lodge
#

from?

flat forum
pine girder
#

I can show you if you want

flat forum
#

yes?

weak lodge
#

sure

patent zealot
#

Woah orange knightmere, congrats

ornate rivet
#

the whole isma fight is "leaked" if we go by that definition

#

we posted it here a long time ago

ornate rivet
#

yea

vocal spire
#

I never posted it here

#

Or anywhere

compact cobalt
#

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?

fallow wind
#

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

compact cobalt
#

Can't hurt to try

fair rampart
#

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:

  1. player mobility has been increased
  2. the jump height was increased
  3. the player's health was reduced from 5 to 3

(Many thanks to @vocal spire for introducing me to C# and creating mods)

fallow wind
#

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)

fair rampart
#

(which basically turns the game into nothing but an annoyance)
Thank you for advice

fallow wind
#

? I meant my mod

fair rampart
#

Oh, I'm sorry, I don't know much English

fallow wind
#

it's fine

fallow wind
#

fsm viewer keeps crashing...

vocal spire
#

that's sad

vapid cape
#

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.

vocal spire
#

i thought I told them to make it faster......

#

I noticed that they did that

#

and told them that

copper nacelle
#

just hook getint

#

there's no need to set stuff when literally every access to a pd field is detoured

ornate rivet
#

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

ornate rivet
#

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

vocal spire
#

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

ornate rivet
#

that looks awesome!

vocal spire
#

Wow, that’s awesome!

vocal spire
#

utiny finally finished

ornate rivet
#

damn 3 hours

vocal spire
#

that's not good

#

almost 4

vocal spire
#

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.......

vocal spire
#

ooooooooooooo

#

Epic!

#

unity is still loading

ornate rivet
vocal spire
#

you are awesome anyone

#

ok

vocal spire
#

Yessss unity loaded

ornate rivet
#

ay

#

now the true pain begins

vocal spire
#

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

odd mist
#

what's the easiest way to edit things like sound assets?

ornate rivet
#

swap out the song that's supposed to play with yours?

#

probably with a hook

vocal spire
#

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

copper nacelle
#

@jolly oriole are the methods unique

#

the rhs

vocal spire
#

prepare for another new path of pain(probably going to be connected to my modded boss pantheon mod when I make it)

flat forum
#

y'al put the PoPs in other rooms pls

vocal spire
#

no

flat forum
#

PK be like "time to put all my hidden treasures in the same room"

copper nacelle
#

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

blissful burrow
#

Wait wheres the quick map fsm

#

I didn't know that existed but I actually need to look at that

#

Knight pickup?

blissful burrow
#

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

ornate rivet
#

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

copper nacelle
#

racism

ornate rivet
#

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

copper nacelle
#

yes

vocal spire
#

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