Cooldude2606andClaude Opus 5.5 b19bbbe5f3 Add exp_discord_auth plugin for Discord login and account linking (#493)
* Add exp_discord plugin for Discord login and account linking

Players log in to the web interface with Discord through OAuth2 with the
identify scope, so no bot token is needed. After logging in they get a
code from the login page and type /link-discord <code> in game to link
that Factorio account. One Discord account can hold up to
exp_discord.max_accounts Factorio accounts (default 3), and linking a
name moves it off any other Discord account.

Sessions and link codes live in memory on the controller plugin, the
links are stored in database/exp_discord/accounts.json. The user page
shows the linked Discord account and lets the user, or anyone with
exp_discord.link.delete, unlink it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Link Discord from the user page and document the setup

The user page gets a Link Discord button. It asks the controller for a
one-time ticket bound to the logged in user, then goes through the
authorize route with it. The callback links the Discord account to that
user directly, without the in-game code, and goes back to the user page.
The link flow always shows the Discord consent screen.

The README covers registering the redirect URL and the config.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Address review of the Discord plugin

The plugin is now exp_discord_auth, so later Discord plugins can sit
next to it. Config keys, permissions, routes and the Lua module moved
with it, and the Discord redirect is now api/exp_discord_auth/callback.

The controller registers its handlers and routes in the constructor and
uses the express types, the instance plugin is a closure, and the Lua
commands file returns its commands. The get and unlink responses carry
the controller url so the in game messages can name the website.

The login form asks the new status route whether Discord is configured
and shows the error straight away instead of a button that fails. The
button is full width like the link button, and a "Not you?" link next
to the Discord name replaces the separate switch account button.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:46:20 +01:00
2026-09-11 23:41:04 +01:00
2026-10-13 21:06:46 +01:00
2026-10-13 21:06:46 +01:00
2026-10-13 21:06:46 +01:00
2026-10-13 21:06:46 +01:00
2026-10-13 21:06:46 +01:00
2026-07-14 00:50:00 +01:00
2024-11-19 22:17:25 +00:00
2026-08-08 21:58:46 +01:00
2026-08-20 22:02:51 +00:00
2024-11-19 21:51:13 +00:00
2024-12-24 20:50:48 +00:00
2024-11-19 21:51:13 +00:00
2026-09-08 11:05:08 +01:00
2024-12-24 20:50:48 +00:00
2024-12-24 20:50:48 +00:00
2026-09-12 01:10:02 +01:00

logo
Release Downloads Star Fork Discord

ExpGaming Clusterio Repository

Explosive Gaming

Explosive Gaming (often ExpGaming) is a server hosting community with a strong focus on Factorio and games with similar themes. We are best known for our weekly reset Factorio server with a vanilla+ scenario where we add new features and mechanics that are balanced with base game progression. Although our servers tend to attract the more experienced players, our servers are open to everyone. You can find us through our website, discord, or the public server list with the name ExpGaming.

Installation

This is a plugin collection for Clusterio which implements all our scenario features.

To use this plugin you must have a clusterio instance running, see here for clusterio installation instructions.

This module is currently not published and therefore can not be installed via npm. Instead follow the steps for building from source

Building from source

  1. Create a external_plugins directory within your clusterio instance.
  2. Clone this repository into that directory: git clone https://github.com/explosivegaming/ExpCluster
  3. Install the package dev dependencies: pnpm install (pnpm is recommended over npm)
  4. Add supported plugins will be loaded on next controller / host restart.

Contributing

See Contributing for how to make pull requests and issues.

Details of the scenario can also be seen on Wiki.

For the locale, access to Translation.

translation status

Releases

Release* Release Name Factorio Version**
7.0 Clusterio Plugin (Beta) 2.1.7
6.4 Farewell Factorio 1.1 1.1.110
6.3 Feature Bundle 2: Electric Boogaloo 1.1.101
6.2 Mega Feature Bundle 1.1.32
6.1 External Data Overhaul 1.0.0
6.0 Gui / 0.18 Overhaul 0.18.17
5.10 Data Store Rewrite 0.17.71
5.9 Control Modules and Documentation 0.17.63
5.8 Home and Chat Bot 0.17.47
5.7 Warp System 0.17.47
5.6 Information Guis 0.17.44
5.5 Gui System 0.17.43
5.4 Admin Controls 0.17.32
5.3 Custom Roles 0.17.28
5.2 Quality of life 0.17.22
5.1 Permission Groups 0.17.13
5.0 0.17 Overhaul 0.17
4.0 Softmod Manager 0.16.51
3.0 0.16 Overhaul 0.16
2.0 Localization and clean up 0.15
1.0 Modulation 0.15
0.1 First Tracked Version 0.14

* Scenario patch releases have been omitted and can be found here.

** Factorio versions show the version they were made for, often the minimum requirement to run the scenario.

License

The Explosive Gaming codebase is licensed under the MIT

S
Description
No description provided
Readme MIT
15 MiB
0 Stars 1 Watchers 0 Forks
Languages
Lua 69.9%
TypeScript 20.7%
JavaScript 9.4%