#archived-modding-development

1 messages ยท Page 311 of 1

lost agate
#

yeah

fair rampart
#

so wearing charms together produces new effects

lost agate
#

charm notch mod

#

i assume would upgrade notches?

fair rampart
#

That is automatically in QoL

lost agate
#

aight

fair rampart
#

so no need

#

it makes Salubra notches unlock automatically

#

instead of you having to buy them

lost agate
#

uh

#

huh

#

imma play now

#

see if they worked

fair rampart
#

k

lost agate
#

also what does manual do

fair rampart
#

what

#

Oh

#

that's manual installation

young walrus
lost agate
#

so its like old rw modding

young walrus
#

there's ur gold

lost agate
#

where u shove in the assembly csharp

#

also mickely

#

i want a red knight pls

fair rampart
#

@young walrus How about Noir

#

Russe, the Mod API should have auto installed

lost agate
#

k

fair rampart
#

Did you get ModCommon?

lost agate
#

yes

young walrus
fair rampart
#

good, because a lot of mods need it

young walrus
#

I actually really like this one

lost agate
#

OOOOOOH

#

now how do i shove and install it

young walrus
#

Custom Knight

lost agate
#

aight

#

where do i shove it

young walrus
#

then the folder where the assets are, you just replace those

lost agate
#

aight

fair rampart
#

That one actually looks really good mick

young walrus
#

i'll have to send the png files tho

lost agate
#

i have one more question

#

can you make knight have a black helmet, but a white body and white eyes?

fair rampart
#

Invert Knight

#

already does that

lost agate
#

oh

#

i thought it just makes it like inverted 100%

#

like an inverted image

fair rampart
#

It just inverts the color of the knight and your abilities

#

black is white, magenta is green, red is cyan, etc, vice versa

young walrus
#

just use that folder, delete the "demon" part of the name, and should work

fair rampart
#

Does that affect dash?

lost agate
#

where would

#

assets be

#

oh aight

young walrus
#

all sprites

#

related to the player

lost agate
#

i have no idea where the sprites are u dummy

young walrus
#

super dash, dash

#

in the mods folder

#

replace the CustomKnight folder

lost agate
#

k

young walrus
#

if you install the customknight mod, it'll put a folder there

#

just replace it with this one

lost agate
#

k

#

i understand

#

boom

fair rampart
#

Remember to extract the zip

lost agate
#

i am now doom knight

#

also quick question

#

mickely could you make a knight that is yellow like radiance

#

leg color too

fair rampart
#

Like, white cape, yellow eyes?

lost agate
#

yes

#

and the body color

young walrus
#

not without a shit ton of work

lost agate
#

oh aight

young walrus
#

these shaders are quick and easy

lost agate
#

imma just

#

snatch this gold knight rq

young walrus
#

won't work

#

you don't have the actual sprite sheets

lost agate
#

oh right

#

can i have gold knight

fair rampart
#

I'll take one in greyscale

young walrus
lost agate
#

one last question

#

could i make these on my own?

young walrus
#

i mean.... I am

#

just messing with colors

lost agate
#

well aight

fair rampart
#

Why is gold bigger than demon?

young walrus
#

dunno

lost agate
#

its too gold

#

its too h e a v y

#

HAHAHAHA

#

i'll see myself out

young walrus
#

like dis?

fair rampart
#

Like, Knight Noir

hollow pier
#

make knight a black square

lost agate
#

oh damn numbers is here

young walrus
fair rampart
#

How are you doing this mick?

lost agate
#

shadow knight but he turns into a better shadow knight in the true ending

young walrus
#

photo editing program

#

just changing the dark and light contone colors

#

trying to figure out if I can make them faded

#

or multiple colors

lost agate
#

my

#

game crashed

young walrus
fair rampart
#

not quite what I was going for...

young walrus
#

so make one

#

you say noir, I dunno what the fuck you want

#

lol

lost agate
#

so uh

#

my game keeps crashing

hollow pier
#

noir means white silly

fair rampart
copper nacelle
#

u

fair rampart
#

Just gray

lost agate
#

ur modding

#

is crashing my game

copper nacelle
#

why'd you pirate the game

lost agate
#

u h h h h h h

#

i'm poor pls dont hurt me

silk jetty
#

if you pirate the game then mods don't work

lost agate
#

pls

#

oh

#

pls am sorry

silk jetty
#

the game is 15 fucking dollars

#

why do so many people pirate it linkusLurk

lost agate
#

well i'm FUCKING poor

young walrus
#

What I'm doing only affects the knight. Nothing else

fair rampart
#

I know

#

That was just the first png I saw

young walrus
#

So you just want a Grey cloak instead of blue

fair rampart
#

Just everything on the knight is greyscaled

#

Do you have just the normal spritesheets?

young walrus
#

No

fair rampart
ornate rivet
#

I doubt anyone with access to internet and a personal computer is too poor to buy hollow knight for 10$, I would imagine the real reason is because your parents won't let you buy it or you just dont want to pay

silk jetty
#

I got hollow knight in August and I'm already pretty good at it

civic hare
#

grey hornet is my favorite oc

ornate rivet
#

aalek are you working on a mod?

fair rampart
young walrus
#

Would just be better to have that as a different mod that applies a filter to the whole game

buoyant obsidian
#

I love that font

fair rampart
#

I'm not sure why the cloak looks so dark in the first one

#

If this becomes a mod, make the text do a typewriter sound

silk jetty
#

@fair rampart you should buff dreamshield in charmoverhaul

fair rampart
#

prob will

#

Wait, does D Wielder actually affect the recover speed or not?

#

Because it doesn't look like it based on the FSM

silk jetty
#

idk

civic hare
#

*hornet walks in* the moment i saw the dame, i knew she was trouble

weak lodge
#

Alek

#

Howโ€™s it been meme mann

civic hare
#

it's going

#

@ornate rivet i'm not working on a mod right now, but once nes's level editor is done and working i'll be all over that shit

weak lodge
#

Nes is god

dark wigeon
#

I spent like a crap load of time mimicking how unity does it's sprites in bundles, got it to replicate exactly and it still has a 0x0 Sprite size which means it's unclickable / draggable without manually using the move tool. It also makes sprites disappear when their center goes off screen. I honestly have no idea what the problem could be

#

I'm ignoring it for now and the mod is basically finished for now but I'll wait till tomorrow to see if i can get it to load

