Skip to main content

Installing BepInEx on your Valheim Server

As of writing this article, installing BepInEx using our GCP (Game Control Panel) requires contacting our support team through Discord or a Client Area Ticket. If your prefer, you can go through some of the process yourself, but we'll need to change the startup parameter for you. We're going to cover the steps for installing BepInEx manually and then hand off the startup command to the support team at the end while still providing the changes you'll need to make to it if you're not using our GCP.

info

We can do the entire installation process for you if you're using our Game Control Panel! There is no requirement for you to do any of the process on your own!

Installation

You'll need to start by downloading the latest version of the BepInEx Pack that's been configured for Valheim by denikson. After downloading it, decompress the file into a new folder on your PC and upload the contents of the BepInExPack_Valheim to your server's root directory using SFTP.
With the BepInExPack_Valheim folder contents uploaded to your server, you'll need to update the startup command. If you're using our GCP (Game Control Panel) you'll need to contact our support team via a Discord or a Client Area Ticket and we'll be able to update it for you. If you're using a VPS or other service where you can manage your own startup command and/or run .sh scripts, you can do the steps below on your own.

With the startup script

BepInEx provides a pre-built .sh, or shell, script that contains the variable declarations needed to start the BepInEx enabled Valheim server correctly. You can find the file in your server's root under the name start_server_bepinex.sh and you'll be able to edit your server's settings, such as the server name, password, and world name, by changing the command line arguments in the exec command at the bottom of the script.
After modifying the command line arguments to the values you want to use, you can run the script on a Linux Server by first modifying the file permissions to allow the script to be executed, then navigating to the server root and typing ./start_server_bepinex.sh into the console.

With BepInEx installed and the ability to start it, you can now Install BepInEx Plugins.

tip

Executing the script in your console will lock it from being used for other things, and closing the SSH session will stop it's execution. Use TMUX or Screen to keep the script running in the background while allowing you to have other consoles open.

With a startup command

If you're unable to run .sh scripts in your environment, or would just prefer to have a single command to run instead of a shell script, you can take a page from the Pterodactyl egg provided by the ParkerVCP repository where they use the following command to start a BepInEx enabled Valheim server after installation.

export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"My server\" -port 2456 -world \"Dedicated\" -password \"secret\"

We've modified the command to use the defaults used in the BepInEx startup script as well as to remove the parts used by Pterodactyl to process it's user variables. You can further modify it by adding additional command line arguments to the end, such as -public 0 which can be used to mark your server as private, removing it from the public server list.

With BepInEx installed and the ability to start it, you can now Install BepInEx Plugins.

Reach Out!

Have Questions? Need Help? Feel free to reach out!

Join our Discord