#archived-modding-development
1 messages ยท Page 476 of 1
not yet
theyre basically keywords that says "For all of these object instances, they have same value all throughout"
so global value for all instances of a gameobject?
yeahhh
a quick run down, if you have a Car object
static int totalCars
string carName
string carColor
etc etc, 2 Car objects can have unique carNames and carColor values but they all both use the same totalCars value
its also good if you wanna call functions that you dont need to make an instance of an object of
oh yeah it can, you can change the value, but ofc this changes EVERY objects value that references it
ofc
does hollow knight use unity 2d or 3d?
i might try to see if i can do stuff with the camera
its 3d
hence the parallax stuff is possible because those scene stuff are just in another z level
i've seen parralax done in 2d
oh well im not a game dev lmao, so not too knowledgeable with these
XD
but yeah HK does use 3d
lmao imagine someone modding it in to a 3d persepective
you know doom origanlly used sprites and raycasting for collision and stuff right?
it's way more then doable
if not tendious and time consuming
super doom hollow galaxy
r/brandnewsentance
what are namespaces for i understand they stop the referances getting confused but how and why idk
Namespaces in C# are used to organize too many classes so that it can be easy to handle the application.
In a simple C# program, we use System.Console where System is the namespace and Console is the class. To access the class of a namespace, we need to use namespacename.classname. We can use using keyword so that we don't have to use complete name all the time.
ยฏ_(ใ)_/ยฏ
so an advanced way of grouping classes
neat
wait if the game is 3d why does it use 2d collider referances
neat
not neat, your classes will still be spread across 50 files and there will be no single reference point.
you can make a manager using unity's manager function for c# scripts deriving from monobehavour (i'm uncertian if you can use it on more then monobehavour)
if you make a mod how do you export and use it?
you build it
like how does the installize functio work and such
itll make dll
you drop the dll inside the Mods folder inside your Hollow Knight dir
the API assemblycsharp will basically read and run any dll files in the Mods directory
it says on radiant host you need a public override void Initialize() in there how do you use it to make the mod load on play?
Does anyone know how to fix this error?
wtv your "main" starting initialize file is wtv, make sure you extend it with mod, then add this, wtv inside this Intialize method will get run the moment you start the game
ofc import Modding first
so initialize everything i wish to use?
well, whatever you wanna do at that point
Check this example mod
theres 2 more examples but this 1 one is the simplest to start with
yeah yeah sorry if im kinda bad at understanding what you mean
what are all the stuff i need to referance?
internal static god_mode Instance; public override void Initialize()
it definatly doesn't like this
probably Modding, UnityEngine, System.Reflection?
i have them
did you extend your main class with Mod?
?
MyClassName : Mod
that fixed one error XD
but your Initialize should be working now
internal static has the Class name not the namespace
OnAfterAttack is probably missing something, hover over it
it just says it doesn't exist in this context
ohhh ok ok
because you dont have a method existing that has the name OnAfterAttack
ohhh i thought it was the hook
it should
but remember TakeDamage isnt gonan do anything, right now its just a method
you need to hook it to the actual TakeDamage hook
which would probably be
ModHooks.Instance.TakeDamage += TakeDamage;
afaik some of them may get errors due to stuff like incorrect return type
ttacco you have now spent more time helping someone mod than any of the modding staff members 
XD
uuhhhhhh time to go make breakfast byeee

also tbf outside the initial introduction im pretty much useless except maybe some GameObject/Monobehaviour spawning, since most of the new guys tends to make new bosses which you guys are way more suited at handling
also i recommend giving your methods different names if you prefer them
ModHooks.Instance.TakeDamage += TakeDamage_Hook;
public int TakeDamage_Hook(int amount){
blah blah
}
i thought that just set the values referance as it is in instalize
wdym?
i put the code here
public override void Initialize() { Instance = this; ModHooks.Instance.AttackHook += OnAttack; }
so i thought it would only run once and set the referance to the hook attack
it should run once
like everytime you start the game it should run it
oh yeah youre gonna need logs
hold on let me check how to enable them
i forgot
debug.log?
like logs that show up on the corner of your screen
makes debugging easier
makes sence
win+R
Navigate to AppData/LocalLow/Team Cherry, and you should see a
ModdingApi.GlobalSettings.json
yeah what troule said, not too familiar with the shortcuts lmao
you can also just put %appdata% in the explorer address bar, it also runs stuff
the more you know i didnt
can also do %appdata%/LocalLow/Team Cherry
either way
open the ModdingApi Global Settings
set it to true
then if you wanna log something, you can do
Modding.Logger.Log("Well its doing SOMETHING"); in your mod
yeah
if you dont wanna write Modding.Logger everytime, you can statically import it with
using static Modding.Logger;
so all you need to type is Log(myString)
oh yeah dont worry about that
I dont remember having to need to manually put my mod's name there
I think extending your class with IToggleableMod will automatically do it tho
same class thats extended with "Mod"
how do i exend a class?
public class MyModName : Mod, ITogglableMod
thank you
im probably getting the terms wrong lmao
do i need a using?
for the static import?
for IToggleableMod
it can't find it for me
well its not required atm
so you can ignore adding this
when the modinstaller "disables" a mod anyway it just drops it inside another subfolder called Disabled which prevents the API from reading it anyway
ok ๐
Halp
sorry i dont know much about using this, youre gonna need the TWP people for it
Aight sorry
no need to appologize, just saying you might need to wait for one of them to see your issue
click Replace
It means that other animations in the collection reuse the same sprites and need to match
@brave mauve
Click on the sprite that are modified and click on "Replace".
Clique sur le sprite que tu as modifier et ensuite clique sur "Replace".
how do you use ITogglableMod ?
So i just keep replacing the sprites?
Do you speak French?
No
Ok.
FR isnt for french
Oh ok.
Thx anyways i'll try it
You're the welcome.
@west ridge shot at the dark but have you Referenced ModCommon?
i have
Modding should be enough, thats really odd
@brave mauve
Close "Backup" and keep "Watch on", then you can replace them all.
It's more easier like that.

