Skip to content

Headcrab Troubleshooting For SLSsteam

_drazy edited this page Jul 28, 2026 · 54 revisions

Check For Your SLSlog

Regular SLSsteam Log Location

cat ~/.SLSsteam.log

Flatpak SLSsteam Log Location

cat ~/.var/app/com.valvesoftware.Steam/.SLSsteam.log

Using Original Config. Prevents Headcrab From Overwriting User Settings

curl -fsSL "https://raw.githubusercontent.com/Deadboy666/plzfindmyconfigforme/refs/heads/main/headcrabd.sh" | bash

Finding The Config Directory.

    • First Navigate To Your SLSsteam config folder

FlatpakConfigDirectory: For Flatpak Steam Installations.

cd ~/.var/app/com.valvesoftware.Steam/.config/SLSsteam/

NativeConfigDirectory: For Native Steam Installations.

cd ~/.config/SLSsteam/
    • Once you have found where your config is located you can use the edit config section.

Editing The Config.

SafeMode:

  • Enable SafeMode (Default Behavior For H3adcr-b.)
sed -i "s/^SafeMode:.*/SafeMode: yes/" config.yaml
  • Disable SafeMode (Dont Do This For Atomic/Steamos Like Distros.)
sed -i "s/^SafeMode:.*/SafeMode: no/" config.yaml

PlayNotOwnedGames:

  • Enable PNOG (May Have A SideEffect Of Showing Extra Games Default Behavior In Headcrab.)
sed -i "s/^PlayNotOwnedGames:.*/PlayNotOwnedGames: yes/" config.yaml
  • Disable PNOG (Best For 3rd Party Downloaders)
sed -i "s/^PlayNotOwnedGames:.*/PlayNotOwnedGames: no/" config.yaml

Notifications:

  • Enable Notifications (Notifications For SLSsteam Missing Config Entries.)
sed -i "s/^Notifications:.*/Notifications: yes/" config.yaml
  • Disable SLSloading Notification (Faster Gamemode Loading From Wayland.)
sed -i "s/^NotifyInit:.*/NotifyInit: no/" config.yaml
  • Enable SLSloading Notification (Shows SLSsteam Loaded Notif* Hangs On Distros Using Gamescope Session With Pure Wayland)
sed -i "s/^NotifyInit:.*/NotifyInit: yes/" config.yaml

Missing Config Options.

  • First Open Your SLSsteam config.yaml With The Command Below.
curl -fsSL headcrab.pages.dev/config | bash
  • Then match the section to find what would be missing in the config.

  • Paste the missing section in a newline in your config to update it fixing the error.

  • Finally save the config.yaml restart steam.

Config Error "Issues during config loading encountered! Missing key(s)"

#Custom ingame statuses. Set AppId to 0 to disable
IdleStatus:
  AppId: 0
  Title: ""
#Changes your account's E-Mail clientsided. Leave blank to disable
FakeEmail: ""

#Changes your wallet's balance clientsidedly. 0 to turn off
FakeWalletBalance: 0
#Override game titles. Only works with owned appIds! For injected appIds combine them with FakeAppIds.
GameTitles:
#Override purchase time stamps added in SLSsteam-(20260408184420)
SubscriptionTimestamps:
#Disable Cloud saves set to no if using CloudRedirect added in SLSsteam-(20260509200917)
DisableCloud: yes
#Automatically grab Achievement schemas from Steams CDN which makes them always up to date
#Slows down game's loading page the first time you click them
#If you don't want this set it to 0 and use tools/schema-grabber instead to grab them outside of steam
#to get the achievement schemas. Doing so will revert to the previous behaviour of falling back to
#the offline cache (appcache/stats) when a GetUserStats request fails
MaxSchemaTries: 10
#Override Depot manifest IDs
#Use this to download older game versions or to lock a game to a specific version
ManifestIds:

#Never download these depots
DepotBlacklist:
#Disable updates for AppIds on AdditionalApps
#Only works for unowned games, since those do not get any depots from CUserAppManager::BuildDepotDependency.
#For owned games use ManifestIds
DisableUpdates: yes
#Dump all used IClientInterfaceMaps
DumpClientInterfaces: no
#Overrides your SteamId an app sees. Only needed when the automatic SteamId spoofing
#fails (some games do call GetSteamId before they request your ticket)
#Also can be used to workaround locked saves
#Either set to SteamId or to 0 to use the SteamId in the cached AppOwnershipTicket
SteamIdOverride:
#Changes your Persona's Name clientsidedly
FakeName: ""

Setting Up SLSonline.

Some games allow for mp sessions by leveraging spacewar.

This will be a short tutorial on how to set it up so you can be gaming with your friends.

  • Step1: Finding and opening your config.yaml with the power of xdg-open
curl -fsSL headcrab.pages.dev/config | bash
  • Once your config is open in your default texteditor we can proceed to the next step.

  • Step2: Finding the appid of the game you want to spacewar.

  • Find Your Game on Steamdb, and copy the appid. ex. https://steamdb.info/app/480/

  • Now for this we will have a example for this one we will be using spacewar.

  • In your config.yaml look for FakeAppIds: Section.

  • Now for the example when we are adding a game to the FakeAppIds Section.

  • We will do this create a line under it.

  • FakeAppIds works this way we have the appid of the game we want to have through spacewar then redirect it spacewar.

  • RealAppid: 480 # Game Name. The example will be below

FakeAppIds:
  480: 480 #Spacewar
  • Step3: Exeptions from missmatched appid's.
  • Some Games Use A Newer check that needs a additional launch option so it can bind to spacewar correctly.
  • Headcrab Bundles in the latest netsock lib to alleviate this.
  • For games that do this we will use the netsock lib.
  • How to use Netsock Lib.
  • Navigate to your steamclient and go the game properties.
  • Paste this as the launch option.
LD_AUDIT="$HOME/.config/SLSsteam/tools/netsock/netsock.so" %command%
  • After that launch the game and invite your friend via the in game overlay.