- The generic parts move to test/ in the repository root so other plugins can reuse them: the factorio and clusterio stubs, the test framework, the fengari runner, and clusterio's testMatrix and round trip helpers. A plugin composes them from its own env.lua, which adds its stubs and fixtures. - Tests are declared with Test.test(name, fn) and every test function receives a fresh environment, so nothing carries over between them. A test which errors is reported as a failure rather than aborting the file. - Every stub raises on properties it does not implement, which mirrors the game api. game.player is the one property allowed to read as nil. - Test.deep_eq compares tables recursively with keys checked from both sides. - The message records round trip through the same testMatrix and testRoundTripJsonSerialisable helpers the clusterio tests use, covering every optional field combination of the records, events and requests. - controller.test.js and instance.test.js cover the node side of the plugin against faked controller and instance internals: property creation and sweeping, record building, broadcasts, subscription replay, assignment validation, auto assignment and its blocking role, seeding, the initialise payload, sync mode gating, and the rejection rollback. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
- Create a
external_pluginsdirectory within your clusterio instance. - Clone this repository into that directory:
git clone https://github.com/explosivegaming/ExpCluster - Install the package dev dependencies:
pnpm install(pnpmis recommended overnpm) - Add supported plugins will be loaded on next controller / host restart.
Contributing
See Contributing for how to make pull requests and issues.
Releases
| Release* | Release Name | Factorio Version** |
|---|---|---|
| 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