#archived-modding-development

1 messages Β· Page 104 of 1

copper nacelle
#

same

compact sedge
#

relatable

flat forum
#

help...

deep sleet
#

quote totally not stolen from an actual game developer

copper nacelle
#

which one

compact sedge
#

try adding logging statements, try try, catch sections

deep sleet
#

One of the devs from clicker heroes/playsaurus

compact sedge
#

if you don't do this and the mod has an exception it will fail silently

flat forum
#

I'll just dump the main thing here and hope someone understands where the problem is

public void OnAttack(AttackDirection dir)
        {
            LogDebug("Attacking");
            if (PlayerData.instance.equippedCharm_6)
            {
                LogDebug("Stronger Attack");

                _tempNailDamage = PlayerData.instance.nailDamage; //Store the current nail damage.

                LogDebug("Set _tempNailDamage to " + _tempNailDamage);

                PlayerData.instance.nailDamage += (PlayerData.instance.maxHealth - PlayerData.instance.health); //Double the nail damage
                

                return;
            }
        }
compact sedge
#

ok question

#

check your log

#

do you see those messages

copper nacelle
#

did you ever send an fsm event

#

or change the damageshero

flat forum
#

(Lemme remember where the log was, be back in eventually)

#

the thing in the save files

#

ModLog.txt?

copper nacelle
#

yes

#

you can just make it appear on screen tho

flat forum
#

messages are not there

#

no "Attacking" or "Stronger Attack" or "Finished Attacking"

#

LogDebug("Finished Attacking");

#

Only info from it is this

[INFO]:[NewFotF] - Initializing
[INFO]:[NewFotF] - Initialized
#

Log("Initialized");

copper nacelle
#

did you hook the methods

#

and did you attack

flat forum
#

these are all the Hooks I have
ModHooks.Instance.AttackHook += OnAttack;
ModHooks.Instance.AfterAttackHook += OnAfterAttack;

#

And to "Did you attack?", I killed a few to see if anything:

[INFO]:Disabling enemy Zombie Runner
[INFO]:Disabled enemy Zombie Runner
[INFO]:Destroying enemy Zombie Runner
[INFO]:Destroyed enemy Zombie Runner
#

