#archived-modding-development
1 messages ยท Page 475 of 1
bruh
10*
maybe it is drugs then 
and that is sleep deprivation
just because I'm not stronk like you doesn't mean I deserve elderc sid/zal/56
you gotta embrace the superior sleep schedule
can't have a healthy one forever can you
sleeping forever?
I don't think you know what sleep deprivation is Saleh
Unless you're waking up at 12 am
it's when you get less sleep than usual, is it not?
or randomly falling asleep out of no where
no, you have insulted me, my family, and my forfather's family. For that you will pay 56 yusuf of the Bham clan located in the far off land of virginia
Ok Mohammad of the Ghaemi clan located in the far off land of like 20 minutes upstate
I sense fear in you
pay me $5 or I will personally find them and tell them yusuf's pp is hot
good way to get yourself in prison
but I was talking about 56's epic mod "Pale Prince"
how could you be such a disgusting person Sid, what else would I even be talking about??
darn time to go to prison
got the game to now crash with <40% of memory used instead of ~50% 
it do be that way sometime
still dk where the other player's texture is being set to the sprint tex
I may have found the problem
So the server sends a request for textures from all players on each scene change to test if the player has changed skins
it sends the current stored hash codes for the current players' textures in a packet, and the client checks if it matches its current textures' hash code
if it does, in the case of the main knight texture, it retrieved the tk2dSprite's current sprite def
which, during a scene transition, briefly becomes the sprint texture's definition
so I just had to change it from tk2dSprite -> GetCurrentSpriteDef to tk2dSpriteAnimator -> GetCurrentClipByName("Idle") -> -> -> spriteDefinitions[0]
basically, fuck tk2dSprite all my homies prefer tk2dSpriteAnimator
I want to install a mod but my internet is dying
Ok, I've been dead for like 2 weeks, what's the progress on the multiplayer mod?
little
@solemn rivet add katie
what
why
i will miss our conversations 

my github is on my cv 
o
ifhgh
87ec785a9dfaa56760ba7d732998f869c8c375cd & https://drive.google.com/uc?export=download&id=1unfblWwMxeZT2a02AJFi-72th4lPvgtz are the correct ones 
i used whatever the patch-1 ones were
yeah
i updated again
so i edited patch-1 again
and now its complaining it has conflicts
i merged it
Once I've built my changed area using HKEdit2 how do I use the file it gave me to see it in-game. I've tried saving it as level6 and changing the level6 in my Hollow Knight Data folder but that did not work
with the asset bundler* using HKEdit
ah that's where the info is, thanks!
and how does one save a level? I can save through SaveScene but I think that just returns me a unity scene and not a level file as seen in the hollow_knight_Data folder
is GetHashCode reliable for Texture2Ds?
probably not, would be my guess
time to compare every single pixel of every texture every scene change 
hash codes are only guaranteed to be equal for the same object reference
for example, dictionaries with the same keys and values don't always give the same hash code
i mean they can be overriden so it might have a custom impl
but i wouldn't put my bet on it
I mean dictionaries are very mutable
i thought textures would have like a different hash on their own, i know texture has one
hash code probably just isn't overridden because that's pointless
for dictionaries?
yeah
yea
mutable structures don't make sense as keys
they don't
yeah, I was just pointing out that hash codes should not be interpreted as meaning the underlying data is somehow equal, or something
yeah but for data based types they're supposed to be
in fact, usually the properties that make a hash reliable are pretty order dependent
and if overridden have to be in order to conform to the spec
i was talking about like texture2d already having gethashcode implemented to handle pixel differences
equal objects will have equal hashes if they override it and are designed properly is what I was trying to say
so like checking it is a good idea
because if it does then there's no reason to bother
I think texture2d : texture so it should have a hash if Sid says texture has one
you can downcast Tex to tex2d at least
?
reflect

Would something like this work
public static int Hash(this Texture2D tex)
{
Color32[] texPixels = tex.DuplicateTexture().GetPixels32();
List<byte> byteList = new List<byte>();
for (int pixel = 0; pixel < texPixels.Length; pixel++)
{
byteList.Add(texPixels[pixel].r);
byteList.Add(texPixels[pixel].g);
byteList.Add(texPixels[pixel].b);
byteList.Add(texPixels[pixel].a);
}
byte[] byteArray = byteList.ToArray();
int hash = BitConverter.ToInt32(byteArray, 0);
return hash;
}
DuplicateTexture() is another extension method I made to return a readable Texture2D in case the src texture wasn't
I often gets 0s for the hash
^
You have to keep in mind that an int32 cannot possibly encode your image. What you want is to incorporate all of the data into a number and hope that the unlikely event of a collision does not occur
usually you would use some manipulation using prime numbers to do that
https://stackoverflow.com/questions/16340/how-do-i-generate-a-hashcode-from-a-byte-array-in-c/16381 this might be useful
for (int i = 0; i < hash.Length - 1; i += 4)
{
val = 17 * val + 31 * BitConverter.ToInt32(hash, i);
}
you can store some extra info to make collisions less likely, like hash of rgb, rg, rb and gb the chances of something matching all 4 but not being the same is kinda low