weak lodge
#

Is nes gonna get modding staff for this

#

Nibbug working hard

dark wigeon
#

The only thing I could think of was maybe the Sprite renderer was setting size. I manually edited it and removed the reference in the original bundle and it worked fine without the renderer. The only other thing is that the bundle doesn't include texture data but it shouldn't really matter.

#

The other other thing is that the asset bundle class could have some hidden data im not aware of

rain cedar
#

More likely than angle getting modding staff GWjiangoOmegaLUL

leaden hedge
#

probably not considering hes literally never in here ๐Ÿค”

#

well aa definitely isn't atm

#

considering he yeeted himself off the server

ornate rivet
#

wait why did aa leave?

#

I cant find avenging angle

#

@Avenging_Angle#0272

solemn rivet
#

Wait what happened to aa boi?

river eagle
#

you can still search for messages from people who have left

#

if you use the # ID

lofty notch
#

Hi guys,

I'm new in this discord, I just want to know: should I make a copy of my savefiles before installing/enabling mods from the mod installer, or is it 100% safe?

river eagle
#

It should be safe, but taking backups never hurts

fossil sonnet
#

hello... where i can get this "Mod API" For HK?

cunning lagoon
#

;i

#

check pins here

#

use the installer

fossil sonnet
#

ow... sorry

ornate rivet
#

why did the mods need him to give them some distance?

thorn comet
#

We never told AA to leave fyi

hollow pier
#

simo leave so benji is server owner

copper nacelle
dark wigeon
#

Any way I can prevent from having a library load as a mod

silk jetty
#

what?

dark wigeon
#

"AssetsTools.NET.dll FAILED TO LOAD!"

#

It's not a mod tho

#

Guess I could just pack it into the dll

silk jetty
#

somebody should make a mod that makes crystal hunters all primal

ornate rivet
#

@cunning lagoon
This should be the last version of the mod, please test it when you have time to

fossil oxide
#

@cunning lagoon

ornate rivet
#

56, how's the hive knight mod going?

dark wigeon
#

Trying the whole hook thing but it's never being called. Using the example 56 posted a while ago

ornate rivet
#

Which examples?

#

I think the ones that you are talking about dont work

dark wigeon
#

These don't work for non assembly csharp though right

#

He posted a code block that used hook in monomod

rain cedar
#

@dark wigeon Another mod uses websocket-sharp and it gets put in Managed instead of Managed/Mods

#

Seems to work still

dark wigeon
#

Any idea about the patches? Not even sure if monomod hook is what I'm looking for but I'm trying to intercept unity's loadscene method

rain cedar
#

For some examples

#

If you just meant the runtime hooks that's pretty easy, you just do