(I'll change those from LogDebug to Log)

copper nacelle
#

ok

flat forum
#

Ok

#

it's working better now

#

info appears in the ModLog

#

I'll run 1 last test

#

hm

#

[INFO]:[NewFotF] - Attacking
[INFO]:[NewFotF] - Stronger Attack
[INFO]:[NewFotF] - Set _tempNailDamage to 21
[INFO]:[NewFotF] - Set Nail Damage to to 56
[INFO]:[NewFotF] - Finished Attacking

#

but I still deal 21 damage

#
[INFO]:[NewFotF] - Attacking
[INFO]:[NewFotF] - Stronger Attack
[INFO]:[NewFotF] - Set _tempNailDamage to 21
[INFO]:[NewFotF] - Set Nail Damage to to 56
[INFO]:[NewFotF] - Finished Attacking
[INFO]:[NewFotF] - Set Nail Damage to to 21
#

Log part works fine

#

but I still only deal 21 damage

#

why?

copper nacelle
#

what's your afterattack

flat forum
#

this thing?

        private void OnAfterAttack(AttackDirection dir)
        {
            Log("Finished Attacking");

            PlayerData.instance.nailDamage = _tempNailDamage; 

            _NailDamageTracker = PlayerData.instance.nailDamage;

            Log("Set Nail Damage to to " + _NailDamageTracker);
        }
copper nacelle
#

ree

flat forum
#

yes?

copper nacelle
#

put this after PlayerData.instance.NailDamage = _tempNailDamage

#

and after PlayerData.instance.nailDamage += (PlayerData.instance.maxHealth - ......

#

PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");

flat forum
#

before the Log

#

?

copper nacelle
flat forum
#
private void OnAfterAttack(AttackDirection dir)
        {
            Log("Finished Attacking");

            PlayerData.instance.nailDamage = _tempNailDamage; 

            PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");

            _NailDamageTracker = PlayerData.instance.nailDamage;

            Log("Set Nail Damage to to " + _NailDamageTracker);
        }
copper nacelle
#

also on attack u dungo

flat forum
#

Yeah, I put it

copper nacelle
#

now try it

flat forum
#

but now it's complaining avout this

#

The name 'PlayMakerFSM' does not exist in the current context

copper nacelle
#

click on it

#

hit alt enter

#

and click the thing which has the using

flat forum
#

OK, I have to go out now, I'll try to fix it when I get back

compact sedge
#

I have a question: Why is something like lightbringer platform exclusive? How is that possible for unity engine mods anyway?

leaden hedge
#

Its a mod of the assembly csharp which is platform specific

compact sedge
#

assembly csharp is not platform specific though

#

it's like java bytecode

#

unless it's using external libraries not used by the original game that exist on unity's windows version of mono but not their linux/mac version

leaden hedge
#

It is platform specific though πŸ€”

#

Try and use your assembly csharp on gog/linux /mac install and it won't work

compact sedge
#

the assembly c# is the same across different OSes tho

#

which is why I can compile the modding api for windows and use it in linux

#

using windows assembly c#

#

and windows build target

rain cedar
#

Didn't used to work like that

compact sedge
#

so the assemblies converged for HK

#

like they used to be different files

#

and now they aren't

rain cedar
#

Guess so

compact sedge
#

maybe HK used to use a third party library or something that was only compatible with windows, so the linux and mac ports used a different 3rd party library, then somewhere around the grimm update maybe they switched their windows only one to the one that works on all oses.

#

that's commonly why assemblies differ

#

keep in mind the mac/linux port was made by some dude (whose a cool dude) but who is unrelated to TC.

#

I think

#

maybe it was done in house I forgot

#

tbh

#

they didn't release it day 1 which indicates they had to rework the code for the platform and it's probable that meant they had different branches which were slightly different code wise

compact sedge
#

Speaking of platform specific bugs. Enemy HP Bar is zipped improperly. the Managed folder should be uppercase in the zip file not lowercase. This makes it impossible to install with a mod installing program on case sensitive file systems like Mac and Linux

@leaden hedge

#

@floral furnace you have the same problem with your tiny mod. your zip file should have a folder named hollow_knight_Data not hollow_knight_data

floral furnace
#

woopsie daisy

#

ill edit that then

compact sedge
#

and because I'm on a roll I'm gonna check every API mod in the drive

#

the correct case sensitive format for the zip is:

hollow_knight_Data/Managed/Mods

#

@pearl sentinel the zip file for Boop mod should have a folder called hollow_knight_Data not hollow_knight_data.

floral furnace
#

there with the uppercase crap sorted out

compact sedge
#

ok I can upload it for you

#

Also I just finished checking and ALL other API mods are good. but @leaden hedge and @copper nacelle y'all did leave some stray desktop.ini files in the zip that you might not have wanted.

floral furnace
#

im only tempted to just boost the regular damage of nail arts alone now but meh, that would be like putting bandaid on a leaking pipe

compact sedge
#

ok I uploaded it

warped sinew
#

does ngg work lifeblood?

#

i just tried it and it said it was loaded i but he was normal grimm

#

does modcommon mess with it? maybe ill disable that

#

i disable everyting but ngg and it doesnt seem to work :/

#

guess ill have to down patch. Oh well i get two free notches now and OP flukes, not so bad

exotic venture
#

equip heavy blow to compensate for the gain of 2 notches and don't use flukenest zote

leaden hedge
#

No it doesn't work on lb

exotic venture
#

on the positive side, 100 more health

solemn rivet
#

Why is everyone Benji?

floral furnace
#

Uhhh, boredom

#

Thats literally it, everyone just changed out of boredom

solemn rivet
#

But I wanna be Simo tho

copper nacelle
#

Gradimo

solemn rivet
#

Grad imo

copper nacelle
hazy sentinel
#

Simow

hollow pier
#

the lawn

copper nacelle
#

@compact sedge you can now escape

copper nacelle
#

and it makes you leave and stuff

solemn rivet
#

πŸ‡ͺ πŸ‡Έ πŸ‡¨

burnt laurel
#

slight problem

#

my dash goes over the platform

copper nacelle
#

did you try

#

pogo

solemn rivet
#

^

burnt laurel
#

aaaaaaa

#

what's the reward for that

copper nacelle
#

mantis lords -> MoP

solemn rivet
#

if you didn't have Claw, sure, that'd be sort of an issue

#

but you do, so

burnt laurel
#

i'm dashing off of the wall

copper nacelle
#

i think even w/out claw you could just updash afterwards

burnt laurel
#

but when i dash

#

my dash goes past the platform

solemn rivet
#

u right, 56, but it's possible for someone to get there without mothwing cloak

#

just pogo, Dunker

#

you can pogo on the spikes

burnt laurel
#

hmm

#

is it worth it?

solemn rivet
#

I mean

copper nacelle
#

yes

solemn rivet
#

it's not that hard

#

you literally only need to pogo once

copper nacelle
#

^

solemn rivet
#

and dash right after

hollow pier
#

did you try clinging the wall and pressing dash

#

literally

burnt laurel
#

yes

hollow pier
#

that's all you need to do

burnt laurel
#

yeah and i did

solemn rivet
#

blackmoth dash is longer

burnt laurel
#

exactly

hollow pier
#

then like dash higher and hold left??

burnt laurel
#

yeah

#

did that

#

it worked

solemn rivet
#

ok

hollow pier
#

you could just not hit the platform and pogo straight to the wall

solemn rivet
#

that's what we said

hollow pier
#

big think

flat forum
#

K I'm home

#

I can start failing to fix the mod again

#

still stuck on this The name 'PlayMakerFSM' does not exist in the current context

copper nacelle
#

using

solemn rivet
#

did you add it as a reference?

#

and using

pearl sentinel
#

@rain cedar when you have time, can you review the changes I made to the gathering swarm mod using harmony. I removed the dependency on hooks dll.

flat forum
#

Did I add what as a reference?

copper nacelle
#

Playmaker.dll

flat forum
#

I added the Assembly-CSharp

#

(Lemme see)

solemn rivet
#

wait - so we're moving from monomod to harmony?

pearl sentinel
#

also, for anyone using mod common, feel free to try out harmony

#

no move, i just added the source into mod common

solemn rivet
#

oh

#

um

#

does it have detours like monomod?

pearl sentinel
#

you can diff with previous revision to see the differences

#

details on how to use it

flat forum
#

Ok, I added PlayMaker.dll from the files as a reference

solemn rivet
#

what's this about communication nodes noot

#

lemme see...

flat forum
#

The type 'MonoBehaviour' is defined in an assembly that is not referenced. You must add a reference to assembly 'UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.

#

Whyyy

solemn rivet
#

then add UnityEngine as a reference

pearl sentinel
#

communication nodes?

flat forum
#

How many references does this thing needddd

#

Adding it rn

solemn rivet
#
            Instance = this;
            comms = new CommunicationNode();
            comms.EnableNode( this );```
#

papers: always add PlayMaker, API and Unity, at the very least

flat forum
#

IT's G O N E

#

yAY

burnt laurel
#

tips for beating mantis lords?

flat forum
#

Ok, it's been successfully added

#

what does it do

#

@burnt laurel Mantis Gods?

burnt laurel
#

no

pearl sentinel
#

oh, my communication node is my event manager system

burnt laurel
#

mantis lords

#

i'm using blackmoth

flat forum
#

Well

solemn rivet
#

oh

flat forum
#

Cheese walls

#

Always Cheese Walls

solemn rivet
#

I thought it was something related to harmony

pearl sentinel
#

it's just boiler plate if you want to use it

#

nah

burnt laurel
#

when the other 2 start to attack i can barely even hurt them

solemn rivet
#

because of modHooks = ModCommon.HarmonyInstance.Create( "com.mods.hollowknight.charming" )

pearl sentinel
#

that's the only harmony thing in initialize

flat forum
#

@copper nacelle What should the thing I added do?
PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");

solemn rivet
#

but, yeah, comms =/= com

copper nacelle
#

update nail damage

burnt laurel
#

there should be a #mod-help channel that's basically #hk-help but for mods, seeing as how often people ask for help with mods

flat forum
#

yeah

burnt laurel
#

and by that i mean mainly me and a couple other people

flat forum
#

maybe

burnt laurel
#

but whatever

flat forum
#

so, another channel split

pearl sentinel
#

oh, but thanks gradow, that did point out that i put the creation of the harmony instance after the usage

flat forum
#

Modding is where people help each other create mods

pearl sentinel
#

so whoops

flat forum
#

mod-help is where people help each other use/beat the mod

hollow pier
#

just rename the channel to #check-pins and no more help is required

burnt laurel
#

help with a mod

#

not help getting a mod

solemn rivet
#

^

burnt laurel
#

unless pins are gonna contain tips on beating mantis lords with blackmoth

#

which i doubt

solemn rivet
#

ptkyr lawful evil

flat forum
#

also

hollow pier
#

yo there's like a help channel

flat forum
#

mmmmmyes

burnt laurel
#

i mean

#

that could work

#

but i think of #hk-help as something for base game assistance

solemn rivet
#

there's not much I can say about mantis lords tho

#

beat them basically the same as you would normally

#

dash when they drop down and when they dash at you

hollow pier
#

stand in the corner and pray

solemn rivet
#

dodge boomerangs

#

same as usual

burnt laurel
#

i find it difficult to fight 2 mantis lords at once cause i dash towards one and then the other hits me

#

usually hitting me into spikes

solemn rivet
#

then use spells/1 damage nail

burnt laurel
#

1 damage old nail vs. mantis lords

#

who will win?

#

also how does the nailsmith work?

solemn rivet
#

as you would expect him to

burnt laurel
#

so he upgrades my nail

hollow pier
#

1.01 damage nail

solemn rivet
#

he upgrades your dash

burnt laurel
#

oh

hollow pier
#

wow Blackmoth sounds pretty cool

#

won't play it

burnt laurel
#

its basically the base game

#

but you move forward whenever you attack

flat forum
#

It should have updated... still getting the messages right, but still dealing 21 damage

[INFO]:[NewFotF] - Set _tempNailDamage to 21
[INFO]:[NewFotF] - Set Nail Damage to to 56
[INFO]:[NewFotF] - Finished Attacking
[INFO]:[NewFotF] - Set Nail Damage to to 21
#

I think I put the thing where I had to

#
        public void OnAttack(AttackDirection dir)
        {
            Log("Attacking");
            if (PlayerData.instance.equippedCharm_6)
            {
                Log("Stronger Attack");

                _tempNailDamage = PlayerData.instance.nailDamage; //Store the current nail damage.

                Log("Set _tempNailDamage to " + _tempNailDamage);


                PlayerData.instance.nailDamage += 5 * (PlayerData.instance.maxHealth - PlayerData.instance.health); //Double the nail damage

                PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");

                _NailDamageTracker = PlayerData.instance.nailDamage;

                Log("Set Nail Damage to to " + _NailDamageTracker);

                return;
            }
        }
solemn rivet
#

show your after attack hook

flat forum
#
private void OnAfterAttack(AttackDirection dir)
        {
            Log("Finished Attacking");

            PlayerData.instance.nailDamage = _tempNailDamage; 

            PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE");

            _NailDamageTracker = PlayerData.instance.nailDamage;

            Log("Set Nail Damage to to " + _NailDamageTracker);
        }
solemn rivet
#

also, I don't get harmony, Kerr, sorry

#

I'll have to look into it properly later

#

okay, and can you show me when that method gets called?

flat forum
#

?

#

I got distracted and then confused

#

Methods were those public void things, right?

#

(I'm very bad with the names of things TnT)

vernal imp
#

Gradow, will you change anything about Bonfire's UI mess ? :<

solemn rivet
#

uh

vernal imp
#

...S-s-senpai ?

solemn rivet
#

who are you again?

vernal imp
#

nobody :c

flat forum
#

Now you're just "nobody" that I didn't know

solemn rivet
#

oh

vernal imp
#

Well, as they say, nobody is just a friend you haven't met

solemn rivet
#

didn't know nobody had changed their display name

#

btw

#

what do you mean by UI mess?

flat forum
#

(wherever I go the channel starts turning into #​meme)

vernal imp
#

^ zote

#

by it being all over the place when sitting at bench and trying to activate charms

solemn rivet
#

well

#

it's fixed already m8

#

fixed it a few days ago

vernal imp
#

oh, i really should download it, shouldn't i?

#

: >

solemn rivet
#

well

#

only if you want to

#

not like I want you to download it or anything~~, b-baka~~

vernal imp
#

oni-chan ..... >_<

solemn rivet
#

oni? Not onii?

#

:triggered:

flat forum
#

Oni is demon

solemn rivet
#

yup

#

that's why

flat forum
#

onii is the one you need

solemn rivet
#

:triggered:

vernal imp
#

wheeew

#

weebs

flat forum
#

Also B L A CK M O T H G U B B E R E L E G Y

solemn rivet
#

blackmoth's elegy

#

shhh

flat forum
#

You know what would be great

#

Blackmoth vs InfiniteGrimm

solemn rivet
#

that sounds like the complete opposite of great

#

but sure

flat forum
#

Also this charm combo is pretty OP

#

you get from Point A to point B wth a single click

solemn rivet
#

why dashmaster+quickdash?

#

quickdash is a direct upgrade

compact sedge
#

too bad you can't put on all 6 infinity charms at once yet

#

(not that you need to)

flat forum
#

At the moment I can pass through walls

#

known bug?

copper nacelle
#

have u tried reading the charm descriptions

flat forum
#

Not yet

#

just breakinfg things

#

lemme see

compact sedge
#

imo making it so you can't pass through walls sounds impossible

flat forum
#

OH, Sharp Shadpw now does this

compact sedge
#

btw even without it you can pass through dirtmouth's floor

#

try not to get yourself stuck

#

because the hazard respawn location is above nothingness

flat forum
#

lemme try breaking NKG

#

then InfiniteGrimm

solemn rivet
#

also, try heavy blow

compact sedge
#

ok use the loadout I posted in meme for maximum memes

solemn rivet
#

wut

#

through the ground? Without sharp shadow?

compact sedge
#

w/o ss but with grubberfly

solemn rivet
#

oh

#

weird

#

but I was messing with grubber early on

compact sedge
#

probably because collision detection is hard when you're going that fast

solemn rivet
#

maybe that's some leftover code

#

yeah, it is

#

I'm moving grubber's just like with sharpshadow

compact sedge
#

ok so it's not because hit detection at 3x speed is almost impossible

solemn rivet
flat forum
#

Hmmm

solemn rivet
#

I'm manually moving the transforms

flat forum
#

not dealing any damage for some reason

#

just dash through enemies

solemn rivet
#

actually, that started out as a tentative fix for not being able to dash through some enemies

#

wut

#

oh, yeah

#

you prolly don't have the latest version

#

AA fixed that old vanilla bug, papers

flat forum
#

mhm

#

will check it out in a minute

solemn rivet
#

brb

compact sedge
#

ok

flat forum
#

(wondering if I should just dump the whole mod somewhere to see if you can find what the problem is...)

solemn rivet
#

upload it to github and post the source here

#

and we can add pr

compact sedge
#

^

flat forum
#

Do I need an account to post it in Github?

compact sedge
#

I mean you should be doing this anyway

#

yes

flat forum
#

Ok

solemn rivet
#

best version control for this kind of stuff as far as I'm concerned

compact sedge
#

but if you don't have a github account yet now's a good time as any to make one

flat forum
#

Making one right now

#

Repository...

#

what does that mean? New word for me

#

(English's not my first language sorry)

copper nacelle
#

git repo

#

basically a folder that has version control

#

and some other git stuff

flat forum
copper nacelle
#

yes

flat forum
#

Ok

solemn rivet
#

how's it going papers?

flat forum
#

Not Undertsanding how to put the File in the repo.....

solemn rivet
#

so

flat forum
#

...

solemn rivet
#

the easiest way to get started is to use github desktop

flat forum
#

it only offers me Windows64 bit

#

and my Windows is 32 bit

solemn rivet
#

oh

#

then

#

create a git account

#

then create an online repository

flat forum
#

this is where I got stuck

solemn rivet
#

then click "Upload Files"

flat forum
#

I can't find any form of "Upload Files"

#

There's a "Create Project" thing tho

solemn rivet
#

you sure there's no desktop for 32 bit?

flat forum
exotic venture
#

get 64 bit OS

flat forum
#

Will do

#

soon

#

But

exotic venture
#

do it now because it's starting to get painful to watch

flat forum
#

Ok

#

I will

#

soon

exotic venture
#

didn't you say that a week ago too

flat forum
#

W A I T I N G F O R S U M M E R B E C A U S E S C H O O L D E C I D E D T O B E S H I T F O R T H E E N D O F T H E Y E A R

solemn rivet
#

wait

#

just download the 64 bit ver

#

should work, I think

#

I mean, the link is win32

flat forum
#

My neurotic, stressed half won't let me do it without backing up everything

exotic venture
#

do you have anything of importance on your drive

solemn rivet
#

is there any reason to not use a 64 bit OS?

exotic venture
#

other than just savefiles and some photos and shit

flat forum
#

I don't know

#

lots of memes

exotic venture
#

also you are running with 4 gigs of ram while you have like

#

8 i think

flat forum
#

Yeah

#

and I'm stuck with 3.5

solemn rivet
#

Y

exotic venture
#

i'd be more peeved about that than anything else

solemn rivet
#

^

#

Mys Benji has spoken

flat forum
#

Yeah

#

also

#

can't enter the THK Boss room like that

#

That's Hell

solemn rivet
#

wut

flat forum
#

yeah

#

won't load

solemn rivet
#

u wot m8

flat forum
#

runs out of RAM

#

or so it says

solemn rivet
#

so

#

you haven't fought THK yet?

#

and by extension - Radiance

flat forum
#

(I beat the Game on the barely breathing Office Computer of my Father)

#

I beat everything

solemn rivet
#

oh

#

ok then

flat forum
#

started downloading

#

It Broke mid-way...

solemn rivet
#

win 64x?

flat forum
#

(the supposedly 32 bit .exe you sent)

solemn rivet
#

well, it's in the name

#

that's the actual link on the page, so

#

try again?

golden vine
#

Hi

#

please help

#

How do i make enemy randomizer load

solemn rivet
#

do you have the api installed?

#

what version of the game are you running?

golden vine
#

I have api

#

im in version 1.3.1.5

exotic venture
#

do you have the proper version of the api

golden vine
#

yes

#

other mods work

solemn rivet
#

ok

#

install rando2

young walrus
#

Did you click the button on the top right?

solemn rivet
#

it's on the gdrive

supple sigil
#

im bot a modder
but
i can make git gud jokes

solemn rivet
#

oh

#

enemy rando

golden vine
#

So it says something about ""
Once installed, click the [Load Enemy Randomzier] button in the top left corner, then wait while the mod loads all of the enemy types in the game.
This process takes on average 2-5 minutes depending on the speed of your computer.

solemn rivet
#

yup

young walrus
#

Top right

golden vine
#

but no button

#

is it a version issue?

#

no nvm

exotic venture
#

maybe reading dependencies might help

golden vine
#

what is modcommon

exotic venture
#

also in the drive

compact sedge
#

pretty sure randomizer even tells you in the mod if you don't have modcommon

young walrus
#

It's like the api

#

But different

golden vine
#

Thanks!

#

I had no idea xD

#

thxxx

#

I finally earned all steam achivements today so i started playing mods

exotic venture
#

neat

golden vine
#

wait 1 more question

#

about abilitie and charm randomizer

#

what is the "all bosses" "all charms" "all skills" about?

copper nacelle
#

you can make it so it requires all bosses to beat the game

#

or all charms

#

or all skills

rain cedar
#

Just do all 3 and go for 107% tbh

golden vine
#

Ok

#

thats what i was going to do

#

thxxxx

flat forum
compact sedge
#

what are you doing

rain cedar
#

Not much we can do with a sln file

compact sedge
#

github man

flat forum
#

Can't get it to work without Win64

compact sedge
#

what

#

are you talking about

#

first of all why are you on 32 bit

flat forum
#

can't get the GitHub thing without Win64

#

and because PC came like that

rain cedar
#

Is your PC from 2003?

compact sedge
#

it's windows 10

#

it's disgusting

#

idk how you use it

#

32 bit

rain cedar
#

Wtf windows 10 32 bit

compact sedge
#

windows 10

#

there's literally a 32 bit version here

copper nacelle
#

github desktop dungo

#

git works fine everywhere

flat forum
#

I'll just

#

try things

#

again

#

tommorrow

#

because

compact sedge
#

idgaf about github desktop

flat forum
#

sleep

rain cedar
#

Just use git from the command line

compact sedge
#

github desktop is dumb

#

and git is great

#

y'all actually use github desktop?

rain cedar
#

Nah

#

I use git from mingw

flat forum
#

Gradow suggested it

compact sedge
#

if you're on windows this is the correct answer

#

but the website I linked is that

#

git for mingw

copper nacelle
#

i just use git

#

the mingw one

compact sedge
copper nacelle
#

ik

#

but github desktop is what wasn't 32 bit large dungo

flat forum
#

downloading the 32 bit thing you sent

#

installed

#

I

#

will finish it tommorow

#

because

#

sleep

rain cedar
#

@pearl sentinel I haven't tested it but I think you may have reinstated a bug I used to have in the gathering swarm thing

#

Where picking up a geo that's attacking a node can cause that node to never be targeted again until scene unload/load

#

The Disable function on geo isn't immediate so it still calls FixedUpdate after it

#

Meaning if attracted isn't set to false it gets added back into the tracked chasers

#

Wait nevermind I'm just bad at reading the commit diff

#

Although it does look like you're always disabling the original logic so it might never go after the player

#

Getting an NRE when I try to compile this for testing

[INFO]:[ModCommon] -  :::: CharmingMod.UnRegisterCallbacks() :::: 
[INFO]:[ModCommon] -  :::: CharmingMod.RegisterCallbacks() :::: 
[ERROR]:[API] - Error: System.NullReferenceException: original
  at ModCommon.PatchProcessor.Patch () [0x00000] in <filename unknown>:0 
  at ModCommon.HarmonyInstance.Patch (System.Reflection.MethodBase original, ModCommon.HarmonyMethod prefix, ModCommon.HarmonyMethod postfix, ModCommon.HarmonyMethod transpiler) [0x00000] in <filename unknown>:0 
  at CharmingMod.CharmingMod.PatchGeoControl () [0x00000] in <filename unknown>:0 
  at CharmingMod.CharmingMod.RegisterCallbacks () [0x00000] in <filename unknown>:0 
  at CharmingMod.CharmingMod.Initialize () [0x00000] in <filename unknown>:0 
  at Modding.ModLoader.LoadMod (IMod mod, Boolean updateModText) [0x00000] in <filename unknown>:0 
  at Modding.ModLoader.LoadMods () [0x00000] in <filename unknown>:0 ```
pearl sentinel
#

Hmm, ok I'll look into it when I can

rain cedar
#

It's because you're not matching parameters on FixedUpdate, pretty sure

#

The hooked functions have a bool argument but that's not a thing

pearl sentinel
#

maybe. i was trying this out

#
Patches can use a parameter named __state to store information in the prefix method that can be accessed again in the postfix method. Think of it as a local variable. It can be any type and you are responsible to initialize its value in the prefix
rain cedar
#

Oh interesting

#

Well in any case that's not the issue anyway

#

Same error without those bools

#

I think I see the real issue

#

The NRE is because reflection isn't finding the Disable method

#

Wrong binding flags, it's a public method

#

Yeah that was it

pearl sentinel
#

whoops

#

thanks for looking it over

rain cedar
#

Also looks like I was right about it never going after the player

rain cedar
#

Ok looks like in the pre method you need to declare __state as a ref var

pearl sentinel
#

ahh, well, that makes sense

rain cedar
#

I'll submit another pr with the fixes I've made

pearl sentinel
#

sweet

#

i should have some more time later this week to clean things up more and post new releases with these updates

rain cedar
#

Alright well it took me a while but I figured out how to do the stuff I needed to do

#

Never really worked with forked repos before

pearl sentinel
#

accepted the pr

rain cedar
#

Cool

pearl sentinel
#

also just added the missing calls to the unregister callbacks that i forgot to put in

rain cedar
#

Gathering swarm is crazy OP with this change

#

The extra geo from the nodes really adds up

#

It's great

solemn rivet
#

maybe have them highlight the nodes instead of collecting them then?

rain cedar
#

Nah I like how it works now

#

Doesn't have to be balanced to be fun

#

See: Your mods

solemn rivet
#

shots

rain cedar
#

I called your mods fun

solemn rivet
#

but, yeah, I getcha

#

I know, I'm just kidding

exotic venture
#

heavy broken was so imbalanced at its earlier stages and i have never had so much fun with a mod

solemn rivet
#

^

exotic venture
#

everything broke and it was amazing

rain cedar
#

It's still pretty broken

#

I just hit a crawlid and it went into the wall

exotic venture
#

PFFRTT

rain cedar
exotic venture
#

oh damn he actually went into the wall

hollow pier
#

thats a tiktik sean wtf

#

stop clickbaiting

rain cedar
#

Crawly thing

#

Crawlid

#

Never heard of a tiktik

hollow pier
#

uh its a tikky thing

copper nacelle
#

i think tiktik is the white one

#

idk tho

pearl sentinel
#

Yeah heavy blow still needs more work to be finished. I'll see if I can work on it this week

exotic venture
#

intenseeyes i'm up for testing

solemn rivet
#

no need to work on it

#

it's perfect

#

perfect, I say

compact sedge
#

^

#

but unironically, but ironically

pearl sentinel
#

Mostly to add enemies damaging each other

exotic venture
#

it's hollow knight bouncy castle edition

#

also i might make another video and i might or might not have permission to send it to wilbo

#

no pressure ofc

pearl sentinel
#

Oh nice

copper nacelle
#

wow gathering swarm op

compact sedge
#

"hollow knight bouncy castle edition"

HK trampoline physics when. We need a mod that lets you jump at the right time to boost your enemies into spikes

copper nacelle
#

it looks cool af too

compact sedge
#

HK but every surface is a trampoline

solemn rivet
#

well

#

sean was working on a momentum mod

#

to make HK full celeste-like

rain cedar
#

That's pretty much done I just never released it

#

Small mod

bronze temple
#

@rain cedar "Monomod hooks throw an error if you try to remove something from them that isn't in it"

I already fixed that bug many revisions ago πŸ€”

#

also, I'm just a ping away

#

I'd love to hear about bugs

rain cedar
#

Ah ok I thought that was intentional

solemn rivet
#

so, there's this bug called Elderbug and he's so nice

#

have you given him the flower yet?

#

also, 0x0ade, maybe our version of hooks is using an older version of monomod then?

copper nacelle
#

yeah i should probably update that

bronze temple
#

yup, looks like you're using an old HookGen

#

a few other bugs have been fixed as well

#

f.e. deeply nested types being "invisible"

copper nacelle
#

cool

solemn rivet
#

yeah, I had some issues with that

bronze temple
#

I saw that you're possibly switching to Harmony. I'd like to hear your reasoning so that I can make MonoMod better for other communities (f.e. Rain World, Celeste) πŸ˜…

solemn rivet
#

well

#

I don't get harmony, so I'm staying with monomod for the time being

#

:x

rain cedar
#

I think kerr just did that because harmony is at runtime so it's easier to implement

pearl sentinel
#

i just didn't want to add another dependency to my mods

#

since i can include the harmony source in mod common

bronze temple
#

Oh, okay :) It's just that MonoMod.RuntimeDetour would allow you to do what Harmony does regarding detouring methods, minus runtime IL transpiling

#

while maintaining compatibility with mods using HookGen (which uses RuntimeDetour behind the scenes)

#

Nevertheless, I'll probably try to improve compatiblity between RuntimeDetour and Harmony

solemn rivet
#

can't we instead merge our hooks.dll with modcommon?

bronze temple
#

I've seen this being done before

#

you could

pearl sentinel
#

ya'll have access to the mod common repo, feel free to add/edit w/e you want

solemn rivet
#

@copper nacelle what do you think?

copper nacelle
#

sure

bronze temple
#

it's just that ILMerge creates a faulty library, and IIRC your problem with ILRepack was its version selection

copper nacelle
#

ilrepack was working for me as far as versions

bronze temple
#

although you need to keep in mind that the .NET Framework 3.5 builds on top of the 2.0 runtime :)

