-
Notifications
You must be signed in to change notification settings - Fork 8
Mod Creation_Updating Your Mods for Seekers of the Storm
TheTimeSweeper edited this page Sep 11, 2024
·
16 revisions
report on discord here if you find anything else, please and thanks
there is a namespace that begins Assets.RoR2
if you have a class named Assets
(all henry survivors will), code attempting to call this class will be intercepted by that namespace. Before updating. Rename Assets
class to just Asset
or ModAssets
or something
- in visual studio, right click your csproj > properties > General > set Target Framework to 2.1 if it isn't already
- I'm copypasting this to update my nuget libraries
<PackageReference Include="BepInEx.Core" Version="5.*" />
<PackageReference Include="RiskOfRain2.GameLibs" Version="1.3.2-r.1" />
<PackageReference Include="UnityEngine.Modules" Version="2021.3.33" />
<PackageReference Include="MMHOOK.RoR2" Version="2024.9.5">
<NoWarn>NU1701</NoWarn>
</PackageReference>
- update your unity project to version 2021.3.33
- update your wwise project to v2023.1.4.8496 and rebuild your soundbanks
- I had issues loading the soundbank through code, so I just cut that code and renamed my soundbank from .bnk to .sound and let r2api do it
- if your weaver doesn't weave, make sure your post build is targeting the right destination (2.1 folder instead of 2.0) and throw this dll in your libs folder haha woops who put that there
-
TemporaryOverlay
changed toTemporaryOverlayInstance
- instead of
TemporaryOverlay overlay = someModelGameObject.AddComponent<TemporaryOverlay>();
TemporaryOverlayInstance temporaryOverlayInstance = TemporaryOverlayManager.AddOverlay(someModelGameObject);
- rest of the fields are generally the same, sans
AddToCharacerModel
being corrected - instead of destroying the component, now do
if(temporaryOverlayInstance != null) temporaryOverlayInstance.Destroy()
- instead of
- Achievements now give lunar coins.
RegisterAchievementAttribute
now has a field for lunar coin rewards- mastery skins give 10
- some skill achievements give 3, some 5. check the game's achievements for more examples
- On that, UnlockableAPI hasn't been updated to work with this. I believe it's ripperino for that. you should update your achievements to just use the registerachievementattribute. Henry Tutorial has a good way of doing this.
- a lot of catalog.init functions have been changed to be coroutines returning
IEnumerator
instead ofvoid
. doyield return Orig()
instead of justorig()
-
DamageType
changed toDamageTypeCombo
(due to the addition ofDamageTypeExtended
which is justDamageType
again cause they ran out of room for more damagetypes)- This doesn't affect r2api damageapi. that should be working the same. if you are seeing issues with that, report them
-
BulletAttack.BulletHit
is pooled now. If, for whatever reason, you were instantiating any directly (with e.g. = default(BulletHit)), it'll now cause some weird NREs -- capable of, among other things, completely killing the BepInEx logger if you try to log it directly.- This needs to be replaced with BulletAttack.GetBulletHit(), and probably something to clear the pool manually later if you aren't doing stuff during existing BulletAttack code
- function
GenericSkill.OnFixedUpdate
now has afloat deltaTime
parameter
- some Effects and ProjectileGhosts are pooled now.
- if your projectiles aren't set up for this, I just did a
projectileController.ghostPrefab.AddComponent<VFXAttributes>().DoNotPool = true;
to avoid it for now - I would highly suggest looking into adding an
EffectManagerHelper
component to pool your effects. pool is cool. I will update this with more detail when I do it myself
- if your projectiles aren't set up for this, I just did a
- in
HenryMod.Modules.Prefabs
, changecharacterModel.temporaryOverlays = new List<TemporaryOverlayInstance>();
- if you set up your
KinematicCharacterController
yourself, set theplayerCharacter
value to true for survivors.- Henry clones commando's body for his setup so you're likely not to need to
- If your mod is translated, in addition to
es-ES
for Spanish (Spain), there is nowes-419
for Spanish (Mexico)