You are viewing a potentially older version of this package. View all versions.
Daishi11-SkillLimitExtenderValheim1Compat-1.0.2 icon

SkillLimitExtenderValheim1Compat

Compatibility patch for SkillLimitExtender 1.2.0 on Valheim 1.0.x. Fixes obsolete ConsoleCommand and ZRoutedRpc.Everybody API references.

Date uploaded a week ago
Version 1.0.2
Download link Daishi11-SkillLimitExtenderValheim1Compat-1.0.2.zip
Downloads 125
Dependency string Daishi11-SkillLimitExtenderValheim1Compat-1.0.2

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2350 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2350
dyju420-SkillLimitExtender-1.2.0 icon
dyju420-SkillLimitExtender

Extend skill caps and bonus multipliers via YAML, with server sync and optional relative scaling. Enhanced growth curve adjustment and improved MOD skill compatibility. Includes 'sle_yaml_reload' console command.

Preferred version: 1.2.0

README

SkillLimitExtender Valheim 1 Compatibility

A narrow compatibility patch for SkillLimitExtender 1.2.0 by dyju420 on current Valheim 1.0.x builds.

The official SkillLimitExtender package remains a dependency. This package does not redistribute SkillLimitExtender.

Why this exists

SkillLimitExtender 1.2.0 still references two pre-Valheim-1.0 APIs:

  • the old Terminal.ConsoleCommand constructor signature;
  • the former static field ZRoutedRpc.Everybody.

On Valheim 1.0 these cause:

  • MissingMethodException during SkillLimitExtender Awake();
  • MissingFieldException during player spawn, which can trigger a repeated respawn/destroy loop.

How the compatibility patch works

BepInEx 5 discovers this package as a preloader patcher.

SkillLimitExtender itself lives in BepInEx/plugins, so it is not part of the normal preloader assembly target set. During the patcher's Initialize() phase, before Chainloader loads plugins, this compatibility package:

  1. finds the official skill_Limit_Extender.dll;
  2. verifies SkillLimitExtender is exactly version 1.2.0;
  3. verifies the supported original DLL SHA256 and the expected legacy IL shape;
  4. writes a separately patched copy;
  5. verifies that all four legacy references are gone;
  6. replaces only the profile copy of the DLL.

The replacement is intentionally performed as a new file rather than an in-place edit so mod managers such as Gale can use hardlinked package caches without the shared cached binary being modified.

On later launches the patcher detects that the DLL is already compatible and does nothing.

Exact fixes

  • 2 × ZRoutedRpc.Everybody field reads are replaced with Valheim 1.0's equivalent constant value 0L.
  • 2 × old Terminal.ConsoleCommand constructor calls are upgraded to the Valheim 1.0 signature, supplying false for the newly inserted boolean parameter.

Safety

This compatibility package is deliberately strict.

It supports only:

  • SkillLimitExtender 1.2.0;
  • original DLL SHA256: 30EF37FEFC03C91DAF7F5CE34D68B7CF404112849B87B085AF9AE0635FCA6880;
  • exactly two legacy ZRoutedRpc.Everybody loads;
  • exactly two legacy ConsoleCommand constructor calls.

Unknown or partially modified binaries are not patched.

Installation

Install normally through Thunderstore, r2modman, or Gale.

Dependencies install automatically:

  • BepInExPack Valheim 5.4.2350
  • SkillLimitExtender 1.2.0

If SkillLimitExtender was manually modified previously, reinstall its official 1.2.0 package once before the first launch with this compatibility patch.

Uninstalling

This patch modifies the local profile copy of SkillLimitExtender on first launch. If you uninstall this compatibility package and want the original upstream SLE binary back, reinstall SkillLimitExtender 1.2.0 through your mod manager.

Tested

  • Valheim 1.0.15 / network version 40
  • BepInExPack Valheim 5.4.2350
  • SkillLimitExtender 1.2.0
  • Gale 1.22.3

Credits

SkillLimitExtender is by dyju420:

https://thunderstore.io/c/valheim/p/dyju420/SkillLimitExtender/

Upstream source:

https://github.com/kydas420-damh901/Skill-Limit-Extender

This package is an independent compatibility patch and is not an official SkillLimitExtender release.

The compatibility patch itself is MIT licensed.

CHANGELOG

Changelog

1.0.2

  • Fixed an ObjectDisposedException caused by closing Mono.Cecil's source stream before lazy method-body reads completed.
  • Keeps the source assembly open through scanning, patching and writing.
  • Added strict SHA256 validation for the supported original SLE 1.2.0 binary.
  • Added post-write IL verification.
  • Preserves Gale package caches by replacing the profile DLL instead of editing a potentially hardlinked package file in place.
  • Fixes two obsolete ZRoutedRpc.Everybody reads.
  • Fixes two obsolete Terminal.ConsoleCommand constructor calls.