copper nacelle
#

idk if it's still being weird

bronze temple
#

I see that ILRepack "only" supports the target platforms v1, v1.1, v2 and v4

#

using v2 for 3.5 could work just fine, but I haven't tested that myself yet

copper nacelle
#

@solemn rivet is build for .net 3.5 still being weird for you w/ hooks

#

cause if it is i'll swap it to v2

solemn rivet
#

eh

#

I haven't tested

#

but I don't think so

copper nacelle
#

cool

bronze temple
#

Anyways, if there are any questions / issues / feedback, please don't hesitate to ping me πŸ˜„

copper nacelle
bronze temple
#

MonoMod isn't on NuGet yet

copper nacelle
#

o

solemn rivet
#

sneaky

bronze temple
copper nacelle
#

aa said use nuget for monomod so i thought it was

compact sedge
#

no I said use nuget for the ilrepack

#

or whatever dll merging program you used

copper nacelle
compact sedge
#

well I'm wrong then

#

it's kinda weird to redistribute prebuilt binaries in a github repo tho

copper nacelle
#

Β―_(ツ)_/Β―

#

could make a subrepo and build it

bronze temple
#

that's why submodules are a thing :)

copper nacelle
#

@pearl sentinel should i push to another branch and make a pr?

solemn rivet
#