On.Namespace.Class.Method += (orig, self, arguments) =>
{
     // hook body
};```
dark wigeon
#

Ok this makes more sense

#

Also the on. doesn't work, it's not in assembly csharp, plus I can't intercept that

rain cedar
#

You could generate your own hooks dll file for UnityEngine.dll

#

Or whichever Unity dll it is you need

#

The On. stuff in assembly-csharp is generated as a separate dll then merged

dark wigeon
#

So MonoModPatch doesn't work at runtime?

rain cedar
#

No that's a patch to the dll itself done beforehand

dark wigeon
#

Oh ok I was assuming this whole time monomod had runtime patching like harmony without modifying the dll

rain cedar
#

I think the runtime hooks are pretty similar

#

I think it does have that without modification as well

#

Using the Detour class or something

#

Never done it myself

#

@copper nacelle

sturdy shore
#

hey guys

dark wigeon
#

Ok yeah I saw detour and hook but got neither to work

copper nacelle
#

whomst

sturdy shore
#

i dream nailed marrisa cause someone told me that it was not bad, is there a way to get her back?

#

im willing to hack or use mods

copper nacelle
#

Wait do you want IL patching or just normal hooks

sturdy shore
#

wait me?

rain cedar
#

no

dark wigeon
copper nacelle
#

I love mobile

rain cedar
dark wigeon
#

Yeah I had to share with Firefox to see it

#

I dunno why it only does it on some

copper nacelle
#

Do you want it to be before or after the method call

dark wigeon
#

Before

copper nacelle
#

Okay so

#

they're patching WindowStack.Add(Window)

#

so for monomod the equivalent would be

#
On.WindowStack.Add += (orig, win) =>
{
     // your code
     orig(win);
};
rain cedar
#

But he wants to do it without generating On. hooks

#

Because it's something in a Unity dll

copper nacelle
#

Oh okay

rain cedar
#

I know you can because you posted code for it with GetBoolInternal

copper nacelle
#

Yes

#

It's also what I do for rando

#

which i need to get rid of

rain cedar
#

Yeah

copper nacelle
#

Okay so it's basically the same thing

#
public override void Initialize()
{
     new Hook
     (
           typeof(WindowStack).GetMethod("Add"),
           this.GetType().GetMethod(nameof(Thing))
     );
}

public static void Thing(Action<Window> orig, Window win)
{
     // your code
     orig(win);
}
#

For a non-static method you'd have to add another param self to both the Action/Func and the method

#
public static void Thing(Action<Window, OriginalType> orig, OriginalType self, Window win)
{
      // your code
      orig(self, win);
}
dark wigeon
#

I didn't put a self on it

#

But the rest is what I did

#

Two things, do you do anything with hook and what's the difference between hook and detour

copper nacelle
#

You can dispose the hook

#

so like you assign it to an instance var

#

and in unload you can do hook?.Unload() to kill it

#

The difference between Detour and Hook is that detour is lower level and detour entirely overrides the function

#

You can also entirely override with hook by just not calling orig ofc

#

But like e.g I wanted to replace PlayerData's GetIntInternal with my own GetInt method which actually caches fields

#
            new Detour
            (
                typeof(PlayerData).GetMethod(nameof(PlayerData.instance.GetIntInternal)),
                typeof(SkipCutscenes).GetMethod(nameof(GetIntInternal))
            );
        }
        
        [UsedImplicitly]
        public static int GetIntInternal(PlayerData pd, string @int)
        {
                return pd.GetAttr<int?>(@int) ?? 0;
        }
#

Detour just kills the old function

rain cedar
#

That's changing the actual functionality of the function, not just making it faster

#

The default is -9999 for some reason

copper nacelle
#

Wtf

rain cedar
#

Not 0

#

I don't know if that matters anywhere but it might

copper nacelle
#

Okay I'll change that

#

ty

dark wigeon
rain cedar
#

Well I see the problem

#

There's an optional LoadSceneMode argument

#

It's not just string

dark wigeon
rain cedar
#

That's not the UnityEngine LoadScene

dark wigeon
rain cedar
#

Also not

copper nacelle
#

that's also not UnityEngine LoadScene

#

also unity optional args are lies

rain cedar
#

Oh ok

dark wigeon
#

HK loadscene calls orig_LoadScene calls UnityLoadScene

copper nacelle
#

yes

rain cedar
#

Yeah if the optional argument is a lie that should work

#

I would think

dark wigeon
#

that logger.log fires fine

copper nacelle
#

load scene is static

#

you don't want self

dark wigeon
#

good point but it wasnt there originally

copper nacelle
#

The log doesn't fire?

dark wigeon
#

in HK's LoadScene, Entered LoadScene! triggers im pretty sure

copper nacelle
#

no i mean yours

dark wigeon
#

it directly calls orig_LoadScene which should call SceneManager.LoadScene

#

nope

#

ive confirmed the patch method is being called with a log tho

copper nacelle
#

i got a null ref

dark wigeon
#

from what

copper nacelle
#

making the hook

dark wigeon
#

hook.IsValid returns true, not that it matters

copper nacelle
#
            MethodInfo sceneLoad = typeof(SceneManager).GetMethod("LoadScene", new Type[] {typeof(string)});
            
            Log("Trying method info " + sceneLoad?.Name);
#

sceneLoad is null

rain cedar
#

Specify namespace on SceneManager

#

Threre's a global::SceneManager from TC

#

Because they hate all that is good in the world

copper nacelle
#

fun

#

Oh

#

I know why it won't log

dark wigeon
#

why

copper nacelle
#

Iirc they don't use LoadScene

rain cedar
#

But he said the Logger.Log was happening

copper nacelle
#

Oh

dark wigeon
#

guess i was mistaken its a different message

rain cedar
#

Oh ok

dark wigeon
#

where does logger.log go to

copper nacelle
#

ModLog

dark wigeon
#

yeah its not there

rain cedar
#

It depends on if that's Modding.Logger or the Unity one

copper nacelle
#

oh yeah

#

unity LogDebug goes to output_log

#

i think Log goes there too

#

then later on sceneLoad.Begin()

#

Which calls a coroutine which calls LoadSceneAsync

rain cedar
#

Alright so just hook async instead

#

Probably safer to just hook both

dark wigeon
#

Yay it works but now I have more errors .-.

#

Also I feel dumb for not knowing that bundles could hold scenes

#

Feel like that might be new

dawn oxide
#

hi
whenever the editor is released
tag me

dark wigeon
#

E++ post?

solemn rivet
#

this is 56#

daring snow
#

E#

errant thorn
#

Hey so like, the enemy randomizer keeps stopping at 94%, any help?

rain cedar
#

How much ram do you have?

errant thorn
#

like 16GB

silk jetty
#

also happens for me and apparently it's your vram being full

rain cedar
#

Then idk bad mod

silk jetty
#

but idk how to check that

rain cedar
#

All I know is the item randomizer never gets stuck at 94%

hollow pier
#

woah the item randomizer

#

tell me more

rain cedar
#

It randomizes items

young walrus
#

Sounds boring

#

Bet it'd be better with a demon knight tho

fair rampart
#

How about making enemy rando... not suck?

copper nacelle
#

u

fair rampart
#

u

copper nacelle
#

u

fair rampart
#

๐Ÿ‡บ

copper nacelle
#

no

ornate rivet
#

56 can you think of a reason why the hornet HoG statue becomes uninteractable sometimes and people have to leave the scene and come back for it to work?

copper nacelle
#

you fucked it

ornate rivet
#

but I didn't do anything to it besides change the text

#

and that was a long time ago

hollow pier
#

56 said he never touched dreamers but lo and behold we hardlock at monomon

fair rampart
#

Yeah, I still don't get how the monomon hardlock even happens

#

Someone asked me to buff Longnail and MoPride for my mod

#

what

dusky lion
#

buff kingsoul

fair rampart
#

Did

#

made it cost less, and gave it combos with Catcher, Eater, and Shaman

hollow pier
#

buff stalwart shell please i can't beat failed champion

fair rampart
#

did that too

#

well

#

sorta

#

I gave it combos with Baldur and also one with DCrest

#

Like, he was asking me to make MoPride cost less or do more dmg, and I was like

#

WHY

#

MoPride isn't good enough?

hollow pier
#

make nail whole screen with 0 notches and instakill everything

fair rampart
#

so shitmodst?

hollow pier
#

no shitmodst is actually good

young walrus
#

Where are the sprite sheets located in the game files?

#

like which dll

copper nacelle
young walrus
#

So if I wanted to add another sprite sheet to the CustomKnight takeover, does the name of the sheet matter compared to the actual game's sheet name? I'm assuming so

copper nacelle
#

What

young walrus
#

like the sheets i've edited are called "knight" and "sprint" for custom knight

#

unless those are just named in the mod itself

copper nacelle
#

it just loads those files

#

It sets the texture on a tk2d sprite component it gets off the HeroController

young walrus
#

so the name doesn't matter

#

it's the coordinates that matter

copper nacelle
#

what

young walrus
#

the name of the sheets

copper nacelle
#

it replaces the entire texture on a component

#

there's no coordinates specified

#

it's just the entire thing

young walrus
#

the herocontroller part, how does it know what sprite sheets to replace

#

based on the name of the sheet right?

copper nacelle
#

no

#

For the main sprite I just called GetCurrentSpriteDef

#

And for sprintmaster/dgate

#

I dumped the names of the animations and then got the spriteCollection off the tk2dAnimator's clip's first frame

#

and then changed its first sprite definition's texture

#

Because all the frames are on the same sheet and there's at least one frame you can just pass 0 both times

#

So not by sheet name but by animation name for Sprintmaster/Dgate

#

And just CurrentSpriteDef for the normal texture

young walrus
#

Okay, so if I wanted to add in things like.... wings, fireball, dive, etc....

copper nacelle
#

You'd have to get their prefabs and find what holds the sprite for them

#

Then depending on how its organized you can change one sprite or multiple

#

For spells it's just one sheet

#

e.g for the pure knight mod I did cs var def = HeroController.instance.gameObject.GetComponentsInChildren<Transform>(true) .First(x => x.gameObject.name == "Scr Heads 2") .gameObject.GetComponent<tk2dSprite>() .GetCurrentSpriteDef();

rain cedar
#

Scr Heads 2

#

Interesting

#

Shriek, I guess?

copper nacelle
#

yes

#

i think

silk jetty
#

ye

fair rampart
#

You ever just
DRIVER POWER STATE FAILURE

vale heath
#

I havent been on since September. Is the any thing new to speak of for Hollow Knight be it core game or mods?

rain cedar
#

Probably

#

Just check the installer

cunning lagoon
#

@ornate rivet she still goes oob

#

also i'd suggest adding an audio cue or something to the pv orbs

cunning lagoon
#

or change its color or something so you can actually see it

#

also if you make her transition from p2 to p3 while she's throwing elegy beams you get teleported inside them and you get hit

#

also the boomerangs linger for an eternity so the cooldown on her attacks there doesn't do anything and she can just do a million attacks while the boomerangs just slowly sweep through the screen

#

i think that's everything

ornate rivet
#

thanks Kurosh
@ornate rivet make pv orbs more visible
fix p2 to p3 transition with elegy beams
increase her sphere animation time when the boomerangs happen
increase the idle time when she throws orbs
try to stop empty hops again

#

dang it, discord doesn't save pings you make to yourself

cunning lagoon
#

wtf

#

@ornate rivet make pv orbs more visible
fix p2 to p3 transition with elegy beams
increase her sphere animation time when the boomerangs happen
increase the idle time when she throws orbs
try to stop empty hops again

ornate rivet
#

thanks

native widget
#

Oh, is there a mod for that pure vessel model? (Knight with white cape shown in video above)

cunning lagoon
native widget
#

Ah thank you very much DLK

#

Install with installer correct?

cunning lagoon
#

uhh sure

#

you can just paste it where your game is installed

native widget
#

Ait Ill do it manually, thanks again hollowknice

cunning lagoon
#

yw

copper nacelle
#

It's in the installer

cunning lagoon
#

ok smartass

copper nacelle
#

ok dumbass

cunning lagoon
#

you hurt my feelings

copper nacelle
weak lodge
#

Was that aWholesome kuro I spied

cunning lagoon
#

no

#

shut up idiot

weak lodge
#

Same to you nerd

floral furnace
#

wow this hostility

cunning lagoon
#

๐Ÿ˜ฐ

weak lodge
#

Iโ€™m sorry ๐Ÿ˜”

cunning lagoon
#

hi sorry ๐Ÿ˜”

weak lodge
#

anyway Im Gonna religiously watch your radiant markoth 133 kill now

cunning lagoon
#

mark ๐Ÿ˜ด th

cunning lagoon
#

friendship ended with shaman stone now dashmaster is my favourite charm

leaden hedge
#

No

cunning lagoon
#

Yes

mortal trout
#

my favourite charm is deep focus it's so useful ๐Ÿ™‚

weak lodge
#

geez

#

u guys suck

#

use hiveblood

#

its much more practical than your nerdy deep focus

vague fjord
#

I prefer to go Longnail, Mark of Pride and Unbreakable Strength

#

And then fill the spare 2 slots with whatever. Probs Nailmaster's and Grub Song

mortal trout
#

imagine not being sarcastic

weak lodge
#

naaaa mate u should equip greed and swarm to get all the money ๐Ÿ˜Ž

ornate rivet
copper nacelle
#

well coded

weak lodge
#

well coded person

buoyant obsidian
#

less sense than Lightbringer pika

fossil oxide
native widget
#

How long did it take to make the Custom Knight mod?

young walrus
#

like 5 minutes

#

the original white cloaked sprite sheet is what took the longest

#

for whoever that was that edited it

native widget
#

Well whoever did it is amazing

fair rampart
ornate rivet
#

ez

rain cedar
#

You make it bigger

ornate rivet
#

gameobject.LocateMyFSM("Control").GetAction<Wait>("Active", 0).time = whatever float you want

#

@fair rampart

fair rampart
#

k

rain cedar
#

gameObject.GetComponentsInChildren<PlaymakerFSM>(true).Where(fsm => fsm.FsmName == "Control").FirstOrDefault();

#

The superior LocateMyFSM function

ornate rivet
#

but it's so long

#

and unreadable

rain cedar
#

u

ornate rivet
#

is it just faster?

rain cedar
#

It finds inactive ones

ornate rivet
#

oof locatemyfsm doesnt?

rain cedar
#

I have no idea

ornate rivet
rain cedar
#

I don't actually use that anywhere

#

Because it's kinda bad

ornate rivet
#

why

#

teach me senpai

rain cedar
#

It looks like shit

ornate rivet
#

oh I thought you were talking about LocateMyFSM

rain cedar
#

That one also looks like shit

ornate rivet
weary oyster
#

i mean what did they expect lol

fair rampart
#
            GameObject gameObject2 = GameObject.Find("Grubberfly BeamL");
            if (gameObject2 != null)
            {
                gameObject2.LocateMyFSM("Control").GetAction<Wait>("Active", 0).time = 0.2;
            }
leaden hedge
#

Nice name

fair rampart
#

Wait could not be found

ornate rivet
#

did it find the game object?

fair rampart
ornate rivet
#

oh you didnt import the actionfsms?

fair rampart
ornate rivet
#

you want this
using HutongGames.PlayMaker.Actions;

#

do you have it?

fair rampart
#

oh

#

I'll add the ref

#

what folder is that in?

copper nacelle
#

u ever just

#

Playmaker.dll

ornate rivet
#

^

#

lol

fair rampart
#

oh wait

ornate rivet
#

you should already have it at this point

fair rampart
#

yeah I do

#

I'm just dumb

ornate rivet
#

we all are sometimes

copper nacelle
#

hi just dumb

ornate rivet
#

i'm scenic

fair rampart
#

And I have to do this

            GameObject gameObject3 = GameObject.Find("Grubberfly BeamL");
            if (gameObject3 != null)
            {
                gameObject3.LocateMyFSM("Control").GetAction<Wait>("Active", 0).time = 0.2f;
            }

for all 8 elegy fsms

ornate rivet
#

uhh not necessarily

copper nacelle
#

Have you heard of a for loop

ornate rivet
#

^

#

self ping

copper nacelle
#

Mobile can die

ornate rivet
#

put all the names in an array of strings

#

and bam

fair rampart
#

You edited 3 times, pinned it, unpinned it before you got it right

#

nice

#

Oh wait

#

you haven't unpinned it

ornate rivet
#

check to make sure the current code works before moving on btw

#

might wanna use a try catch and log any exceptions for sanity

copper nacelle
#

make a try log function which takes a list of lambdas and then put all of your code in it easy

rain cedar
#

try log

#

By that do you mean

try
{
     // Function body
}
catch (Exception e)
{
     Log(e);
}```
copper nacelle
#

