#archived-modding-development

1 messages ยท Page 533 of 1

jolly oriole
#

and fade in / fade out to other audio works without you having to do something extra

floral blade
#

okay, that makes sense. is there ever a need to modify things other than just main though ?

jolly oriole
#

things
?
there isn't that much you need to care about, other than maybe for the blurplane

floral blade
#

sorry my bad i wrote music instead when i meant main

jolly oriole
#

oh

floral blade
#

public AudioClip Main;
public AudioClip Action;
public AudioClip Sub;
public AudioClip Tension;
public AudioClip MainAlt;
public AudioClip Extra;

basically what do these others do

jolly oriole
#

other channels for dynamic audio, like the extra track that playing in arenas, or the layering in path of pain

#

the chosen audiomixersnapshots affect how all of those are played

floral blade
#

so when i select main only and transition to it i basically mute out all other stuff ?

jolly oriole
#

yes

floral blade
#

so i could have like "crowd cheers" set in my Sub audio clip and transition to an audio mixer that lowers main a bit and increases volume of sub, whenever someone does a PVP kill for example?

jolly oriole
#

yea, though the colosseum afaik does it with audiosources

#

that it tells those to play the cheer sound

#

but both are options

floral blade
#

okay gotcha now i sortof understand the excel sheet lol

#

so if i want main and sub i go for "normal" audio mixer

jolly oriole
#

yes

floral blade
#

thanks!

rough pulsar
#

Uhm what was i supposed to do again

#

I think i have to select hollow_knight.exe

#

Nvm fsm programs keep crashing

jolly jungle
#

avalonia?

rough pulsar
#

Yeah

jolly jungle
#

damn

rough pulsar
#

The normal fsm thing also keeps crashing

#

im gonna debug the normal fsm viewer if there is something wrong that keeps crashing it

rough pulsar
#

Fsm viewer btw

#

Normal one

#

alright how do i view fsm of other stuff now

jolly jungle
#

with fsmviewer shermaU

#

Though you probably meant things you cant view in it

rough pulsar
#

Fsmviewer keeps crshing

jolly jungle
#

oh sad

jolly jungle
rough pulsar
#

Yeah

jolly jungle
#

hm

rough pulsar
#

Apparently

jolly jungle
#

for both?

rough pulsar
#

I haven't tested avalonia but it also crashes

jolly jungle
#

cuz avalonia doesn't crash for me at all

rough pulsar
#

Wait

jolly jungle
#

what's that reason even mean

rough pulsar
#

How do you view fsms in avalonia

jolly jungle
#

like, what does that line cause

jolly jungle
rough pulsar
#

Like, the only thing that's in avalonia is "open" and it requests me to open a file

jolly oriole
#

have you tried the latest fsmvieweravalonia

jolly jungle
jolly oriole
#

yes

heavy stream
#

wrong chat lol

copper nacelle
#

because it takes two seconds to change your postbuild to include a folder (note that the msbuild copy task generates missing in-betweens), it promotes practice that shouldn't be used for encapsulation, allows me to sidestep the issue of 1.4 mods more cleanly, and makes distribution of mods generally simpler in that files cannot conflict and folders are entire units which can be removed

#

I don't like loading subfolders because it makes unmanaged dll handling harder as it'll attempt to load those and throw as it did with discord rpc

turbid kayak
#

So how does one create a mod?

jolly oriole
copper nacelle
#

yeah

turbid kayak
copper nacelle
#

and if you really can't imagine making a folder in-between for every mod then you can ignore it by just making a dev folder and throwing all the mods in there

jolly oriole
floral blade
#

when using a dll to load scripts in unity , should i use the same mod that will contain the asset bundle ?

like compile once => get dll
use dll in unity => create asset bundle
compile mod again with asset bundle in resources => get final mod dll

will unity know to look in my mods namespace , considering that when the game loads there will be 2 dlls that contain the same namespace if i go ahead with shared project and not a core.dll?

steady comet
jolly oriole
# floral blade when using a dll to load scripts in unity , should i use the same mod that will ...