this might be a dumb question, but, does it inherit from the Mod namespace? If it doesn't, why not?

copper nacelle
#

does what

solemn rivet
#

eh

#

me no know how to spek word

copper nacelle
#

On or ModCommon?

pearl sentinel
#

make a pr and i'll accept it

solemn rivet
#

modcommon

copper nacelle
#

modcommon inherits from mod yea

solemn rivet
#

oh

#

can you make it have load priority then?

copper nacelle
#

oh yeah

pearl sentinel
#

mod common has a load priority

solemn rivet
#

oh

copper nacelle
#

nice

solemn rivet
#

even better

compact sedge
#

it's -1 right?

solemn rivet
#

thanks Kerr!

pearl sentinel
#

//Load the mod common first!
public override int LoadPriority()
{
return 0;
}

solemn rivet
#

and thanks 56

compact sedge
#

0

#

ok

#

then the default prio is 1 then

solemn rivet
#

that should fix all future load order issues then

#

I mean, not literally all of them

copper nacelle
solemn rivet
#

but at least issues caused by loading a mod before its dependencies

compact sedge
#

poor 56, spends 1 month trying to get a PR accepted into the API and only needs 1 minute to get it accepted into modcommon

solemn rivet
copper nacelle
compact sedge
#

also fuck this means I have to update all my dlls thanks

