#archived-modding-development

1 messages · Page 494 of 1

jolly jungle
#

Alright I was wondering

#

Is it possible to add cutscenes?

#

Anyhow bye, a good day to you all

jolly oriole
#

afaik cutscenes are just video files on their own scenes, shouldn't be too hard to add those

copper nacelle
#

art mods has a few

vocal spire
#

Redwing too

#

been planning them for my own mod that I’ve been planning, but it’s so big that I think I’m never gonna make it

fast estuary
#

how do I create new fsm variables?

copper nacelle
#

if this is for speedrun mod you should have an extension for int/bool

#

But you just expand the array

fast estuary
#

that works, thank you

copper nacelle
#

then make it

proven cipher
#

A Shroomal Ogre emoji

jolly oriole
vocal spire
#

Adding relics/trinkets

#

I mean reading the message above it does give a pretty good description

#

?

#

....code.....?

#

Here I’ll explain it

#

What type of custom items do you mean

#

Stuff that appears in the inventory

#

Or stuff in the relics shop

#

And if it’s stuff in the inventory, should I explain my method, or anyone/grenade’s method

fast estuary
#

what's the best place to update charm notch costs for existing charms? probably something like on save file load?
just want to make sure it works for both new and existing saves

jolly oriole
#

Modhook for getplayerint

fast estuary
#

right, that makes sense

#

thanks

fair rampart
#

that would be hard

#

very very hard

#

not the boss part but the primal aspids

#

i dont like those

#

oh no

#

the primal aspid gives birth to 10 ||soul masters||

#

oh god no

#

100 primal aspids

#

all firing

#

we have 1,000,000 troops in battle and 10,000 well on their way

vocal spire
#

This is for modding development

potent dirge
#

does anyone here know the hk autosplitter and why this is a check in how splits are handled? I haven't seen any logic looking like it requires it in the slightest so far