yes but a terrible function instead

rain cedar
#

Build a C# compiler in C# then use that to take a string and convert it to a lambda then run it in a try/catch

copper nacelle
#
int a = 0;
int b = 0;
tryLog
(
     () => a = 10;
     () => b = int.MaxValue + 1;
)
#

except all of your code in one of them

rain cedar
ornate rivet
#

wtf does that do

rain cedar
#

It's a function

#

It does whatever's in the function

#

Which in this theoretical scenario would be:

void tryLog(params Action actions)
{
     if (actions == null) return;

     foreach (Action action in actions)
     {
          try
          {
               action();
          }
          catch (Exception e)
          {
               LogError("Oopsy woopsy:\n" + e);
          }
     }
}```
fair rampart
#

Oh, that doesn't affect the projectile disappearing on enemy hit

#

it just made it go a little farther

ornate rivet
#

what did you expect it to do lol

rain cedar
#

Disappearing is probably a tk2dWatchAnimationEvent

#

Or something like that idk if it's the exact name

fair rampart
#

I was hoping to make elegy double hits more consistant

ornate rivet
#

it disappears when it hits an enemy because of the transition DEALT DAMAGE

rain cedar
#

Recycle Pause state maybe

#

Just from looking at your picture

fair rampart
#

Oh, so I need to add a wait between DEALT DAMAGE and Terrain Hit

#

somehow

rain cedar
#

Just add a wait at the start of the Terrain Hit state if that's what you need

fair rampart
#

Ye that's what I need

#

probably

#

uh elegy can't hit levers right?

rain cedar
#

Half the time I choose remaking FSMs as components rather than dealing with the FSM

#

Also an option

fair rampart
#

because that also would affect it hitting terrain

#

but if it doesn't hit levers, then whatever

rain cedar
#

It doesn't

fair rampart
#

How does AddAction work?

rain cedar
#

It adds an action to the end

fair rampart
#

Could I just add a wait after the DEALT DAMAGE event?

rain cedar
#

That just makes it transition

#

So add one at the start of the state it transitions to

ornate rivet
#
{
    time = some float,
    finishEvent = some event,
    realTime = false
});```
copper nacelle
#

