The load-balancing and routing service for Terraria Servers
Be aware that I am currently behind on some updates to Dimensions. Since the server I use this for (Dark Gaming) is not currently updated to run on the latest version, this means I don't get much real-world testing of the latest version of Dimensions. If you find an issue and would like to fix it, make a PR so it can be included for others. Once the server I use this for is updated to run on the latest version, then any remaining issues that arrived since 1.4.2+ will be resolved.
Dimensions is: A routing service that can also load balance connections. For use with Terraria Servers.
Follow the link and download either version. Later releases may offer better performance. https://nodejs.org/en/
Download the plugin and put it in each Terraria Server for use with Dimensions
npm install --only=production
(it may take a bit to finish)npm run start
If you do not need to have live reloading of modules / the configuration file then you do not need to do this step.
Download and install Redis for your OS
Set enabled to true in the config for the redis option
To reload changes to the cmd handlers, packet handlers, config or extensions, without restarting Dimensions
node dimensions_cli.js
reload
reloadcmds
reloadhandlers
reloadplugins
cd
into the new directorynpm install
npm run build
this will transpile the ts files to js, run the tests and put all output js files into a build directorynpm run bstart
this will build and then run the index.js in the build directorynpm run start
Dimensions uses the latest Typescript with strict checks enabled to help catch bugs. It is recommended that you modify the Typescript code instead of the transpiled javascript code. This will not only provide you with more safety regarding changes, but the original source is likely to be more understandable and you can merge changes from this repo using git.
To build an extension:
npm init
in a new folder to initialise itnpm i [email protected]:@popstarfreas/dimensions
, this installs dimensions as a dependencyThanks to all who have financially supported development: