A player list overlay for Schedule I clients connected to a dedicated server, built on the S1DS mod API.
- Hold the configured key (default F8) to show the player list; release to dismiss it
- Displays player name, role badge (Operator / Admin / Player), and ping
- Roles are colour-coded: cyan for Operator, gold for Admin, grey for Player
- Ping is colour-coded: green < 70 ms, yellow 70–150 ms, red > 150 ms
- Panel is anchored to the top-right corner of the screen
- Pings are reported from the client's FishNet RTT and refreshed every few seconds
Settings are stored at:
<game folder>/UserData/S1DS-PlayerList.json
The file is created with defaults on first launch. Available options:
| Key | Default | Description |
|---|---|---|
toggleKey |
"F8" |
Key to hold to show the overlay. Any Unity KeyCode name is accepted (e.g. "Tab", "F8", "BackQuote"). |
Example:
{
"toggleKey": "F8"
}dotnet build S1DS-PlayerList.csproj -c Mono_Client
dotnet build S1DS-PlayerList.csproj -c Mono_ServerBuild output lands in bin/Mono_Client/netstandard2.1/ and bin/Mono_Server/netstandard2.1/. If a deployment path is configured the DLL is also copied there automatically.
No extra configuration is needed. The project automatically inherits game paths from the root local.build.props and resolves the S1DS API DLLs from the repo's bin/ directory.
- Copy
local.build.props.example→local.build.propsin this directory. - Set
MonoClientGamePath/MonoServerGamePathto your Schedule I install. - Ensure the S1DS mod (
DedicatedServerMod_Mono_Client.dll/DedicatedServerMod_Mono_Server.dll) is present in the game'sMods/folder or in your deployment path — the build looks in the deployment path first, then falls back to<GamePath>/Mods. - (Optional) Set
ClientDeploymentPath/ServerDeploymentPathto auto-copy the built DLL after build.
local.build.props is git-ignored and never committed. See local.build.props.example for the full annotated template.
| Property | Required | Description |
|---|---|---|
MonoClientGamePath |
Yes | Schedule I client install directory (contains Schedule I_Data/Managed/, MelonLoader/, and Mods/). |
MonoServerGamePath |
Yes | Schedule I dedicated server install directory. Can be the same path as the client. |
ClientDeploymentPath |
No | After a successful Mono_Client build, copy the DLL here. Defaults to <MonoClientGamePath>/Mods. Also used as the first search location for DedicatedServerMod_Mono_Client.dll. |
ServerDeploymentPath |
No | After a successful Mono_Server build, copy the DLL here. Defaults to <MonoServerGamePath>/Mods. Also used as the first search location for DedicatedServerMod_Mono_Server.dll. |
<!-- local.build.props -->
<Project>
<PropertyGroup>
<MonoClientGamePath>/path/to/Schedule I</MonoClientGamePath>
<MonoServerGamePath>/path/to/Schedule I</MonoServerGamePath>
<!-- optional: override the default Mods/ deployment targets -->
<!-- <ClientDeploymentPath>/path/to/client/Mods</ClientDeploymentPath> -->
<!-- <ServerDeploymentPath>/path/to/server/Mods</ServerDeploymentPath> -->
</PropertyGroup>
</Project>- Does not reference the root
DedicatedServerMod.csproj— compiles against the pre-built DLLs in the game install. - If
local.build.propsis configured, the built DLL is copied into the matching gameModsfolder after build. - The project file selects the client or server source file based on the build configuration, so each side gets a clean mod class without any
#if CLIENT/#if SERVERguards.