copper nacelle
#

you're welcome

solemn rivet
#

so

#

are the hooks still On or do I need to change stuffs?

copper nacelle
#

still On

solemn rivet
#

great

copper nacelle
#

actual file is 8mb

solemn rivet
#

I'll give it a go

compact sedge
#

can you bump the modcommon version so I can implement a check if hooks are in that version of modcommon

copper nacelle
#

sure

pearl sentinel
#

merged your pr

#

also you should have access to mod common repo so i don't think your need to make a pr?

copper nacelle
#

yeah

#

just didn't wanna accidentally do something that's bad practice

#

and then write to master

#

should I bump the ModCommonSettingsVar.ModCommonVersion var

#

@compact sedge 0.0.3

compact sedge
#

ask kerr

#

It'd be helpful for me to have that variable to check if the hooks are in there

pearl sentinel
#

feel free to bump them up

#

i don't think there's ever really harm in moving the version up if you make a change

copper nacelle
#

ok cool

#

bumped to 0.0.3

#

I'll update it on the gdrive rn

compact sedge
#

ok where do I put Assembly-CSharp-firstpass?

#

for the bootstrap

copper nacelle
#

wdym

#

like for building modcommon?

compact sedge
#

yeah

#

do I add the firstpass as a reference

copper nacelle
#