OHHH
you have to add a Unload method
public void Unload()
{
ModHooks.Instance.AfterSavegameLoadHook -= SaveGame;
ModHooks.Instance.NewGameHook -= NewGame;
Modding.Logger.Log("Unload on Init is called");
}
heres mine
you might wanna unhook those 2 hooks, all you have to do is change + to a -
would i set insstance to null?
i guess so?
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. I made sure to do what other people did in their boss mods.
is the name showing up in the upper left corner?
try hitting again
also sorry red i have 0 boss knowledge so youll have to wait for someone who knows their shit
i take damage and do the same damage as normal
compiled it as a DLL, then dropped it at mods right?
the attack should work
but the reason you still take damage is because you didnt hook from take damage method
like i said, right now its just a method, you need to hook it
put in ModHooks.Instance.TakeDamage += TakeDamage
so basically everytime you take damage in game, itll call your method instead
its working, the name showing up on the left corner means its working
well it doesn't do anything in the code
afaik PlayerData.instance.nailDamage is just finicky to work around
try adding
Log("IM ATTACKING") in OnAttack
and Log("Starting my God Mod")
in initialize
rebuild the file, drop the DLL again inside the Mods folder, then start the game
ok
aight, now load your game
you mean the freeze?
at this point youll be trying to edit the game so youre gonna be using DNSpy/ILSpy most of the time
gottcha i'm just trying to start simple and work towards p2p multiplayer
Back then youd edit the AssemblyCSharp directly and alter the code but since we dont (SHOULDNT) do that anymore, editing methods might require a bit different tricks to it
ohhhh
About that
Someones already making a Multiplayer mod
That someone is ofc Lord God Jngo which i have been paid to utter that title everytime i mention it, 2.99$ a sentence
wasn't he struggling with animation a fre months back
lots of progress now
I also made a coop mod
yeah the dreamshield one
if i remember correctly he's the reason i know the knight kills themself
custom knight now works actually to some extent
and I'm working on grimmchild coop
nice
how about you two... help each other ๐ณ
i don't want to be a hinderance
but again theres already a multiplayer mode in progress unfortunately
but i can certianly put in the time
hey its good practice for collaboratory work
i know the hk community won't make machine learning a part of hk for a long time if ever
All I need help with is fixing a boss statue lever for a boss I made. I copied the code from other bosses and it still will be glitchy
i know the hk community won't make machine learning a part of hk for a long time if ever
lmao that was supposed to be my project, ML but with a single boss
i could suggest stuff but i know nothing
do you need machine learning resources?
not tagging (though i could) i mean learning the code
nah not really, that was a very old project that i didnt pursue, it was an academic thingy anyway
fair
what if pvp was in (no decending dank for the love of god it is brocken in pvp)
but like ai vs ai
sounds difficult
the ai is easy enough
i say easy i mean do able
how do i rename class one and give a version number?
also how do i check on muliplayer progress?
ask jngo he does regular test runs on it
FieldInfo field = typeof(Mod).GetField
("Name", BindingFlags.Instance | BindingFlags.Public);
field?.SetValue(this, "My Mod Name");
fair
FieldInfo field = typeof(Mod).GetField
("Name", BindingFlags.Instance | BindingFlags.Public);
field?.SetValue(this, "My Mod Name");
goddamn formatting
nooooooooooooooooooo
whattttt
oh god 56 dont kill me
unless you have a new way better method
which you probably do
i mean like this one
just change it
oh wait you want to the change the name on the side right
no
afaik c# is the least fussy with shit like that
small brain method
big brain method, change it, build it, check all the error references in the console, change each one individually
big brain is getting yusuf to fix your code
also for version
public override string GetVersion() => Assembly.GetExecutingAssembly().GetName().Version.ToString(); should do it (unless you guys have another objection with it)
they won't that is common in lots of example scripts XD
and taco you just do this
@copper nacelle you expect me to actually be smart about this smh

