• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Voltseon's Multiplayer Solution

v21.1 Voltseon's Multiplayer Solution V2.1.0

This resource pertains to version 21.1 of Pokémon Essentials.
Changelog:
  • Unified both versions of the plugin, now the plugin supports both the Integrated Server built-in and the External Server
  • Added a config to enable External Server support (false by default, the Plugin ships with Integrated functionality only for minimal setup)
  • Added No Restriction battles for both Singles and Doubles
  • Fixed a bug that changed the order of the party when starting a battle and caused different battles to play out for both players
  • Fixed a bug that made it so only the leftmost pokémon of both players could safely use a battle mechanic without triggering a battle desync, this only affected double battle
  • Fixed a bug that caused opponent's battlers to be flipped, resulting in battle desyncs, this would also break single battles as battler indexes where incorrectly handled
  • Fixed a bug that made it so trading would only occur for the player that confirmed the trade last

Documentation:
- Updated instructions for installation and setup on the github repo to account for the new unified plugin

Please report any bugs you find either on the comments and i'll look into it as fast as i can
Changelog:

  • Fixed crash on build due to missing VMS::HOST on the config file for the Integrated Server
  • Fixed crash on both versions due to more parameters than acceptable on battle start

sorry for the last release, i accidentally uploaded a broken version from yesterday, any issues you can private message me and i'll look into it as soon as possible
i just realized i uploaded a broken build from yesterday, i'm already fixing this issue

Release Notes​


Separated Plugin into two major versions


External Server Version


  • keeps old plugin functionality, but with easier setup, Ruby now comes bundled with the Server files and a start script to run the server.
  • improvements to the Joining Cluster process, the client now requests a cluster list from the server and displays available clusters and their player count, no more manually inputting cluster ids that you cannot even see.

Integrated Server Version


  • Added a background server thread directly into the game client, enabling seamless co-op play without needing a separate server process.
  • Simplified Hosting/Joining, streamlined the user interface with "Host Game", "Join Server", and "Set Server IP" options.
  • Max Players Configuration, the Integrated server version of the plugin doesn't supports multiple clusters, instead it runs on a single cluster and wont allow connections if the cluster is full, default max players is 4.




New Features​


  • More Battle Modes: Implemented Singles 3v3, Doubles 4v4 and Doubles 6v6 battle modes! all battles will now prompt a party selection screen to allow for Pokémon reordering.
  • Support for the Deluxe Battle Kit mechanis: Z-Moves, Dynamax and Terastallization are all supported by the plugin now




Improvements​


  • Better Data Compression: Optimized data compression to reduce latency and improve performance.
  • UI Handling Improvements: Enhanced the client's ability to handle UI updates without timing out.
  • Server Optimization: Enchanced server Input and Output logic to reduce latency and improve performance.
  • Improved packet handling: Server now compares packet timestamp and discards new packets that have an older timestamp than the most recent, to fix rubberbanding and flickering.

Bug Fixes​


  • Battle forfeiting fix: Resolved an issue where players would get stuck in the battle if an opponent forfeited.
  • Like
Reactions: KennyCatches
This is it, the full release!
This update merely acts as a larger patch for version 0.9 to Iron Defense out some of the Bug Buzzes. However some new features have been added alongside some optimizations.

Changelog:
  • Added support for game and version authentication by the server.
  • All data is further compressed with ‘zlib’ to ensure that packets aren’t too large.
  • Added ‘Online Variables’ which are essentially variables that are shared between all players in a cluster.
    • To set an online variable use: ‘VMS.set_variable(id, value)’.
    • To get an online variable use: ‘VMS.get_variable(id)’.
  • Made it so other events can walk and interact straight through other players.
    • This is made possible by making all other player events through whenever an event starts running/ the map interpreter starts running.
  • Made it so you’ll attempt to disconnect from a cluster when closing the game, rather than waiting for you to timeout.
  • Added a Message Configuration that houses all player shown messages.
  • Made it so you can use items in battles.
  • Server:
    • Provided a better method for ensuring all data is sent to and received by the server.
    • Changed the server terminal to have some colors in it.
    • Fixed a crash that would happen if the server disconnected you from a cluster.
    • Added a threading option to make clusters run asynchronously.
    • Added a tick rate option to limit the amount of data sent per second.
  • Added a tick rate option to the players side to limit the amount of data the player sends.
  • Added some configurable settings for smoothing the movement of players. This makes movement slightly less accurate but will make it seem more natural.
  • Made cull distance (how far away player has to be before they are invisible) a configurable option.
  • Added the option to only receive the newest data, with a configurable delay so you can get both fast and reliable data.
  • Players will now hold an ‘is_new’ attribute that simply returns whether the current version of the player is from a new packet. This is only relevant when HANDLE_MORE_PACKETS is set to ‘false’.
  • Both players will need to have able Pokémon to start a battle.
  • Added a method to teleport to other players.
  • Made players calculate their bush depth.
The documentation has also been updated, and again, if there are any issues or feedback feel free to let me know. To keep up to date on the progress and planned features check out the todo list.
Back
Top