X

ornate rivet
#

?

copper nacelle
#

That's at the end you fool

rain cedar
#

fsm.GetState("Terrain Hit").AddFirstAction(thing);

ornate rivet
#

oh I didn't read the rest of the messages

#

InsertAction then

#

or what Seanpr likes

fair rampart
#

AddFirstAction?

#

I don't see that show up

copper nacelle
#

Cause you don't have it

ornate rivet
#

use insertaction tbh

rain cedar
#

Not having the exact extensions I use GWjiangoOmegaLUL

fair rampart
#

what do I use to get addfirstaction

rain cedar
ornate rivet
#

why not just use fsm.InsertAction("statename",0, Action...);

#

it's cleaner

#

and has more use

rain cedar
#

I made this file before there was anything like this included in ModCommon/API/Wherever

ornate rivet
#

I meant that toward Abyssal

rain cedar
#

o

fair rampart
#
                GameObject gameObject3H = GameObject.Find("Grubberfly BeamD R");
                if (gameObject3H != null)
                {
                    gameObject3H.LocateMyFSM("Control").InsertAction("Terrain Hit", new Wait(), 0);
                }
```like this?
weak lodge
#

new pfp i see

#

looks gud

fair rampart
#

how do I specify the time?

ornate rivet
#
yourfsm.InsertAction("name of state", new Wait 
{
    time = some float,
    finishEvent = some event,
    realTime = false
},0);
fair rampart
ornate rivet
#

joke I assume

fair rampart
#

I can't get it on the right line

ornate rivet
#

dont actually write some float

#

put your float there

#

same thing for finishEvent

fair rampart
#

what do I put in finishEvent? FINISHED?

ornate rivet
#

finishEvent = FsmEvent.GetFsmEvent("WHATEVER EVENT YOU WANT"),

#

I think that's right

fair rampart
#

my taskbar is glitching

#

prob gonna have to restart my computer soon

#

it's getting in the way

ornate rivet
#

ok well I I think I told you what to do correctly so I am good

#

finishEvent = FsmEvent.GetFsmEvent("FINISHED"),

#

this is what you want for that like

#

BUT

#

I just looked at the Terrain Hit state and there are other things you want to fix in it

#

there are other actions that cause it to transition in that state

#

you need to remove those

fair rampart
#

ye I was worried about that

ornate rivet
#

the hardest part about removing is keeping the correct index

#

because you inserted an action you need to account for that

fair rampart
#

This is why I just wanted the wait after the DEALT DAMAGE event

ornate rivet
#

if you want to do that then you have to make a new state and change transition so that DAMAGE DEALT leads to that new state instead of terrain hit. Then you have to add a Wait action to that new state and link it to Terrain Hit when it is done

#

doing that is just as much work tbh

#

@fair rampart
Do this after the insertaction

yourfsm.RemoveAction("Terrain Hit",2);```
#

see, this is way easier than what you said

fair rampart
#

how do you even make a new state?

copper nacelle
#

new FsmState

ornate rivet
#

why do you want to do that

#

I gave you the code for how to do it with the current method reeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

dark wigeon
#

I've got a successful bundle scene working so it shouldn't take much work to get it to load

rain cedar
#

Because it's all global objects

ornate rivet
#

WOAH

rain cedar
#

The only problem is it does the "End Conversation -> No -> Idle" transition all in 1 frame so I can't see that it went to "No"

#

And I can't really modify it either since it's globally used

ornate rivet
rain cedar
#

So I'm actually just gonna have to make an FSM to receive events

#

Actually maybe not, the Take Geo state has a wait in it so I can tell if it went there

