TorchAPI
  • Home
  • Plugins
  • Wiki
  • Offical Game Server
  • Discord (Click to join)
  • Login/Register

Link Steam Discord

(Click to download)

Author: StalkR

Latest Version: v1.0.1

Cumulative Downloads: 273

Space Engineers: Link Steam & Discord

A Torch server plugin and associated backend for Space Engineers, offering players the ability to link their Steam & Discord together, and allowing server administrators further integrations with the data.

Both the plugin and backend are open-source so it can be self-hosted, and server administrators remain control of the data.

Source code: on github.

Plugin

See the plugin/ subdirectory.

Releases: on the Torch plugin page.

Users can use the !link command to link their Steam & Discord. If they haven't linked yet, it will open their browser to the linking backend.

Server admininistrators can configure the backend URL in the plugin settings.

Backend

See the backend/ subdirectory.

A small web app written in Go, implementing both Steam OpenID 2.0 and Discord OAuth2 sign-in. It saves the Steam ID & Discord ID mapping to an SQLite3 database.

Configuration:

  • see config.example.json
  • create a Discord OAuth application, write down the Client ID & Secret
  • configure secret with random bytes, it's used for state authentication
  • configure some api_keys if you need apps to use the /lookup API
  • run with go run . or build the binary and deploy elsewhere
  • expose the app behind an HTTPS reverse proxy, or tweak it to your needs

API:

  • /steam/check/<steamID>: returns 200 if linked, 404 if not; used by the plugin to check if a given steam ID is linked or not
  • /lookup/steam/<steamID>: (API key required) returns the Discord ID if found, otherwise 404
  • /lookup/discord/<discordID>: (API key required) returns the Steam ID if found, otherwise 404

Origins

It is based on the !sedb link feature from @Bishbash777 in SEDiscordBridge (github), which also offers a fully featured discord bridge, but it uses a fixed backend that is not open-source, anyone can query, and does not authenticate steam ID so fake mappings can be inserted.

Bugs, comments, questions

Create a new issue.

Ways to support the author directly