Skip to content

Latest commit

 

History

History
39 lines (31 loc) · 1.79 KB

File metadata and controls

39 lines (31 loc) · 1.79 KB

s&box Linux Dedicated Server

Summary of Changes

Fixed Path Case Sensitivity Bug

  • engine/Sandbox.Filesystem/LocalFileSystem.cs:14 - Removed .ToLowerInvariant() that was incorrectly lowercasing paths
  • This was the main issue causing /home/davidg/documents instead of /home/davidg/Documents

Fixed Unconditional WIN Define

  • engine/Sandbox.Engine/Sandbox.Engine.csproj - Removed unconditional WIN constant that was applied to all platforms
  • This prevented Windows-only code (like ScreenRecorder) from running on Linux

Fixed Case-Sensitive Path References

  • engine/Sandbox.Engine/Systems/Filesystem/EngineFileSystem.cs - Fixed /addons/base/assets/addons/base/Assets
  • engine/Sandbox.GameInstance/GameInstanceDll.cs - Fixed /base/assets/base/Assets, /citizen/assets/citizen/Assets
  • engine/Sandbox.Menu/MenuDll.cs - Fixed /menu/code/menu/Code, /menu/assets/menu/Assets, etc.
  • engine/Sandbox.Tools/FileSystem.cs - Fixed /addons/base/assets/addons/base/Assets

Shim for Broken Linux Feature

  • engine/Sandbox.Engine/Interop.Engine.cs - Added early return for ReloadSymlinkedResidentResources() on Linux
  • The native C++ code has a bug that crashes when handling symlinks

Runtime Setup

Create relative symlinks in game/ pointing to game/bin/linuxsteamrt64/:

cd game
ln -sf bin/linuxsteamrt64/*.so .
ln -sf bin/linuxsteamrt64/steamclient.so .
ln -sf bin/linuxsteamrt64/libSkiaSharp.so.116.0.0 libSkiaSharp.so
ln -sf bin/linuxsteamrt64/libHarfBuzzSharp.so.0.60830.0 libHarfBuzzSharp.so
ln -sf libsteam_api.so steam_api64.so

Running Dedicated Server

LD_LIBRARY_PATH="$PWD/game/bin/linuxsteamrt64" ./game/sbox-server

For full server functionality, the game requires backend API access (API key, etc.).