#

And just assume no otherwise

ornate rivet
#

Did you use DialogueManager or TextYN or something else

rain cedar
young walrus
#

Hey sean, can we add more sprite sheets to CustomKnight?

#

I want to make all the abilities different colors too

rain cedar
#

In theory yeah but someone's gotta figure out where those sheets are actually used in game

#

To change them

young walrus
#

What's the best way to search through the assets?

#

I'll do the leg work there

rain cedar
fair rampart
#
                GameObject gameObject3H = GameObject.Find("Grubberfly BeamD R");
                if (gameObject3H != null)
                {
                    FsmState fsmState = new FsmState(fsmTemp)
                    {
                        Name = "Damage Dealt"
                    };
                    gameObject3H.LocateMyFSM("Control").AddAction("Damage Dealt", new Wait
                    {
                        time = 0.2f,
                        finishEvent = FsmEvent.GetFsmEvent("FINISHED"),
                        realTime = false
                    });
                    gameObject3H.LocateMyFSM("Control").ChangeTransition("Active", "DEALT DAMAGE", "Damage Dealt");
                    gameObject3H.LocateMyFSM("Control").AddTransition("Damage Dealt", "FINISHED", "Terrain Hit");
                }
``` will this work?
rain cedar
#

Oh god tabbing

#

Idk mick it's just a matter of looking through all the animation clips on the knight

young walrus
#

There was a program I used to inspect all game assets at some point, but I don't remember what it was

#

including audio and shit

rain cedar
#

Unity Studio

young walrus
#

must be it

rain cedar
#

It got renamed to Asset Studio I think which is just GWlulurdWaitWhat

ornate rivet
#

@fair rampart
wtf why do you keep doing that

#

I gave you the code

fair rampart
#

Will it work tho

ornate rivet
#

I've never had to make a new state so I am not sure if that part is correct (everything else looks good though)

rain cedar
#

I mean he's just made a new state

#

Straight up

#

Not attached to anything

#

That's clearly wrong

fair rampart
#

wdym?

ornate rivet
#

you need to link it to the fsm

rain cedar
#

I guess it depends on what fsmTemp is

ornate rivet
#

Why haven't you done this to make the code less dungo
PlayMakerFSM _control = gameObject3H.LocateMyFSM("Control");

fair rampart
#

I need that there because FsmState needs to have (fsm)

ornate rivet
#

that should be the fsm of the beam

fair rampart
#

public Fsm fsmTemp;

ornate rivet
#

do you set the value to anything?

rain cedar
#

Just fyi the FsmState(Fsm) constructor doesn't do any of the class initialization

fair rampart
#

Do this? FsmState fsmState = new FsmState(gameObject3H.LocateMyFSM("Control").Fsm)

rain cedar
#

Fsm has a private field states

#

You'll have to add it to that at the very least

#

Dunno if anything else

silk jetty
#

should I do the bingo thing or nah

#

I'm not that good at doing randomizers that fast so idk

rain cedar
#

I won't stop you

fair rampart
#
                GameObject gameObject3A = GameObject.Find("Grubberfly BeamL");
                if (gameObject3A != null)
                {
                    gameObject3A.LocateMyFSM("Control").GetState("Damage Dealt");
                    if (gameObject3A.LocateMyFSM("Control").GetState("Damage Dealt") == null)
                    {
                        FsmState fsmState = new FsmState(gameObject3A.LocateMyFSM("Control").Fsm)
                        {
                            Name = "Damage Dealt"
                        };
                        gameObject3A.LocateMyFSM("Control").AddAction("Damage Dealt", new Wait
                        {
                            time = 0.2f,
                            finishEvent = FsmEvent.GetFsmEvent("FINISHED"),
                            realTime = false
                        });
                    }
                    gameObject3A.LocateMyFSM("Control").ChangeTransition("Active", "DEALT DAMAGE", "Damage Dealt");
                    gameObject3A.LocateMyFSM("Control").AddTransition("Damage Dealt", "FINISHED", "Terrain Hit");
                }
``` Should I put a null check so it doesn't add the state if it's already added, or is that unnecessary?
rain cedar
#

Invert your ifs my dude that's painful to look at

#
if (thing)
{
     // function body
}```
 |
V
```csharp
if (!thing)
{
     return;
}

