A paired client/server addon for Schedule I dedicated servers that lets players raise their hands and allows nearby players to rob lootable inventory through the game's native pickpocket-style UI.
- Paired client and server companion addon built on the S1DS API
- Uses S1DS companion metadata so servers can require the matching client addon
- Press
Xon the client to toggle hands-up state when the local player can act - Uses S1DS custom messaging for authoritative robbery session state
- Reuses the native pickpocket-style screen instead of a separate custom canvas
- Server validates robber and target state before transferring items
dotnet build S1DS-PlayerRobbery.csproj -c Mono_Client
dotnet build S1DS-PlayerRobbery.csproj -c Mono_Server
dotnet build S1DS-PlayerRobbery.csproj -c Il2cpp_Client
dotnet build S1DS-PlayerRobbery.csproj -c Il2cpp_ServerBuild output lands in bin/<Configuration>/<TargetFramework>/. If deployment paths are configured, the DLL is also copied to the matching Mods folder.
dotnet run --project tests/S1DSPlayerRobbery.Tests/S1DSPlayerRobbery.Tests.csprojThe test harness validates shared message contracts and release metadata without launching the game. Runtime validation should still use a dedicated server plus client install because robbery behavior depends on live player state, inventory, and the native pickpocket screen.
For the release gate, run:
./tests/Run-ReleaseValidation.ps1Client/: client companion mod, interaction hook, and native pickpocket UI adapterServer/: server-authoritative robbery validation, session state, and inventory transferShared/: metadata and custom-message DTOs shared by both sidestests/: pure contract tests for release validation
- Build or install DedicatedServerMod for both client and server.
- Copy
local.build.props.exampletolocal.build.props. - Set
S1DSApiPathto thebindirectory from a built DedicatedServerMod checkout. - Set
MonoClientGamePathandMonoServerGamePathto your Schedule I client and dedicated server installs. - Build both configurations.
- Install the client DLL on players that should join servers requiring the addon, and install the server DLL on the dedicated server.
When this project is kept next to the DedicatedServerMod checkout under the ScheduleOne workspace, it can inherit the root local.build.props and default S1DSApiPath automatically.
- This is a companion addon: the server assembly declares the required client companion metadata.
- The addon supports Mono and IL2CPP client/server builds.
- Robbery transfer is server-authoritative; the client only presents interaction and inventory UI.
local.build.props,bin/,obj/, and IDE files are intentionally ignored.