Unloading 187 unused Assets to reduce memory usage. Loaded Objects now: 54263


they don't even say what hashing algorithm it is, I hate it
or use https://github.com/saucecontrol/Blake2Fast which is way faster
also we're not converting to string since we can just send the raw bytes over tcp
although a perceptual hash might actually break because skins are too similar
finally
Introducing the mod that transforms dirtmouth in to this
does blake2fast support .net35? nuget says it fails to install
same error
I hate C# so much
๐
@fair rampart I could host the C# server too, although it would run horribly slow
If that'd make things easier for you, sure
I mean if the mod ever gets to dealing with FSMs or loading scenes, the C version won't work
yeah, I was already getting worried with the Texture2Ds
the sha256 version?
I tried md5 since I don't care about security and I still get crashes
I definitely have a leak somewhere
same thing with sha1
but it does
is raycasting more accurate than using ontriggerenter2d?
depends on "accurate"
you can't teleport through a collider with a raycast
but you can miss them
I might make it so that you're stuck with the skin you join the server with, bc checking skins every scene is expensive af
that's what I was looking for, thanks katie
im quite new to using sprite packer does anybody know what the purpose of these are
i dont want to accidently loose all my progress so-
my method is to go to "LocalLow\Team Cherry\Hollow Knight\sprites\Knight" and edit whatever i need to edit, then when i go into the program it seemed to have applied. is there anything else i should know?
i get an error that says "Repeated sprites below in this collection are modified differently. Try again after replace the rest of them with the one you need."
@jolly oriole
this is my log
ok i did that, now what?
this is so confusing, i feel like im messing something up
a bunch of backup files were created?
some of the sprites in the backup i never even edited
i never had 'watch' on during the process of me editing the sprites
Which can help you replace all the sprites you have edited
I have a question, is there like a tutorial on how to actually open the sprite packer?
Then keep it on and save the Sprites edited again
okay
once i saved all the sprites, what do i do next?
where can i find the pack button? is it in the program?
alright, thanks, ill let you know if i have anymore problems.
what does this button do?
also i figured out instead of saving each file, you can click add
which was very useful
by the way the changed files list is empty because i had to restart my computer
Can we change the charms sprites with customknight like this? I think they are a little bit different from other sprites
if I revisit customknight, sure
okay I finally managed to get the proper path to get to my asset bundle gameobject, from that point on how would I make it appear in the scene?
where does it tell me? it only tells me how to get a reference to the object with
"Find a specific asset with:"
ab.LoadAsset("ASSET_NAME");
I got that far, the next step teaches me about how to deal with scenes, but I want to do something with the object I bundled first I just want to see it, with Logs I've been able to see its data such as its transform position and such, but not been able to instantiate it properly
or does LoadAsset actually put it in my scene and for some reason it's not showing up
instantiate and set active
oh didn't think about setactive, thanks!
did it work because i swear i saw something about it not working
I wrote that it didn't work but I wanted to try something else before claiming it did not work
darn, didn't work :/
It's quite visible and fairly huge in the editor, I just can't seem to get it to show up
ah... I thought it would show up as pink as mentioned in the pin first and then I'd have to set that up
I'll give that a shot!
it wasn't showing up at all, if it showed pink I would've been exceedingly happy at getting my object to manifest itself in some way haha
okay, I'll remove the logs I'm throwing in to check stuff, one sec
string assetBundlePath = Path.Combine(Application.streamingAssetsPath, "CustomAreas/customtutorial");
AssetBundle ab = AssetBundle.LoadFromFile(assetBundlePath);
System.Object[] assets = ab.LoadAllAssets();
GameObject myOwnStuff = ab.LoadAsset("NewStuff") as GameObject;
GameObject instantiatedObject = GameObject.Instantiate(myOwnStuff,myOwnStuff.transform.position,Quaternion.identity) as GameObject;
var sr = instantiatedObject.GetComponent<SpriteRenderer>();
sr.material = new Material(Shader.Find("Sprites/Lit"));
instantiatedObject.SetActive(true);```
oh and just for more context
you've checked to make sure ab isn't null, correct?
you don't set myImage's spriterender's material
yea you should do LoadAsset<GameObject>("thing")
I'll check that just to be sure, it'd be weird for it to be null because I have access to the information stored in the object (i.e the transform position)
and you should be able to just do Instantiate rather than GameObject.Instantiate
When I do "Instantiate" it gives me errors
^
Instantiate is only if you're in a MonoBehaviour
also a good point
otherwise you have to do some form of T.Instantiate where T : UnityEngine.Object
Instantiate does not exist in the current context, and the solutions are all to just make my own instantiate method
ah so yeah okay I wasn't going stir crazy, I can't just instantiate from the mod
I'd need to have another class which extends Monobehaviour to instantiate my stuff I guess
UObject
UnityEngine.Object
whatever you want
they're the same thing
you don't have to do it off your own class
so does NewStuff have it's own spriterenderer because in the code you posted you get the sr of that when myImage has the sr in the picture
and are you sure it spawns where you think it does?
so far I haven't seen it at all. if I spawn NewStuff(which is just an empty container) at 0,0,0 then the objects should appear at the local offset they're set at, right?
newstuff is at 0,0,0 and myImage is at 112.6 etc etc
could it be possible to have access to the gameobject's transform information without being able to load it from the asset bundle?
so good news, none of the checks returned null
so there is something at the very least it is detecting
but I can't get it to appear yet
string assetBundlePath = Path.Combine(Application.streamingAssetsPath, "CustomAreas/customtutorial");
//Log("Streaming Asset Path: " + Application.streamingAssetsPath);
//Log("Combined Path: " + assetBundlePath.ToString());
AssetBundle ab = AssetBundle.LoadFromFile(assetBundlePath);
if (ab == null) { Log("ab null"); yield return null; }
System.Object[] assets = ab.LoadAllAssets();
GameObject myOwnStuff = ab.LoadAsset<GameObject>("NewStuff");
if (myOwnStuff == null) { Log("myOwnStuff null"); yield return null; }
Log("Name: " + myOwnStuff.name + " Type: " + myOwnStuff.GetType());
//GameObject.Instantiate(myOwnStuff);
//GameObject myOwnStuffGO = myOwnStuff as GameObject;
//Log("Position: " + myOwnStuffGO.transform.position + "");
GameObject instantiatedObject = GameObject.Instantiate(myOwnStuff,myOwnStuff.transform.position,Quaternion.identity) as GameObject;
//GameObject instantiatedObject = Instantiate();
var sr = instantiatedObject.transform.GetChild(0).gameObject.GetComponent<SpriteRenderer>();
if (sr == null) { Log("sr null"); yield return null; }
sr.material = new Material(Shader.Find("Sprites/Lit"));
instantiatedObject.SetActive(true);```
oh I would also need to set the child active right?
no
why are you waiting a frame when stuff is null
all my homies yield break;
I'd just instantiate with default args and then move it over to where you are
less effort
I just copied the check I saw above to be fair, I don't want it to do anything when it is null I just want to make sure I get the log if its null
idk how well mixing path stuff works fwiw
path.combine is supposed to use os path delimeter
just make it 3 args
No overload for method combine contains 3 args
tried to just instantiate the object and then move it to the player's position
didn't work either...
testing multiplayer mod with skins
i thought it sends a lot of packets
those are a lot of packets
@copper nacelle could you show me a code snippet of how you get an object to appear? I feel like I can't be all that far from an okay implementation of it, but it's just not quite working
if anyone wants to test, here's the latest dll
with hamachi?
yes
Thank you so much 56, this is very nice to see how you set things up :D
np
isn't there a server for it though?
it's not updated to work with skins
I am at dirtmouth
just to be sure what's UObject? is it just a reference to UnityEngine.Object?
yea
let me start my game
alright thanks
yeah i have using UnityEngine.Object = UObject;
because i don't like it colliding with System.Object
even though i use object for that anyways
just feels weird
alright
f
scam peepoLeave
jojo i sleep sekiro real shit
I am trying to figure out how to not make it crash
nah it's fine if it crashes as long as i snipe the skins 
ok how do i join
the session is on pause
I made a new one cause the others are full and idk who to evict
hk multiplayer testing for both fields
what's the port
o ok
if anyone still wants to test, here's a newer dll
the old dll doesent work anymore?
no
ah so i dont need to download this new one if i have the old one then
gotcha
alright, so if you move back and forth quickly it's basically a lag switch
are you all still testsing
do you want to help me try something out real quick
I tried with zal and it crashed so I want to see if it crashes again with 3 players
well... I officially don't get it :/
If you have the assets and the dll I could give it a shot
thank you, by dll do you mean my mod's dll?
all I did was take an image and dropped it into the asset folder and put it on the scene in unity, turned it into a prefab and bundled it
yeah
is it okay to drop files in here?
yeah
the bundle
so you have it set up like this, right?
Yes same set up
oh also this bundle is no longer the NewStuff which was an empty object, I just dropped the image and made a prefab of it then bundled it
so no messing around with getting child and all that
hmm I wasn't getting that, lemme check
are you sure this doesn't load during the knight creation screen and then die at the scene load
this is also imagetest
yeah that's the new bundle I use
I dropped the previous one to use this new one which only contains the image
Oh wait should I have the assets load at some other point in code?
doesn't really matter but idk when this instantiate is going to exactly happen
IEnumerator OnSaveLoad()
{
Log("I ain't ready!");
yield return new WaitWhile(() => HeroController.instance == null);
Log("READY!");```
yeah
that's after the knight loads
not necessarily after the scene is loaded
afaik
Ah....
But I'll check
omg if that's it then I've been struggling all this time for nothing
oh well, we learn the most from our mistakes at least
I thought for sure they would render the entire scene and then load the knight and set it at a position (assumptions are bad I know)
I'll move that part of the code into an OnSceneLoad as I planned on doing as soon as I got it working
yeah it's getting yeeted out of existence
It's always like that
Should've done it right from the get-go but I just wanted to see it pop-up first. Alright I'll implement that in the scene load and see if that fixes it
it is supposed to be here
wait really
Oh I think that was me messing with its Z to try and see if it was just behind something
what's a safe Z to use to start with?
0
oh alright
weeb
haha
That's weird, the reason I used that position is because that's the position I got from the HeroController's position when I jumped at the spawn from level6
you dont understand 56
What's the Hook used in your code example, it uses two arguments for what I assume to be the previous scene and the one that is loaded
private void ActiveSceneChanged(Scene arg0, Scene arg1)
on the hook reference I saw BeforeSceneLoadHook and SceneChanged which both only have 1 argument (maybe it's an overload of one of these)
UnityEngine.SceneManagement.SceneManager.activeSceneChanged
Oh it's not a ModHook I see
idk if SceneChanged got fixed to use BeginSceneTransition
or a base one it's a new hook
but last I checked it only triggered for stag statioins
ah I see
okay so I'm better off using this as a hook instead
since it should be more reliable
yes
Thank you so much for helping me out!
np
oh, right I think the asset bundle shouldn't be loaded more than once right?
that would be a good idea
I have it as an instance variable and load it in Initialize
yeah
So I can confirm I saw it show up on the title screen (I'll just add a condition to check in which level you are and this way it should only show up in that one level and not the others)
Thank you!
Feels good :D
also turns out since I didn't mention the scene that's the position in town, but my test area was in Tutorial_01. Hence why I got confused when I saw the image in town
ah
I didn't even start hollow knight and just by switching to another user windows froze smh
fun fact : unity's png encoder doesn't always produce the same output for the same input
it would be nice if all mods had their respective github repo in the readme
more like
fork of project a
fork of project b
fork of project c
fork of project d
fork of project e
Untitled
Untitled1
Untitled_1
Untitled_1 Copy
Untitled_1 Copy1
why make a branch when you can just copy the whole repo
Here is a update to the dreamshield coop mod
it adds switching between Hardmode(The shield is the only thing you can bounce on) in global settings
Why does changing the spriterenderer sprite of a charm in collected charms not do jack shit
in inv or
yeah
thanks
blessed image
he's not trying to cheese the game with maggotprime that's just no fun
Do you think I should name the pngs after their charm number, like 5.png for baldur shell, or an actual name, like baldur.png
the former is easier to parse, but I can see it causing problems for charms like kingsoul and grimmchild
I already have a Baldur.png, so I'll just append Charm to the end of every charm name 
yeah
are charms being added to custom knight?
yes
are charms being added to pale court mod
more textures to change = slower 
like all of my version of CustomKnight?
that is a lot of new sprites
Well, it's a matter of opinion
But I feel like it would be better to have the "main mod" be changing out the knight sprites, and then have separate mods for changing out other things, so that you don't need 60 pngs in the custom knight folder for it to work
idk though, I spoke a lot more confidently about it than I actually feel 
you don't need all the pngs for it to work, it changes textures to the default if they're not included
I just want to customize charms, whether it is a separate mod or not
Yeah, true. It comes down to how far you plan to expand it
I don't see why it isn't literally just all sprites at this point
we're sitting at 44.6 MB rn folks
It would be really easy to do
imagine everything in hollow knight being customizable
You can just dump the textures at runtime on first load of you don't want mod size to go up
Is that compatible with the ingame texture swap menu though?
if everything in hollow knight was customizable, every custom knight mod would be an entirely new game
why wouldn't it be
idk
should be when I'm finished with it
any mix and match
any move desired pngs to desired folder
you can
if you swap to one with everything and one missing things it doesn't swap the missing stuff to default
easy
as in that's what happens rn to be clear
what if all I want is a subsection of a texture
like I just want shriek and wraiths

fuck Photoshop all my homies hate Photoshop
paint 3d
let me rephrase
what is this sumwan smh
fuck manual labour all my homies hate manual labour
bro you'd have to like load it mutably or copy to a render texture
both sound slow
mutable loading takes like unironically a solid minute
any masks
You can't access by pixels
I think
Otherwise you wouldn't need the render texture hack to get a png
I mean just have a Shader that takes in a textures and grayscale masks
it should be doable at runtime at way over 60fps
shaders 
I mean it's the simplest shader of all time
average and div 3?
mutable loading takes like unironically a solid minute
what the fuck
Idk dude
It confused me for so fucking long
And I changed one parameter
And it went from minutes to milliseconds
unity
out = (tex1 * mask1) + (tex2 * mask2) etc
in a fragment shader probably works
you'd probably have to put it into a render texture then load it in as you normally do
Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.
markNonReadable defaults to false and that's slow as fuck
change it to true and it's suddenly instant
I
should note that in my quest to implement skins
amazing how the docs don't explain shit
"Set markNonReadable to true to mark it as non readable" finished the docs boss, devs will love'em
I am trying make "godmaster" charms for the customknight update
is this big brain or what
I did that initially but it's easier to access the string name by charm number later in the code
make it a method or property or indexer imo then
might say fuck it and make all the staged charms the same sprite
good
everything is broken
but this
is good
"Hey can you show me what charms your using, just open your inv and close it after a secod"
ok
no
not ok
looks fine to me
how many charms did you collect?
maybe
didn't even realize charms were in an atlas
this cuts down on the number of individual pngs in the customknight folder then
I don't think the charm icon list stuff was joined
I assume it's yeeted out of the atlas
Work in progress.
solid
So would there be a way to change the entire atlas rather than each individual sprite?
maybe
getting the spriteList texture gets the entire atlas, but setting it with Sprite.Create changes only the individual sprite
is it something with Sprite.Create?
unlikely
managed to load into a new scene with oniro, but now it remains stuck in "Trans State: Loading" upon entering the gate to get to that new scene
also everything is dark so we're not sure if it actually fully worked or not yet, the scene name seems fine and shows as the actual scene name which is "ModScene1" and GameState "Entering Level"
Is there more stuff to set-up upon loading a scene or should it work by just transitioning into the scene
that we have (I think) it was just a empty gameobject containing a collider2D which we used the name to refer to in the CreateGate func
I think we're only creating the gateway when we get into the area, should all gateways be created onLoad or something?
yes from the base game in the tutorial area we have a gate created, we managed to get it to teleport the player to another gate in another pre-existing scene
but in order to load into the modded scene we need to make sure that the gate in the modded scene was created before the first gate was created?
or am I getting this wrong
so we do that, but the place we call CreateGate is when we check that we are inside the area which I guess is too late since the initial gate already needs the modded scene's gate to be created before it can be created, right?
okay so that should work, should all gateways be created at the start of the function or is it okay to create the gate once we verified that we are in the relevant area?
just to be sure loading a scene should load all of the assets in it, right?
still stuck in loading
are there some elements that absolutely must be in the custom scene for it to work?
just what grenade said
I have an example for a mod if you want
I think I have a better understanding on the relationship between sprites and textures
individual sprites are a subsection of a texture atlas if they're packed
in that case, I can't even access the sprite's rect or textureRect to yeet into Sprite.Create because the sprites' packing modes is Tight
fixed multiplayer client's weird dependency on QoL ๐ฆ
might've been something with the gm's OnPauseToggle hook
dependency on qol 
so i downloaded the Grimm Knight skin: this one
and i had just one issue with it. it replaces the hatchlings with small grimmkin, which i find amazing. but i thought: what about the weavers? (since, you know, weaversong+grubsong+glowing womb is a classic combo) and the weavers are not changed
so i just edited them myself. feel free to add them to your GrimmKnight. and i would be flattered if this was added as an update to the skin on google drive
@still locust something you might want to look at
wow great
I will add it into the Grimm Knight folder
So what author name should I note? Swagapagos Turtle? @graceful rune
tbh i don't even care that much about getting credited for something i did in paint.net in 10 minutes XD
but i'd be honored. yea, put "Swagapagos Turtle"
<@&283547423706447872>
@fair rampart Stay in #297468195026239489
this looks modding related to me
moderating related you mean
753 when is shitmodst 2
Actually never

Can anyone provide a working Bonfire mod link? I replaced Assembly-CSharp with the one I found on the net but all I get now is a black screen after game starts. Glad I backed up ๐
what free program would be best for editing customknight skins? i'm using krita right now but it's kind of annoying sometimes
i use sai, but as i believe its not free
i use firealpaca, works like a charm for me, plus its free
https://gyazo.com/d99fbd8f79e80dcdb1e40ba54c43453e is there anyway of doing this faster 
it does but i already edited all the files without it on
so i have to do this manually

but in the future i will keep this in mind 
i added all the frames, my hand is cramped, what do i do next?
massage it
i mean yea i was doing that but how do i export all those sprites or whatever
how does spritepacker work?
i mean doesn't matter to me since there's no mac version but just curious
i got an error that says: "changed files below don't belong in the current atlas. Delete them by double click them in Changed Files or Replace All won't work. (Nothing to do with Replace button)" @jolly oriole
underneath the error are a bunch of frames i edited for the skin
k
no, its dream nail warp stuff
i also got another error
saying "Repeated sprites below in this collection are modified differently. Try again after replace the rest of them with the one you need." following that are two sprites that look the same
i tried one and it didnt work, i then tried the other and it also didnt work
it also created a bunch of backups
oh- now theyre different sprites
https://gyazo.com/21ab6cbef6c731b11c8aa00483d83ebc ive sorta just been clicking replace randomly and its hard for me to figure out if its working
sometimes it would create like,, 2 backups then it would create 10
Hey, I use Clip Studio Paint for all art-related stuff and I also was interested in doing some CustomKnight skins... What is that software you're using in the screenshots right above though? Is that the spritepacker thing someone mentioned a few days ago?
@jolly oriole i wanna revert what im doing, i feel like im breaking my sprites when i click replace
i clicked that and im unsure what it did, half of the buttons i dont even know what they do
yea now theres a bunch of backups
this is so messy
including the backups? @jolly oriole
i wanna fucking die, this program is so confusing and i think i need to redraw everything
i think i copied all of the edited files into a new folder
i wanna cry
what do i do now
thank you, i think im gonna restart this, it only takes me around a week and with this knowledge i should be able to do it again. plus i heard benji is making a tutorial so
thanks a bunch, really mean it
what is the proper way to bundle a scene? Is it to just make a bundle and put the unity scene file in it?
okay so at least that's not the wrong way to do it, and loading a level should happen through a created gate, right?
and in order for the gate to work based on the name you give it, does it just need to be a collider2d in the scene with a name specified (i.e.: "left customlevel")
yeah that's the code used to create the gate, we have no problem creating a gate to hook it to another level that already exists within the game, but we can't seem to get it to load into a new scene, it only remains on "loading" which seems to indicate something's wrong
the asset bundle for it detects the name of the scene without an issue and it goes into the right loop to create the gate
using the scene's name to verify if we're going into it, we do get the right Logs stating we're into that part of the loop, but it's as if the level could not load
Oniro's the one working on that piece of code, I'll try to ask him if he could do something with that, thanks :D
we set it to be something like
scene name is "ModScene" and the entry point is "left customscene"
I mean to be fair we're probably kinda dumb, but it's part of the learning process
which is the name of the gameobject containing only a collider2d set to isTrigger
oniro's eating right now but he'll get on sending you the repo when he's back
yes that is what we used to create the gateway from tutorial_01 to the top entry gate in town. by changing the name "right1 custom or whatever" to the name of the gameobject in the scene which is meant to be used as a transition point ("left customscene") we end up in an infinite loading
(really expecting it to be a very simple fix that just flew right past us tbh)
the gate "left1 custom or whatever" along with its coords and size values gets created, but does it need to point to a pre-existing gate in ModScene? I thought it would look for a GO with the name used in the param next to the scene's name
okay but by default gameobjects created in unity don't have the components assigned to them which I suppose we need to set-up in code. But that's taken care of when we run through the CreateGateway function right?
okay so if we run through CreateGateway to make the gate to the ModScene when entering Tutorial_01 and then create the gateway to return to Tutorial_01 from the same gate in ModScene when we enter ModScene this should be an okay implementation
(sorry gotta brb)
Uploaded the 2 scripts to Github: https://github.com/Oniromancie/HKCustomeScene
how does it detect ground?
would just any collider work
because the gate was right on top of a cube with a collider2D on it
you need to set the layer of the gameobject to 8 as well
floor
in the unity scene or through code?
both work
probably less time consuming with code
yourGo.layer = 8;
list of all the layers
but you'd have to set each ground tile to layer 8 individually, right?
there's also a GlobalEnum that has them
yes
bruh how is it working then? It shouldn't play the proper animation otherwise
so probably recursively look through all game objects, looks for a part of its name you can identify it so probably ground or wall in its name and set each to the right layer based on that?
If you have all your ground tiles grouped together (eg they are all children to the same parent) then you can just for loop
okay so group by layer
pog
JNGO PALE COURT OR ELSE
Wow, nice
smh
I need TWP clout
I've just set up my terrain to be on layer 8 and it didn't change.
Do the position in Unity match the position in game?
yes
I don't have access to layers using HKEdit2, I can see that it's set to something, but I don't know what
okay so make my own set of layers as long as the number matches the one used
Yeah my ground in on layer 8 now.
is there something wrong with your ground?
But not having ground wouldn't prevent the level from loading, right?
it wouldn't
you could theoretically load into an almost empty scene that only contains a gameobject with a collider used as the transition gate, right?
yes
it should at least load even if nothing would be visible since no camera or something like that, unless there are some dependencies like some objects absolutely required on every scene to be able to load
my guess is that the same camera gets moved from scene to scene, right?
that'd make sense
so the reason why the scene does not load is unrelated to its content
using the debug mod the transition state remains at loading
scene name MODSCENE
oh, is there something wrong with that? its name is "ModScene1"
i think everything is set to be all caps in this ui
oh indeed
well the term would be small caps I think
but is there an issue with the scene name?
Looks like that(its hyper huge): https://github.com/Oniromancie/HKCustomeScene/blob/master/output_log.txt
I see a lot of "Couldn't find a Hero, make sure one exists in the scene."
also a mention of
(Filename: C:\buildslave\unity\build\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Using fallback 2 to find tilemap. Scene ModScene1 requires manual fixing.
(Filename: C:\buildslave\unity\build\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Failed to find tilemap in ModScene1 entirely."```
and Scene Manager missing from scene ModScene1
alright
We do, we thought it was needed so that it had a reference point to create the gate.
Trying to remove them
Well screw me side way it worked
HOW
i thought for sure you'd need a GO with the same name as the one you used so it would find it and create the gate at its position or something
huh so it just creates a gate "somewhere"?
I thought the first vector2D determined the position of the first gate
OH wait
I just realized
Have a good sleep, thanks for the help!
okay right it is called a second time
I thought you meant that it created the two gates in a single run through CreateGateway
but we do call it twice with the second time using the same name so it links them up proper
alright makes sense, thanks so much and have some wonderful sleep
I'm trying to add settings to CustomKnight so you can disable preloaded textures and set a default skin
is there anything I need to do besides adding a file like this?
using Modding;
namespace CustomKnight
{
public class SaveSettings : ModSettings { }
public class GlobalSettings : ModSettings
{
public bool Preloads { get => GetBool(true); set => SetBool(value); }
public string DefaultSkin { get => GetString("Default"); set => SetString(value); }
}
}
idk, I can remove it
is there a mod using that that I can reference?
mod console I guess
I haven't worked with settings aside from copying pale prince for traitor god
Actually sanic
If that's on GitHub
that might've just been more saves
gimme like 5 and I can put it up
itโs just preference really, use properties if you like them
you don't
you just go into the game and then quit and it'll gen
and properties are worse imo because they just go into the dicts so it's uglier
I have "extra platforms" disabled, what is this shit
an extra platform
never knew about such mod
it's an option in the Randomizer
Room randomaizer I suppose?
item/area/room
I though its all same mode that just called "room" but ok
That platform is required, so it can't be disabled
not if you shove the fat dude 
it wasn't in older versions how is it required now
because it was a sign pogo when signs aren't supposed to be pogoable in the first place to emulate the behavior of 1221 rando where the fat guard would walk farther left
And something which is never normally pogoable being pogoable isn't exactly intuitive
oh yeah I remember the sign being pogoable
guess that makes sense
can't the Great Husk Sentry be made to walk all the way there though?
yeah
so why not that instead?
effort, probably
platform is easier to code and you can't miss it which makes it easy for beginners
jngo
smh
i guess i could just apply this shader to everything with a hitbox https://streamable.com/rt2f9z
when i google it, it just says the default sprite shader is like some super basic thing
but when i use that to override the shader they have it just breaks
unless theres some reference on a script i have to update
idk if this helps, but the shader name for HK objects is Default/Sprites-ColorFlash
goodbye messages


I wonder how good TC's workstations are
cause I have an fsm that's less complex than PV's and words are appearing at one letter per second as I type
whatโs your PC
Ryzen 7 2700, 32 GB RAM, GTX 1080
is there anything in the background taking up any resources
thatโs weird
the playmaker editor just chugs
I bet they just used it like this
Hello
Does anyone here know how to make a custom boss mod?
For free
Or some form other than money and labor
I have sprites
I just need a programmer
any help to move a certain npc to a specific position? i.e iselda out in town and so
use the preloader to make a copy of it, instaniate it when you load the scene you want it to be in, delete it when you load the scene you don't want it to be in
After the pale king event ends, will there ever be a way to get it again? Will the challenges return?
what pale king event
modding discussion pins
After the pale king event ends, will there ever be a way to get it again? Will the challenges return?
@restive ledge There is no longer time limit with that event
And all the events
Yeah
And if you had already finished some of the challenges before the date the events began, but without skin from TWP, it's still fine
modding discussion pins
thanks!
๐
been looking at some basic modding stuff, hoping to learn a bit. is there an easy way to "reload" a dll if i've overwritten it, or do i need to quit all the way out and restart the game? thanks ๐
quit out
ok thanks
Probably a noob question, but... Iโm updating nail damage in the AttackHook and again in the AfterAttackHook and it doesnโt update. Checking the log it seems the value is updated, the game just doesnโt use the updated value. And I also tried adding the PlayMakerFSM.BroadcastEvent(โUPDATE NAIL DAMAGEโ) after every nail damage update and itโs still not working. What am I doing wrong?
still no one for a mosscharger upgraded boss?
I mean, mebi is making the sprites so it's not like the usual "you do all the work" comments
nothing wrong with asking around to see if anyone else is interested in helping you katie
yea but i only work for $69/hr
make the mod for me and I promise โข๏ธ to give you 69 an hour once you're done
i think you missed the dollar sign 
smart
Depends on where you sell I guess
31 to 38 cents per pound, then again it will depend on the time in the season.
Hey guys. So I tried to figure out the camera for my custom scene, but to no avail. When I get to my custom scene, the camera will not follow me when I try to go on my other platforms(which are to the left), but will follow me to the right. Here is an example of the current behavior: https://www.youtube.com/watch?v=pBK9BbXFLJA&feature=youtu.be
I thought it was related to an element named "_Camera Lock Zones" as I saw it in many scene with world edit, but even after I added it there were no changes
Ahhhh that would explain. I got the bad habit of going into negative when I work with unity scenes. Is there a maximum it will go?(more out of curiosity, I don't believe I'll ever do a scene huge enough)
yeah most probably
Oh for sure.
yeah the camera works no problem now, thanks.
I do use debug, I just disabled it in the video so removed the clutter
ah ok
I left the debug at the very beginning of the video just in case I was missing something that was obvious for other ^^'
I know the feel. Its also sometimes you stare at something for so long you end up filtering out important stuff.
is there a way to get the contact point from a collider2d?
col.GetContacts()
that needs an array of something though
is there anywhere else I can get the texture for geo besides GeoControl and HealthManager?
when I use both of those, geo eventually becomes invisible for who knows what reason
The texture object is probably being deleted
Make a copy of it
Rando doesn't have that problem though actually
So you're probably messing up somewhere
replacing the shield in dreamshield coop with grimmchild is very glitchy
it was more about the dark theme but yes, I'm doing that too
I think heโs showing off the pro key he mooched off some guy in off topic ๐ค
wait jngo102 what program is that? does it work with customknight (as in can you animate using onion skin and then export it into a sprite sheet)?
the biggest pain of editing the sprite sheet is that there's no onion skin
It's unity, which I'm using to setup sprites, not draw them
However, I am using krita to create some sprites, which does have onion skinning animation, and spritepacker to pack animation frames into sprite sheets
wait krita can do that?
how can you set it up to export the sprites to the correct locations?
I have added the feature of rapid fire with grimmchild in grimm coop
and it worked on my first attempt at making it work
wdym? I just replaced the sprites that were exported by GODump
wait oh nvm i misread that, i thought krita exported the image files straight into a sprite sheet
didn't see spritepacker
do you have the dumped sprites? i think GODump was made to only work on windows, since the readme talks about AppData
cool, thanks! i'm assuming i can't rename them or spritepacker won't work?
idk, probably not
I have so many simple custom knight ideas that wonโt take too much effort but will still be somewhat enjoyable for people yet I donโt know how. Guess I gotta wait on benji for that sprite packer tutorial
i'm working on thunder knight which is mostly just a recolor but has lightning bolt shaped horns, and i'm very worried that the horns are going to end up in weird positions because there's no onion skin
i'm going to go insane if a bunch of the horns are in weird positions and i have no idea which sprites i need to fix
I've been using sprite packer and it's pretty intuitive, aside from having to search for and replace duplicate sprites
I wonder how benjiโs tutorial is going so far
So... I have completed the game (almost) and i want to make my first mod. How can i do that and what i nead.
The pin post is a good place to start
I also search specific term in past conversation to see if someone already asked the same question and got an answer, helped me a lot.
Ok, thanks
any ideas on what you'd want the mod to be?
I tried to upload a mod I made, then my internet went out
yay the internet is back
I have finally updated Lifeblood master(my hive knight mod) they now start with all attacks except Bee vomit, there is a un killable minion at the end of the fight, and finally I have edited nearly every attack to be harder which is the reason for not adding the bee vomit because some attacks use the bees that come from the celling
Imagine making a mod that makes Grimm wholesome
what
In hk
Oh ok I thought you meant in ori
Ori and the blind forest/will of the wisps?
oh god 
Sorry ;-;
sean was being sarcastic
No I legitimately thought they meant ori 2
sorry for being stupid ;-;
Here is a updated version that lowers the hp to 3500, and fixes a glitch
imagine being adept enough at code to write a mod
@solemn rivet I have a very minor edge case issue to report on the Mod Installer... It's more of a nitpick, really. I had previously disabled the mods months ago. I wanted to play with mods, so I opened the tool and installed some mods and then enabled them. Job done! However, when I launched the game the API was out of date according to a few mods. So I opened it again and it finally checked for updates!
The meat of the issue is that it doesn't check for updates upon re-enable. Like I said ultra mega nitpick, but you know... bug reports ftw i guess?
i don't even know if I'm pinging the right person..... Wait, it's a green name. Got it now!
Here is a version that fixes a couple problems with the minions randomly spawning on the player
This update stops bees from spawning in walls
Also does anyone know how to fix boss levers? I have been trying and when the room reloads when the alt statue is active, everything, including the boss completion, except for the name and description of the boss is changed back to the original stuff
also i made sure to follow what other mods' boss levers did
how do you start modding?
like making mods?
ahh so you already have the tools?
ILSpy, FSMViewer, A C# IDE?
i don't have ILspy is it better then DNspy?
https://github.com/seanpr96/HollowKnight.Modding heres a recommended example to start, go to "Example Mods folder"
DNspy also works
But peeps are saying ILSpy is better but otherwise for now theyll do the function youll need them for
Depends if you need them but Modding is pretty much a given and you should import it
tho it shouldnt hurt to importal GlobalEnums along tbh
where do i get the modual(s)?
ahh its giving errors right?
yes
press projects, and press "add reference"
yeah
you already have the modding API right?
aight, add that as a reference
thank you
yup, and ModCommon along as well
np
shit
what's mod common?
did you install the api via the Mod Installer?
why would you be sleeping at 5 ๐
the modcommon.dll file should be in your mods folder
if you have run the modinstaller already
ok
thats about it i think
youre gonna need to import the other unity files if they have a class you need but thats for more advance stuff, for now you SHOULD be good to go
i think i'll need to as the knight self destructs when there is two of himself
or perhaps I could use nosk's knight form
start slow and small for now imo
is there a wiki for hook referances/a way to see what can be referanced via the dlls?
as there are stuff like
ModHooks.Instance.AttackHook that you wouldn't know of the top of your head
when was that? this doc has been the same for more than a year
i went on it about march last year
yeah
thank you
i remember last time i click on the lab c# thing and was really confused for a few hours
is progress still being made on https://radiance.host/apidocs/ ?
if theres something new in the API then maybe
i mean, there are some TODO pages
it doesn't explain anything past dnspy even then it only mentions how to show the game code
useful though
ahh you mean the other sections
how do i add references visual studio 2017 doesn't have a add referances button under project
didnt you just add a reference awhile ago
no
you mean this?
huh its there for me
oh fuck i misread, you might need Class Library .Net Framework
let me verify my bad
no problem honestly i'm glad i'm getting help at all ๐
yeah from personal experience
the process was a lot longer and more annoying than it should've been
thats odd
^
odd an annoying
*and XD
i fixed it by closing down unity then trying again might be a memory thing my laptop isn't too strong
does it work now?