private void HandleSplits() {
...
if (currentSplit + 1 < Model.CurrentState.Run.Count || (currentSplit + 1 == Model.CurrentState.Run.Count && (finalSplit == SplitName.ElderbugFlower || finalSplit == SplitName.ZoteKilled || finalSplit == SplitName.HuskMiner || finalSplit == SplitName.KingsPass || finalSplit == SplitName.GreatHopper || finalSplit == SplitName.PathOfPain || finalSplit == SplitName.Aluba))) {
...
#

in this file HollowKnightComponent.cs, in-case anyone actually has any preknowledge

copper nacelle
#

I've worked on the splitter but I still have no idea why it isn't just end on any split

potent dirge
#

honestly gonna just try to remove half the check in dnspy and test with practice

copper nacelle
#

dnspy elderC

potent dirge
#

no need to build ax2uHappy

#

ugh ill do it properly then MaggotPrime

#

any directions for how to build/compile it? didnt see any in the repo

copper nacelle
#

you just hit build ngl

potent dirge
copper nacelle
#

the only thing is making sure the assembly ref to livesplit works because it depends on where you have livesplit so you'll probably have to change that

potent dirge
#

im guessing it needs references to livesplit stuff? ah yea, you wrote faster

#

yea makes sense

potent dirge
#

any tips? tried to change .net framework to 4.7.2 in the .csproj file but yea, still the same MaggotPrime

copper nacelle
#

lang version

#

In the first property group in the csproj

#

except 7.3 or w/e

potent dirge
#

yea adding manually worked

fast estuary
#

does someone know how the game checks for having grimmchild equipped when you go fight nkg? there is no PlayerDataBoolTest related to having that charm equipped in that scene for that

potent dirge
#

are you checking in 1432 or 1221?

fast estuary
#

cp

#

that check doesn't exist on 1221

copper nacelle
#

it's on the hanging dude isn't it

#

ikg removes it

potent dirge
fast estuary
#

the only 2 times it checks for it are for brumm conversation dialogue and to make tmg spawn

#

nothing else in that scene

potent dirge
#

nothing tied to dnailing hanging nkg either?

fast estuary
#

no

copper nacelle
#

it's just equippedCharm_40

fast estuary
#

where does it check that?

copper nacelle
#

Grimm_sleep_shield -> Component: DeactiveIfPlayerdataTrue

fast estuary
#

oh wtf

#

why is it so inconsistent across things

copper nacelle
#

the newer the less likely it is to be an fsm

#

Simple

fast estuary
#

I guess that makes sense

pastel eagle
#

hi i'm working with a group on a mod where we make the player fly, but we're having trouble with interacting with objects while the character is in the air. we were able to make it so you can talk while in the air with this

On.HeroController.CanTalk += OnCanTalk; which we have as always returning true.

and this:

        {
            Log("changedScene");
            foreach (PlayMakerFSM fsm in UnityEngine.Object.FindObjectsOfType<PlayMakerFSM>())
            {
                if (fsm.FsmName == "npc_control")
                {
                    var collider = fsm.gameObject.GetComponent<BoxCollider2D>();
                    collider.size = new Vector2(5.0f, 3);
                    collider.offset = new Vector2(0.0f, -0.55f);
                }```

which makes it so every time you enter a new scene it finds all of the npc_control fsms with box colliders and makes them bigger so that you can talk to npcs even when you're not grounded in front of them. 

but when we try to do the same for interacting by making an "OnCanInteract" that also always returns true and increasing the colliders of different fsms which we think represent interacting it doesn't work
vocal spire
#

@pastel eagle i can’t look at the code rn, but are you having trouble with picking up items? What is OnCanInteract for?

pastel eagle
#

I guess it hasn't really been a problem for progressing in the actual game, but just for a clean mod having the ability to interact with tablets and things like that and also we've been unable to rest on benches unless we're grounded so we assume it's the same problem and would like to figure out that as well

vocal spire
#

Hmmm

#

I’d look at the code for that but I can’t rn

pastel eagle
#

That's okay! We're not in any rush. We were just looking for any help we could get

potent dirge
#

are basically all godmaster named like GG_<descriptive name here>, or is that naming scheme unrelated?

fast estuary
#

all rooms that were new with godmaster dlc, so godhome, 3 waterways rooms and the pale lurker room iirc

fast estuary
#

this is probably some really simple thing but I don't understand how to do this

#

am I stupid or is there just no way of removing components from gameobjects?

copper nacelle
#

UnityEngine.Object.Destroy(go.GetComponent<YeahIEatSand>())

fast estuary
#

yeah okay, that's actually what I tried before
I thought there was maybe also something like go.RemoveComponent<Component>() like there is for fsmactions

#

so that somehow also gets rid of the actual dream nail trigger or whatever

unborn flicker
#

Isn't the sleep shield is just a visual effect?

copper nacelle
#

I only checked for the shield you prob want to check the other objects

#

probably

unborn flicker
#

You want the object that actually controls the dream entry

#

my guess would be "Dream Enter Grimm", which incidentally also has DeactivateIfPlayerdataFalse

potent dirge
#

Does anyone of you know the first scene on starting a new Godseeker save of the top of your heads? klinkHmm

copper nacelle
#

the cutscene

fast estuary
#

GG_Entrance_Cutscene

potent dirge
#

yo thats great thanks

fast estuary
#

and thank you homothety, it's that one but it directly disables itself on entering the room so I can't find it at that point anymore
is there some good way to get a gameobject that's not active like that one?

#

I got it working using a hook for the DeactivateIfPlayerdataFalse but there is probably a better way

unborn flicker
#

I've never had to do that. The hook is probably a decent solution, as long as it has the proper checks to not affect anything else.

fair rampart
#

Hahah, is this game even still doing mods because I'm making a mod with new custom music, story, art and everything. . . If anyone can code lmk

fair rampart
#

Dm me if you can help

potent dirge
#

thats way more work than just "can code" ngl

potent dirge
#

Oh also, is GG_Entrance_Cutscene used for any other cutscene than the very first Godhome/Godseeker cutscene?
Would check myself, but I only have 1221 currently 🥴

copper nacelle
#

no it's just first dnail in and godseeker save start

#

afaik

potent dirge
#

That's a huge Pog ngl

#

And did look that way in fsm viewer as well

lapis fulcrum
#

can someone here help me make a mod?

#

I can show you a few different sprite ideas when I get on my other devise

#

and this will basicly be for every enemy

vocal spire
#

I’d help but I’m involved in too many projects atm. If it’s just a simple texture mod, then I’ll see if I could try to do something soon, if it’s reworking bosses completely, then I can’t

lapis fulcrum
#

it's not reworking bosses move sets just maybe changing texture and maybe hit box or damage.

#

those different sprites for enraged guardian (the first one being the original image.)

#

I think the two that are my faveourite designs i think are burning embers and icy core

vocal spire
#

Ok

#

Once you have a spritesheet, dm me and I’ll see what I can do

lapis fulcrum
#

alright I'll try to get frame of animation but just so you know I am bad at this

proven cipher
#

You might be able to use Go Dump for that

#

Mine hasn't been working properly, so don't ask me for specifics, but I'm pretty sure you could generate the atlas and then all the pngs for it using go dump and the other program

lapis fulcrum
#

i literaly just decided to try and make a mod so i know nothing about how to make one.

#

alrighty the first sprite sheet should be ready in a day or so

shell furnace
#

how hard is it to make music mods (as in mods that replace certain tracks)? i know coding and im a quick learner but in unfamiliar with the modding environment of hollow knight

copper nacelle
#

not terrible

shell furnace
#

i want to make a mod that a) changes the end credits music to the unused pale court track, or b) makes each godhome boss play their original track

copper nacelle
#

there's already mods which do it for some things so it's easy enough to copy

shell furnace
#

a would be easier obviously

jolly oriole
jolly jungle
#

@lapis fulcrum that's a real nice sprite recolor you have there, is there any chance you can help me with something?

#

It just so happens to be crystal guardian, in fact. Happy coincidence :D

lapis fulcrum
#

yeah I am working with someone to make a mod but yeah.

#

I can show you a few more i did if you like

jolly jungle
#

mm I'd love to

#

but can I request something specific?

lapis fulcrum
#

okay...

fast estuary
#

is there a good way of getting sprites for the inventory items (skills etc)?

jolly oriole
#

in Initialize() they are already loaded, just need to get the gameobjects with the spriterenderers

jolly oriole
#

well, using the current modding api they are loaded in Initialize() only when preloads exist

sage holly
#

how do I set an object to act like the spikes (pogable and deadly) without having to copy an object from another scene? (I don't want to rip new scenes for reasons)

jolly oriole
#

1 sec

sage holly
#

ok

jolly oriole
#

it needs a DamageHero component

var dh = go.AddComponent<DamageHero>(); // where you replace go with the needed deadly object
dh.damageDealt = 1;
dh.shadowDashHazard = false;
dh.resetOnEnable = false;
dh.hazardType = (int)HazardType.ACID;

it is pogoable by default
the spikes specifically also have a TinkEffect (without which it would be weirdly quiet pogoing)

var te = go.AddComponent<TinkEffect>(); // where you replace go with the needed deadly object
te.blockEffect = null; // here would the blockEffect go

but the values for the tinkeffect i take from a copied object, as i don't want to create those in code

sage holly
#

ok thanks

#

I put all that in the same script?

jolly oriole
#

the object you want to be pogoable will definetly work when on layer Hero Attack (17)

#

uh, should work

sage holly
#

ok

jolly oriole
#

for the tinkeffect, apparently you only need to set a blockEffect for the tinkeffect, at least a wp saw has only that set

sage holly
#

where do I set that?

jolly oriole
#

nvm, that gameobject has tk2d stuff

vocal spire
#

lol

jolly oriole
#

added the part to the above code

sage holly
#

ok thanks

junior matrix
#

how to mod the game can you tell me?

#

yes im speaking like yoda

vocal spire
#

Do you mean use mods or make mods

junior matrix
#

make

#

i have unity

potent dirge
#

There are some resources in pins

junior matrix
#

thanks

vocal spire
#

Unity is only used for assetbundling in hk Modding

potent dirge
#

How do I know which HK version the modapi repo/code is intended for? hmmSip

vocal spire
#

You look at the most recent version of hk zote

potent dirge
#

okay, then how do i know how far back in the commit history to get the version that applies to specific updates? hmmSip

vocal spire
#

You look in the google drive for them zote

#

?mods

vocal spire
#

Modding api folder > old folder > ModdingApi zip file for your version

potent dirge
solemn cove
#

How do I open hollow knight on unity?

flat forum
#

hm?

#

what for?

jolly oriole
vocal spire
#

maybe should have linked them to the apidocs

ornate rivet
rare briar
vocal spire
#

It’s looking at me

rare briar
#

That's a mouth

#

It's smooching you

jolly jungle
#

are you?

rare briar
#

I am

#

Serious

jolly jungle
#

I am

#

Scared'

vocal spire
#

k

marble hollow
vocal spire
#

This is modding development btw

plush cradle
#

?membercount

autumn shardBOT
#
Members

77773

plush cradle
#

wrong chat sorry

proven cipher
#

Weirdly I was looking for this right now

pastel eagle
#

is there anyone kinda familiar with FSMs and interacting with objects/resting on benches who can help me with a problem I'm having in my mod? my group wants to make a flight mod where you can play the game without having to touch the ground, but interacting with certain objects like tablets and resting on benches seems to not like that we aren't grounded.

vocal spire
#

@pastel eagle I’m familiar with them. I’ll take a look in a couple mins

pastel eagle
#

thank you!

bronze river
#

what if you swapped out the hollow knight soundtrack and replaced it with the doom eternal soundtrack??????????

ornate rivet
#

WOAH THAT'S SO EPIC OMG

jolly oriole
#

you dropped this: /s

signal thunder
#

Hello everyone! Brand new here so apologies for my ignorance. I'm a newbie developer just trying to make a fun Hollow Knight looking game for practice (not profit). I currently just need the sprites for the Knight grouped by state (idle, run, etc.) and ordered. I've been trying to research into this and I found the Google Drive but those sprite sheets seem impossible to figure out the group and order. I found the sseadv, GODump, and SpritePacker tools but for the life of me I can't figure out what those are supposed to do or even how to run them (no .exe file?). If anyone would be willing to help a newbie, I would gladly appreciate it 🙂

ornate rivet
#

This is what you want

vocal spire
#

@signal thunder godump is a mod, while sprite packer is a exe

signal thunder
#

Sorry if I'm like super dumb and missing something here but I downloaded both of those and unzipped them and I don't see a .exe file to run in either

ornate rivet
#

download the release

vocal spire
#

Then you probably downloaded the source code instead of a release

#

Help major phone lag

nimble lake
#

How is modding today my fine persons

vocal spire
#

Good

signal thunder
#

@ornate rivet Thanks!

nimble lake
#

Good

pastel eagle
#

@vocal spire my group used this code On.HeroController.CanTalk += OnCanTalk; which we have as always returning true along with this below. this makes it so even when you're not grounded you can talk to NPCs. we tried the same thing with resting on benches, but we're struggling to make it work.

        {
            Log("changedScene");
            foreach (PlayMakerFSM fsm in UnityEngine.Object.FindObjectsOfType<PlayMakerFSM>())
            {
                if (fsm.FsmName == "npc_control")
                {
                    var collider = fsm.gameObject.GetComponent<BoxCollider2D>();
                    collider.size = new Vector2(5.0f, 3);
                    collider.offset = new Vector2(0.0f, -0.55f);
                }```
vocal spire
#

Just needs a bit of editing

pastel eagle
#

sorry no rush to look at it, just realized I never actually sent the code haha

vocal spire
pastel eagle
#

do I need to do like On.HeroController.CanInteract += OnCanInteract; or anything like that?

vocal spire
#

Doesn’t look like it

pastel eagle
#

oh

vocal spire
#

You can if you want

#

If it doesn’t already work

pastel eagle
#

we had tried using Bench Control earlier like you suggested but in my code instead of having it like you wrote it i just had it as a separate if statement

#

i'll try it the way you suggested instead

vocal spire
#

Ok

pastel eagle
#

so the UI that says "REST" now pops up when i'm hovering near it, but i still can't actually rest unless i'm grounded

vocal spire
#

Hmm

pastel eagle
#

i don't think there's a CanRest on HeroController or anything right hahah

dark wigeon
#

I guess I might as well write a help doc

signal thunder
#

With the sseadv tool, is there a way to turn off the red outlines it puts around the sprite?

#

@dark wigeon

dark wigeon
#

not right now but I can make it an option

signal thunder
#

That would be amazing 😄

signal thunder
#

Unfortunately Unity's automatic sprite splicer cuts on the outside edge of the red rectangle. If that worked you'd have to do that for each individual sprite but it would be a little faster, as is I think the only way to make Unity animations from the exported sprites is to edit each individual sprite by hand to crop out the rectangle. It's doable but not preferable if there's an easier export method hahaha 🤣

dark wigeon
#

@signal thunder any other options you want while I'm adding them

signal thunder
#

Nah, it's amazing what you've made. Can't tell you how cool it is you put something like this together

#

Is that an easy change?

dark wigeon
sage holly
potent dirge
dark wigeon
signal thunder
#

@dark wigeon OMG THANK YOU! THAT'S AMAZING 😄

vocal spire
#

Pale court

keen frost
#

Ok but what about a pale king bossfight

#

i wanna kill myself

sage holly
#

u'll have to wait

#

or do it urself

jolly oriole
#

i heard that there are a few PK bossfights in planning (i have no idea if any of these are in development)

vocal spire
#

I was gonna make one but I don’t want to pay for sprites until I get a new pc

#

I might make it with knight sprites or just a static pale king sprite and add in the actual sprites afterwards

dark wigeon
#

@potent dirge hkwe2 now has tk2d sprite emulation (much better and more accurate than the hack with a sprite renderer in hkwe1)

ornate rivet
#

@sage holly

vocal spire
dark wigeon
#

I committed just now but you may not want to use it just yet because sprites slow down the editor load speed a bit right now

wooden sky
#

Hello, does anyone know where/how I can find the source for HK's BlurPlane filter thing? Trying to do something similar in a game of my own. Thanks!

#

this is the best I can do for context, it's just applying a classic gaussian blur to everything behind it ingame:

ornate rivet
wooden sky
#

Alright thanks!

sage holly
sage holly
#

what is the crossroads shader for?

vocal spire
#

Idk where is it

dark wigeon
#

You mean the crossroads material?

pastel eagle
#

is there anyone kinda familiar with benches and FSMs who might know why you wouldn't be able to rest while you're not grounded?

jolly oriole
#

the Bench Control FSM checks if the hero is on ground in the Can Rest? state

#

specifically the 3rd action CallMethodProper

pastel eagle
#

is there a way to make it so CanRest always returns true?

#

in my group's project we want the character to always be flying which we have working so we're trying to be able to rest on the bench while you're in flight

jolly oriole
#

you can do (with ModCommon, without you would need to edit the transition itself)

benchfsm.ChangeTransition("Hide Prompt", "FINISHED", "Broadcast Event");
#

capitalization may be off

var state = benchfsm.states.first(x => x.name == "Hide Prompt");
state.transitions.first(x => x.toState == "Can Rest?").toState = "Broadcast Event";
pastel eagle
#

thanks! let me try putting this in our code

#

is CanRest in the HeroController?

#

these may be dumb questions sorry i'm new to modding this game

copper nacelle
#

this is in a fsm

#

so it's not in code you can dnspy

pastel eagle
#

ohh

copper nacelle
#

you can use the fsm viewer which is pinned to look at them

pastel eagle
#

i'm having trouble with the code they sent because i don't know where it fits in with code my group already has written

#

right right i have fsm viewer

copper nacelle
#

on scene load

#

if there's a bench then modify it's fsm

pastel eagle
#

would it be something like this? i'm sorry for the lack of experience

vocal spire
#

Change benchfsm to fsm

pastel eagle
#

now it doesn't recognize ChangeTransition and states

vocal spire
#

Reference modcommon

#

Or Vasi

pastel eagle
#

I added a reference to ModCommon and this error is still popping up. my group and I aren't sure what vasi is

copper nacelle
#

any alt enter

#

you're just missing a using

pastel eagle
#

oh got it

#

okay no more errors! i'm making a build and testing it

fervent timber
#

how do you get references to the prefabs for instantiating entities?

copper nacelle
#

depends on the thing

#

you can find it fairly often in an fsm

#

sometimes a component has a field with the prefab

#

If it's like an enemy you preload it which just spawns an inactive clone as a prefab

fervent timber
#

so if i was trying to find an enemy

copper nacelle
#

get the scene name and then find the enemy in the hierarchy, you can get the enemy name from debug or just scroll through the dump

#

then you put it into get preload names

#

as ("Scene", "Path/To/Obj")

fervent timber
#

is there a chart on which scene names correspond to which scene_xxx.unity?

copper nacelle
#

xxx is a number?

fervent timber
#

a placeholderfor a number

dark wigeon
#

you mean levelxxx/sharedassetsxxx.assets?

fervent timber
#

yeah right

dark wigeon
fervent timber
#

thx

dark wigeon
#

the number in [] are the level ids

copper nacelle
fervent timber
#

I can't seem to find the kingdom's edge rooms?

dark wigeon
#

deepnest east

fervent timber
#

oh ok

dark wigeon
#

what are you using the level ids for

fervent timber
#

for grabbing enemy prefabs

#

how long does the scenes usually take to load in?

vocal spire
#

Depends

vocal spire
pastel eagle
#

i forgot to message in here but our benches work now! thank you so much to everyone who helped. :)

vocal spire
#

yay

vocal spire
#

will loading scenes async trigger SceneManager.activeSceneChanged ?

#

nvm

fair rampart
#

hey just came from the reyla video does anyone have the download link for the mod page?

hexed violet
#

the modinstaller?

versed dune
sage holly
dark wigeon
#

Crossroads material uses Sprites/Lit which I think has no shader code but I think it uses Sprites/Diffuse

sage holly
#

from what I've seen, it seems to influence how light affects the sprite with it

#

so Im not sure if all the "solid" sprites of an area should have it

#

solid as in walls floor details and whatnot, unlike clouds for example

dark wigeon
#

The point of using diffuse is so it isn't full bright at all times

sage holly
#

thought so

#

so you recommend me to use it in said sprites?

dark wigeon
#

Almost all sprites in HK use it

sage holly
#

ok

dark wigeon
#

What are you using for editing

sage holly
#

utiny ripper, in order to move stuff from one scene to the other

dark wigeon
#

Does it handle decompiling shaders?

sage holly
#

I dont know what that is

jolly oriole
#

afaik game shaders are also ripped

sage holly
#

yeah it ripps shaders too

#

though not all of them work as intended

#

(blurplane looks pink as fuck)

dark wigeon
#

By ripped do you mean the source?

#

Or just that it is visible in the editor

sage holly
#

also, it does affect how the sprites look

dark wigeon
#

If you open a shader file in a text editor what do you get

#

also, it does affect how the sprites look
you mean just light? I wasn't arguing with you on that

sage holly
dark wigeon
#

That's a meta file

sage holly
dark wigeon
#

Can you scroll down just a bit more

#

Anyway looks like it can so that's nice

sage holly
#

like how much?

dark wigeon
#

Like half the window

#

Just trying to see if it detected the shader header

sage holly
#

(I just took the first one in the folder, dont know about the others)

dark wigeon
#

Ye sadly not a real decompilation just the bare minimum

sage holly
#

mmm

#

sad

#

that would explain why the blur plane looks pink

dark wigeon
#

Not really that should work

#

That's probably just a bug

gilded lotus
#

didn't @ornate rivet have a .dll that fixed the pink blur plane? or am i misremembering

signal thunder
dark wigeon
gilded lotus
#

ah yeah now i remember, thx for correction

ornate rivet
#

it would be really nice if utiny ripper worked with shaders

dark wigeon
#

sort of a hard problem to solve when unity inlines all functions

fervent timber
#

I'm getting "SceneManager does not contain definition for GetSceneByName"

charred topaz
#

Does anyone know what version of TextMeshPro Hollow Knight uses and where I could find a copy? I was looking into using that over the basic Text Component that Unity provides. I would be integrating it into WeaverCore so I can use TMPRO in Prefabs.

vocal spire
#

@fervent timber where are you getting this error?

copper nacelle
#

Did you qualify SceneManager

#

There's the unity one and the hk one

fervent timber
#

how do you do that

copper nacelle
#

UnityEngine.SceneManagement.SceneManager

#

Also I think angle had tmp for hk but afaik it's not available anymore and he lost his copy

#

Might be wrong on the not available anymore part though

fervent timber
#

This is all the things i'm using```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using HutongGames.PlayMaker;
using HutongGames.PlayMaker.Actions;
using Modding;
using UnityEngine;
using UnityEngine.SceneManagement;
using On.HutongGames.PlayMaker;

#

it doesn't work :(

vocal spire
#

Using SceneManager = UnityEngine.SceneManagment.SceneManager;

fervent timber
#

"the type or namespace scenemanagement could not be found in UnityEngine"... even though I just used it?

#

I think i'm importing the wrong dlls

#

what are the paths to the ones I'm supposed to be using?

fervent timber
#

even the example project doesn't work when I try to use scenemanagement

vocal spire
#

Have you ever heard of a spelling error

fervent timber
#

I wish it was that easy

vocal spire
#

In my message I said SceneManagment and it’s supposed to be SceneManagement

fervent timber
#

oh whoops

#

I thought you were talking about the actual function call

#

works now, thanks

vocal spire
#

lol

#

Np

potent dirge
#

in the modding api there's a FauxMod that "submods" in QOL inherits from. Is there anything special about FauxMod, or a specific reason why those "submods" use it?

vocal spire
#

¯_(ツ)_/¯

#

Never heard of FauxMod or looked in Qol’s code

copper nacelle
#

faux mod isn't defined in the modding api

vocal spire
#

Guessing not in Vasi either

potent dirge
#

oh wait heck, it was in QOL wasnt it 🥴

copper nacelle
#

yeah it's qol

#

it's for modularization with configurability

#

nothing too special

#

most of the important stuff is in initialize

#

It's just some reflective code

#

there's a bit in settings to capture fields by attribute on the faux mod classes too

fervent timber
#

Wait does enemyrandomiser take so long to load because it has to go into every scene and find all the possible enemy types?

fervent timber
#

how do you get the player's position?

ornate rivet
#

HeroController.instance.transform.position

fervent timber
#

testing out now...

#

My hooks aren't being called?

vocal spire
#

@fervent timber show your initialize code

fervent timber
vocal spire
#

Why aren’t you preloading?

fervent timber
#

preloading?

vocal spire
fervent timber
#

wait so I didn't have to do the complicated recursive scene find function?

vocal spire
#

Yeah

fervent timber
#

It says there's a conflict with valuetuple2

vocal spire
#

Gtg

#

Also I’ve never had that

#

Is your project net 3.5

fervent timber
#

4.7.2

vocal spire
#

You need it on 3.5

fervent timber
#

wait there's no 3. oh

vocal spire
#

You need to make a .net framework project

#

Gtg

fervent timber
#

ok bye

vocal spire
#

Back

#

@ me if you need more help

fallen aurora
#

anyone know some good tutorials to start modding hollow knight? I've got quite a bit of coding experience behind me, so I think I could get started with really simple things

#

@vocal spire

#

nvm just found the radiance.host modding tutorial

#

if anyone has any other tips they'd be welcome

vocal spire
#

Radiance.host is the only one I know

fallen aurora
#

alr thanks

#

what's the hook for a double jump?

potent dirge
#

Honestly just that, and checking out other mods to learn is the best i think

#

The newest api source had some okay "get up and going" examples as well, I think

jolly oriole
fallen aurora
copper nacelle
#

On.HeroController.DoDoubleJump?

jolly oriole
#

oh yea, that exists

fallen aurora
#

I looked through the GitHub and api and couldn't find anything but I'll look for that @copper nacelle

potent dirge
fallen aurora
#

Ah ok

charred topaz
#

I was able to find a relatively old TMPro copy when rummaging through some old files on my computer (dated to 2017), and was able to get it working in the editor and load up prefabs with TextMeshProUGUI components in-game. Only issue I'm running into now is some sort of offset issue, where the text is not positioned where it's supposed to be. It seems that the bottom-left corner of the text rect has been relocated to the center of the RectTransform. Spend a few hours trying to figure out what's different between mine and Hollow Knight's, but haven't had luck so far.

potent dirge
#

Try to set position to half the game width ax2uHappy

#

Looks at first glance like the center is at origin, and origin being top right in this case?

charred topaz
#

The origin should be in the center of the rect, and I have that set in the RectTransform, so I'm not sure how that's getting changed when in-game.

I could try centering it at the bottom-left corner, and see what that does. That might look weird in the editor, but should look correct in game

fervent timber
#

What do you have to do after an enemy is instantiated to load it in

vocal spire
#

@fervent timber you instantiate it then set its position then set it active(GameObject.SetActive(true);)

fervent timber
#

it is automatically disabled?

vocal spire
#

Pretty sure with preloading

fervent timber
#

trying now...

#

also, about the hooking problem, the scenechange hook is the only one that's broken

#

the others work fine

vocal spire
#

Wdym it’s broken

fervent timber
#

it's not being called

vocal spire
#

When are you trying to get it to call

fervent timber
#

when the knight enters a new room

vocal spire
#

So you log when you go into a new room?

#

And you checked the modlog for that?

fervent timber
#

that's what onSceneChange does right?

vocal spire
#

ModHooks.onSceneChange?

fervent timber
#

ModHooks.Instance.SceneChanged += StartAspids;

vocal spire
#

Idk, haven’t looked into when the one in modhooks could be called

#

Probably correct

#

Can you show your code in StartAspids

fervent timber
#
private void StartAspids(string targetScene)
        {
            Log("Player enteringroom");
            var pd = PlayerData.instance;
            //if (!pd.soulLimited)
            //{
                GameObject aspidObject = new GameObject();
                AspidInstantiator aspidCreator = aspidObject.AddComponent<AspidInstantiator>();
                aspidCreator.Create(PrimalAspid, HeroController.instance.transform.position);
            //}
        }
#

and btw the setactive works, now I just need to make them chase the player

vocal spire
#

Chasing the player is a bit different, I think you’re gonna need some Fsm stuff

fervent timber
#

I know

vocal spire
#

So this code isn’t called?

fervent timber
#

yeah it's not

#

I check the modlogs, lots of fsm errors but it's not being called

vocal spire
#

Hmmmmmmm

#

What mods are you using

fervent timber
#

for now I just have them spawn when the player gets hit

#

and mods - just modcommon and customknight

vocal spire
#

Hmmmm

#

Why would there be fsm errors with those

fervent timber
#

because the aspids were spawned in but not told who to chase, what speed, etc.. I think

vocal spire
#

Can you show your modlog

#

Also why would they need to be told that?

#

They only chase the knight, and all have the same speed

fervent timber
#

the log is too big

#

I'll try to shorten it

vocal spire
#

So probably a error every frame?

#

If so, just copy and paste one error

fervent timber
#

[ERROR]:[UNITY] - NullReferenceException: Object reference not set to an instance of an object
[ERROR]:[UNITY] - HutongGames.PlayMaker.Actions.DistanceFly.DoBuzz ()
[ERROR]:[UNITY] - HutongGames.PlayMaker.Actions.DistanceFly.OnEnter ()
[ERROR]:[UNITY] - HutongGames.PlayMaker.FsmState.ActivateActions (Int32 startIndex)
[ERROR]:[UNITY] - HutongGames.PlayMaker.FsmState.OnEnter ()
[ERROR]:[UNITY] - HutongGames.PlayMaker.Fsm.EnterState (HutongGames.PlayMaker.FsmState state)
[ERROR]:[UNITY] - HutongGames.PlayMaker.Fsm.SwitchState (HutongGames.PlayMaker.FsmState toState)
[ERROR]:[UNITY] - HutongGames.PlayMaker.Fsm.UpdateStateChanges ()
[ERROR]:[UNITY] - HutongGames.PlayMaker.Fsm.UpdateState (HutongGames.PlayMaker.FsmState state)
[ERROR]:[UNITY] - HutongGames.PlayMaker.Fsm.Update ()
[ERROR]:[UNITY] - PlayMakerFSM.Update ()

vocal spire
#

Hmmm

fervent timber
#

I'll try messing around with the fsms later

vocal spire
#

See if you can log the aspid’s active state in their fsm

fervent timber
#

what reference mods should I be using

vocal spire
#

I think they have a GameObject as a child or something that’s the range for where you can provoke them, and maybe the references got messed up in the preloading

fervent timber
#

for information on how to use stuff

vocal spire
#

References for the project or references for coding?

fervent timber
#

for the project and general modding

vocal spire
#

Referencing Assembly-Csharp(forgot it’s exact name) and playmaker and UnityEngine and UnityEngine.CoreModule should be good

fervent timber
#

wait hold on, windows defender said it found a virus, in a file that I made myself

#

a trojan

vocal spire
#

lol

#

Does that to me if I add a icon to a app I make

fervent timber
#

the thing is, I did make a joke program that pretends to take over the computer
That wasn't the app that was detected. It was the 20 line c# script that reminds you to do things

sage holly
#

'k asking here instead

#

how hard would it be to make the game give 2 camera outputs instead of one, and synchronize those outputs to a 3D viewer/projector device?

pastel eagle
#

is anyone familiar with the Door Control FSM? i'm trying to make it so you can enter doors like shops without being grounded. this is what i have right now:

                {
                    var collider = fsm.gameObject.GetComponent<BoxCollider2D>();
                    collider.size = new Vector2(5.0f, 3);
                    collider.offset = new Vector2(0.0f, -0.55f);
                    fsm.ChangeTransition("Hide Prompt", "FINISHED", "Broadcast Event");
                    var state = fsm.FsmStates.First(x => x.Name == "Hide Prompt");
                    state.Transitions.First(x => x.ToState == "Can Enter?").ToState = "Broadcast Event";

                }```
#

i'm not sure if there's actually a CanEnter it was just me trying to use the code I used for benches again lol

jolly oriole
#

you only need one of

fsm.ChangeTransition("Hide Prompt", "FINISHED", "Broadcast Event");

or

var state = fsm.FsmStates.First(x => x.Name == "Hide Prompt");
state.Transitions.First(x => x.ToState == "Can Enter?").ToState = "Broadcast Event";
#

otherwise that should work

pastel eagle
#

does it matter which one i keep? do they both do the same thing? it's weird because i had both in my bench control code and it lets me rest when i'm not grounded but this one didn't work

jolly oriole
#

the changeTransition internally does more or less the same as the second one

pastel eagle
#

i removed the second one and it still only lets me enter doors if i'm grounded

jolly oriole
#

after looking at the doorcontrol fsm, it would be

fsm.ChangeTransition("In Range", "UP PRESSED", "WP Door?");
pastel eagle
#

thanks! trying now

jolly oriole
pastel eagle
#

it still won't work. i see from fsm now what you mean though and why it's different. gonna keep trying different things

fervent timber
vocal spire
#

I’d help, but I’m on mobile and the video won’t play

fervent timber
#

yeah, lemme fix that

vocal spire
#

MP4?

fervent timber
#

VLC is glitching

vocal spire
#

@ me when you send the vid

fervent timber
vocal spire
#

Hmmmm

#

Looks like the child of the knight for the death animation is active and playing.

#

What did you change?

fervent timber
#

I tore apart the radiance barrage dll and it turns out I'm supposed to be using Scenemanager.sceneloaded instead of the modhooks version. The hook s being called now, Not sure about the shade thing though

vocal spire
#

¯_(ツ)_/¯

fervent timber
#

that would be a cool mod though. Fight with your shade against the forgotten light

vocal spire
#

I looked into the api’s coding and the hook still should be called afaik

#

Yeah

#

if you aren’t taking that idea, I am

fervent timber
#

it's not just a one time thing I guess. I'll try adding a delay between the hook being called and spawning the aspids

fervent timber
#

The mod "works". when you start a new game, it starts spawning primal aspids. if you die or enter a new room, the hooks get called but the aspids don't spawn

fervent timber
#

edit 1: if you kill the initial aspid, they stop spawning?

#

edit 2: the aspids suddenly start spawning if you enter the false knight boss room?? crossroads_10

vocal spire
#

@fervent timber you need to remove a component from them that stops them from spawning after killing. Forgot what it’s called.

pastel eagle
#

i've been looking at FSMViewer and for a while and reading up on it on the page, but i can't figure out what's wrong with this code and why my character still can't enter doors while in flight. i've been trying different things for a while. does anyone have any ideas?

                {
                    var collider = fsm.gameObject.GetComponent<BoxCollider2D>();
                    collider.size = new Vector2(4.0f, 3);
                    collider.offset = new Vector2(0.0f, -0.55f);
                    fsm.ChangeTransition("In Range", "UP PRESSED", "WP Door?");
                    var state = fsm.FsmStates.First(x => x.Name == "In Range");
                    state.Transitions.First(x => x.ToState == "Can Enter?").ToState = "WP Door?"; 

                } ```
vocal spire
#

Why are you setting the in range transitions twice with different methods of doing it?

pastel eagle
#

For my Bench script I did it twice so I was just trying to emulate it because the Bench one works

#

I was just like well it worked here hahah

#

Oh it's working now!

#

Maybe I just needed to remove the other one like you said. Thank you so much!

signal thunder
#

Had a kind of different question for everyone. Does anyone know if any of the Hollow Knight devs ever talked about how they went about designing the individual rooms that make up Hollow Knight?

I'm practicing developing games and have a character with a full suite of abilities, platforms, some enemies. But I'm kind of stumped on how to go about combining those into interesting rooms...

vocal spire
#

maybe grenade/anyone could give some advice since they are making a mod that adds some more pop like rooms to white palace ¯_(ツ)_/¯

signal thunder
#

@jolly oriole thoughts?

drifting leaf
#

Not sure if this is what you're looking for, but have you tried looking up mario maker videos? Like by panga or some other well known good level maker. It may not apply exactly, but it could give insight for how you go about designing a level/room

signal thunder
#

I have not. That's a great idea @drifting leaf thanks for the recommendation

jolly oriole
# signal thunder <@!202560032712163329> thoughts?

the way i did it (with 2 new platforming mechanics) was like:

  • make an obstacle impossible to circumvent without the mechanic
    • to introduce the player to that mechanic
  • immediatly afterwards turn the difficulty up to 10 with that mechanic
drifting leaf
#

and then the next step is usually:

  • mix with different mechanics showcased earlier
  • if you find any fun kind of hidden interactions (say, you can exploit the physics to get super fast upwards momentum) add fun secrets to reward the player for experimenting with mechanics
  • later on, make secret interactions mandatory to progress
vocal spire
#

Good job, now you just made Celeste!

drifting leaf
#

celeste is a masterclass on level making

#

Then there are also genre-specific tricks you can use for your level design

signal thunder
#

https://youtu.be/4RlpMhBKNr0
Turns out Celeste's designer has an awesome talk describing how he creates levels, areas, etc.

GDC

In this 2017 GDC session, Celeste lead developer Matt Thorson touches on a range of topics through the tools and process of designing 300+ hardcore platformer stages for 'Celeste', arranging the sprawling area maps that make up the mountain, and weaving story elements through its game world.

Register for GDC: http://ubm.io/2gk5KTU

Join the GDC...

▶ Play video
#

@drifting leaf what genre-specific tricks are there for Hollow Knight?

drifting leaf
#

well there's the metroid classic of locking you in the room where you get an ability in a way that you have to use the ability to get out. Think vengeful spirit and the baldur, desolate dive and the room after soul master, crystal dash and the collapsing ground, etc. Hollow knight does this for every single ability other than dream nail and howling wraiths

signal thunder
#

True... True... Very cool 😃

drifting leaf
#

There's also the whole locking you into a challenging area early on and forcing you to unlock a way back to safety. Think Norfair and Deepnest

signal thunder
#

Oh my God, accidentally falling into Deepnest and finding a way back to safety is the most memorable moment in Hollow Knight for me :D

drifting leaf
#

Yeah

signal thunder
#

Thanks for the ideas :)

drifting leaf
#

np

compact cobalt
#

Ok so I'm trying to change the False Knight in the crossroads however I'm finding that the Crossroads_10 scene has some very odd properties

#

The actual False Knight Object aka Battle Scene\False Knight New is not in the actual scene and is in Crossroads_10_boss however modifying it from there also has no effect

#

And further than that Crossroads_10_boss doesn't load every single time the room is loaded which complicates things even more

#

Modifying the actual Crossroads_10 scene has no issues, however the Battle Scene\False Knight New object just refuses to be modified

#

Oh I think it might be because of the FSM actually, I'll double check that and see if it solves the issue

sick karma
#

help is there someone in my house is downstairs in the kitchen

#

plis helpme

vocal spire
barren cliff
#

i think basement is the right word

sick karma
#

I had a knife, I cut my thumb

fast estuary
#

@charred yew

#

thanks

copper nacelle
#

literally what

#

why have you posted this

charred yew
#

Welcome

#

What did I do

floral furnace
#

it was something else insom

fast estuary
#

should have probably just pinged mods instead

floral furnace
#

we just interrogated 56 instead

vocal spire
#

lol

jolly oriole
#

just now looked more carefully into the hazardtype stuff, they have the hazard type ints with a different scale than the enum

#

comparison:

0 == NON_HAZARD (0)
1 == nonexistent
2 == SPIKES (1)
3 == ACID (2)
4 == LAVA (3) [does nothing]
5 == PIT (4)
jolly oriole
#

bruh, why does unity bundle scripts when i don't want them be bundled

vocal spire
#

¯_(ツ)_/¯

#

Unity Code = stupid

flat forum
#

ooh

#

that explains

#

the mismatch

jolly oriole
#

anybody knowledge how i can set GameObjects with scripts from the game without having the bloat that utinyRipper scenes have?

#

directly when unity exporting preferably

dark wigeon
#

so you mean you want to bundle assets from a utinyripper scene and have it use the scripts from the game

#

having the bloat
what is the bloat

jolly oriole
#

basically, just not a utinyripper bundle, but from one made from scratch

#

afaik utinyripper tends to include a bunch of unnecessary stuff

dark wigeon
#

I gathered that but what kind of stuff does it include

potent dirge
#

Just absolutely everything, I assume?

jolly oriole
#

last i looked at a bundle from utinyripper, shaders took up probably 75% of the bundle's size

dark wigeon
#

if it was absolutely everything you'd have some pretty large bundle

#

can you send me the file

jolly oriole
#

but the main question being: does anybody have the knowledge how i can set GameObjects with scripts from the game?

dark wigeon
#

I know the hard way, but does bundling with the scripts from the editor not work?

jolly oriole
#

i may be doing it the wrong way

dark wigeon
#

I'm pretty sure monoscripts are allowed to be in bundles and I think they just go off dll name and class name and whatever

#

so I don't think there should be a problem just bundling with utinyripper's decompiled scripts

#

I'm looking at a different unity game with bundles and it looks like they just included the shader in every bundle

jolly oriole
#

hm

#

i'll try with utinyripped scripts (yes, i tried with manually made ones)

dark wigeon
#

what happened with manually made ones

#

bundle needs to be rebuilt error?

jolly oriole
#

when loading the room, unity told me that "Missing Script on Gameobject XYZ"

#

twice

#

let me try again, to give complete output

#

ok, the thing with missing happened when i actually tried to do something with a custom script that i didn't include, but with a DamageHero it just does nothing

#

trying with layer 17 (oh god, why did i forget that)

#

ok, it does work

#

my dumbass just forgot the layer

jolly oriole
#

is there a unity dude here to help me make a list of vectors visible like the edge collider?

jolly oriole
#

figured it out

jolly oriole
#

does unity only search for types in the game assemblies? custom types don't want to load in

#

so i have things like

(Filename:  Line: 1515)
The referenced script on this Behaviour is missing!
(Filename:  Line: 1515)
The referenced script on this Behaviour (Game Object 'Test') is missing!
dark wigeon
#

like you created a c# script in the editor and bundled something using the script?

jolly oriole
#

i have a script in the editor (to set variables per GO) and in a mod

#

... and bundled something using the script

dark wigeon
#

try making the script outside of the editor and use the dll

#

if you just use a cs file in the editor it's going to search Assembly-CSharp.dll for the class not the mod dll

jolly oriole
#

👍

#

works pog

charred topaz
#

Wouldn’t an assembly definition file also work?

dark wigeon
#

probably, but he already had the mod in a dll so why not just use the same file twice

signal thunder
#

Hello party people, I have 0.00 experience modding Hollow Knight. I was curious if it's done in Unity or what program?

fast estuary
signal thunder
#

❤️ @fast estuary

floral furnace
vocal spire
#

pretty sure you did something

floral furnace
#

imma about to commit, several nuclear detonations

copper nacelle
#

incredibly interesting

#

wtf

vocal spire
#

this is the part where it's explained that everything works but it doesnt

copper nacelle
#

It wants the folder structure

#

The folder structure is so useless

vocal spire
#

F

copper nacelle
#

but i also cba changing it

copper nacelle
#

Wtf

vocal spire
jolly oriole
#

just try randomly changing things

vocal spire
#

That always works

copper nacelle
#

no someone posted a questionable gif

vocal spire
#

Oh

jolly oriole
#

oh

flat forum
#

oH

weak lodge
#

a challenge in my own artform?

copper nacelle
#

no

ornate rivet
#

what was the gif sir

copper nacelle
#

it's the gif of the woman opening her mouth to reveal like 50 teeth in a giant death sphere you get me

ornate rivet
#

wow hot

vocal spire
#

.........?

weak lodge
#

yep

carmine pivot
#

what the fuck did I read exactly

jolly jungle
#

probably not as bad as the actual gif

vocal spire
copper nacelle
#

@weak lodge

upbeat saddle
copper nacelle
#

i just want to ping moderators is that too much to ask for

upbeat saddle
#

discord: yes

weak lodge
#

@lapis summit dont

upbeat saddle
#

idk why people pick this channel in spectacular to post this stuff

jolly oriole
#

@copper nacelle <@&283547423706447872> to ping mods easily

copper nacelle
#

yeah i know

#

i just didn't have the id on hand

ornate rivet
#

how do we know it works though

#

I think I should test it

jolly oriole
#

testing is easy, even works without sending the message

copper nacelle
#

testing is easy

#

<@&327844709244469261>

ornate rivet
#

wow it didn't work

copper nacelle
#

yeah

jolly oriole
#

you didn't copy the <>

ornate rivet
#

<@Team Cherry>

copper nacelle
#

uh huh

copper nacelle
vocal spire
#

?

rain cedar
#

death

vocal spire
#

oh i get it now

#

dnspy is archived

dark wigeon
#

Do we know why or just d4d being a butt as usual

copper nacelle
#

idt there's anything saying why anywhere

#

like nothing on the repo

#

but idk where else you'd see shit

dark wigeon
#

At some point I remember him holding releases hostage until more people contributed or something like that

copper nacelle
floral furnace
#

EPIC

jolly oriole
#

dnlib is also archived

copper nacelle
floral furnace
#

but why

jolly oriole
#

attention seeker idk

grizzled steppe
#

Incredible

vocal spire
#

Well, everyone get over to ilspy

vocal spire
#

I think I found a problem with reflection helper

#

nvm

#

nvm pretty sure there's a problem

#

specifically with

GetAttr<TType, TField>(string name) 
SetAttr<TType, TField>(string name, TField value)

both do

ReflectionHelper.GetField(typeof(TType), name, true) 

when they should do

ReflectionHelper.GetField(typeof(TType), name, false) 

since they are supposed to be static

vocal spire
#

will fix in a bit

vocal spire
#

who knew building the api myself could go so wrong.....

#
[INFO]:[API] - Couldn't resolve assembly System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, with sender Unity Root Domain
#

plz help

vocal spire
#

nvm fixed

vocal spire
dark wigeon
#

What a pita thanks avalonia for making everything super seamless not

vocal spire
timid canopy
sage holly
#

epic

#

now teach me how to use that on PC

sage holly
#

do I need any other program aside from FSM viewer to create new FSM movements from scratch?

vocal spire
#

yes

#

you need to code

#

fsmviewer views

sage holly
#

well fuck

#

mad respect for my fellow pale court programmers

vocal spire
#

to create, you can use playmaker in a new unity project

#

lol

dark wigeon
#

you need to code
yes, code support for fsm creation in fsmviewer, easy

vocal spire
#

someone should totally make that

dark wigeon
#

I suggested it but you guys were like "nah we can make them in c#" or whatever

vocal spire
#

yeah I revoke that(if i was the one to say it) tho it is (extremely slightly) fun to do it in c#

dark wigeon
#

I mean just have the viewer generate c#

vocal spire
#

yeah

#

or have a helper mod that reads json and generate json

dark wigeon
#

Or just generate a bundle with an fsm script

potent dirge
#

oh fsm viewer question: what would have to be done to use/view older version FSMs (in-case of version differences et al)?

vocal spire
#

pretty sure this was talked about recently, but I forgot what nes said

potent dirge
#

I looked at the spooky link in the repo for quite a few hours but stayed clueless 🥴

#

hm, must've missed that talk then apolThink

gleaming zenith
#

is progress on the multiplayer mod being made?

vocal spire
#

¯_(ツ)_/¯

gleaming zenith
#

cool

dark wigeon
#

Does it not work with older versions

#

the spooky link
what

vocal spire
#

confused there too

potent dirge
#

like it seems to only have the database for 1.4.3.2 FSMs, and I couldn't find out how to export other version FSMs (yet)

dark wigeon
#

The cldb is not for deserializing fsms but deserializing monobehaviour headers

#

Now that I think about it that message is pretty useless because I don't think monobehaviours have ever changed

#

Fsms get deserialized from assembly-csharp (which is why mono cecil is being used)

potent dirge
#

so if I use an older assembly-csharp it'll work with older patches? 👀

dark wigeon
#

Well you make it sound like you have to copy a file or something

#

Just open the older assets like normal, there's nothing different you should have to do

#

Have you tried yet?

potent dirge
#

you might want to add that to the readme bc I mightve not had a clue hmmSip

dark wigeon
#

Oh yeah that link is dead as well

potent dirge
#

but yea, this is basically the furthest I ever got by trying to open a different version assembly-csharp

dark wigeon
#

What version

potent dirge
#

most recent FSMview release, 1.2.2.1 vanilla assembly-csharp, using the GOG version of the game

#

otherwise I've also tried with a modded hk 1.2.2.1 version (modding-api), which also didn't work

dark wigeon
#

Let me try swapping cldbs

#

Yeah actually looks like cldb version is important

#

What unity version is 1.2.2.1

potent dirge
#

frick, not sure how to find out otzFine

dark wigeon
#

Open any level or assets file in notepad or something

#

Would recommend opening small files since notepad is super slow

#

Oh also I think if you click on the exe it has a file version

potent dirge
dark wigeon
#

Yep 5.4.3

potent dirge
dark wigeon
potent dirge
#

with this and select Assembly-CSharp.dll from my install folder?

dark wigeon
#

Like I was saying you don't do anything with assembly csharp

#

I was just telling you how it works on the backend

potent dirge
#

oh oki

dark wigeon
#

Pretend I said nothing about that

#

Open level files like normal

potent dirge
#

i have replaced the cldb at least

dark wigeon
#

Ok

potent dirge
#

should i put the software anywhere specifically relative to the level files i want to open?

dark wigeon
#

No

potent dirge
#

then yea, selecting level files with the 5.5 cldb just crashes the viewer

dark wigeon
#

With either dat file?

#

I just opened hk beta fine with 5.1 so I would be surprised if you couldn't open 5.4

potent dirge
dark wigeon
#

Word wrap is ugly tho

vocal spire
#

Ah, null reference exception, programmers’ favorite exception

dark wigeon
#

Stack trace is usually pretty helpful

#

I hate when I ask for error and they just tell me NullReferenceException and expect me to fix it

vocal spire
#

lol

potent dirge
#

youre computer guy arent you? so just fix it FeelsInvertedMan

vocal spire
#

🔫 back away

dark wigeon
#

wish I had line numbers here

vocal spire
#

Doesn’t everyone?

dark wigeon
#

guess I will just download it

#

well if I included pdbs they would probably show up

#

nvm don't try I just tested there are no line numbers

vocal spire
#

F

dark wigeon
#

I wonder if .net remote debugging if a thing

#

hmm maybe this only works on the same network

#

oof just realized I downloaded the wrong version

#

curse you steamdb

dark wigeon
potent dirge
#

(tomorrow because sleep is a necessary thing MyArms)

copper nacelle
#

with that attitude it is

quiet crest
#

How can I learn how to make sprites for custom knight?

vocal spire
quiet crest
#

Thanks

wraith stirrup
#

Yeah that's Slugma

#

Oops I should have thought a bit before sending that, I apologize

gilded lotus
#

slugma nuts lmao

wraith stirrup
#

God damn it

proven cipher
#

Don't remember where people were talking about the rando mod, but a quick one about consolidating things.

It looks like both Vanilla and Basic are the same settings, so one of those could be gotten rid of. Either that or Vanilla could be changed into a setting to make the game actually vanilla again?

ornate hornet
#

Ahoy, newbie HK player here (currently at 111% on my first playthrough), looking forward to make a mod for HK. I've made some mods for Rain World henpemHmm already, I'm familiar with C#, using DNSpy, and most MonoMod hooking/patching stuff although for that game we use a different mod loader called Partiality. I'm also "not completely lost" with Unity scenes and assets stuff.
Is there a guide for the overall modding process of HK and using the mod-loader ? I'll scroll through the pins and slowly read it all, but any advice is welcome (:

floral furnace
#

you already have DNSpy and wtv IDE for C#, just make sure you compile it into a 3.5 .net library

ornate hornet
#

Got it, thanks!

tacit cedar
#

Any advice for triggers? Right now I check twice a second if the player is in the bounds of a rectangle, but surely there are better ways to do it. e.g., if the player stands on a particular platform, or passes through a hallway.

vocal spire
#

Check if it’s touching with the tag player?

tacit cedar
#

What's the benefit compared to just checking the player's position?

vocal spire
#

¯_(ツ)_/¯

jolly oriole
#

there was a method using the trigger of colliders, but i have to search for it a bit, never worked with those

#

wait nvm, i did work with them

#
GameObject {
    Transform Component
    BoxCollider2D Component (or other colliders, trigger set to true)
    YourOwnMonoBehaviour
}

then in the MonoBehaviour you need

using UnityEngine;

namespace whatever
{
    public class YourOwnMonoBehaviour : MonoBehaviour
    {
        public void OnTriggerEnter2D(Collider2D otherCollider)
        {
            if (otherCollider.gameObject.name != "Knight") return;

            // do stuff
        }
    }
}
#

@tacit cedar

#

on the same note, to check if the player is on a platform, just make the collider small on the ground, can also add another check after the knight check in the trigger enter method

supple sedge
#

what collision layer are explosions in?

#

like the one used in explosion pogo

#

also are baldurs in a different collision layer than other enemies

tacit cedar
balmy roost
#

I want a mod that literally just removes salubras blessing noise

vocal spire
#

Qol mod

#

Also don’t demand mods

balmy roost
#

i didnt mean to demand

#

it was more a joke mb

vocal spire
#

K

edgy grail
#

yo i cant build the assembly-csharp API because im getting errors, the whole output is just saying im missing an assembly even though i have every assembly i need there

potent dirge
#

you might have the wrong version of the assembly there?

edgy grail
copper nacelle
#

vanilla assembly has to be vanilla ngl

edgy grail
#

oh right thanks fixed it

autumn shardBOT
#

@ivory kite, you joined Randomizer Racer.

copper nacelle
#

literally why

zenith pagoda
#

Does anyone happen to have or know where to find assets for the HK filigree / calligraphy menu borders for use in a HK theme?

copper nacelle
zenith pagoda
#

Thank you ❤️

ornate hornet
#

Hello could someone provide me with the PNG for the image that is used in Menu_Title, GameObject "LogoTitle", the huge "Hollow Knight" text ? I don't feel like messing around with AssetBundles Browser and Unity projects, maybe that's something I should learn but I really only need that one image

jolly oriole
#

the game's sprites are also in a gdrive linked in the pinned messages from #art-discussion

edgy grail
#

is there a way to save custom variable to a save file ? couldnt find anything on docs

edgy grail
#

im actual Pepege

proven cipher
#

Helloooo.

Is there a way to extract individual sounds from the game? I want to get the whooshing sound that the Siblings make as they spawn.

jolly oriole
#

you can use UABE to extract sounds from the game

proven cipher
#

Thank you. 😊

ornate hornet
#

Ran into issues using the SceneChanged hook, apparently it never gets called, currently searching through messages here for a solution...

copper nacelle
#

are you using the modhooks one

ornate hornet
#

Yes, I'm doing the switch to the unity one rn, just got to figure out the arguments

vocal spire
#

The arguments are (Scene, Scene) if I remember correctly

#

Visual studio can auto generate that stuff

ornate hornet
#

Exactly what I did lol

vocal spire
#

lol

ornate hornet
#

Now to learn how to stop a corroutine when the mod unloads...

vocal spire
#

public override Unload()

#

I think

jolly oriole
#

you can do MonoBehaviour.StopAllCoroutines if you have your own monobehaviour where you start your stuff on

jolly oriole
#

got the fucking quake floor working

ornate hornet
#

Alright, I'm done with my mod, where should I post it ?

jolly oriole
ornate hornet
#

Feedback to whether it runs or not on other computers would be appreciated lol

copper nacelle
#

My eyes

safe hamlet
#

delete this immediately and reconsider your life choices

ornate hornet
#

A friend already ran into a minor issue with the title text when launching the game in chinese, I'll fix that in a bit

hexed violet
#

now i want to make all the character sprites uwu now..

jolly oriole
#

why not all ~268 characters & enemies?

ornate hornet
limber tree
#

oh god

opal umbra
#

I don’t understand what I am looking at but it’s scary

rocky hollow
#

It's beautiful

edgy grail
#

thanks for this masterpiece

vocal spire
#

I now realize the boundary I crossed when making the Uuwuu mod. I will stop development on Uuwuu 2 now

#

I will start development on OowoO tho

steel badger
#

Hello Guys

finite herald
#

I know it's too late now, but I made the rainbow inducing seizure knight uploaded to the drive

#

.

#

Just searched and seems like @vague venture was asking months ago, I guess for the video

#

It doesn't says in the drive either, but it mentions the custom hud made by me. I told mickely on dm so when he has time he can mention that

#

Sorry for the seizures though lol

vocal spire
#

@ fireb0rn

potent dirge
#

Something I'm semi-wondering bc of things like hitless p5 change etc:
Is it "easily" doable to make a small mod that would store hits taken, what hit them (boss, spikes, void, maybe even specific attack), and differentiate between a double dmg attack and single dmg attacks? For hitless attempts these could be automatically written to file or something, then livesplit or other overlay could parse etc and display it to look cool

#

So basically the question is if the game handles dmg interactions in a way that makes that possible

vocal spire
#

Yes

#

And no

#

Depends on the method of doing it

copper nacelle
#

yeah there's an enum given with each hit

#

as well as the actual game object if you want to go more specific

potent dirge
#

That's very promising to hear, I'll actually invest time into it then ax2uHappy

midnight narwhal
ornate hornet
#

I think the issue is that you're targeting netstandard 2 and it should instead be net framework 3.5 ? Not sure

river viper
#

Does anyone know where I can download the gun mod?

jolly oriole
lean vortex
#

How can i start on making a mod?

fast estuary
lean vortex
#

Thx

potent dirge
#

The getting started docs mentioned some stuff around it for initially starting up a project, might be useful for finding terms to search?

jolly oriole
#

@midnight narwhal visual studio or rider?

midnight narwhal
#

vs

#

i think i fixed it

#

pretty sure i created the wrong project template

jolly oriole
#

then right click the project in the file overview, then i think in the main settings page there should be an option to select the framework you want to work with

midnight narwhal
#

ye i made the wrong c# class library i fixed it already

#

but thx anyway

jolly oriole
#

np

midnight narwhal
#

is there a list of charms and their corresponding ids anywhere (ex: equippedCharm_27 is Joni's blessing)

fast estuary
midnight narwhal
#

k ty

#

also how many times is HeroUpdateHook() called every second

fast estuary
#

50 times I think? every frame the hero exists

midnight narwhal
#

ok

#

thx

copper nacelle
#

update is every frame

#

heroupdate is update not fixed update

#

so fps dependent

jolly oriole
glass thorn
#

I've made a version of benchwarp with hotkeys. is this something y'all want to add to the mod?

proven cipher
#

How does that work?

glass thorn
#

each warp has a short key sequence you can type when paused to warp to it

#

so for example you type "gp" and it warps you to greenpath stag

proven cipher
#

Interesting stuff. Do you have the ability to edit it, or is it fixed?

glass thorn
#

they're hardcoded for now; they're all mnemonics for the bench

fast estuary
#

you can probably just make it use the settings file instead of hardcoding, pretty sure it already uses settings anyway

vocal spire
#

Yeah

glass thorn
#

can you put a dictionary in the mod's settings? if not, it's going to be quite annoying to give every bench its own setting

jolly oriole
#

dictionaries work

jolly oriole
ornate rivet
#

roguelite hk mod when

jolly jungle
#

FSM events

#

FINISHED will always be alone, right?

#

It makes no sense for it to come along with something else

#

Want to make sure, however

ornate rivet
#

wdym alone? A state can have FINISHED with another event

jolly jungle
#

How'd it work, then?

#

Doesn't FINISHED happen automatically after running the state's actions once?

ornate rivet
#

either the custom event gets called or FINISHED does

jolly jungle
#

Or perhaps I misunderstood?

#

So it's a one-time chance for the custom event, yes?

ornate rivet
#

an example

#

either TELE OUT gets run by the float compare or it goes to FINISHED by default

jolly jungle
#

Hm, who's this from?

ornate rivet
#

GG_Hollow knight

jolly jungle
#

Ah, alright

#

Alright, so it's like I thought initially, except there seems to be a use for a one-time check

#

Rather than "won't happen, not useful"

jolly oriole
#

in hk, 50% of the fsm states have the finished event, because they are supposed to work one after another, the other 50% don't have them because it's like "wait for this event to be thrown from somewhere else then you can continue"

night plank
#

Hakc

prime slate
#

?av

floral furnace
jolly jungle
#

On an entirely unrelated note

#

What images the CustomKnight can recognise aren't in the Default folder that comes with the mod?

vocal spire
#

@jolly jungle none

jolly jungle
#

You sure?

vocal spire
#

What did you think would be there?

jolly jungle
#

I remember when I helped someone set it up they sent a screenshot of the skin folder they were using

#

lemme just

vocal spire
#

Authors include extra stuff sometimes

vocal spire
#

One person I helped yesterday had a skin with a file named Knight_NailArts

jolly jungle
#

this

#

"Icon"

#

What does it do?

vocal spire
#

That was removed