Version 2.0.0-alpha.19
·
395 commits
to master
since this release
Major Features
- Added support for 2.0 builtin mods during mod pack creation. #684
- Added basic 2.0 support to clusterio lua api and 1st party plugins. #685
Features
- Added Datastore and Datastore Provider classes to the library to support savable Maps. #629
- Added clean script to speed up publishing and debugging of build steps. #640
- Added sub-tile option on plugin page headers. #642
- Greatly improved plugin and module template generation. #641
- Duplicate host connections from the same address will kill the older host process. #647
- Controller will refuse duplicate host connections from different addresses. #647
- Monorepos are now supported for external plugins. #654
- Changed default role selection to be a dropdown menu rather than id. #664
- Added credential option to config entries to allow writing sensitive data that can't be read back remotely.
- Allow hidden and readonly graphical representations of config values. #665
- Added locale exporting for all builtin mods, not just for the base mod. #684
- Added option for silent testing which only shows the results, can be ran using
pnpm silent-test#680 - Added prompt for http port on installation of Clusterio. #564
- Added drag and drop overlay to upload button on mods page and save table on instance page. #591
- Automatically add plugins from ./plugins, ./external_plugins and installed npm modules. #692
compat.table_to_jsonandcompat.json_to_tablesupported in all stages in pre 2.0 #687- Add "connect to server" button to web interface, launches with steam api. #608
- Add space platform name mapping to space platform statistics. #706
- Track space platform speed metric clusterio_statistics_exporter_platform_speed. #706
- Track space platform weight metric clusterio_statistics_exporter_platform_weight. #706
- Added bidirectional sync to admin and ban list. #709
Fixes
- Fixed IPC errors reporting undefined when no stack trace was present. #624
- Fixed loopback routing for instances reporting the wrong error message. #625
- Fixed docs linking to non-existing js files after ts migration. #633
- Fixed CI workflows using deprecated version of nodejs. #637
- Fixed linux only tests to run on windows. #661
- Fixed log events being sent from a host over an invalid websocket. #639
- Fixed spaces passed in arguments to the installer causing it to break. #620
- Fixed numeric admin name breaking login. #536
- Fixed issues with subscriptions which prevented them from working on instances or generic events. #655.
- Fixed unreliable datastore tests. #662.
- Fixed 2.0 version extraction from linux headless. downloaded during installation of clusterio. #671
- Fixed invalid transient state during server start. #676
- Fixed host user sync to instances after reconnecting to the. controller. #678
- Fixed WebUI adding and displaying the wrong base mod version. #684
- Fixed WebUI inconsistent pattern matching for factorio version. #684
- Fixed
safeOutputFilenot being atomic because of a missing path separator. #659 - Fixed built-in mods showing as missing in the WebUI. #581
- Fixed dirty flag not being set when only the config of an instance is updated. #675
- Fixed incorrect command being used to remove players from the whitelist. #679
- Fixed CI following undocumented breaking change from downstream dependency. #683
- Fixed instance crash when missing saves folder. #698
- Fixed statistics exporter not working on newer versions of windows 11 due to wmic deprecation. #707
Changes
- Added prompt for the HTTP port to host the controller to the installer. #619
- Added tests for sendEvent and sendRequest throwing the correct error messages. #638
- Updated all web ui pages to use correct page header component. #643
- Bumped Typescript version to 5.5 and implemented
${configDir}in base configs for "outDir". #648. - Added factorio.executable_path option which allows overriding the default path to the Factorio executable run.
- Added instance version display. #573
- Added
factorio.shutdown_timeoutconfig to set the time the host will wait for a Factorio server to shut down befor killing it. - Changed shutdown logic to prefer sending a /quit command via RCON instead of using diverging logic on Windows and Linux.
- Added
controller.factorio_usernameandcontroller.factorio_tokenconfig to set Factorio credentials used for the whole cluster. - Added
controller.share_factorio_credential_with_hostsconfig to optionally require hosts to provide their own credentials. - Added
host.factorio_usernameandhost.factorio_tokenconfig to set Factorio credentials used on a given host. - Changed
instance.rcon_passwordconfig to be a credential field that can not be read by the control interface. - Changed
host.idinstance.idandinstance.assign_hostconfig to be hidden fields that can not be seen on the web ui. - Updated display name and description of
controller.external_addressto avoid confusion. #674 - Renamed config value
controller.external_addresstocontroller.public_url, migrations are applied automatically. - String config values with whitelisted values (enum) now display as a selection dropdown. #701
- Existing selection dropdowns now support search filtering. #701
- Added surface label to clusterio_statistics_exporter_instance_force_flow_statistics. #691
- Compat lib now supports versions from 0.17 to 2.0 #711
- Add bidirectional sync to admin and ban list. #709
Breaking Changes
- Previously silent errors for controller.sendEvent now throw exceptions #625.
- @clusterio/controller export InstanceInfo has added factorioVersion parameter.
- Argument order for
Config.canAccesschanged to require an access mode passed as the second argument. - Instances can now have
factorio.enable_script_commandsdisabled which will throw an error when any script command is used over rcon. #681. - User IDs are now case insensitive, duplicate users will be automatically merged with a backup created. #682
- Plugins now require the keyword "clusterio-plugin" in package.json to be automatically loaded #692
Many thanks to the following for contributing to this release:
@CCpersonguy
@Cooldude2606
@Danielv123
@Hornwitser
@Laar
@psihius