just throw all the dlls in Managed into Vanilla

#

no refs or anything

#

vanilla dlls are better to put in vanilla cause then you don't get hooks for the modapi stuff tho

compact sedge
#

ok one sec let me go find the non-beta dlls

copper nacelle
#

but putting modded dlls works fine

compact sedge
#

wait hold up so I need 1) a vanilla folder with vanilla DLLs
2) modding API assembly c# to build the rest of modcommon?

copper nacelle
#

yes

compact sedge
#

and 1 is just a folder and 2 I can add as a reference

copper nacelle
#

yeah

compact sedge
#

ok makes sense

#

sorry I just need to make sure I'm using non-beta dlls

copper nacelle
#

all good

compact sedge
#

also not your code 56 but modcommon needs to be built in debugging mode apparently

#

because it's using unsafe code

copper nacelle
#

what

#

but it has unsafe on

#

oh wait

#

active debug

#

Β―_(ツ)_/Β―

solemn rivet
#

well, it's working perfectly for me

#

tested it with various mods

#

works fine

copper nacelle
#

neat

compact sedge
#

uhh putting DLLs in the Vanilla folder doesn't work because it doesn't check there

#

it checks the release folder

#

bin/Debug/ or bin/Release

copper nacelle
#

aa

compact sedge
#