K N O W L E D G E
is there a way to set what vector the mothwing cloak sends you in there is exeloration in the radiant host website
if you wanna start changing movement stuff best bet is to start checking how it controls movement in the HeroController class
via IL/DNspy
how do i use it?
Open wtvSpy, then just choose to open the AssemblyCSharp file
it should show you all the games code
as for FSMs... uhhhh, thats another story ๐ฌ
what is even wtvSpy?
<@&328354344313421825> Can I have some help with boss levers? I have done what other mods did with their boss levers, and mine is really glitchy.

I tried renaming it and it doesn't like building
change it in the csproj
not sure how to fix that red
ok
i did
try rebuilding
camelCase gang
show csproj
yah need to change the contents bud
god_mode.csproj my dude
that is still not the csproj
open it in like a text editor
scroll down
change Include="Class1.cs" to what you renamed the file to
and fwiw, if you rename using the rename button in VS it'll do this for you
thank you
this is the part where sid pops in and says "np"
XD
I haven't seen a np yet. Is everything ok?
did sid finally go to sleep
impossible
Can I get this mod on the mod installer? It is a hive knight mod that adds new attacks and increases the difficulty a lot
I'll add it for you
make sure its in MD
doesn't really matter
people like md because it's an easy format w/ good formatting
oh
can i use unity's crossplatform input to allow gyro controls?
I just remembered this from a few months ago:
https://discordapp.com/channels/283467363729408000/327461802311155714/635960969616424961
would be a cool use for the expanded version of custom knight, if it could modify all textures
looks cool
Oh also, @fair rampart apparently the new custom knight menu overlaps with the benchwarp menu. If it isn't too much trouble, would you mind adding a button/setting for toggling the menu?
arent all textures for hollow knight kinda big
i think actually doing all textures would be kinda ๐ฅด
I think that if custom knight had that, it would take an hour to download a single skin
you only download what you change
if you only change the knight, you only have to have the knight in the folder
well I mean something that changes everything
how slow is your internet
can we not talk about it?
i think i download a gig in like a minute maybe
Someone from my internet company came and "fixed" it and it got worse
how do i make code run everyframe?
on heroupdate or make an object with a monobehaviour and void update
coroutine with while true and yield return null ๐ง
what's a coroutine?
a routine that runs co with the main one
how do i use one?
don't actually do that
ok
ah sorry i didn't know
ModHooks.Instance.HeroUpdateHook is the least effort
@fair rampart is this a bug?
how would i make the starting amount of geo for a new save 5?
new game hook
does doing the new game hook with () instead of (int id) use the defult values?
?
it'll crash
so how do you make it use the new save slot you select?
new game doesn't take any params idk what you mean
the only things that have an id, send the id of the current slot
this is what happens when I try to install lifeblood master
56 does this only happen to me
@jolly oriole i can't see that hook in the radiant docs where do you get this info i'm currious
when Katie
does new game not take a param?
randomly when i change skins
I haven't had it happen but I don't use custom knight super often
are we talking about custom knight bugs?
no
ok
goodbye
good because I have none
any using on
any using on
but why
i mean you still didn't explain why it didnt work anyone
you can just new game and player data instance
its any using on
you can't do On.x unless you do using On
pixel sprites look cool even without the background tbh homothety
so using playerdata?
any
you actually don't need anything, but using On would probably tell you why you don't have it
and the reason is your assembly-csharp.dll is probably wrong
if there's very light logic I can call every second, is it overkill if I call it every frame ? or is there a cleaner way ?
It is very rare that calling something every frame is appropriate
Update can handle quite a bit tbh, if it's very light it shouldn't be an issue
That is also true though
Just make sure you're caching everything you can like GetComponent should be done in Awake or similar
If you're trying to change savedata or something similar, there are specialized hooks that will make sure your mod is compatible with other mods
@vocal spire sorry I forgot about your mod, added it just now and it's working
anyone know why this makes my money sky rocket when i collect money and makes me litterally invunrable?
https://pastebin.com/NjemUSmR
put it in paste bin it filled a lot of chat
return damage * 0; so 0
Your heroupdate hook won't work the way you think it will, also
also pretty sure you have to take atleast 1 damage for it to work
0 damage just gets ignored
I don't think the game will accept health greater than max hp, or max hp greater than 11
and it won't, anyway because you need to call actual functions to do it
oh
You should hook GetPlayerDataInt if you want to edit health
also you can probably just do smth like geo -= damage * (5 ^ Mathf.floor(log5(geo)));
to the exact same thing as your if else block but also scale to any amount of geo
i think csharp is Math.Log(geo, 5) for log5
what does floor and log do?
does celing remove the decimal and add the place value?
ceiling rounds up yes
but you don't want that
because log5(4) returns 0.something
and will be floored to 0
5^0 = 1
ahhh makes sence
@ornate rivet thanks!
Also can I update my version of dreamshield coop?
wait nvm
I need to add more features
What're you adding? ๐
grimm child coop
Whaaaat that sounds awesome
you can make grimmchild rapidfire
here is a video of me using it
My Mods
- Updated Dreamshield Coop(on mod installer)
- Lifeblood Master(on mod installer)
- Lots Of Kins (LOLKins on HK discord)
- Grimmchild coop(not released. May combine with dreamshield coop)
Grimmchild coop has 2 differences from dreamshield coop. 1. It has grimmchild. ...
other people are working on that
nope! there is a online multiplayer mod in development
is it peer to peer?
pixel sprites look cool even without the background tbh homothety
@leaden hedge is there a way to obtain these sprites?
Thank you!
That looks cool
what using lets you use math.floor and log?
System
ok and the syantax should be Maths.Floor(value)?
Math.
thank you
also i'm not sure why i have void here i thought it would referance geo
ohh right thank you
Is there an easy way to check savesettings by save id?
just log will not do what you want
it will do natural log
i realize you don't understand what that means because you don't know what a logarithm is
hey, it's ok.
i don't know what a logarithm is either.
failing maths 
hey, it's ok.
i'm a programmer as well and my math sucks.


