This pack is for Valheim modding. It includes
- the unstripped Unity libraries,
- Mono libraries for .NET 4.5,
- Mono libraries from Unity for .NET 4.5,
- the System.Buffers library,
- Windows and Unix versions of BepInEx and UnityDoorstop,
- a BepInEx config with the console enabled by default,
- and a bash script to start the server on Linux via cli.
It runs both on clients and servers.
- Table of Contents
- Links
- Installation
- Building the pack yourself
- FAQ
- Are you open to pull requests?
- Will this package be maintained?
- Can I submit some-random-name.dll to the pack?
- I'm getting a weird audio-related error when I start Valheim.
- How do I configure my server on Linux with the bash script?
- What's my Linux server's password if I use the bash script?
- UNSAFE_ROOT_EXECUTION
- There are DLLs that aren't really necessary in the pack
- There's a .NET/mono/Unity DLL missing from the pack
- Can I run this on Linux with Proton?
- SHA-256 File Checkums
The package's zip is structured as follows:
BepInEx_Valheim_Full/
BepInEx/
config/
...
core/
...
doorstop/
...
.version
unstripped_corlib/
...
doorstop_config.ini
start_server_bepinex.sh
winhttp.dll
checksums.sha256
icon.png
manifest.json
README.md
Extract the files manually to your Valheim installation so you get the following structure:
Valheim/
BepInEx/
config/
...
core/
...
doorstop/
...
.version
unstripped_corlib/
...
doorstop_config.ini
start_server_bepinex.sh
winhttp.dll
If you're on Windows, just run the game via Steam.
For Linux users,
- use
start_game_bepinex.sh
to start your game client - use
start_server_bepinex.sh
to start your game server
Just install this plugin to your current BepInEx plugins and it'll auto-install + -update BepInEx Valheim Full for you: https://valheim.thunderstore.io/package/1F31A/BepInEx_Valheim_Full_Updater/
Notes:
- Before you start, create an empty folder to put everything in. Start clean and don't mix.
- We use
C:\
with the standard Unity install directory as an example. Replace it with your own paths.
- Get Mono 6.12.0 Stable (6.12.0.122) 64-bit
- Get Unity 2019.4.20f1
- Note: You can extract the installer to get access to the DLLs if you don't want to install Unity
- Get BepInEx for Windows x64 5.4.8
- Get BepInEx for Unix 5.4.8
- Get UnityDoorstop for Windows x64 3.3.0.0
- Get UnityDoorstop.Unix for Linux 1.5.0.0
- From
C:\Program Files\Mono\lib\mono\4.5
- Copy all DLLs
- Copy the whole folder
C:\Program Files\Mono\lib\mono\4.5\Facades
(not just the DLLs inside, the folderFacades
)- Keep the DLLs in that subfolder
- From
C:\Program Files\Unity\Hub\Editor\2019.4.20f1\Editor\Data\MonoBleedingEdge\lib\mono\4.5
- Copy all DLLs (overwrite when prompted)
- Copy the whole folder
C:\Program Files\Unity\Hub\Editor\2019.4.20f1\Editor\Data\MonoBleedingEdge\lib\mono\4.5\Facades
(not just the DLLs inside, the folderFacades
)- Keep the DLLs in that folder, overwrite when prompted
- From
C:\Program Files\Unity\Hub\Editor\2019.4.20f1\Editor\Data\PlaybackEngines\windowsstandalonesupport\Variations\mono\Managed
- Copy all DLLs (overwrite when prompted)
- From
C:\Program Files\Unity\Hub\Editor\2019.4.20f1\Editor\Data\Managed\UnityEngine
- Copy all DLLs (overwrite when prompted)
- Get a copy of System.Buffers (target .NET 4.5) and add the DLL: https://www.nuget.org/packages/System.Buffers/
- Copy our
doorstop_config.ini
- Copy our custom
start_server_bepinex.sh
orstart_game_bepinex.sh
bash scripts for Linux servers - Put the pack into your Valheim client or server, run it once to generate the
config/
directory with defaultBepInEx/config/BepInEx.cfg
. Then setEnabled = true
in the category[Logging.Console]
ofBepInEx/config/BepInEx.cfg
to enable the console, and copy the config folder to your pack - Run the checksums (bash command):
find . -type f -exec sha256sum {} \;
Yes.
Yes. Both the GitHub and the packages on the mod websites are maintained by a team. If any one person becomes unavailable, the others can continue to maintain it. Should the whole team want to stop, we're open to considering new volunteers.
This pack is only meant for .NET/Mono/Unity DLLs. If it's part of that, sure. Make sure to include where you got it from and why you need it.
Try removing UnityEngine.AudioModule.dll
from your DLLs.
Open the bash script in your favorite text editor, look at the very top.
If you didn't configure the bash script to set your own password, it'll autogenerate a random password and show it in your terminal on startup.
When you try to run the Linux server via the bash script, you may encounter a similar error:
ERROR: Running as root exposes your machine to malware and is unnecessary in a large majority of cases.
For environments that require running the bash script as root, you can start it with:
./start_server_bepinex.sh UNSAFE_ROOT_EXECUTION
or with the environment variable
UNSAFE_ROOT_EXECUTION=true ./start_server_bepinex.sh
We're aware. If you've got a good reason to delete them (e.g. some are already loaded by the game or by BepInEx) and you want to improve the pack, submit a pull request with the change.
Submit a pull request with the details and we'll get it added.
Yes. Follow the guide here: https://bepinex.github.io/bepinex_docs/master/articles/advanced/steam_interop.html#protonwine
Checksums are in the file checksums.sha256
.
Checksums are sorted alphabetically so they can easily be compared even in simple text editors.
- Moved
BepInEx/core_lib
tounstripped_corlib/
to avoid a bug caused by using UnityDoorstop with r2modman - Added
.version
file as additional version comparison with Thunderstore API pre-checksum - this does not replace the more detailed checks - Updated
start_server_bepinex.sh
to support spaces in world names - Reordered DLL copy instructions so the Unity core DLLs are kept over the windowsstandalonesupport variation DLLs