#archived-modding-development
1 messages · Page 494 of 1
afaik cutscenes are just video files on their own scenes, shouldn't be too hard to add those
art mods has a few
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
how do I create new fsm variables?
if this is for speedrun mod you should have an extension for int/bool
But you just expand the array
that works, thank you
then make it
A Shroomal Ogre emoji

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
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
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
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
link straight to the file in the repo actually https://github.com/ShootMe/LiveSplit.HollowKnight/blob/master/HollowKnightComponent.cs
I've worked on the splitter but I still have no idea why it isn't just end on any split
honestly gonna just try to remove half the check in dnspy and test with practice
dnspy 

no need to build 
ugh ill do it properly then 
any directions for how to build/compile it? didnt see any in the repo
you just hit build ngl

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
im guessing it needs references to livesplit stuff? ah yea, you wrote faster
yea makes sense
woooo setting stuff up
any tips? tried to change .net framework to 4.7.2 in the .csproj file but yea, still the same 
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
are you checking in 1432 or 1221?
thats what i would assume yea, but like comparing if there's nothing at all in one or just soemthing that doesnt work
the only 2 times it checks for it are for brumm conversation dialogue and to make tmg spawn
nothing else in that scene
nothing tied to dnailing hanging nkg either?
no
it's just equippedCharm_40
where does it check that?
Grimm_sleep_shield -> Component: DeactiveIfPlayerdataTrue
I guess that makes sense
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
@pastel eagle i can’t look at the code rn, but are you having trouble with picking up items? What is OnCanInteract for?
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
That's okay! We're not in any rush. We were just looking for any help we could get
are basically all godmaster named like GG_<descriptive name here>, or is that naming scheme unrelated?
all rooms that were new with godmaster dlc, so godhome, 3 waterways rooms and the pale lurker room iirc
I still can't get this to work, any way I try to yeet this also breaks the dream nail enter and it just doesn't do anything
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?
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
Isn't the sleep shield is just a visual effect?
You want the object that actually controls the dream entry
my guess would be "Dream Enter Grimm", which incidentally also has DeactivateIfPlayerdataFalse
Does anyone of you know the first scene on starting a new Godseeker save of the top of your heads? 
the cutscene
GG_Entrance_Cutscene
yo thats great thanks
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
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.
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
Dm me if you can help
thats way more work than just "can code" ngl
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 🥴
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
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
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
alright I'll try to get frame of animation but just so you know I am bad at this
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
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
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
not terrible
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
there's already mods which do it for some things so it's easy enough to copy
a would be easier obviously
<#modding-discussion message> one mod that replaces music (i think it was hornet 1 battle BGM)
@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
yeah I am working with someone to make a mod but yeah.
I can show you a few more i did if you like
okay...
is there a good way of getting sprites for the inventory items (skills etc)?
in Initialize() they are already loaded, just need to get the gameobjects with the spriterenderers
well, using the current modding api they are loaded in Initialize() only when preloads exist
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)
1 sec
ok
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
the object you want to be pogoable will definetly work when on layer Hero Attack (17)
uh, should work
ok
for the tinkeffect, apparently you only need to set a blockEffect for the tinkeffect, at least a wp saw has only that set
where do I set that?
nvm, that gameobject has tk2d stuff
lol
added the part to the above code
ok thanks
Do you mean use mods or make mods
There are some resources in pins
thanks
Unity is only used for assetbundling in hk Modding
How do I know which HK version the modapi repo/code is intended for? 
You look at the most recent version of hk 
okay, then how do i know how far back in the commit history to get the version that applies to specific updates? 
Mods
Google Drive with Mods - https://drive.google.com/drive/folders/0B_b9PFqx_PR9Um9MeFZMV21oWGs
Installer - https://radiance.host/mods/ModInstaller.exe
Mod Summaries - https://docs.google.com/document/d/1cz5tcggpGofrBcM90XyTkMWjMelDHzugvQM6HpB13Ew
Modding api folder > old folder > ModdingApi zip file for your version
yltsi 
How do I open hollow knight on unity?
maybe should have linked them to the apidocs
It’s looking at me
k
im scared
This is modding development btw
?membercount
77773
wrong chat sorry
Weirdly I was looking for this right now
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.
@pastel eagle I’m familiar with them. I’ll take a look in a couple mins
thank you!
what if you swapped out the hollow knight soundtrack and replaced it with the doom eternal soundtrack??????????
WOAH THAT'S SO EPIC OMG
you dropped this: /s
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 🙂
This is what you want
@signal thunder godump is a mod, while sprite packer is a exe
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
download the release
Then you probably downloaded the source code instead of a release
Help major phone lag
How is modding today my fine persons
Good
@ornate rivet Thanks!
Good
@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);
}```
Just needs a bit of editing
sorry no rush to look at it, just realized I never actually sent the code haha
do I need to do like On.HeroController.CanInteract += OnCanInteract; or anything like that?
Doesn’t look like it
oh
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
Ok
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
Hmm
i don't think there's a CanRest on HeroController or anything right hahah
With the sseadv tool, is there a way to turn off the red outlines it puts around the sprite?
@dark wigeon
not right now but I can make it an option
That would be amazing 😄
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 🤣
@signal thunder any other options you want while I'm adding them
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?
you're good at this 
@signal thunder try this
@dark wigeon OMG THANK YOU! THAT'S AMAZING 😄
Pale court
i heard that there are a few PK bossfights in planning (i have no idea if any of these are in development)
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
@potent dirge hkwe2 now has tk2d sprite emulation (much better and more accurate than the hack with a sprite renderer in hkwe1)

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
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:
I believe this is what they use
https://forum.unity.com/threads/simple-optimized-blur-shader.185327/
Alright thanks!
pog
what is the crossroads shader for?
Idk where is it
You mean the crossroads material?
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?
the Bench Control FSM checks if the hero is on ground in the Can Rest? state
specifically the 3rd action CallMethodProper
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
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";
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
ohh
you can use the fsm viewer which is pinned to look at them
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
would it be something like this? i'm sorry for the lack of experience
Change benchfsm to fsm
now it doesn't recognize ChangeTransition and states
I added a reference to ModCommon and this error is still popping up. my group and I aren't sure what vasi is
how do you get references to the prefabs for instantiating entities?
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
so if i was trying to find an enemy
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")
is there a chart on which scene names correspond to which scene_xxx.unity?
xxx is a number?
a placeholderfor a number
you mean levelxxx/sharedassetsxxx.assets?
yeah right
thx
the number in [] are the level ids
#archived-modding-development message I also had this
I can't seem to find the kingdom's edge rooms?
deepnest east
oh ok
what are you using the level ids for
Depends
boop mod updated to work with cp
i forgot to message in here but our benches work now! thank you so much to everyone who helped. :)
yay
hey just came from the reyla video does anyone have the download link for the mod page?
the modinstaller?
the link for the Mod Installer is in the description of the #archived-modding-help channel
yes
Crossroads material uses Sprites/Lit which I think has no shader code but I think it uses Sprites/Diffuse
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
The point of using diffuse is so it isn't full bright at all times
Almost all sprites in HK use it
ok
What are you using for editing
utiny ripper, in order to move stuff from one scene to the other
Does it handle decompiling shaders?
I dont know what that is
afaik game shaders are also ripped
yeah it ripps shaders too
though not all of them work as intended
(blurplane looks pink as fuck)
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
That's a meta file
oops
like how much?
Ye sadly not a real decompilation just the bare minimum
didn't @ornate rivet have a .dll that fixed the pink blur plane? or am i misremembering
@dark wigeon thanks for making this possible!!! :D
You don't need a dll you just need #archived-modding-development message
ah yeah now i remember, thx for correction
it would be really nice if utiny ripper worked with shaders
sort of a hard problem to solve when unity inlines all functions
I'm getting "SceneManager does not contain definition for GetSceneByName"
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.
@fervent timber where are you getting this error?
how do you do that
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
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 :(
Using SceneManager = UnityEngine.SceneManagment.SceneManager;
"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?
even the example project doesn't work when I try to use scenemanagement
Have you ever heard of a spelling error
I wish it was that easy
In my message I said SceneManagment and it’s supposed to be SceneManagement
oh whoops
I thought you were talking about the actual function call
works now, thanks
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?
faux mod isn't defined in the modding api
Guessing not in Vasi either
oh wait heck, it was in QOL wasnt it 🥴
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
Wait does enemyrandomiser take so long to load because it has to go into every scene and find all the possible enemy types?
how do you get the player's position?
HeroController.instance.transform.position
@fervent timber show your initialize code
Why aren’t you preloading?
preloading?
wait so I didn't have to do the complicated recursive scene find function?
Yeah
It says there's a conflict with valuetuple2
4.7.2
You need it on 3.5
wait there's no 3. oh
ok bye
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
Radiance.host is the only one I know
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
afaik there is none
What's the name for it?
Wait so it's not modifiable?
On.HeroController.DoDoubleJump?
oh yea, that exists
I looked through the GitHub and api and couldn't find anything but I'll look for that @copper nacelle
https://github.com/fifty-six/HollowKnight.Modding
Pretty sure it was this one
Ah ok
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.
Try to set position to half the game width 
Looks at first glance like the center is at origin, and origin being top right in this case?
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
What do you have to do after an enemy is instantiated to load it in
@fervent timber you instantiate it then set its position then set it active(GameObject.SetActive(true);)
it is automatically disabled?
Pretty sure with preloading
trying now...
also, about the hooking problem, the scenechange hook is the only one that's broken
the others work fine
Wdym it’s broken
it's not being called
When are you trying to get it to call
when the knight enters a new room
that's what onSceneChange does right?
ModHooks.onSceneChange?
ModHooks.Instance.SceneChanged += StartAspids;
Idk, haven’t looked into when the one in modhooks could be called
Probably correct
Can you show your code in StartAspids
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
Chasing the player is a bit different, I think you’re gonna need some Fsm stuff
I know
So this code isn’t called?
for now I just have them spawn when the player gets hit
and mods - just modcommon and customknight
because the aspids were spawned in but not told who to chase, what speed, etc.. I think
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
[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 ()
Hmmm
I'll try messing around with the fsms later
See if you can log the aspid’s active state in their fsm
what reference mods should I be using
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
for information on how to use stuff
References for the project or references for coding?
for the project and general modding
Referencing Assembly-Csharp(forgot it’s exact name) and playmaker and UnityEngine and UnityEngine.CoreModule should be good
wait hold on, windows defender said it found a virus, in a file that I made myself
a trojan
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
'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?
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
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
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
the changeTransition internally does more or less the same as the second one
i removed the second one and it still only lets me enter doors if i'm grounded
after looking at the doorcontrol fsm, it would be
fsm.ChangeTransition("In Range", "UP PRESSED", "WP Door?");
thanks! trying now
if you need help with fsm in the future:
https://radiance.host/apidocs/PlayMakerFSM.html
it still won't work. i see from fsm now what you mean though and why it's different. gonna keep trying different things
I'm not exactly sure what I did wrong, but
I’d help, but I’m on mobile and the video won’t play
yeah, lemme fix that
MP4?
VLC is glitching
@ me when you send the vid
@vocal spire It's fixed now
Hmmmm
Looks like the child of the knight for the death animation is active and playing.
What did you change?
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
¯_(ツ)_/¯
that would be a cool mod though. Fight with your shade against the forgotten light
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
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
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
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
@fervent timber you need to remove a component from them that stops them from spawning after killing. Forgot what it’s called.
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?";
} ```
Why are you setting the in range transitions twice with different methods of doing it?
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!
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...
maybe grenade/anyone could give some advice since they are making a mod that adds some more pop like rooms to white palace ¯_(ツ)_/¯
@jolly oriole thoughts?
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
I have not. That's a great idea @drifting leaf thanks for the recommendation
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
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
Good job, now you just made Celeste!
celeste is a masterclass on level making
Then there are also genre-specific tricks you can use for your level design
https://youtu.be/4RlpMhBKNr0
Turns out Celeste's designer has an awesome talk describing how he creates levels, areas, etc.
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...
@drifting leaf what genre-specific tricks are there for Hollow Knight?
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
True... True... Very cool 😃
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
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
Yeah
Thanks for the ideas :)
np
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
Wrong server. Also probably wrong app if that’s real
i think basement is the right word
I had a knife, I cut my thumb
it was something else insom
should have probably just pinged mods instead
we just interrogated 56 instead
lol
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)
bruh, why does unity bundle scripts when i don't want them be bundled
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
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
basically, just not a utinyripper bundle, but from one made from scratch
afaik utinyripper tends to include a bunch of unnecessary stuff
I gathered that but what kind of stuff does it include
Just absolutely everything, I assume?
last i looked at a bundle from utinyripper, shaders took up probably 75% of the bundle's size
if it was absolutely everything you'd have some pretty large bundle
can you send me the file
but the main question being: does anybody have the knowledge how i can set GameObjects with scripts from the game?
I know the hard way, but does bundling with the scripts from the editor not work?
i may be doing it the wrong way
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
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
is there a unity dude here to help me make a list of vectors visible like the edge collider?
figured it out
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!
like you created a c# script in the editor and bundled something using the script?
i have a script in the editor (to set variables per GO) and in a mod
... and bundled something using the script
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
Wouldn’t an assembly definition file also work?
probably, but he already had the mod in a dll so why not just use the same file twice
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
@copper nacelle did i fucking piss off god or something https://discordapp.com/channels/283467363729408000/462200562620825600/786414242571354153
pretty sure you did something
imma about to commit, several nuclear detonations
this is the part where it's explained that everything works but it doesnt
F
but i also cba changing it
Wtf
I take it this is the part where code should work but it doesn’t.
just try randomly changing things
That always works
no someone posted a questionable gif
Oh
oh
oH
a challenge in my own artform?
no
what was the gif sir
it's the gif of the woman opening her mouth to reveal like 50 teeth in a giant death sphere you get me
wow hot
.........?
yep
what the fuck did I read exactly
probably not as bad as the actual gif
Agreed