pls fix

copper nacelle
#

tbh

#

vanilla folder isn't needed

#

cause it references assembly-csharp and playmaker anyways

compact sedge
#

no it is because it references modded assembly-csharp not vanilla and it needs the firstpass one too

copper nacelle
#

what

#

firstpass shows up in debug anyways

#

and a hooked modded assembly-csharp is the same anyways

#

re

compact sedge
#

only if you add firstpass as a ref

copper nacelle
compact sedge
#

now what are your references for Mantis Gods

copper nacelle
#

Assembly-CSharp, UnityEngine, UnityEngine.UI, Playmaker

#

idek what firstpass does

compact sedge
#

well it wasn't showing up when I built it

copper nacelle
#

re

compact sedge
solemn rivet
#

so

#

can we remove hooks from gdrive and the xml now?

compact sedge
copper nacelle
#

oh yea

compact sedge
#

and here's my refs

copper nacelle
#

white theme

#

delet this

compact sedge
#

so it doesn't copy over the firstpass for some reason

#

can someone else git clone and build and see if I'm crazy or something

copper nacelle
solemn rivet
#

I'm editing the xml then

copper nacelle
#

cool

#

removed the folder

solemn rivet
#

has anyone uploaded the dll to gdrive yet?

copper nacelle
#

yea

#

did

solemn rivet
#

ok

compact sedge
#

well anyway I got my mods folder sorted out so all is well for me

copper nacelle
#

neat

#

also double checked by downloading the zip

#

and building it

#

worked Β―_(ツ)_/Β―

solemn rivet
#

xml updated

compact sedge
#

fyi you're adding as a ref the modding API assembly-csharp from seanpr's branch/the drive not yours right?

copper nacelle
#

what

compact sedge
#

for building modcommon

copper nacelle
#

I'm just adding the normal Assembly-CSharp.dll as a ref

#

like from Managed

solemn rivet
#

no need to reference the API

compact sedge
#

it builds with the vanilla one

#

huh

solemn rivet
#

we don't need to hook into the hooks

#

hookception

copper nacelle
#

it was already referenced so i just hooked it

#

now you have hooks for your hooks

solemn rivet
#

you actually did that

#

nice

compact sedge
#

ok now I'm confused because without the modding api assembly I can't build modcommon because modcommon uses elements from the modding api

copper nacelle
#

exactly

#

i just run hooks on the modding api assembly

compact sedge
#

but ur saying you are just adding the normal Assembly-CSharp.dll

copper nacelle
#

no i forgot to change it

compact sedge
#

does normal mean the API one

copper nacelle
#

now it does

compact sedge
#

ok

copper nacelle
#

should be able to just clone, change refs to your file locations, and hit build

compact sedge
#

ok

#

ok I figured out the "problem"

#

If you have the firstpass DLL in the same folder as the normal assembly csharp it copies it over but if not it ignores it yet still builds without error

#

even if you don't actually reference it

copper nacelle
#

why do you have it in another folder

#

wtf

compact sedge
#

I have a folder called Mods on my desktop which has all the custom DLLs plus a few vanilla game ones

#

but I didn't have the firstpass in there

#

because I never needed it to build anything before

copper nacelle
#

huh

#

why not just reference the api you use tho

compact sedge
#

I just added that one my mouse is over

#

I do the Assembly-CSharp is modified

#

it's the API built over vanilla lifeblood

copper nacelle
#

isn't that literally the same

compact sedge
#

no the vanilla Assembly-CSharp has no modding api

copper nacelle
#

but what

#

w h a t

#

isn't that the same as the api you have in mods tho

compact sedge
#

wdym

copper nacelle
#

why not just add your assembly reference as asdjfklasjdfasdf/Managed/Assembly-CSharp.dll

#

i mean

compact sedge
#

my real hollow knight folder is running lifeblood beta but all the DLLs I use for this are built against lifeblood regular.

#

that way they'll not crash in a weird way

copper nacelle
#

o

solemn rivet
#

so, AA

#

I was fixing the folder structure for my mods as you suggested

compact sedge
#

your folder is wrong

#

idk why

rain cedar
compact sedge
#

Windows is case insensitive

#

so it doesn't matter on windows

#

but on not-windows hollow_knight_data and hollow_knight_Data are different paths

solemn rivet
#

ok

#

no readmes yet

#

on KBM berserk is bound to Backspace (because why not)

#

on controllers, it's bound to L3+R3

compact sedge
#

well that's what they get for using KBM

#

wait L3?

#

I don't even have that button

copper nacelle
#