// function body
fair rampart
#
if (!(gameObject3A.LocateMyFSM("Control").GetState("Damage Dealt") != null))```?
rain cedar
#

! != ๐Ÿ˜ฉ

ornate rivet
#

wtf

fair rampart
#

wtd you said invert

rain cedar
#

Yeah but like use some common sense

fair rampart
#

but I am checking if is null

rain cedar
#

If it was !thing before don't turn it into !!thing

fair rampart
#

I'm not checking if it's not null

ornate rivet
#

Abyssal, you would have been done an hour ago if you had used the code I gave you

copper nacelle
fair rampart
#

Oh he's dming you too?

ornate rivet
#

who is that

fair rampart
#

He was asking me how to change his name and pfp on youtube

#

Why are you asking me?

hollow pier
#

papa bless he has not dmed me

rain cedar
#

Same

hazy sentinel
dark wigeon
rain cedar
fair rampart
hollow pier
#

ah he has returned

#

to his home domain

#

did we summon him

copper nacelle
fair rampart
#

No, he is just asking the same thing he asked me

rain cedar
#

@dark wigeon Maybe try:

GameCameras.instance.StartScene
#

It's private though so reflection

hollow pier
#

56 any discord injections for perma black emote selector

dark wigeon
#

k

rain cedar
#

Nevermind SceneInit is public

#

And just calls that

copper nacelle
hazy sentinel
#

@copper nacelle any good typeface

copper nacelle
#

u

ornate rivet
#

@fair rampart
Just use this

GameObject gameObject3A = GameObject.Find("Grubberfly BeamL");
PlayMakerFSM _control = gameObject3A.LocateMyFSM("Control");
if (gameObject3A != null)
{
    _control.InsertAction("Terrain Hit", new Wait 
    {
        time = 0.2f,
        finishEvent = FsmEvent.GetFsmEvent("FINISHED"),
        realTime = false
    },0);
    _control.RemoveAction("Terrain Hit",6);
    _control.RemoveAction("Terrain Hit",2);
}
copper nacelle
#

why do you have _ in a local

ornate rivet
#

it looked nice

fair rampart
#

Underscores look nice??

ornate rivet
#

just take the code

#

reee

dark wigeon
#

Camera mode still on locked

rain cedar
#

_varName is for private backing fields

copper nacelle
#

^

#

@dark wigeon I had a similar issue and I had to set GameManager.instance.cameraCtrl's cameraGameplayScene and a few other things

ornate rivet
#

fine I won't use it anymore

rain cedar
#

Or just do the microsoft recommended style

#

Which is PascalEverything ๐Ÿ˜ฉ

fair rampart
#

k, he's general's problem now

dark wigeon
#

Do you think it might have to do with the scene name? Does any code use scene names

copper nacelle
#
            ModCheats.cameraLockArea.SetValue(GameManager.instance.cameraCtrl, this._lockArea);
            GameManager.instance.cameraCtrl.LockToArea(this._lockArea as CameraLockArea);
            ModCheats.cameraGameplayScene.SetValue(GameManager.instance.cameraCtrl, true);
ornate rivet
#

nice tabbing

dark wigeon
#

There's no mod cheats

copper nacelle
#

u

#

Yeah

ornate rivet
#

consider using shift+tab then copying

copper nacelle
#

They're private fields

rain cedar
#

Fucking everything is pascal according to them

fair rampart
#

what

copper nacelle
#
cameraGameplayScene = typeof(CameraController).GetField("isGameplayScene", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
cameraLockArea = typeof(CameraController).GetField("currentLockArea", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
ornate rivet
#

I thought only methods and classes use Pascal Casing

#

or something like that

rain cedar
#

Everything but parameters and locals

#

Officially at least

#

Nobody codes like that

copper nacelle
#

Namespace, Type, Interface, Method, Property, Event, Field, Enum value

rain cedar
#

I agree with all of that except field

#

With some exceptions like const

copper nacelle
#

Yeah

rain cedar
#

SCREAMING_SNAKE_CASE consts all day

copper nacelle
#

yes

fair rampart
#

Even I don't use Pascal for fields

#

and I suck

rain cedar
#

Yeah because it's dumb

#

If everything is pascal it has no meaning

#

You can't tell what anything is anymore

silk jetty
#

if the channel description didn't state hollow knight I would ask questions the a hat in time level editor

fair rampart
#

the channel decription says modding, yet speedrunning still happens

silk jetty
#

yeah

fair rampart
#

And I seem to recall terraria here too

dark wigeon
#

what is _lockArea

copper nacelle
#

It's a CameraLockArea I save

#

It's from code for save states

#

You could probably find some in the scene you're loading using UnityEngine.Object.FindObjectOfType

dark wigeon
#

hm still locked

#

also for some reason to the left of the camera it looks fine when forcing camera follow but the right is just black

copper nacelle
#

their lockZoneList might not contain your CameraLockArea

dark wigeon
#

literally the only difference is the name of the scene

#

its a complete copy of that level

#

o im stupid

#

i used the wrong event

copper nacelle
#

nice

dark wigeon
#

right now my code is worse than sphagetti

hollow pier
#

terraria but 56 ditches the boys

dusky lion
#

he's off winning hackathons

rain cedar
copper nacelle
#

nice

rain cedar
#

It doesn't quite work

#

The shiny goes away forever on scene reload if you select no

copper nacelle
#

amazing

rain cedar
#

I'm sending it straight to that state though

copper nacelle
#

What the fuck

rain cedar
#

Which does like nothing then exits

#

And it's not before the choice because if you interact with it then noclip out it stays

#

I guess it's whatever that CLOSE event does

copper nacelle
#

Did you check what FSM it's sending the event to

#

yeah

rain cedar
#

It's not that

#

Charm tutorial msg

copper nacelle
rain cedar
#

Oh I'm dumb

#

Finish isn't a dead state

#

It's fucking loaded

copper nacelle
#

Nice

dark wigeon
#

lol i broke my save now im stuck in the wrong map

rain cedar
#

Incredible

dark wigeon
#

but anyway it seems theres an error unloading a previous scene or something thats breaking everything else

#

BeginSceneTransitionRoutine's UnloadScene is unloading a non valid scene apparently

#
Unloading "Menu_Title"

Exception in responders to SceneLoad.ActivationComplete. Attempting to continue load regardless.

ArgumentException: Scene to unload is invalid
  at (wrapper managed-to-native) UnityEngine.SceneManagement.SceneManager:UnloadSceneNameIndexInternal (string,int,bool,bool&)
  at UnityEngine.SceneManagement.SceneManager.UnloadScene (System.String sceneName) [0x00000] in <filename unknown>:0 
  at GameManager+<BeginSceneTransitionRoutine>c__Iterator0+<BeginSceneTransitionRoutine>c__AnonStorey13.<>m__2 () [0x00000] in <filename unknown>:0 
  at SceneLoad+<BeginRoutine>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
<BeginRoutine>c__Iterator0:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

Exception in responders to SceneLoad.Complete. Attempting to continue load regardless.

NullReferenceException: Object reference not set to an instance of an object
  at CameraController.GetTilemapInfo () [0x00000] in <filename unknown>:0 
  at CameraController.SceneInit () [0x00000] in <filename unknown>:0 
  at GameCameras.StartScene () [0x00000] in <filename unknown>:0 
  at GameCameras.SceneInit () [0x00000] in <filename unknown>:0 
  at GameManager.BeginScene () [0x00000] in <filename unknown>:0 
  at GameManager+<BeginSceneTransitionRoutine>c__Iterator0+<BeginSceneTransitionRoutine>c__AnonStorey13.<>m__3 () [0x00000] in <filename unknown>:0 
  at SceneLoad+<BeginRoutine>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
<BeginRoutine>c__Iterator0:MoveNext()
UnityEng...
copper nacelle
#

Menu_Title is a scene

dark wigeon
#

yes, it is

copper nacelle
#

wtf

dark wigeon
#

i dont know what that has to do with anything anyway

copper nacelle
#

no i mean it's a scene which definitely exists

#

if you go to another scene first does it still throw

dark wigeon
#

got it bois

#

made a mistake on LoadSceneAsync

copper nacelle
#

amazing new level

dark wigeon
#

ikr

copper nacelle
#

how'd you come up with the design

dark wigeon
#

i dunno man just thought of it and it just came all out

#

only problem is with this method is that if you remove the mod it invalidates the save but other than that it works

#

i have full access to editing all the level files at runtime

copper nacelle
#

sick

rain cedar
#

Adding a new state into an fsm

#

And it actually works

copper nacelle
#

nice

#

i do that a bunch but they're all clone states i modify

rain cedar
#

That's what I have here too

#

I cloned Idle then gutted it

copper nacelle
#

o

#

same

rain cedar
#

Nice

#

How does the FINISHED event even work?

#

Because sometimes it looks like they have to call it explicitly

#

And sometimes it just happens

copper nacelle
#

It's after all states are finished

#

or you could just event it directly ig

rain cedar
#

All actions you mean?

copper nacelle
#

yeah

#

whoops

rain cedar
#

Ok

rain cedar
#

What the hell is fog bugz?

copper nacelle
#

no clue

rain cedar
#

HeroController.RegainControl doesn't restore animations

#

why

#

The knight is stuck in idle

copper nacelle
#

Amazing

dawn oxide
#

i want to be the dumbass i am and act smart and say bugs and fog canyon but hh

copper nacelle
#

What

dawn oxide
#

me too

ornate rivet
#

is this lore

hollow pier
#

i decided to do any% nmg then realized i had 10 minutes then got sub8 dash

#

i am sure it would have died to mantis pogo anyways since that's impossible

copper nacelle
hollow pier
#

that's a weird way to spell modding

rain cedar
#

I think I have it working fully

copper nacelle
#

Nice

hollow pier
#

is this all for dash slash text

rain cedar
#

Yeah

warped sinew
#

Someone mod this into the game with a wiifit

hollow pier
#

just tell them they suck if they waste the 800 geo

rain cedar
#

Same

copper nacelle
#

my favorite hollow knight move

#

the jump squat

ornate rivet
#

da faq

fair rampart
#

Where did they come up with that name

#

What does working out have to do with either of those words

rain forge
#

Is there any chance the glass soul mod might be updated for the current patch? It's a mod I've really wanted to play

hollow pier
#

petition to make hard preset the default in rando

copper nacelle
hazy sentinel
#

@cunning lagoon can you do 31 dailies for me

hollow pier
#

i cannot believe verulean is leaving again

rain cedar
#

Good riddance

cunning lagoon
#

You just have to participate though ๐Ÿ™‚

hazy sentinel
#

love committing suicide on first floor for a month straight

hollow pier
#

wow you died on the first floor

#

what a noob

silk jetty
#

lol

#

I have all achievements

#

but I lost all my skill since I got them

#

because I didn't play for like 4 or 5 months after completing pack 5

rain cedar
silk kindle
#

@hazy sentinel I just thought that I was somehow in one discord of Isaac without changing. I was getting scared that I was losing time so much that I didn't even register the change.

trim totem
#

this is the one

silk kindle
#

@rain cedar you need to make Zote q playable character.

rain cedar
#

@silk kindle you need to not make demands

silk kindle
#

Sorry, was only a joyful suggestion. I will not do it again.

rain cedar
#

doubt

hazy sentinel
#

@rain cedar you need to make rando 3

rain cedar
#

do I look like ushebti

hollow pier
#

i have never seen ushebti and sean in the same room

rain cedar
#

Same

silk kindle
#

@rain cedar Im truly didn't say it like that. I'm sorry.

hollow pier
#

let the child live sean

rain cedar
#

Ok

hazy sentinel
#

never knew pete was pro life

hollow pier
#

well i am a gamer so i'm pro at life ๐Ÿ˜Ž

fair rampart
#

YAAAAAAAAaaa

silk kindle
#

I should have guess that you cannot convey a voice tone by writing.

fair rampart
#

sarcasm can be made clearer by using strikethrough text

#

or by using zote

silk kindle
#

Yeah, it was pretty stupid of my part. Sorry.

fair rampart
#

it is okay

weak lodge
#

56 has some ascended nickname right there

#

but why

rain cedar
#

Looks like it would be an aztec god

#

Probably is

#

Nice url

young walrus
#

Atlas0 #1992199
Atlas0 #1992126

These are the two sheets for abilities

rain cedar
#

Those names don't really mean anything

young walrus
#

so what info do you need

rain cedar
#

Just post the actual spritesheets so I know what you're trying to change

young walrus
#

which would then become.....

ember bloom
#

lul

young walrus
#

for the demon one

hollow pier
#

oh i remember the first giveaway

#

has it been a year

#

fuck

ember bloom
#

3VIL-D3m0N mod tdogRat

young walrus
#

yeah dude

#

makes your knight into this

rain cedar
#

Go here f
Make a q
creative p

fair rampart
#

Redwing should use these sprites

ember bloom
#

Could use "Your Windows 10 is โ™ฟ "

weak lodge
#

Send download this is literally me

arctic walrus
#

Do any1 have any good HollowKnight Mod recommendations?

hollow pier
#

play lightbringer

silk jetty
#

Randomizer 2 @arctic walrus

arctic walrus
#

@silk jetty @hollow pier Thx ๐Ÿ˜€

young walrus
#

play with controller upside down

hollow pier
#

play blindfolded

arctic walrus
#

Okay I'll play blindfolded, controller upside down, and with my ears.

civic hare
#

play darkness

fair rampart
#

play darkness, at minimum brightness, with sun glasses on

#

or just wear a blind fold

#

basically the same thing

solemn basin
#

Darkness alone pretty much works.

#

You won't see much.

silk jetty
#

darkness except your screen is turned off

solemn basin
#

Probably still doable for a few bosses.

rain cedar
#

@young walrus I uploaded a new version that can do those spritesheets

#

Desolate dive and vs look super out of place now

young walrus
#

I changed them a bit

#

What names do they need to be

#

Same as I named them?

rain cedar
#

I just named them Wraiths and VoidSpells

young walrus
#

Kk

rain cedar
#

The "Wraiths" one includes dream gate too but idk

#

Good enough

young walrus
#

And dream nail and wings

#

But yeah. Lol

#

Imma try my second Rev of them

#

try these ones

weary oyster
#

thats way better than the other one

young walrus
#

Ddark didn't change much

#

but dive did

#

how does dive1 look?

#

the wings and dream nail look good with this

#

and so does shriek

weary oyster
#

wheres vs

young walrus
#

on the first one

#

vs and shade soul both look the same now

#

black with red eyes

rain cedar
blissful burrow
#

ok

#

I was writing a "fuck you don't ping me message"