the only thing unity cares about when assetbundling:
(- name of dll) (i'm not sure on this one, but likely)

  • namespace/typename of monobehaviour on the object
  • values of said monobehaviour
    which is why i recommend 2 different assemblies for working with custom scenes:
    1 exclusively for unity, with only monobehaviours, 'nothing' with HK (as in: no references to assembly-csharp)
    1 as the final mod, with everything
floral blade
#

if it cares about the name of the dll then i'll need to make my dll name that i load in unity the same as it will be when it is a mod ?

#

or is that no longer a concern when the asset has already been bundled ?

jolly oriole
floral blade
#

i can experiment with a different name,
i do worry that having my shared project setup might break if 2 mods create 2 scenes each wanting a different "version" of the same monobehaviour in the same namespace.

jolly oriole
#

i mean, you can look how sfcoreunity.dll is basically the same as sfcore.dll, just with only monobehaviours and no methods

#

and renaming it to sfcore for unity, doing stuff with that and using the resulting bundle with actual sfcore works just fine

floral blade
#

so here's what i am doing rn for the sake of experiment

jolly oriole
#

also makes my vs solution look funny

copper nacelle
#

Probably just checks the assembly name

floral blade
#

these are 3 dlls of the same mod with different namespace for the mod itself (each with their own copy of 'DandyCore')

#

unity only shows me 1 here

#

so which dll's DandyCore got loaded ?

#

DandyCore is the namespace here

jolly oriole
#

just pick a type of that and watch the errors

jolly oriole
floral blade
#

it cries in the editor but works after asset bundling

jolly oriole
#

last time i tried with actual mod assembly, unity just crashed when i updated the mod and reloaded it in the editor

floral blade
floral blade
jolly oriole
#

add a monobehaviour that only logs its full type and see which gets logged with multiple mods ig

#

i actually don't know what would happen

floral blade
#

i am willing to experiment

jolly oriole
#
private void Awake() {
    Modding.Logger.Log("Type: " + this.GetType().FullName);
}

or something

floral blade
#

okay i shall be back with results

worn eagle
#

is there some sort of black fader that gets activated in the junk pit? it covers the screen when I teleport to it

copper nacelle
#

just junk pit?

#

do you send blanker down

worn eagle
#

no

jolly oriole
#

oh, it has a giant fade thing that is also used for secret areas?

worn eagle
copper nacelle
#
            GameCameras.instance.cameraFadeFSM.Fsm.SetState("FadeIn");

            var gm = GameManager.instance;
            yield return new WaitWhile(() => gm.gameState != GameState.PLAYING);

            yield return null;

            PlayMakerFSM.BroadcastEvent("BOX DOWN");
            PlayMakerFSM.BroadcastEvent("BOX DOWN DREAM");
jolly oriole
#

it has a blanker on the right side

worn eagle
#

could it be because my dreamgate's there?

#

I'll change it and see

#

nope it's a GG_Waterways thing

copper nacelle
#

i assume my thing didn't work?

worn eagle
#

testing it out now

jolly oriole
#

try, maybe additionally, broadcasting UNCOVER as well

#

because that's what the maskers want

worn eagle
#

worked, nice

copper nacelle
#

gg

jolly oriole
#

_waterways

copper nacelle
#

true

jolly oriole
#

btw, i assume mi2.5 won't really be released with only 2 mods in modlinks?

cedar hemlock
#

i can add howwowknyight

#

then you have 3

#

i can ask mulhima and dandy for ck and debug

worn eagle
#

InstantTeleport makes it 6

#

should I name it FastTravel

jolly oriole
#

if i add my mods we're at like 25 then

cedar hemlock
#

ye lol

jolly oriole
#

italy, add all your mods too, i need gatling crystal aspid

worn eagle
#

idek if it's using crystals anymore

#

last time I recall it shot jellyfish cores

jolly oriole
#

i need every variation, chosen randomly

#

or all of those as seperate mods

#

bigger number = better person

copper nacelle
#

i can add a bunch

#

just haven't bothered

jolly oriole
#

then bother tomorrow

rough pulsar
#

watching my pc burn after clicking "open scene list" in fsmviewavalonia was a fun experience

jolly oriole
rough pulsar
#

the normal open thing also doesn't work

copper nacelle
#

does it glob

rough pulsar
#

wdym

#

oh

jolly oriole
copper nacelle
#

oh

#

cheat

rough pulsar
#

wdym by glob

copper nacelle
#

can you do like {.dll, .pdb}

#

or just /*

jolly oriole
floral blade
#

what i did :

  • added dll with namespace Futbol & DandyCore in unity => created assetBundle
  • compiled a new dll with namespace changed to Futbol2 & DandyCore
  • compiled another dll with namespace changed to Futbol3 & DandyCore
  • copied only Futbol2.dll & Futbol3.dll into mods folder

-> game complained about not having the monobehaviour.

  • renamed Futbol3.dll to Futbol.dll => game still complained

  • compiled a new dll with Namespace Futbol & DandyCore , copied in mods folder
    -> it worked, and Modlog contained Type: DandyCore.WhoAmI

if all it needed was DandyCore from the file Futbol.dll then when i renamed Futbol3.dll to Futbol.dll it should have worked, right?

copper nacelle
#

that isn't single line

#

scammed

jolly oriole
#

<Copy SourceFiles="ReadMe.md;$(TargetPath);$(TargetDir)/$(TargetName).pdb" DestinationFolder="$(ExportDir)/$(TargetName)/zip/" /> is single line with 3 files

copper nacelle
#

fair

jolly oriole
#

the online one is not even the updated one with mod folders i just noticed

#

<@&283547423706447872>

floral blade
#

<@&283547423706447872>

copper nacelle
#

?mute 12h 265869087975014411

finite forumBOT
#

dynoError Please use a valid limit less than 14 days. ex. 3m, 2h, 1d

gilded lotus
#

<@&283547423706447872>

copper nacelle
#

wtf

#

?mute 265869087975014411 12h

finite forumBOT
#

dynoError I couldn't mute the user. Make sure the Dyno role has Manage Roles permissions.

jolly oriole
#

lmao

copper nacelle
#

despises me

rough pulsar
#

wtf happened

#

discord nitrogen or free csgo knives?

cedar hemlock
#

nitrogen

jolly oriole
cedar hemlock
#

fun

copper nacelle
#

wrong parameter order feelsbadman

rough pulsar
floral blade
rough pulsar
#

i'm useless in everything other than linking people to stuff

jolly oriole
#

seems like it does check for some things to make sure that futbol is futbol, even if another internal namespace is used

copper nacelle
#

do you just ref like every unity dll

jolly oriole
#

yes, if that's towards me

copper nacelle
#

understandable

#

i was wondering how ide support would work

#

with the var

jolly oriole
#

was easier to copy+paste into every csproj

copper nacelle
#

lmao

rough pulsar
#

alright so if i can't do shit in fsmview/fsmviewavalonia, do i just log stuff into console and expect a mess in the bottom left of my screen?

jolly oriole
#

idk how vs would handle that tbh, probably would still do the normal relative link if i'd add another one

copper nacelle
#

yeah

floral blade
jolly oriole
rough pulsar
#

what is futbol

jolly oriole
#

test mod to test how unity works

#

ig

copper nacelle
#

a game where you hit a ball with your foot

jolly oriole
#

or this

floral blade
floral blade
floral blade
jolly oriole
#

oh, for hkmp?

rough pulsar
#

when were you able to make custom save art for areas in-game?

jolly oriole
#

always

rough pulsar
#

so this was a feature in modding api since the dawn of time or a specific core mod?

floral blade
jolly oriole
#

i did it as a fun thing to do in early 2020, though idk if i was the first

floral blade
rough pulsar
#

lfg

floral blade
rough pulsar
#

i just wish there was something to make the unity scene making not a pain in the ass

#

or maybe there is

jolly oriole
rough pulsar
#

oh

#

i guess i'll just

floral blade
#

or if u want to manually do things read sfcore and watch salehs video

rough pulsar
#

have to rely on automatically cropped sprites, hope they are the exact same size as in-game, then preload objects

jolly oriole
jolly oriole
rough pulsar
floral blade
rough pulsar
#

shit

#

i forgot to turn off ping

jolly oriole
#

sigh

copper nacelle
#

how horrific now 3 children will die

worn eagle
#

I'm 3 children

rough pulsar
#

i forgor ๐Ÿ’€

floral blade
#

in doing all this research i also found 56's youtube

jolly oriole
copper nacelle
#

my condolences

floral blade
#

nay Lore

floral blade
#

how do you even preload acid

rough pulsar
#

get gameobject of it

copper nacelle
#

yeah

#

I think that's the ke one

floral blade
#

oh feelspkman

jolly oriole
#

also perfectly shows iframes on enemies

#

i think i still have the video of the first time i actually got custom music working

worn eagle
rough pulsar
#

vignette looks deep fried to me for some reason even though it may not be

#

in the video

copper nacelle
#

it's definitely something

rough pulsar
#

and it's loud af

jolly oriole
rough pulsar
#

my ears felt like they were dying

jolly oriole
rough pulsar
#

74% ๐Ÿ’€

jolly oriole
#

meanwhile i'm here at 24

rough pulsar
#

i forgot i left it at 74% lol

#

i get it my bad

#

damn i wonder why didn't i use this when making stuff in my mod

floral blade
#

so , i did a this.GetType().AssemblyQualifiedName instead of this.GetType().FullName

#

and that got me :
Type: DandyCore.WhoAmI, Futbol, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

#
The assembly-qualified name of a type consists of the type name, including its namespace, followed by a comma, followed by the display name of the assembly. The display name of an assembly is obtained using the Assembly.FullName property.

#

maybe that's how it works ? unity ensures Assembly.FullName also matches ?

rough pulsar
#

I'm just gonna create a testing mod that would log stuff in the modlogs

floral blade
#

and if i load 2 dlls in unity i can add DandyCore.WhoAmI from both of them on the same GO

#

and print this
[INFO]: Type: DandyCore.WhoAmI, Futbol, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
[INFO]: Type: DandyCore.WhoAmI, Futbol2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

#

so i can safely use DandyCore the way i had planned

floral blade
dark wigeon
#

fsm view avalonia will no longer crash on fsms with missing node connections

thorn osprey
#

a

copper nacelle
#

what

primal latch
#

Just say that the mapi had a breaking change. Time to try and tell rusty how to insert it into the game and the downloads folder grubsad

jolly oriole
#

wha

cedar hemlock
#

grenade where are the mi2.5 modlinks again?

jolly oriole
#

hk-modding/modlinks

cedar hemlock
#

k

#

thx

#

the link in apilinks.xml doesn't go anywhere

jolly oriole
#

the link
which of the 7

#

but yes, that is an outdated api there

cedar hemlock
#
<Windows SHA256="9866A9023181C27B599B46E259798580E5EAB76DE343E95E3B1E98D3F820CAE0">
                <![CDATA[https://github.com/HollowKnight-Modding/HollowKnight.Modding/releases/download/v1.5.68.11808-61/ModdingApiWin.zip]]>
            </Windows>
#

would you think it matters which api version i reference?

#

if not i'll just take the latest release

jolly oriole
#

take the latest, can also PR it into the modlinks if you want, otherwise i may do that later if i don't forget

cedar hemlock
#

k

#

do i need the SHA of the zip or the dll?

jolly oriole
#

the zip that the installer will download

cedar hemlock
#

k

#

what do i do if i have no dependencies?

#

just <Dependencies /> like Vasi does?

jolly oriole
#

yea

cedar hemlock
#
    <Manifest>
        <Name>HowwowKnyight</Name>
        <Description>Twanswates aww of de text in Howwow Knyight into de much supewiow UwU wanguage, incwuding menyus, usew intewface and in-game diawogues! >w<</Description>
        <Version>3.7.5.0</Version>
        
        <Link SHA256="b8be2445f5ce7d9f7a3a5c2d1ce39e11f3275a041127b984804a8ce78b5f92b4">
            <![CDATA[https://github.com/DDRM-VGV/HowwowKnyight/releases/download/3.7.5/HowwowKnyight.zip]]>
        </Link>
        
        <Dependencies />
    </Manifest>
```should work then right?
jolly oriole
#

looks about right

cedar hemlock
#

ok i'll make a pr then

jolly oriole
#

while you're at it, can you remove 22 - 24 (the files thing from the comment)?

#

as it's not needed since like 6 hours ago

cedar hemlock
#
        <Files>
            <File><![CDATA[Test Filename]]></File>
        </Files>
```?
jolly oriole
#

yes

cedar hemlock
#

k

jolly oriole
#

thx

cedar hemlock
jolly jungle
#

?

jolly oriole
#

deepnest_east_hornet

jolly jungle
#

Where'd you enter it from though?

jolly oriole
#

deepnest_east_12

jolly jungle
#

Hm

#

Did you add the connection?

jolly oriole
#

no? it's already there, that's the normal way you get kingsbrand

jolly jungle
#

Wait what

#

That didn't look like the entrance to hornet

#

The first room

jolly oriole
#

before you get kings brand, it may have less ash lying around

jolly jungle
#

Hm

jolly oriole
jolly jungle
#

Ohh

#

Wow I didn't recognise it

nimble lake
primal latch
#

the release doesn't contain any files

cedar hemlock
#

just go to actions

primal latch
#

I know

#

Just wanted to report it

jolly jungle
#

I'm in here, there are two actions

#

However, even if shouldTurnInLunge is false, it logs the last line in the image

#

even though it should come definitely after the BoolTest

#

Also, the FaceObject seems to never happen, no matter the results of the bool test, while the method below always happens

#

Basically, seems like any action I add simply doesn't function correctly, while methods are fine

#

Any ideas what the problem is?

copper nacelle
#

what is should turn in lunge

jolly jungle
#

a bool I figure out right before

#

the bool itself works perfectly

copper nacelle
#

show

#

is it a constant

#

well

jolly jungle
copper nacelle
#

is it re evaluated every time the action happens

jolly jungle
copper nacelle
#

that doesn't count

jolly jungle
#

?

#

Why not

copper nacelle
#

it's a bool

#

a value type

#

given to an fsm action by putting it on a field

#

it won't update the other one

jolly jungle
#

aight

#

Didnt fully understand

copper nacelle
#

make it an FsmBool and set the Value

jolly jungle
#

but you're saying its stuck using a specific value?

copper nacelle
#

yes

#

it's like

jolly jungle
copper nacelle
#

if I do

#

int x = 3;

jolly jungle
#

Oh wait I think I get where you're going

copper nacelle
#
IEnumerator F(int x) {
    while (true) {
          Log(x);
          yield return null;
    }
}

StartCoroutine (F(x))

yield return new WaitForSeconds(2);

x = 37;
#

setting x to 37 doesn't make it stop printing 3

#

because primitives/structs are value types

jolly jungle
#

Ooh yeah I see now

#

Thanks

copper nacelle
#

np

jolly jungle
#

But how do I make an FsmBool?

#

It needs to be created through the fsm itself?]

jolly jungle
#

Ooh, thanks

cedar hemlock
jolly jungle
copper nacelle
#

yeah

jolly jungle
#

Is the one you released 13 hours ago alright?

#

Wait I already have vasi grimmpalm

#

What's vasi even mean?

copper nacelle
#

?mute 651843061831434260

#

this is so sad

rough pulsar
#

Modding staff

copper nacelle
#

yeah

jolly oriole
copper nacelle
#

what are you gonna do to that fence

jolly oriole
#

I N S P E C T

floral blade
#

oh the map shiney that u stole from divine

copper nacelle
jolly oriole
#

funny words

floral blade
#

visual vasic

copper nacelle
#

true

worn eagle
#

vasid on what

copper nacelle
#

I just didn't want to name another mod ___Core

jolly oriole
floral blade
jolly oriole
#

putting binaries in a repo shroompause

copper nacelle
#

true

jolly oriole
floral blade
#

sure, we dont source control them there but then whats the better alternative ?

floral blade
copper nacelle
#

git lfs it ig

#

I don't like githubs lfs it has like -2 space

jolly oriole
#

idrk, the only repo i work with that has binaries in it is because those were there before i started, so i just keep them, even though it takes like an hour to clone the repo. others are 1 man projects, so i can keep the assemblies on my machine

floral blade
floral blade
#

(to me)

worn eagle
#

are you fixing up additionalmaps so I can use fastteleport with it

jolly oriole
#

50%,
i'm fixing it up

#

oh yea, i can try fastteleport

#

it was attack to teleport, right?

worn eagle
#

no you just use your mouse, the cursor shows up when you open your full map

jolly oriole
#

but how do i teleport

worn eagle
#

click

jolly oriole
#

ok, i think i broke it completely

worn eagle
#

using the 1.5 version?

jolly oriole
#

yea

#

what dep has it?

worn eagle
#

none

jolly oriole
#

doesn't work without other mods, probably needs preloading

worn eagle
#

lemme install the latest api and see if it runs

jolly oriole
#

it might be the save i used that somehow broke the map screen

#

hm, clicking still does nothing

jolly oriole
#

๐Ÿค”

vocal spire
jolly oriole
#

it reads possible null reference return value or similar

copper nacelle
#

I mean

#

yeah

#

mark the method as returning AudioClip?

jolly oriole
#

hm, nah, it's fine

copper nacelle
#

there's no point in enabling nullable if you don't use it

jolly oriole
#

i changed it, dw

#

how is the Path.GetDirectoryName a possible null assignment

copper nacelle
#

Assembly location is nullable?

rough pulsar
jolly oriole
#

when hovered, vs tells me that: "Location" is not NULL here

copper nacelle
#

null if path denotes a root directory or is null.

jolly oriole
#

bottom thing:

"Location" is not NULL here.
copper nacelle
#

yeah but it could be in C:\

jolly oriole
#

i'll just glimpse over that ig

copper nacelle
#

do !

#

because that's not gonna happen

#

or ?? throw

jolly oriole
#

the ?? throw thing did get rid of that

#
_dir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? throw new DirectoryNotFoundException("I have no idea how you did this, but good luck figuring it out."), FOLDER);
primal latch
#

I love the error message

#

Now go make mi 2.5/3/WHATEVERNUMBERTHE1.5INSTALLERHAS

jolly oriole
#

no

copper nacelle
#

so much effort

jolly oriole
#

do it yourself

#

it's on github after all

copper nacelle
#

I worked on it yesterday

#

it has the whole version store to update meme

#

improved di usage

#

moved the thing to an installer class and abstracted everything to interfaces

#

I need to start adding tests

#

you know Microsoft doesn't have a decent filesystem abstraction by default

#

kinda annoying

primal latch
#

Imagine testing code

copper nacelle
#

yeah I'm imagining it

#

would get rid of so many bugs

primal latch
#

Too bad you canโ€™t really add tests to the api

jolly oriole
#

god dammit

primal latch
#

What are you doing? Going through all suggestions for the mapi?

jolly oriole
#

nah, going through resharper for all my mods

#

across ~32 projects it's only like 1052 spelling mistakes

jolly oriole
#

thanks resharper

vocal spire
#

np

potent summit
#

why is incorrect

jolly oriole
#

looks like your references are wrong

potent summit
#

oh

#

my references

languid goblet
#

are you referencing a modded assembly-csharp?

worn eagle
#

intialize

potent summit
#

oh intialize

languid goblet
#

also are you putting using Modding; at the top?

potent summit
#

where i put

potent summit
languid goblet
#

is your game currently modded or vanilla

potent summit
#

i put and its like that only the initialize is incorrect

jolly oriole
#

initialize with big i

potent summit
languid goblet
#

whether or not you have the modding api installed
which you do

potent summit
#

thx

#

it function now

potent mantle
#

yo

#

how to build a map

#

from zero

#

with no knowledge else than knowing how to install a mod

#

i wanna build a platforming challenge

#

also i can't code

#

<@&328354344313421825> (idk if this role is supposed to be pinged for help, if not i'm really sorry)

copper nacelle
#

you are now really sorry

potent mantle
#

F

#

sry xd

copper nacelle
#

you don't need to know how to mod for a basic platforming challenge though

potent mantle
#

i mean

copper nacelle
#

There's a mod called DecorationMaster which let's you make your own though it'll be in normal levels

potent mantle
#

mmh

copper nacelle
#

for a new scene you have to use unity and such

potent mantle
#

ah

#

f

#

cant code

#

dont have unity either

copper nacelle
#

get unity tm

potent mantle
#

trademark ?

rough pulsar
#

i never ever saw a modding staff ping and this is the first time

solemn rivet
#

I HAVE BEEN SUMMONED FROM DARKNESS

worn eagle
#

gradow when is mi4 coming out

solemn rivet
#

how's installer 2 56

copper nacelle
#

pretty good

rough pulsar
quick flame
#

i need help to get hk mods

copper nacelle
quick flame
#

sorry

copper nacelle
#

happens

rough pulsar
potent summit
#

How do I do options in the menu to my mod?

#

?

ornate rivet
#

the modding api has a menu api

potent summit
#

A

charred topaz
#

@dark wigeon Hey, I'm running into an issue in regards to AssetTools.Net. Everything up until now has been working smoothly, but when I try to remove an audio asset from the WeaverCore Bundle, AssetTools is throwing an exception saying the provided data seems to be corrupted. All I did was change the AudioClip's AssetBundle name from "weavercore_bundle" to "None". It will only work if I include this audio asset in the bundle.

However, when I switch the compression type in the Pack() method from LZ4 to LZMA, the issue goes away. It only seems to occur when using LZ4 compression. I also tried deleting the audioClip entirely and deleting any cached files left over during the build, but those things didn't change anything.

dark wigeon
#

I doubt changing the name has anything to do with it

#

I didn't write the lz4 packing code so I'm not sure

#

if you give me the bundle I'll try checking it out

#

like before and after so I can compare

dark wigeon
#

is this before or after

charred topaz
#

This is before packing. The pack function seems to create a bundle with 0KB in size

floral blade
#

is it possible to change the location the game looks for unity dlls ?

jolly oriole
#

you can move the entire game folder

#

but i don't think that's what you wanted

floral blade
#

yeah no lol

#

i was thinking if there was a way to copy the xbox game pass version's exe and tell it to look for assembly-c-sharp & /mods in the saves folder & all other files from the normal install, that would only require the permissions to the game files to be read only and still work to mod. though i neither have windows nor the xbox game pass version so i was mostly asking a theoretical question

#

the modded exe & dll would sit outside the trusted ms crap folder

jolly oriole
#

as far as i understand windows and its quirks, an executable looks in its directory, then at enviroment paths to find wanted DLLs, so you'd have to add a hk-assembly-directory to the enviroment variables and remove the assemblies from the games installtion folder, which is difficult because of the permissions

floral blade
#

no but we also moved the executable

#

we are only copying things out and modifying the copies, and telling the copies to look at the original folder for other stuff

jolly oriole
#

though at that point one isn't that far off of providing pirated copies

floral blade
#

tbf mapi already includes a modded assembly-c-sharp.

cedar hemlock
potent summit
#

What's the hook of the nail damage

jolly jungle
#

In some fashion

#

I think

potent summit
#

Ok

#

Don't have nail damagebeesive

light zodiac
#

Wdym?

potent summit
#

Wdym? What's that

primal latch
#

What do you mean

potent summit
#

Ok

#

Like the hook of the nail damage i want to change it to my mod

jolly oriole
potent summit
#

ok

#

[thx

cedar hemlock
potent summit
#

is it correct have one error

cedar hemlock
#

assuming you want to set naildamage to 5

potent summit
#

oh thx

cedar hemlock
#

what unity version do i need for 1.5?

jolly oriole
#

2020.2.2

cedar hemlock
#

k

potent summit
#

i put damage 2

cedar hemlock
#

in which modhook did you put it

potent summit
#

i put there

cedar hemlock
#

well you are trying to set info of a save before a save is loaded

potent summit
#

oh

#

so where i put

cedar hemlock
#
        int target = 5;

        public override void Initialize()
        {
            
            ModHooks.instance.HeroUpdateHook += Update;


        }

        private void Update()
        {
            if (PlayerData.instance.nailDamage != target)
            {
                PlayerData.instance.nailDamage = target;
            }
            else
            {
                ModHooks.instance.HeroUpdateHook -= Update;
            }
        }
```Should work
#

not the most optimized way

#

you can change target to the damage you want

potent summit
#

thx

light zodiac
cedar hemlock
#

effort

#

why do that when someone else types all the code for you ๐Ÿฅด

cedar hemlock
cedar hemlock
#

embed

light zodiac
cedar hemlock
#

well if you want to make a mod for 1.4 1.5 code won't work

cedar hemlock
# potent summit thx

do add PlayMakerFSM.BroadcastEvent("UPDATE NAIL DAMAGE"); after PlayerData.instance.nailDamage = target;

light zodiac
# potent summit is it correct have one error

What grenade suggested you do
In init

ModHooks.GetPlayerIntHook += GetInt;```

Then do
```cs
Private int? GetInt(string name, int orig) {
    return name == "nailDamage" ? Target : orig;
}```
cedar hemlock
#

fail

rough pulsar
#

mul you need to put 3 backticks at the start not two

#

wait

#

if you hook getint to set nail damage to another number (e.g. 7), doesn't the game save naildamage variable as 7?

cedar hemlock
jolly oriole
rough pulsar
#

oh ok

potent summit
#

Have some classes about c sharp

#

In yourube

cedar hemlock
#

did you want to announce that or did you want to tell kaan that?

potent summit
#

No my English is trash what i want to said is i want to learn more c sharp if this help to modding

cedar hemlock
#

If you know how to code in Csharp that helps alot yes

potent summit
#

Oh ok

radiant basin
#

im kind of regretting failing my csharp class these days lmao

rough pulsar
#

There is an official guide on c# by microsoft, it's pretty great

#

It's a text guide but it has everything about c# i think

vocal spire
vocal spire
rough pulsar
#

I learned c# on my own

steady comet
#

Is there a reaspn to use MondHooks.HeroUpdateHook rather than On.HeroController.Update?

vocal spire
#

Faster to type

#

No difference

steady comet
rough pulsar
#

Also it's not MondHooks it's ModHooks

vocal spire
#

Other than needing to call orig if you want it to function like normal, but I think thatโ€™s a given with on hooks

#

autocorrect stop

rough pulsar
#

I disabled autocorrect on my phone shadeshades

vocal spire
#

Iโ€™m too lazy

potent summit
#

why intialize is incorrect

rough pulsar
potent summit
#

oh

rough pulsar
#

Oh and also do

#
public MyMod() : base("My Mod")
{
  // stuff
}

Replace "MyMod" with the name of your class and "My Mod" with the actual name of your mod

potent summit
#

ok

rough pulsar
#

Question, is it fine if i make the initialize method asynchronous?

potent summit
#

Now they to have error

rough pulsar
potent summit
#

like that

#

but already have errors

rough pulsar
#

Can you show the upper part of your code, like public class HardMode?

potent summit
rough pulsar
#

Apparently it works?

#

Oh

#

You added two Initialize methods and two constructors (public HardMode () : base("Hard Mode")

#

That's why it's giving errors

potent summit
#

oh

#

so i erase

rough pulsar
#

Yeah except move the contents of the second Initialize method to the first one

ornate rivet
#

lets gooooooooooo

jolly oriole
#

less gooo

rough pulsar
#

is it ok if i use async in initialize

copper nacelle
#

depends on if you use anything unity

ornate rivet
#

slow

rough pulsar
#

my system took ages to reach 3.85% or something in utiny

ornate rivet
#

technically this isn't utiny :)

rough pulsar
#

utiny ripper

ornate rivet
#

AssetRipper

rough pulsar
#

Oh ok

vocal spire
#

Yoooooo

ornate rivet
#

it works with 2020.2.0 so hopefully it works with 2020.2.2 too

spring lantern
#

hey where can i find mod api download?

vocal spire
#

Smh if that single extra number stops it -

vocal spire
spring lantern
#

k thanks

cedar hemlock
#

does assetbundle work for 1.5? (2020.2.2)

#

cus if no then i'll need to go to 1.4 grubsad

vocal spire
#

Why wouldnโ€™t it

cedar hemlock
#

cus it isn't working for me sadgeyes

#

Assets\AssetBundles-Browser-1.7.0\Tests\Editor\ABModelTests.cs(13,7): error CS0246: The type or namespace name 'Boo' could not be found (are you missing a using directive or an assembly reference?)

#

_ _
Assets\AssetBundles-Browser-1.7.0\Tests\Editor\Util\TestUtil.cs(5,7): error CS0246: The type or namespace name 'Boo' could not be found (are you missing a using directive or an assembly reference?)
_ _

#

Assets\AssetBundles-Browser-1.7.0\Tests\Editor\Util\TestUtil.cs(19,56): error CS0246: The type or namespace name 'RuntimeServices' could not be found (are you missing a using directive or an assembly reference?)

rough pulsar
#

time to make a stupid mistake while modding and break everything

cedar hemlock
#

k

#

have fun

ornate rivet
#

I had to remove the lines that weren't working

#

idk what other people did

copper nacelle
#

delete it and put it back tm

floral blade
#

so basically yeet the tests directory ?

ornate rivet
#

yea

jolly oriole
#

assetbundle browser shroompause

ornate rivet
#

I swear utiny wasn't this slow

ornate rivet
#

YOOO

#

it worked

#

and shaders work too now apparently??

#

the blurplane didn't work automatically with utiny ripper

ornate rivet
#

nvm shaders are just broken in a different way lmao

jolly oriole
#

lol

jolly jungle
jolly oriole
#

no, because Mod isn't a derivative of MonoBehaviour

jolly jungle
#

Ah, true

jolly jungle
jolly oriole
#

yes

jolly jungle
#

What're you planning to do with it

rough pulsar
cedar hemlock
floral blade
#

how do you move where the map zooms in to show the quickmap ?

jolly oriole
#

it's part of the quick map fsm or something

#

yep, it's in the quick map fsm

floral blade
#

i saw a set position with space = 1
but trying to set the positon using
self.gameObject.transform.localPosition = new Vector3(0, 0, 0);
in PositionCompass did nothing ๐Ÿ˜ฆ

floral blade
#

yes but i am trying to not modify that FSM because it relies on mapZone and i need to show the map based on scene name

jolly oriole
#

then have a lot of fun

floral blade
#

i am able to show my map

#

it's just in the corner of the screen because the greenpath map is in the center (which i made inactive)

jolly oriole
#

yes

#

because setposition is run after positioncompas

floral blade
#

so a coroutine ?

jolly oriole
#

if you want it to work correctly, you can edit the quickmap fsm to include some method of yours in each of the area states (after all other actions ofc)

#

... or you hook On.HutongGames.PlayMaker.Actions.SetPosition.OnEnter and filter out the ones of the quick map fsm, then after it do your code, but that's overboard

floral blade
#

the first bit is probably what i will do in the end, for now i am just hooking into QuickMapGreenpath to atleast get the map working once

jolly oriole
#

have fun with that, when the position is changed after that method is called

floral blade
#

true, coroutine abuse it is

jolly oriole
#

that is really shroompause

floral blade
#

yeah i had seen that i also thought that since the game updates the positon of the compass it will probably be called again after that

#

apparently not

#

but thanks! i have finally got the map on screen, now i can peacefully fix this crap

primal latch
#

Noice

jolly oriole
#

so the ?mute still didn't work ig

copper nacelle
#

no he just beat me to it I believe

#

do you want to find out

jolly oriole
#

nah

copper nacelle
#

this is so sad

#

?mute 56 amogus

finite forumBOT
#

dynoError I can't find user 56.

copper nacelle
#

blind

jolly oriole
#

wait what

copper nacelle
#

?mute SFGrenade amogus

finite forumBOT
#

dynoSuccess SFGrenade#2066 was muted | amogus

copper nacelle
#

true

#

?unmute SFGrenade

finite forumBOT
#

dynoSuccess SFGrenade#2066 was unmuted

ornate rivet
#

coool

jolly oriole
#

mod abuse

copper nacelle
#

true

fair rampart
ornate rivet
#

your mom is sus

safe hamlet
#

?mute @copper nacelle

#

????

#

doesn't work

worn eagle
#

can someone test if this works in 1432? when you hover your cursor over a scene on the map, it should show the scene name above the cursor, but I'm not getting any hits

nimble lake
#

i can see the cursor but it's not even teleporting when i click

craggy schooner
#

0

cedar hemlock
#

does someone have a working assetbundle thingie for 1.5?

#

i can't get it to work

jolly oriole
#

just don't use it

#

works wonders

cedar hemlock
#

what do i do then if i want a custom enemy in-game?

#

ok yeeting the test directory worked

#

i'll just hope that isn't needed

jolly oriole
#

assetbundle without assetbundle browser?

cedar hemlock
#

no

#

only the "test" folder

jolly oriole
#

i meant that towards the

what do i do then if i want a custom enemy in-game?

cedar hemlock
#

oh

#

idk how, so if this method works i'll use the browser for now

floral blade
jolly oriole
primal latch
cedar hemlock
#

what was dirtmouth called again

#

just "Town"?

jolly oriole
#

yes

jolly jungle
floral blade
jolly jungle
#

Epic ๐Ÿ‘Œ

#

Care to elaborate? sherma

cedar hemlock
#

dandy has already leaked

#

dandy is elaboratingn't

jolly jungle
#

Where?

cedar hemlock
#

dandy is elaborating

floral blade
cedar hemlock
#

[api] ERR: request timed out

#

should've been the response

floral blade
#

so thats what this is, the actual futbol part, may not work tho

jolly jungle
#

How'll the scene be accessed?

cedar hemlock
#

may not work sadcowgrub

floral blade
cedar hemlock
floral blade
jolly oriole
#

test it before making assumptions

jolly jungle
#

"only once you see it doesn't work, should you give up"
- Sun Tzu

jolly oriole
#

but yea, with the latency it will desync

floral blade
#

yep i plan on completing the mod one way or the other mastersmirk i might have to make a player turn into ball for hkmp to sync the ball

#

because hkmp can clearly sync player positions lol

jolly oriole
#

but without latency it won't desync

#

... if you use unitys things to handle physics

cedar hemlock
#

make the ball a player ๐Ÿฅด

floral blade
#

physics does not have randomness ?

jolly oriole
#

if you call something with Random, then yes

#

otherwise no

floral blade
#

ah

#

it might work both ways then

jolly jungle
#

Can you make one of the players host the ball?

floral blade
#

far as i can tell, not without messing with re-implementing part of HKMP in my mod / custom HKMP builds

floral blade
vocal spire
#

Iโ€™ve suggested this a long time ago but I suggest creating some api for hkmp that other mods can use

#

Mods can see if theyโ€™re the host, then sync their own stuff, ex the ball in this case

rough pulsar
#

is it just football

#

are you porting soccer to hollow knight

#

i thought it was some sort of pvp arena

jolly oriole
#

soccer
shroompause

steady comet
#

Is there a guide anywhere for how to do stuff with IL hooks?

rough pulsar
#

my accent is ameritish

floral blade
floral blade
#

i dont even like soccer , i thought it would be an easy mod to make lol

vocal spire
floral blade
steady comet
#

Ooh, thanks

#

I'll take a look

#

Ah yeah that seems helpful enough

floral blade
#

yes that is definitely true

rough pulsar
#

the time we get a complete apidocs is longer than silksong

primal latch
#

How would I go about adding a lore tablet interaction?

rough pulsar
#

what is the difference between canDash and hasDash?

primal latch
#

can dash is set to false if you dashed and didn't touch the ground

#

hasDash is wheter you have acquired the cloack

rough pulsar
#

thanks

jolly oriole
rough pulsar
#

sfg

#

if i set this to false, the item prefab should appear right

jolly oriole
#

It looks more like that it appears when that is set to true

rough pulsar
#

hmm

primal latch
#

Can't find it

jolly oriole
#

1 sec, booting pc

floral blade
jolly oriole
#

it's good that it's 'yoinkable', confirms that it's widely usefull, not much hardcoded (in this case, only where it gets the prefab from)

floral blade
#

yep

rough pulsar
#

how do i hide soul/health hud if i wanted to

jolly oriole
#

debug mod or there also is some fsmevent you can broadcast

#

the gg nkg scene does that

rough pulsar
#

what is the fsmevent i can broadcast

jolly oriole
#

idk, gimme a sec

copper nacelle
#

FsmEvent.Finished

#

:)

jolly oriole
#

well, that is one you could broadcast

rough pulsar
#

what

#

oh

jolly oriole
#

also can't believe 56 is typing while offline

rough pulsar
#

wait can you demonstrate in code

primal latch
#

We are planning on making Fyremoth open source, but you probably shouldn't look at it.

#

It's absolute chaos

jolly oriole
#

the eventTarget is btw definetly not complicated at all...

rough pulsar
#

thanks

worn eagle
nimble lake
primal latch
#

grenade, I tried to implement your code by doing this:

public static GameObject familyInteraction;

        public static void Initialize()
        {
            SetupFamilyInteraction();
        }

        public static void SetupFamilyInteraction()
        {
            GameObject inspect = UnityEngine.Object.Instantiate(Fyremoth.preloadedObjects["White_Palace_18"]["Inspect Region"]);
            inspect.name = "familyDialogue";
            var collider = inspect.GetComponentInChildren<BoxCollider2D>();
            collider.offset = new Vector2(0f, -2f);
            collider.size = new Vector2(10f, 1f);

            var fsm = inspect.LocateMyFSM("inspect_region");
            var fsmVar = fsm.FsmVariables;

            fsmVar.GetFsmString("Game Text Convo").Value = "UI_MENU_STYLE_FYREMOTH";
            inspect.SetActive(false);
            GameObject.DontDestroyOnLoad(inspect);
            familyInteraction = inspect;
        }```
#

and then when the scene is loaded:

Fyremoth.Instance.Log(CustomObjects.familyInteraction == null);

                    GameObject interaction = UObject.Instantiate(CustomObjects.familyInteraction);
                    interaction.SetActive(true);
                    interaction.transform.position = new Vector3(50f, 132f, 3.5f);

                    Fyremoth.Instance.Log(interaction == null);```
#

both null checks return false

#

but the interaction doesn't show up and neither does it's hitbox

jolly oriole
#

the collider might be underground then, though should be rendered

#

otherwise that should work

cedar hemlock
#
            if(go1 == null && arg1.name == "Town")
            {
                Log("loading GO");
                go1 = GameObject.Instantiate(assetb.LoadAsset<GameObject>("Capsule"));
                go1.SetActive(true);
                go1.GetComponent<SpriteRenderer>().material = new Material(Shader.Find("Sprites/Default"));
                go1.AddComponent<DamageHero>();
                go1.AddComponent<HealthManager>();
                hm = go1.GetComponent<HealthManager>();
                hm.hp = 100;
                Log("GO loaded");
            }
```for reference
#

oh nvm saleh added his code to the docs

primal latch
primal latch
#

Something else: when getting the current scene, getting the game object and trying to log itโ€™s coordinates it give a null reference error.

jolly oriole
#

at which point of that sequence

primal latch
#

At the end

#

After the final null check

#

Just realised I forgot to add (clone) behind it

jolly oriole
#

nice

primal latch
#

So that is probably unrelated

jolly oriole
#

but i meant:
getting scene
log
getting game object
log
get coordinates
log

primal latch
#

The get coordinate

#

I think. I have the get statement in the log

rough pulsar
#

the

jolly oriole
#

the

kindred sedge
#

so how hard would it be to go in and replace enemies with specific ones by hand? like to make new encounters

ornate rivet
#

not that hard as long as you have modding knowledge

elfin thorn
#

Well guys, im trying to make this skin based on Hollow Knight, i would love some tips on how i can complete this and how to change the other sprites, any tips and any help is much appreciated, if anyone from TWP mods would like to give some advices too!

cedar hemlock
#

well if you can get a reaction from TWP you're very lucky

elfin thorn
#

Anyone that made any skin that can help would be a lot too

cedar hemlock
elfin thorn
#

Ok, cool!

#

ty

cedar hemlock
#

the error shows up everytime i try to hit the enemy

jolly oriole
#

looks like whatever is supposed to be spawned when getting hit is null

cedar hemlock
#

that would be

                InfectedEnemyEffects ogrimHitEffects = Kin.GetComponent<InfectedEnemyEffects>();
                foreach (FieldInfo fi in typeof(InfectedEnemyEffects).GetFields(
                    BindingFlags.Instance | BindingFlags.NonPublic))
                {
                    // Reposition where the hit effect comes from to be slightly higher
                    if (fi.Name == "effectOrigin")
                    {
                        fi.SetValue(iee, new Vector3(0, 0.5f, 0f));
                    }
                    else fi.SetValue(iee, fi.GetValue(ogrimHitEffects));
                }

```this part of saleh's code?
jolly oriole
#

maybe

jolly oriole
#

<@&283547423706447872>

jolly oriole
#

i don't know how i manage to break my entire modded installation every once in a while

primal latch
#

same

jolly oriole
#

ok, maybe i just broke more than the modded installation

primal latch
#

oof

floral blade
#

is this registry magic gone wrong?

jolly oriole
#

i have no idea

#

apparently a file in my main installation got fucked while i modded a seperate installtion

jolly oriole
#

i apparently fixed it somehow

#

idk what was wrong tbh

primal latch
#

Could there be any reason why an enemy I'm spawning on scene load would get displaced when entering from one room and not from another

steady comet
#

It's unlikely this is the reason, but are either of the scenes you're coming from boss scenes?

primal latch
#

no. The scene that displaces it is Ruins2_03B

steady comet
#

What is the scene that doesn't displace it?

primal latch
#

Ruins1_18

steady comet
#

Uhh

#

So which is the scene you're trying to spawn the enemy in? Because IIRC those two are connected

primal latch
#

Ruins2_01

steady comet
#

Oh I'm dumb, you're coming from the bench and not from the walkway

#

Uhh

#

Well it's not totally impossible that this would be the reason, because Ruins2_03b was split off from Ruins2_03

primal latch
#

how would that affect it?

steady comet
#

You could try coming to Ruins2_01 from other scenes via dreamgate/benchwarp/doorwarp and seeing if you can spot the pattern

steady comet
# primal latch how would that affect it?

Well, there's been an issue in rando where certain scene changes (made through the ...activeSceneChanged hook) fail to work if the previous scene was a boss scene, so that's why I suggested it

primal latch
steady comet
#

dreamgate from Ruins2_03, so it's definitely when you're coming in through the top transition that breaks it?

primal latch
#

Just tried that. It's definitely the transition

steady comet
#

Huh

#

I can't think of anything then :S

primal latch
#

Me neither

floral blade
#

what does a game object need to damage player but not send them to hazard respawn ?

rough pulsar
#

DamageHero normal...?

floral blade
#

so just a collider and damageHero ?

rough pulsar
#

yeah?

floral blade
#

okay will try that

worn eagle
#

layer 11

rough pulsar
#

@floral blade

#

11

floral blade
#

gotcha, thanks!

rough pulsar
#

thanks ๐Ÿ‡ฎ๐Ÿ‡น

jolly oriole
#

22 also works, should be enemy attack afaik

charred topaz
#

My mods should be all set for release whenever. I also have a new video setup for the new feature to IKG too.

#

Also, is the modlinks format the same still (A zip with the mod and readme?)

rough pulsar
#

Yeah it should be

#

It is

charred topaz
#

ok cool

cedar hemlock
#

and other files

#

if you want dll's or other files not to be loaded add it into a subfolder of the zip

#

then the api has no trouble with it

rough pulsar
#

While i was messing around with mi's source code

#

I realized you can "recommend" other mods within your mod

cedar hemlock
#

?

rough pulsar
#

Via Optional tag

#

You can choose whether you wanna install it or not with the mod

cedar hemlock
#

interesting

rough pulsar
#

Only two mods added it

#

Redwing mod as well

jolly oriole
#

oh, old modlinks

rough pulsar
#

Wait what? There is a new modlinks page??

cedar hemlock
#

ye

#

for the 1.5 installer

charred topaz
cedar hemlock
#

ye better wait for MIwhatever to be released

#

also, grenade you call it MI2.5 but your github says MI3.0 which one is it??

jolly oriole
#

56's mi2.5

cedar hemlock
#

and MI3.0?

rough pulsar
#

MI(2.5+3.0)/2

#

Save settings should accept something like List<int> right?

cedar hemlock
#

ye

#

well

#

i tried it

rough pulsar
#

did it work?

cedar hemlock
#

i can find it in the globalsettings file

#

but when i change it nothing actually changes

#

though that might be a problem with my code

cedar hemlock
#

probably a problem with my code*

floral blade
#

how do i make to colliders like collide and not just pass through each other if both are enemies ?

#

do i have to detect it in code with a trigger and push?

rough pulsar
light zodiac
#

MAPI suggestion: dont yeet toggled off mods from the top left list but instead, change/append its "version" text to "DISABLED"

rough pulsar
#

Is there any way to communicate with a mod without directly using it as a dependency?

steady comet
#

If you have control over both mods then you can do something like that

light zodiac
#

What's wrong with adding as dependancy

floral blade
steady comet
#

If you're adding to modlinks is the sha256 of the zip or the dll?

jolly oriole
#

new modlinks: zip

steady comet
#

K

#

not that anyone will be using it for a million years

crude wave
#

When are you going to release the new "Mod Installer" compatible with version 1.5 ??

steady comet
elfin thorn
#

So well

#

Im between this two

#

First one looks more like the original

steady comet
elfin thorn
#

Second one maintains the knight essence

radiant basin
#

i like the first one

jolly oriole
#

flib, check your PR

elfin thorn
#

Making a skin is so much work lol

radiant basin
#

yep good luck

steady comet
jolly oriole
#

it does

steady comet
cedar hemlock
#

ah but if i need to put a value there that it can find it in my mod, where do i define said value?

#

probably in the CSProj, but what do i call it

jolly oriole
#

any value, just don't let it be lower than the last release

cedar hemlock
#

ah ok

#

makes sense i was being dumb

jolly oriole
#

but in the actual mod, it's dependend on wether you use old or new csproj

#

old: in assemblyinfo.cs
new: in the csproj itself

cedar hemlock
#

idk probably old

#

the mod itself is pretty old

#

idk if vs updates it

steady comet
#

But can't you simply put it in override string GetVersion()?

jolly oriole
#

yea

#

but you can have the difference of modlinks version, actuall dll version (dll file version as well if we want to be specific) and version shown in game

cedar hemlock
#
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
```which one?
jolly oriole
#

both

cedar hemlock
#

k

#

what are .pdb files for?

#

i just added them cus other mods have them, but are they needed?

jolly oriole
#

to see line numbers on exceptions

steady comet
#

So with the pdb included modlinks will get better error messages?

floral blade
#

wait 1.5 unity supports pdb files and not just mdb files ?

cedar hemlock
#

hopefully version number should actually work now

rough pulsar
#

i'm gonna try if putting pdb in mods folder works

#

90% chance that modding api'll just crash