that's what happens when you use controller

rain cedar
#

L3 is clicking the left stick

compact sedge
#

oh duhh nvm

solemn rivet
#

I had it bound to End instead of backspace

#

but uhhh

compact sedge
#

so you have to click both sticks

solemn rivet
#

yeah

#

inspired by God of War

#

β„’

compact sedge
#

thanks steam controller for only having one real stick

#

so I can click a stick and a pad

solemn rivet
#

heh

#

I plan on making it rebindable at some point

compact sedge
#

probably doesn't feel as nice

solemn rivet
#

but I have no idea how to make a UI for that

compact sedge
#

eh this is my revenge for cheating with my controller

solemn rivet
#

I could add it as a setting tho

compact sedge
#

having to click a pad

solemn rivet
#

hm...

#

how would it save that as a setting? I think key codes are ints

copper nacelle
#

globalsetting int

compact sedge
#

^

solemn rivet
#

no, I mean, I know how to save it IF it's an int

rain cedar
#

It's an enum

solemn rivet
#

if it isn't, then I have to figure out

rain cedar
#

Which is an int

compact sedge
#

all data can be reduced to integers

#

or other primative types

exotic dune
#

all data can be reduced to an arbitrary number of bools 😎

burnt laurel
#

oh

#

dashmaster

#

that's neat

#

that'll prove useful in the mantis lord fight

compact sedge
#

uh this is silly but how do you get the modlog using debug mod?

#

it's not appearing in the console

rain cedar
#

That's not related to debug mod

compact sedge
#

ok for some reason I thought debug mod let you view the modlog ingame

rain cedar
#

It is a thing but it's not from debug mod is all

#

Idk how to activate it, never used it

#

Looks like there's a bool in api global settings ShowDebugLogInGame

compact sedge
#

ohhh

#

cool

burnt laurel
#

aaand i'm stuck in the ceiling again

#

same enemy

compact sedge
#

uh I have a problem. I'm trying to switch the texture on a GameObject, but every time I set the GameObject to a new texture it just overlaps with the previous ones

#

Here's my code:

GameObject canvas;
GameObject plane = CanvasUtil.CreateCanvas(RenderMode.ScreenSpaceOverlay, new Vector2(1920, 1080));
plane.SetActive(true);
...


Sprite renderSprite = Sprite.Create(fireBalls[currentImg], new Rect(0, 0, FBTEXTURE_WIDTH, FBTEXTURE_HEIGHT), new Vector2(0, 0));
canvas = CanvasUtil.CreateImagePanel(plane, renderSprite, new CanvasUtil.RectData(new Vector2(FBTEXTURE_WIDTH, FBTEXTURE_HEIGHT), new Vector2(200f, 0f)));

What I expect is the sprite I place to be replaced every time this second bit of code is run but instead it overlaps with the previous sprites.

rain cedar
#

You want to do

canvas.GetComponent<Image>().sprite = renderSprite;
#

On subsequent runs

#

Right now you're just adding a new image panel each time

compact sedge
#

what if I need to change the dimensions of the image panel

rain cedar
#

Then you change sizeDelta on the RectTransform component

solemn rivet
#

so, I'm having a bit of an issue

compact sedge
#

uh there's no Image component of the canvas

solemn rivet
#

what types can the modding api serializer save?

rain cedar
#

You're still calling CreateImagePanel at least once, right?

#

Modding API serializer is the Unity serializer

solemn rivet
#

oh

rain cedar
#

Which is extremely limited

solemn rivet
#

I'm trying to save an Int[]

#

but I don't see the option

compact sedge
#

yeah canvas is a GameObject built with CanvasUtil.CreateImagePanel

rain cedar
#

Then it should have an Image component

solemn rivet
#

so I was trying to save it as a string and parse it to int[]

compact sedge
#

oh UnityEngine.UI.Image

#

ok

#

nvm

rain cedar
#

I do that in randomizer Gradow

#

But not for ints

solemn rivet
#

I'm getting a typeloadexception tho

rain cedar
#

For string?

solemn rivet
#

dunno, doesn't say

#
private Key[] GetKeyArrayFromString(string var)
{
    return var.Split(',').Select(n => Convert.ToInt32(n)).Select(i => (Key)i).ToArray();
}```
#

but I know that this is what's causing it

rain cedar
#

The enum is KeyCode

#

Idk what Key is

solemn rivet
#

key is the type

#

you pass that to AddDefaultBinding

rain cedar
#

I see

solemn rivet
#

_berserkToggle.berserkKb.AddDefaultBinding(GetKeyArrayFromString(GlobalSettings.Keys));

#

and it does accept key[]

#

maybe it's my naming? If I change it from var to something else...

#

it might be mistaking var for a generic type

rain cedar
#

Yeah maybe

#

I would expect it to not compile at all if that was the case, though

solemn rivet
#

it does compile nicely and all

#

changed it to keys, let's see...

#
  at BerserkMod.Berserker.Initialize () [0x00000] in <filename unknown>:0 
  at Modding.ModLoader.LoadMod (IMod mod, Boolean updateModText) [0x00000] in <filename unknown>:0 
  at Modding.ModLoader.LoadMods () [0x00000] in <filename unknown>:0```
#

nope

#

hm...

#

well

#

I hope people don't want to bind it to multiple keys

#

cause I'm gonna remove the key[] parsing for now

compact sedge
solemn rivet
#

also, for some reason you can't bind PlayerActions to controller button combos, but you can to key combos

#

so I'm gonna make berserk trigger on a single button/key press

#

because I'm lazy

#

ok, it works perfectly

#

when I do make a readme, I'll add a list of all key/button codes for rebinding

burnt laurel
#

a while ago i saw a video in here where someone was using blackmoth and just continuously dashed in the corner to defeat hornet

#

how do i do that

#

it was amazing

solemn rivet
#

cheat

burnt laurel
#

rip

solemn rivet
#

he was using turbo

burnt laurel
#

ah

#

what's that?

solemn rivet
#

well

hazy sentinel
young walrus
#

what's a turbo?

solemn rivet
#

^

exotic dune
#

damned snail shaman

young walrus
#

original concept snail shaman when?