depends on what kinda of programming you do

if you do want to call yourself a game dev programmer
then you better know some maths
logs are used all over the place
web development 
for a bunch of stuff
and yea log is like 5th grade shit
wtf is happening here
everyone should know
well, they'll teach us web dev stuff in the future, so i'll have to see
someone was doing
if(geo > 25) geo -= 25
else if(geo > 5) geo -= 5
else geo -= 1
and i told them to do 5^floor(log5(geo))
they said they didnt know what a floor or log was
and then they did 5^floor(log(geo))
so i was making a bit of a joke gradow
bruh cringe
but yeah, katie gets it
also, you don't need to be maths expert to program
yea just look at gradow
just like you don't need to be a programming expert to be a maths
i've heard of that term "flooring"
^
~~ I'll floor u~~ no I won't
logarithms can just be thought of as an abstract inverse to powering
but yea gradow we are not talking about being an expert
we are talking about having the basic knowledge
like wouldn't you agree that a programmer should know what a log is
yeah, that's what I was gonna get at sid
idk if i've heard of log or not
I'm not a programmer, but if I need to code anything I can just do it, or at least know what to look for to learn how to do it
same with maths, you don't need to know a lot, just enough to know where to look for or which terms to google in order to solve your query
Here is an update for Dream shield coop! it lets grimm child be controlled similar to the dreamshield, and changes some controls so you can make them rapid fire! this also means that it makes the game 3 player. it also removes a feature that no one liked, which saves on file space
how do i multiple an int with a double and get an int output
typecasting
(int) 5.0
how would i do it in something like thisPlayerData.instance.geo -= damage * (5 ^ Math.Floor(Math.Log (PlayerData.instance.geo)))
would it be PlayerData.instance.geo -= damage * (5 ^ (Math.Floor(Math.Log (PlayerData.instance.geo))))
why are you xoring
c# doesn't have a power operator
oh
also Math.Log(geo, 5) please
you need the base 5
or else it ain't gonna work
and yea Math.Pow
how do i make the base 5?
i just told you
@vocal spire updated dreamshield on installer
np
like PlayerData.instance.geo -= damage * Math.Pow Math.Floor(Math.Log (PlayerData.instance.geo, 5));?
alright buddy you gotta learn how method signatures work
you are using vs, right?
when you do something like Math.Pow(, it tells you what you need as parameters
cannot convert type doube to int
from this line
PlayerData.instance.geo -= damage * Math.Pow(Math.Floor(Math.Log (PlayerData.instance.geo)),5);
it should be the reverse and cast like jngo said
i'm not trying to take the micky but what do you mean the reverse?
this cast seems to work PlayerData.instance.geo -= damage * (int) Math.Pow(Math.Floor(Math.Log (PlayerData.instance.geo)),5);
aka it's 5 to the power of the floored stuff not the floored stuff to the power of 5
@ornate rivet thanks again
like PlayerData.instance.geo -= damage * (int) Math.Pow(5 ,Math.Floor(Math.Log (PlayerData.instance.geo)));?
yea
thank you
I know i ask a lot of questions and i appretiate the help
it seems to work but the masks and geo doesn't acuratly update until i pick up more money or die
i think i underflowed
fyi you CAN have less then and more then normal hp but having negative means one tap and your out
you got rid of the Log 5 again
lol
i have no idea how orig works
litterally started modding today
how do i use it to update the geo and hp gui?
are you using modhooks or on
i am
using
using System;
using GlobalEnums;
using Modding;
using UnityEngine;
using ModCommon;
using On;```
@fair rampart are you trying to make a mod or add a mod?
If it is the latter this: https://radiance.host/apidocs might help
shitpost in #297468195026239489 thanks
Alright thanks
How do I update the geo and hp gui to accurately show the hp and geo?
last I heard the current version of custom knight is broken and doesnโt update geo
Does anyone know the name of the full screen popup when you get your first charm?
Steal the rando popup it's better
does this mean if I want to change the charm sprite I have to do it for every single shiny item that's a charm?
Charm Equip Msg?
yeah I got that
I did set the spriteList of CharmIconList.instance so idk why when you get your first charm with a skin that changes charms it shows the default sprite
okay nvm it does indeed work, I just didn't change the sprite for the skin I was using
and the paisano who said it was a bug is getting a piece of my mind
is there anyway to temporarily turn off achievements? I'm debugging a mod and don't want to accidently cheat any achievements in.
Ummm... Is there a complete documentation of modding api, for future reference
Oh nevermind
does anyone know how to cancel when the knight is using the dreamgate?
@dawn cargo AchievementHandler.AwordAchievementTOPlayer
thx
i updated hell mod so it's like a decent example for basic global settings done right and some easy hooks for new modders now
what
oh that
if the api feeds a malformed setting i'd prefer it to die than be null and break everything ngl
understandable
i just realized something
it's possible to make a mod that adds online multiplayer to the game
but you can't add levers
Is there a hook for when the knight is using the dream gate?
Depends, do you wanna check it everyframe theyre using it or only once if they try using it?
boss levers
red frog just checking but im not sure if theres a dreamgate cState but theres probably an FSM you can hook on
literally Redfrog did nvm i cant fucking read
is it possable to use using unityengine; so i can reuse code i've made in games i'm making say a scrolling texture that you can change the size of and offset of?
nvm was gonna check, thanks grenade
SpellControl right?
the dnail fsms are located in spellcontrol, or is it another seperate fsm?
oh ok ok im remembering incorrectly then, i vaguely remember them being dumped in a single spell control fsm
I never knew how useful fsm viewer was until 3 days ago
youre gonna need to master it
lots of stuff in this game uses FSM, back then even the enemies health was all FSM
ok
thankfully they refactored it and made a HealthManager component instead
wow
too much
Yay, I made the dream gate infinitely loop
It depends on what you are going to do in your mod
yes
ok
some people make mods for other people though
what do you mean by radiance and platforming
i heard cool idea in which radiance chase u in path of pain
and made me think what if radiance chased you in real boss fight
are there examples of such a thing that i could see
adding platforms and changing boss
Idk how to do as much of that, but if you wanted examples, check out the example mods, and look at other boss mods
what place
thank you
Disclaimer: those are not very good examples
look in the pins for other stuff
very well
good example supposedly https://github.com/fifty-six/HollowKnight.HellMod/
is there a example of mod for radiance
excellent
I just got an rtx laptop can someone make a ray tracing mod for hollow knight
wow you wasted so much money
Nah it was on the cheap
how would ray tracing work with hollow knight?
i don't really see any point to it, even if you could do it
plus raytracing isnโt even exclusive to Nvidiaโs shitty RTX lineup anyways
ray tracing is used mostly for tracing lines of light (in 3d i might add) in order to produce more realistic lighting and visual effects
it would literally be useless in hollow knight
well technically you can use it for 2d but it'd be kinda useless because the whole point of it is displaying lighting and stuff in 3d
TC hire me
HIRE THIS PERSON
ok that's actually sick though
basically dung defender but is more precise and doesn't fling poo everywhere 
I would like to try and experiment with the UI a bit and make a copy of the SoulOrb but I am not exactly sure how I would make a copy of it and give it the same properties to add a value when something happens
you just copy it and give it the same properties
How do you use unity for modding like that
I think I found the class associated with the health UI. I think it is called SoulOrb
So even if I know what it is, I can't seem to find the canvas using HKEdit I've looked into some of the first scenes to try and look for the structure used for the health ui canvas but I coyldn't find anything
can't seem to find an object that contains the type SoulOrb so maybe that's not it
I was removing the cooldown for shadow dash on a mod, but for some reason it causes the game to lag every time i dash after playing for some time.
anyone knows what might be causing it?
maybe the lack of cooldown results in the dash functions and other dash-affiliated checks to be called multiple times
It could also be starting a ton of coroutines
Those are just my theories, I can barely get anything done myself so I wouldn't take what I say as fact
i magically know the issue despite you not posting any code
due to my insane galaxy brain, i know exactly what you've coded and why its memory leaking
What is it?
I think you're supposed to post your code now haha
does it also create lag if you set it to like 0.05f? or something similar
i'll have to check in the future
my assumption is the function that resets it checks to see if the cooldown is greater than 0, subtracts the delta time, then runs some function that probably disables something
that your code never runs
ah yeah that would make a lot of sense
I see.
I'll have to check sometime what's the lowest I can set it without triggering it. Thanks guys.
How would I get access to elements from the canvas? I am trying to duplicate the soul orb ui and use the same methods to add and remove souls from its meter as a secondary bar, but I can't seem to find the object I need to duplicate
If the cooldown starts as soon as I'm pressing the button and ends before the animation is finished, then it wouldn't be a problem hopefully
Yea. Thanks again
||Sid this is your cue||
Nicee
THAT IS SO ADORABLE
ENG
Now that the problem of the French wiki of Hollow Knight is solved, I can finally finish the skin.
Social networks
Tumblr: https://inkscarlet.tumblr.com
Twitter: https://twitter.com/inkscarlet?lang=fr
Archi...
iTween kinda fun ngl
basically an easy way to make things move and rotate
less chad way you mean
Does anyone have an input on what I'm trying to do? I can't find the step 1 I'm supposed to go through as I don't know exactly what I'm looking for nor how to look for it.
If I had a way to have some form of access to the gameObject I'm looking to duplicate it would be much easier to get things started but I don't know its name nor its components.
What I'm trying to do: Get ahold of the soul orb UI element and make my own copy of it
(would probably have them show up one on top of another and be able to modify the values of the new one when specific things happen in my code) the modifying its value might be simple of I can simply use the addMP func on it. The hard part to me is that I can't seem to figure out what's the object I am trying to get access to.
I've looked through the PhysLayer's UI/UGUI and looked through the _UIManager and UICanvas which I managed to find through the previous checks but to no avail
so this is a super work in progress but I wanted to make a custom knight of my custom little vessel guy
@jade willow GameManager.instance.soulOrb_fsm.gameObject
oh my god yes that Hornet is the best
he's a cutie
Ah! It's in game manager and not hero controller where I instinctively checked, alright makes sense! Thanks!
np
Is there a more complete version of the radiance.host modding api guides? I always feel like most of my issues stem from not being used to the workflow or not really understanding how to get started on a feature which sends me spiraling through weird hoops only to be told there's already a line for that somewhere
I guess downloading source code of other mods doing similar things is always available which is really nice, but I'd love to read up on common implementation methods for various features and stuff to know how to get started properly
All good, gotta learn by doing! Thank you all so much for the continuous support in the chat, you guys are making it much more accessible to mod this game :D
have you done work with journal entries?
i mean you should try to figure out how all the features work yourself, because figuring out how x works, will help you program something thats x but more complicated better than a snippet will
obviously theres a place for utilities though 
I assume it's easy because tc wouldn't want to make adding 200 journal entries hard for themselves, right?
i hate you for making this
@jolly oriole no
bad
go to the corner
I don't have an passive-agressive enough think emote for this
they are?
huh
I usually assign it to a Coroutine, then perform a null check on that and if it isn't null, StopCoroutine
i mean if you can just drop from the wall it's not hard
yes
public override int LoadPriority() => 9999;
i assume loadpriority works
if not ๐
is there an easier method to do these sprites or do I continue editing them one by one
damn
guess I have lots of work to do
worth it tho, he's so cute
Amazint
?

what?
he was talking about grenade's video
yea
ok
Hi! I don't know whether anyone had that idea before, but as my first work for my own CustomKnight skins contributions, I got the authorization from Timefixer (DeviantArt) to use their Vessel Maker choices in order to make similarly a "CustomKnight" Vessel Maker. Obviously it'll be even more work than if it were just one skin at a time, but hey, I've always enjoyed challenges, and now that the tutorial on how to use SpritePacker is out, my motivation to do this has been renewed. I hope I'll be able to give some news sooner rather than later!
After making a copy of the soul orb ui, the original stopped updating its visual when gaining souls and only changes when filled
I am guessing there must be some weird stuff going on with the way I instantiated it where it might mess with it
as much as I want to finish my custom knight, I don't think I can do it until I have a better method of drawing it, using my mouse sucks
//Try to duplicate the health meter
_custSoulOrb = GameObject.Instantiate(GameManager.instance.soulOrb_fsm.gameObject, GameManager.instance.soulOrb_fsm.gameObject.transform.position, Quaternion.identity);
_custSoulOrb.transform.position = _custSoulOrb.transform.position - new Vector3(0, +1.5f, 0);
UnityEngine.Object.DontDestroyOnLoad(_custSoulOrb);
I guess i'd need to make it a new instance? But I might be looking at the issue the wrong way
I also tried to store it in a PlayMakerFSM variable and use the "Spawn" method, the only difference seems to be that the orb now appears in the center of the screen instead of right below other one's position
with the same behaviour seen in-game
custom knight question: you know how goddump breaks the sprites out into folders which contain single animations? are there any duplicate sprites used for multiple animations and if so is there a way to tell which ones they are
SpritePacker will tell you
great, thanks
any idea why the current soul in the soul orb does not appear when the fsm is duplicated, it still updates when it is full and returns to empty-looking when it is not full, it's just the soul inside that is not appearing anymore
Oh I just realized, that I might be missing the actual soul content gameobject
yeah that doesn't make much sense, it shouldn't affect the original since its just a copy so my guess is that the method used to update the soul meter looks for a specific name or component and since there's now two of it it can't function properly
yup I give up for tonight
How do I change the vector/speed the shade cloak sends you in radiance host shows you can do acceleration and such but as for direction I think I need to know how to use dnspy to mod hk and can't see anything pinned as an aside is it possable to use unity's Slerp function in a mod?
@fair rampart Does textureHashes on Player even get modified anywhere? I can't find anything that indicates that it does
as a result I'm getting an nre whenever another player tries to connect and the server tries to spawn the player
damn
ngg2 being worked on really does be like that
its probably set by tk2d for internal stuff
unless you mean some hash you've made
in which case thats your own pepega code
troule wrote this tho 
then troule is pepega
this version caches the image bytes so now people can just steal skins by turning them into a png but I no longer care about security
you could already do that
this one caches them to a file so now it's extra easy

I fixed the issue but now it's crashing from memory usage again 


just get more memory tbh
u shouldn't pay attention on the security, whatever you encrypt the img file in complex way, it will finally decrypt in game and people can dump the data from memory.besides, the code in mod can easily tell programmer how it works
anyone want to test some multiplayer?
no
ok
maybe i can have a test with my friends to tonight
Are there any mods that aren't included in mod installer?
I wanna mess around with other stuff
there are some but they don't work anymore
Thought I fixed that, guess I'm pepega.
Skin stealers are going to have a hard time, they have to rename every file and remake the packs by themselves.
what

The lastest MultiplayerMod does work in my machine. here are the modlogs in the server and the client( Host is the server client2 ,and vmware is client1) . clinet's modlog has throw KeyNotFoundException,maybe it is the reason that the game can't respawn the gameobject of other knights while player in the same scene
huh, I hadn't considered using a vm to test
I should try that out and see if I can't get 3 players active at once, bc that's what I want to test
It works by making multiple windows users, but it's suuper glitchy
Too lazy to make a vm
auctually i ask my friends to test the mod and unfortunally gain the same result
btw, the code 'On.GameManager.PauseGameToggle += OnGamePause' is not work when I pause the game
that's not the most up to date version
Mmmm
let me have a check
oh sorry, I just use 'git pull' and idk why it haven't pull the newly version
i have never used sandboxโฆโฆ
idt sandbox is available on education edition
Windows sandbox you mean hyperv ? Not available on home
Looks cute 
Heads at different angles are really hard to draw!
Sometimes it looks like a radish๏ผ
@still locust
I can understand this. T-T
I use Paint Tool Sai 2.
there's paint tool sai 2?
Tried to run hk on my VM through hyper v and on my desktop at the same time and my computer BSoD 
sounds hot
nice
@hasty fractal Sai2 don't support the animation, so I use csp
My take is that the orb is used as a mask and the white square just keeps going up to fill up the orb, but for some reason now that there are two orbs the mask only functions on the first orb
And I made a comparison
wait is this multiplayer mod you're working on?
@still locust Ok.
Abyss Dream Anim is finally over.
@fair rampart bro receive texture literally gets an atlas don't
me
now that I have both UI elements it seems like the new one is the only one affected by the mask making the other orb appear as though it is not filling up, would I simply need to change its sorting layer or am I missing something more?
I'm
ing myself here
ah ok
Okay by setting some stuff to inactive I now managed to get the original UI to work as expected
how does one find the list of available broadcast events? The only one I am aware of is "UPDATE NAIL DAMAGE" but I can't seem to find any mention of that anywhere using dnspy
use the fsm viewer
anything can be broadcast
whether it does something depends on what fsm you are trying to manipulate
oh didn't know about that, I'll give it a shot
is it the ling under "knight go/fsm dump"?
I might just give up on trying to duplicate the UI, I thought I could just update the liquid content to an int value for visualisation, but apparently I should probably just start with creating my own UI elements instead of messing around with that
like as a second instance of it and just mention something like _myOrb.addMPCharge(5) or something but I can't seem to make it not a headache
by trying to make my own canvas I'm getting the following error:
_canvasContainer = new GameObject("_MyCanvas", typeof(RectTransform));
_canvasContainer.AddComponent<Canvas>();
"The type name canvas could not be found in the namespace UnityEngine. This type has been forwarded to assembly 'UnityEngine.UIModule'"
Every example I could find online shows me this method but for some reason it doesn't seem to work, maybe the examples I found were outdated. I also added
using UnityEngine.UI
you need a ref to UnityEngine.UIModule.dll
Oh! I guess UnityEngine.UI has been deprecated for a while
Is CanvasUtils also a dll to reference or is it implemented differently?
Also thank you :D
its in the api
besides one function that returns the wrong thing, it works ok 
and i don't know which degenerate programmed that bug
Excuse me @still locust, I had an idea that is up to you if you want to add it or not. Itโs a small suggestion on the hornet skin. The โThorns of Agonyโ charm could use Hornets silk area attack instead of the normal thorns. If this is too much effort I understand.
It was just a thought
Also the skin looks really nice so far! Good job! 
anyone want to test multiplayer
I am free now.have you set up your server ?
we're gonna be using hamachi today
shoul i install hamachi too?
yes
I'm dumb so idk how to do that yet
bro
you can use frp
it's very easy
you just need a machine with public IP address ,and run frp (or other Reverse Proxy) in that machine and your computer. When people requests the machine, it will auctually requests your own computer
here is the guide
i gotta say the router is less effort
new knowledge get! thanks for 56
Mmmm, a little hard to search relevant information, would you mind to give me some?
assuming 192.168.1.1 is your router ip you just go there, login, and there's usually some sort of port forwarding tab
for me it's under firewall settings
and then you just add it
Get your router ip by typing "ipconfig" in cmd prompt and finding the Default Gateway
wow assuming windows smh my head
I assume people who use linux know better
it seems that it will forword all port to 4567
so how can people visit your router in public network?
linux command is 'ifconfig' as I recall
you just connect to the ip:port
that's just forwarding 4567 yeah
But you can do whatever
Beneath that I have stuff like a -> a
in our country,the ISP use NAT to modify the ip address, so other people can access my computer with ip address.
so my brother is hogging the only cable long enough to reach my desktop's ethernet port for his xbox
i mean you can port forward on wifi
The only solution is war
destroy the xbox
upload it on youtube with a clickbait title and thumbnail
uสopวpฤฑฬฃsdn plษนoส วษฅส uษนnส
well until I get that ethernet cable I don't feel like trying to learn how to port forward over wifi
does anyone want to try hamachi
so, hamachi?
if you want to test today
yeah, I just finished the mod I was working on
Updated Exaltation
I'm on a different computer, so I'm going to download it again
here's the most uptodate dll
Thanks
Malwarebytes is blocking the sites
I don't remember which one I used to download it before
Ok, it's downloading
now I forgot my password
now I made a new account? while using my original email?
I'm pretty sure port mapping has the same effect with less consiquenses because when you stop running the program it wont leave a port open
Though I cant see I know much about it past that
.
How do I use dnspy for modding properties like the mothwing cloaks projectory?
you don't use dnspy to mod anything
๐
I didn't hack it I modded it... With dnSpy ๐
What do you need dnspy for?
So how do you hook an event that you can see with dnspy?
any modding api
which part would you like clarifying
Would you see the event and go say event += function
so which part of any modding api didn't you understand
the one that isn't documented
yeah I don't know shit about the API either
the docs are fine anyway
should be able to build a mod that loads with it
and it has references for every hook
anything beyond that is your own problem
so fine that every newcomer asks if there is any documentation and when answered with radiance.host/apidocs/ they never talk again
The bit I didn't understand is how you would use dnspy to create a hook to that bit of code I understand you use the mod common api but how you hook this code I'm uncertain is it event += functionyouwishtorun ?
So how would I find undocumented code ie the mothwing's projectory?
and when you load your c# in an actual IDE it autocompletes
what do you mean undocumented
its literally there
there's a dash vector hook
bool flag = this.playerData.equippedCharm_16 && this.cState.shadowDashing;
float num;
if (flag)
{
num = this.DASH_SPEED_SHARP;
}
else
{
num = this.DASH_SPEED;
}
I've not seen some stuff referenced on radiance host ie how gravity is handled
unity
because its unity
i can't possibly
in any way
write down how literally everything in the game works
private void Dash()
{
this.AffectedByGravity(false);
this.ResetHardLandingTimer();
bool flag = this.dash_timer > this.DASH_TIME;
if (flag)
{
this.FinishedDashing();
}
else
{
Vector2 vector = this.OrigDashVector();
vector = ModHooks.Instance.DashVelocityChange(vector);
this.rb2d.velocity = vector;
this.dash_timer += Time.deltaTime;
}
}
heres the dash code
takes like 2 seconds to find
and seeing dash code and stuff like that is what you use dnSpy for
How do I find it though is what I'm asking
you go to dnspy
dnSpy
open asssmbly-csharp
and search for dash
I'd highly recommend dnspying a vanilla assembly
The modded one is kinda ugly after prepatching
But it's not a huge deal either way
Same code
Thank you
most of the complaints i've heard about the docs are
"it doesn't explain how to do X"
as if i should just code every single thing you might want to do
takes like 2 seconds to find
can you be less of an asshole ffs
thats the part you bug 56 to do the work for you
i mean the real complaints prolly would be like docs on the modding api itself

