Popstarfreas Dimensions Versions Save

The load-balancing and routing service for Terraria Servers

v6.0.0-beta.0

5 months ago

There are breaking changes in this release!

This beta release will be upgraded to a full release (with no further changes, except the master branch being updated) when Dark Gaming's pre-production testing on it is finished.

If you were having trouble with the last release, it is recommended to test out this release.

Breaking Changes

  • Rewrite an ip/port based switch (Dimensions Message Type 3) for 127.0.0.1 to use the ip of the remote server - this allows the remote server not on the same machine as dimensions to use 127.0.0.1 in cases where it wants to switch to a server on the same machine as itself without having to know the external ip

Features

  • Update packet parsing to support 1.4.4 packets
  • Add a second kind of allowed config value for blockInvis to specify which dimensions to enable it for
  • Add language option to config with translations for simplified chinese provided by @1790283354 in #121
  • Add language overrides to the config to allow custom messages for any message that dimensions sends to a user
  • Add debuff options to config to allow changing what debuffs are applied on switching dimensions and for how long they last

Fixes

  • When switching, the connect request packet was incorrectly passed into the terraria server packet handlers - it is now correctly passed into the client packet handlers #112
  • The client packet handlers incorrectly blocked a connect request if the client has already sent one to the server before - this is now never blocked #113
  • Properly log a terraria server packet handling error
  • Add some level of validation to config to prevent errors caused by incorrect field name in nameChanges
  • Properly clear npcs on switch
  • Add error handling to terraria server packet handler

Documenation Updates

  • Fix example config having syntax errors
  • Fix config example/quickstart having a wrong field name that would cause errors when running

Full Changelog: https://github.com/popstarfreas/Dimensions/compare/v5.10.0-beta.1...v6.0.0-beta.0

v5.10.0-beta.1

1 year ago

No breaking changes are expected in this release.

This beta release will be upgraded to a full release (with no further changes, except the master branch being updated) if no problems are found within a period of time following this release's publish date.

Features

  • Dimension names w/ capital letters are now supported. Contributed by @Moneylover3246 in https://github.com/popstarfreas/Dimensions/pull/84
  • Dimensions can be labelled as hidden to not show up in the dimensions list. Contributed by @EMREOYUN in https://github.com/popstarfreas/Dimensions/pull/82
  • Each server in the config no longer needs a port to expose specified. This means you can provide ports only for servers you intend people to join directly by port. https://github.com/popstarfreas/Dimensions/pull/89
  • Added a new config option to prevent the client from changing its name, this ensures that throughout a single session the player name is the same. An exclusion list is provided to allow specific dimensions to change the player name from the server-side. https://github.com/popstarfreas/Dimensions/pull/90
  • Game kick messages now use localisation. Contributed by @Arthri in https://github.com/popstarfreas/Dimensions/pull/92
  • Servers in the config now have a vanilla option to allow vanilla servers to be used with dimensions. https://github.com/popstarfreas/Dimensions/pull/58
  • The currentTerrariaVersion config option has been removed. Dimensions now uses the version the client specifies. https://github.com/popstarfreas/Dimensions/pull/98
  • Added support for using a separate extensions js file that contains all of the extension classes to use - this is intended for bundled deployments where dimensions core is bundled together with plugins into one single js file. You can (for example) use this to build a small docker image for dimensions.
  • Server version used by the REST API now supports reading from a version.txt in the working directory per request, meaning you can easily update the reported supported version
  • REST API now supports additional options in the config: name, worldName, terrariaServerPort, hasServerPassword, maxPlayers and version
  • REST API default version is now 1.4.3.6

Fixes

  • Fixed issue when parsing strings of exactly 128 characters
  • Added parsing of playerCountForMultipliayerDifficultyOverride and strengthMultipler to fix NPC update parsing
  • REST API now returns a valid HTTP response
  • Fixed entities not being cleared properly in #99 (was a bug during dev versions, not 5.9.1)
  • Fixed some packets causing vanilla servers to prevent switching in #100

Dependency Updates

Documentation Updates

New Contributors

v5.9.1

3 years ago

The below is a summary of changes from v5.8.3 -> v5.9.1

Fixes:

  • Correctly sends the status packet to clients
  • The Rest API will now return the latest game version: 1.4.1.2
  • The config now uses 234 (the number for 1.4.1.2) so that switching will work properly

Plugin Update:

  • The Dimensions plugin has been updated so that it is built against the latest references. If you're having trouble with the plugin not working, go to the updated link in the README and download that version

Node Support:

  • Node v8 is no longer a supported version
  • Node v14 is now a supported version

Developer API Changes:

  • The Packet type is now referred to as RawPacket. Any extensions that import this type will need to update their import path. This makes a clear distinction between an unparsed (raw buffer) packet and a parsed packet.
  • Buffs caused by Dimensions can now be handled by extensions properly
  • ClearUtils makes sure it respects the outcome of handlePacket so that it doesn't send a packet unless handlers allow it

v5.8.3

3 years ago

Fixes:

  • Spawn player packet on switching now contains the 2 new fields
  • NPC clearing on switching now contains extra flags byte
  • Debuffs given on switching now use int16 for buff type
  • Player slot packet now uses int16 for slot

v5.8.2

3 years ago

Fixes;

  • Avoid error caused by reading the player id as an int16 instead of a int8

v5.8.1

3 years ago

Features;

  • Packet Structures are now updated to conform to changes made from 1.3.5.3 -> 1.4.0.2
  • Stoned/Webbed debuffs applied when switching are now able to be manipulated by extensions

v5.7.0

4 years ago

This release adds:

  • Persistent storage support for extensions across reloads

This is a pre-release because it contains a known bug with counting players (that is used to display the count in /who). If you accept this bug (or you remove the message from /who) then there are no other known issues (other than those listed under the Issues page).

v5.6.0

4 years ago

This release adds:

  • Dynamic dimensions support which allows a plugin in a terraria server to tell dimensions a specific ip/port to route the client to without it having to be in the dimensions config
  • More support for extensions - certain packets sent by dimensions can be handled

Fixes:

  • Reading strings in packets for some cases
  • General code fixes

This is a pre-release because it contains a known bug with counting players (that is used to display the count in /who). If you accept this bug (or you remove the message from /who) then there are no other known issues.

v5.2.0-dynamicdimensions

4 years ago

This is the dynamic dimensions version of v5.2.0. This specific build has not been tested in a production environment. Dynamic Dimensions differs from the current version of dimensions by:

  • It has an issue with user count tracking
  • It allows a plugin in a terraria server to tell dimensions a specific ip/port to route the client to without it having to be in the dimensions config

v5.2.0

5 years ago

This release features:

  • A new config option to enable/disable the use of redis
  • A fix for a bug in packet unpacking that would cause an index out of range error