Apple Silicon Macs use ARM64 architecture, while most modding tools like BepInEx were originally built for Intel’s x86_64 architecture. This is somewhat of a problem, as it creates compatibility challenges that require specific workarounds.
Prereqs
- Hollow Knight: Silksong (GOG or Steam version)
- An Apple Silicon Mac (M1/M2/M3/M4)
- Terminal access
- Administrator privileges for some commands
Download BepInEx
Currently, BepInEx 5.x (the stable release) only provides x86_64 builds for macOS. While BepInEx 6.x has experimental ARM64 support, it’s still in development and may have compatibility issues with existing mods. We’re gonna stick to the stable version for now.
- Go to the official BepInEx releases page: https://github.com/BepInEx/BepInEx/releases
- Download
BepInEx_macos_x64_5.4.23.3.zip
(or the latest 5.x macOS version available) - Done.
Locate Your Silksong Installation
For GOG Users
If you purchased Silksong from GOG, the installation location depends on where you chose to install it:
- Most common location:
/Applications/Hollow Knight Silksong/
- Custom locations: Wherever you dragged the app during installation
To find it easily:
- Open Finder.
- Press
Cmd + Space
and search for Silksong. - Right-click the result and select Show in Finder.
For Steam Users
Steam games on macOS are typically located at:
~/Library/Application Support/Steam/steamapps/common/Hollow Knight Silksong/
To get there quickly:
- Open Steam.
- Right-click Hollow Knight: Silksong in your library.
- Select Properties, then Local Files, and then Browse Local Files.
Install BepInEx
Extract that BepInEx download directly into your Silksong game folder (the same directory containing
Hollow Knight Silksong.app
).Configure the run script:
- Open
run_bepinex.sh
in a text editor (TextEdit works fine). - Find the line:
executable_name=""
. - Change it to:
executable_name="Hollow Knight Silksong.app"
. - Save the file.
- Open
Make the script executable:
cd "/path/to/your/Hollow Knight Silksong folder" chmod +x run_bepinex.sh
Handle Architecture Compatibility
The ARM64 vs x86_64 Problem
When you first try to run BepInEx, you’ll run into an error like:
mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')
This happens because your M-series Mac is trying to run Intel x86_64 code natively, which won’t work.
Force Rosetta Mode
Apple’s Rosetta 2 can translate x86_64 code to run on ARM64 processors. We’ll use the arch
command to force everything into Intel compatibility mode:
arch -x86_64 ./run_bepinex.sh
Configure the Game for Rosetta (Optional but Recommended)
For best results, also set the game itself to run under Rosetta:
- Right-click
Hollow Knight Silksong.app
. - Select Get Info.
- Check Open using Rosetta.
Bypass macOS Security Restrictions
The Code Signature Issue
Even after fixing the architecture problem, you might encounter:
code signature...not valid for use in process: library load disallowed by system policy
This is macOS preventing unsigned libraries from loading.
Remove Quarantine Attributes
Fix this by removing the quarantine flags that macOS automatically applies to downloaded files:
sudo xattr -r -d com.apple.quarantine "/path/to/your/Hollow Knight Silksong folder"
Enter your administrator password when prompted.
Test Your Installation
First Launch
Run BepInEx for the first time:
arch -x86_64 ./run_bepinex.sh
If successful, you should see:
- The game launches normally
- A
BepInEx/config/
folder is created - A
BepInEx/LogOutput.log
file appears with initialization messages
Verify BepInEx is Working
Check the log file to confirm BepInEx loaded:
cat BepInEx/LogOutput.log
Look for lines mentioning “BepInEx” and plugin loading.
Install Mods
With BepInEx working, you can now install mods:
- Download mods from Nexus Mods.
- Extract mod zip and copy the DLL files to to
BepInEx/plugins/
folder - Launch the game using
arch -x86_64 ./run_bepinex.sh