Handler registry for Splitux - community-contributed game configurations for local splitscreen multiplayer
Find a file
gabrielgad 7c1eb7a2e1
All checks were successful
CI / validate (push) Successful in 3s
Regenerate index.json for the dark-souls-2-sotfs date
handlers/dark-souls-2-sotfs/handler.yaml was edited on 2026-08-10 and index.json
was not regenerated, so `gen-index.py --check` has failed every run since —
index.json still carried updated: 2026-07-21. Same 59 handlers on both sides;
only that one field differed.

Generated with scripts/gen-index.py rather than by hand-editing the date, since
the generator is what CI compares against and it preserves the hand-written
descriptions a naive regenerate would clobber.
2026-08-20 20:56:30 -04:00
.github/workflows ci: check out full history so the index staleness check is meaningful 2026-08-08 14:23:04 -04:00
docs/proof-of-concept docs: move co-op proof screenshots out of handler dirs 2026-06-09 09:21:28 -04:00
handlers ds2: stop vendoring the mod's build output in here 2026-08-15 09:14:29 -04:00
scripts Generate index.json; add Grounded; fix Grounded 2's appid 2026-08-03 17:01:59 -04:00
.gitignore ds2: drop the deploy backup that got swept into the last commit 2026-08-10 14:33:58 -04:00
index.json Regenerate index.json for the dark-souls-2-sotfs date 2026-08-20 20:56:30 -04:00
README.md handlers: migrate dot-notation options to nested block format 2026-06-14 22:06:07 -04:00

Splitux Handlers Registry

Community-contributed game handlers for Splitux - local splitscreen and remote-play multiplayer on Linux.

What are Handlers?

Handlers are configuration files that tell Splitux how to run a specific game with local splitscreen multiplayer. Each handler contains game-specific settings like executable paths, multiplayer backend configuration, and launch parameters.

Structure

handlers/
├── game-id/
│   ├── handler.yaml    # Handler configuration (required)
│   ├── icon.jpg        # Game icon from Steam cache (required)
│   ├── header.jpg      # Banner image for detail view (required)
│   └── background.jpg  # Background image (optional)

Contributing a Handler

  1. Fork this repository
  2. Create a new directory under handlers/ with your game's ID (lowercase, hyphens for spaces)
  3. Add the required files:
    • handler.yaml - Your handler configuration
    • icon.jpg - Game icon (can be copied from Steam's librarycache)
    • header.jpg - Banner image (library_header.jpg from Steam cache)
  4. Update index.json with your handler's metadata
  5. Submit a pull request

handler.yaml Template

Handlers use nested backend blocks (the canonical form). Include three required fields, a way to find the game, and one backend block:

name: Game Name
exec: game.exe
spec_ver: 3
steam_appid: 123456
author: YourName
version: "1.0"
info: |
  Brief description of the handler.
  Any special instructions or notes.

# One backend block, auto-detected by being present:
goldberg:
  settings:
    force_lobby_type.txt: "2"
    invite_all.txt: ""

Available backends: goldberg (Steam/gbe_fork), eos (Epic Online Services LAN), photon, facepunch, standalone. Multiple can coexist (e.g. eos + goldberg). See the full field and emulator-tuning reference: HANDLER_OPTIONS.md (and assets/handler_template.yaml in the splitux repo).

Older handlers using dot-notation (goldberg.settings.x.txt) or the legacy backend: field still load, but new handlers should use nested blocks.

index.json Entry

Add your handler to the handlers array. The backend field is a short label (e.g. goldberg, eos+goldberg, photon):

{
  "id": "game-id",
  "name": "Game Name",
  "author": "YourName",
  "steam_appid": 123456,
  "backend": "goldberg",
  "description": "Brief description for the browse list",
  "updated": "2026-06-13"
}

Guidelines

  • Test your handler before submitting
  • Include clear instructions in the info field if special setup is required
  • Use descriptive IDs (e.g., portal-2, stardew-valley)
  • Provide high-quality images when possible

License

Handler configurations in this repository are provided as-is for use with Splitux.