i just want to ping moderators is that too much to ask for
discord: yes
@lapis summit dont
idk why people pick this channel in spectacular to post this stuff
@copper nacelle <@&283547423706447872> to ping mods easily
testing is easy, even works without sending the message
wow it didn't work
yeah
you didn't copy the <>
<@Team Cherry>
uh huh

?
death
Do we know why or just d4d being a butt as usual
idt there's anything saying why anywhere
like nothing on the repo
but idk where else you'd see shit
At some point I remember him holding releases hostage until more people contributed or something like that

EPIC
dnlib is also archived
lmao
but why
attention seeker idk
Incredible
Well, everyone get over to ilspy
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
will fix in a bit
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
nvm fixed
I did it bois, fsmview on android
What a pita thanks avalonia for making everything super seamless not


do I need any other program aside from FSM viewer to create new FSM movements from scratch?
you need to code
yes, code support for fsm creation in fsmviewer, easy
someone should totally make that
I suggested it but you guys were like "nah we can make them in c#" or whatever
yeah I revoke that(if i was the one to say it) tho it is (extremely slightly) fun to do it in c#
I mean just have the viewer generate c#
Or just generate a bundle with an fsm script
oh fsm viewer question: what would have to be done to use/view older version FSMs (in-case of version differences et al)?
pretty sure this was talked about recently, but I forgot what nes said
I looked at the spooky link in the repo for quite a few hours but stayed clueless 🥴
hm, must've missed that talk then 
is progress on the multiplayer mod being made?
¯_(ツ)_/¯
cool
confused there too
the exporting a cldb link, sorry, couldnt remember 🥴
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)
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)
so if I use an older assembly-csharp it'll work with older patches? 👀
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?
you might want to add that to the readme bc I mightve not had a clue 
Oh yeah that link is dead as well
but yea, this is basically the furthest I ever got by trying to open a different version assembly-csharp
What version
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
Let me try swapping cldbs
Yeah actually looks like cldb version is important
What unity version is 1.2.2.1
frick, not sure how to find out 
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
on bottom left
so like this? 
Yep 5.4.3
yea, this matches it as well
with this and select Assembly-CSharp.dll from my install folder?
Like I was saying you don't do anything with assembly csharp
I was just telling you how it works on the backend
oh oki
i have replaced the cldb at least
Ok
should i put the software anywhere specifically relative to the level files i want to open?
No
then yea, selecting level files with the 5.5 cldb just crashes the viewer
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
this is the same error with both. Pretty beautiful tbh
Word wrap is ugly tho
Ah, null reference exception, programmers’ favorite exception
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
lol
youre computer guy arent you? so just fix it 
🔫 back away
wish I had line numbers here
Doesn’t everyone?
guess I will just download it
well if I included pdbs they would probably show up
see if this gives you line numbers
nvm don't try I just tested there are no line numbers
F
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
@potent dirge try avalonia fsmview https://drive.google.com/file/d/1Rw5r-XgNC-m7W0f7oylkzWlZCm8ASOaR/view?usp=sharing
Thank you for finding an alternative, I will try tomorrow for sure 
(tomorrow because sleep is a necessary thing
)
with that attitude it is
How can I learn how to make sprites for custom knight?
#modding-discussion pins
Thanks
Yeah that's Slugma
Oops I should have thought a bit before sending that, I apologize
slugma nuts lmao
God damn it
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?
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
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 (:
you already have DNSpy and wtv IDE for C#, just make sure you compile it into a 3.5 .net library
Got it, thanks!
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.
Check if it’s touching with the tag player?
What's the benefit compared to just checking the player's position?
¯_(ツ)_/¯
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
what collision layer are explosions in?
like the one used in explosion pogo
also are baldurs in a different collision layer than other enemies
Got it, seems to work. Though it seems to perform worse in very large areas, which makes sense. Thanks for the help.
I want a mod that literally just removes salubras blessing noise
K
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
you might have the wrong version of the assembly there?
thanks, added the right version but now im getting these errors
vanilla assembly has to be vanilla ngl
oh right thanks fixed it
@ivory kite, you joined Randomizer Racer.
literally why
Does anyone happen to have or know where to find assets for the HK filigree / calligraphy menu borders for use in a HK theme?
Thank you ❤️
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
the game's sprites are also in a gdrive linked in the pinned messages from #art-discussion
is there a way to save custom variable to a save file ? couldnt find anything on docs
im actual 
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.
you can use UABE to extract sounds from the game
Thank you. 😊
Ran into issues using the SceneChanged hook, apparently it never gets called, currently searching through messages here for a solution...
are you using the modhooks one
Yes, I'm doing the switch to the unity one rn, just got to figure out the arguments
The arguments are (Scene, Scene) if I remember correctly
Visual studio can auto generate that stuff
Exactly what I did lol
lol
Now to learn how to stop a corroutine when the mod unloads...
you can do MonoBehaviour.StopAllCoroutines if you have your own monobehaviour where you start your stuff on
got the fucking quake floor working
Alright, I'm done with my mod, where should I post it ?
here or #modding-discussion ig
Feedback to whether it runs or not on other computers would be appreciated lol
My eyes
delete this immediately and reconsider your life choices
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
now i want to make all the character sprites uwu now..
why not all ~268 characters & enemies?
Couldnt find a way to delete/change the file on the other message so let's post this thing again, now with the chinese title fixed.
Howwow Knyight mod, twanswates aww of de text in Howwow Knyight into de much supewiow UwU wanguage, incwuding menyus, usew intewface and in-game diawogues! >w<
https://i.imgur.com/ly9RIsC.png
oh god
I don’t understand what I am looking at but it’s scary
It's beautiful
thanks for this masterpiece
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
Hello Guys
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
@ fireb0rn
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
yeah there's an enum given with each hit
as well as the actual game object if you want to go more specific
That's very promising to hear, I'll actually invest time into it then 
my mod isnt loading, https://paste.mod.gg/kuhogotege.cs this is my code and i attached my ModLog
I think the issue is that you're targeting netstandard 2 and it should instead be net framework 3.5 ? Not sure
Does anyone know where I can download the gun mod?
How can i start on making a mod?
Thx
k
how do i change it
The getting started docs mentioned some stuff around it for initially starting up a project, might be useful for finding terms to search?
@midnight narwhal visual studio or rider?
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
like this
np
is there a list of charms and their corresponding ids anywhere (ex: equippedCharm_27 is Joni's blessing)
50 times I think? every frame the hero exists
https://github.com/SFGrenade/SFCore/releases/tag/v1.0 smaller update, but since like everything i need is finished, i upped the version to 1.0
I've made a version of benchwarp with hotkeys. is this something y'all want to add to the mod?
How does that work?
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
Interesting stuff. Do you have the ability to edit it, or is it fixed?
they're hardcoded for now; they're all mnemonics for the bench
you can probably just make it use the settings file instead of hardcoding, pretty sure it already uses settings anyway
Yeah
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
dictionaries work
just a bit tuning and i don't even have to create my terrain by hand
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
wdym alone? A state can have FINISHED with another event
How'd it work, then?
Doesn't FINISHED happen automatically after running the state's actions once?
either the custom event gets called or FINISHED does
an example
either TELE OUT gets run by the float compare or it goes to FINISHED by default
Hm, who's this from?
GG_Hollow knight
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"
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"
Hakc
?av
Alright that's what I thought, thanks
On an entirely unrelated note
What images the CustomKnight can recognise aren't in the Default folder that comes with the mod?
@jolly jungle none
You sure?
What did you think would be there?
I remember when I helped someone set it up they sent a screenshot of the skin folder they were using
lemme just
Authors include extra stuff sometimes
One person I helped yesterday had a skin with a file named Knight_NailArts
That was removed

