# 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 ` 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 ` - goes directly to the world ### `/createworld ` - 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 ` - 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 ` - rename a surface (admins only) This is useful for renaming worlds imported by the `/debugeditor`. ### `/debugresetworldstate ` - 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`.