SimpleLinks Docs

Sync Actions

Drive the nickname / role / Oxide-group reconciliation loops. The bot and game plugins poll these endpoints to discover what work needs doing, perform it, then confirm completion.

GETpendingNicknamesguildsync

List up to 50 users whose Discord nickname is out of sync with their cached Steam name.

Response

{
  "349…": "PlayerOne",
  "123…": "PlayerTwo"
}
GETconfirmNicknameSyncguildsync

Confirm that a Discord nickname has been written, so SimpleLinks marks the user as synced.

Parameters

id* (query)
string
Discord user ID.
nickname* (query)
string
The nickname that was actually applied (after prefix/suffix).

Response

"Nickname sync confirmed"
GETlistAllNicknamesguildsync

Return discord_id → steam_name for every linked user in this guild. Zero-width characters are stripped.

Response

{
  "349…": "PlayerOne",
  "123…": "PlayerTwo"
}
GETpendingRolesserversync

List up to 50 users on this Server whose Oxide groups differ from the last confirmed Discord role sync.

Response

[
  {
    "discord_id": "349…",
    "steam_id": "7656…",
    "oxide_groups": ["vip"],
    "discord_roles_synced": null
  }
]
GETconfirmRoleSyncserversync

Mark the latest Oxide-groups state as the synced Discord-roles state for a user. Idempotent.

Parameters

id* (query)
string
Discord user ID.
synced* (query)
string
JSON-encoded array of role IDs that were applied, e.g. %5B%22123%22%5D.

Response

"Role sync confirmed"
POSTsetOxideGroupFromDiscordserversync

Queue Oxide-group add/remove changes for a player from the Discord side. Merged with any existing pending changes.

Request Body

{
  "discord_id": "349…",
  "changes": [
    { "group": "vip",     "action": "add" },
    { "group": "trusted", "action": "remove" }
  ]
}

Response

"Pending Oxide changes saved"
GETgetPendingOxideChangesserversync

Read pending Oxide-group changes for a single Steam ID on this Server.

Parameters

id* (query)
string
Steam 64 ID.

Response

[
  { "group": "vip", "action": "add" }
]
GETgetPendingOxideChangesBulkserversync

Bulk variant; returns only Steam IDs with non-empty pending change lists.

Parameters

id* (query)
string
Comma-separated Steam IDs.

Response

{
  "76561…001": [
    { "group": "vip", "action": "add" }
  ]
}