depot/ops/factorio/multiworld/README.md

2.3 KiB

Factorio Multiworld

This is a very simple hack to allow Factorio vanilla servers to run with multiple-world support.

It enables the use of a /ws command which opens a GUI to switch between worlds. If you already know the name of the world, then /ws <WORLDNAME> can be used to quickly switch.

Different worlds have separate research progress, and players have separate inventories as they transition between worlds.

Worlds can be created from a map exchange string with the /createworld command by admins, and destroyed using /destroyworld.

Commands

/ws - world switcher

The /ws is the bulk of the multiworld functionality, and the only command accessible by non-admins.

It has two forms:

  • /ws - opens a world selection GUI with a button per world
  • /ws <WORLD NAME> - goes directly to the world

/createworld <WORLD NAME> <MAP EXCHANGE STRING> - create a new world (admins only)

/createworld is one way of creating a new, empty world based on a given map exchange string.

Note that only the parameters of the map exchange string that pertain to generation settings will be respected: difficulty, and other settings that Factorio retains per-map rather than per-surface will be ignored.

/destroyworld <WORLD NAME> - destroy a world (admins only)

/destroyworld deletes a world by name, and deletes all the inventories associated with it.

/debugeditor - open the editor (admins only)

/debugeditor opens the map editor without tripping the "editor opened" achievement disabling flag.

This is intended for use for admins to import existing save files as new surfaces.

Note that once you've done so, you'll need to use the /debugrenameworld or /debugresetworldstate commands in order to properly set up the extra metadata required by Multiworld.

/debugrenameworld <OLD NAME> <NEW NAME> - rename a surface (admins only)

This is useful for renaming worlds imported by the /debugeditor.

/debugresetworldstate <WORLD NAME> - reset book-keeping metadata for a world (admins only)

This resets various internal metadata:

  • The per-world player force
  • Any inventories held for players for that world
  • Any locations held for players for that world

It should usually be used only after importing an existing save file as a new surface using the /debugeditor.