Skip to content

skNetwork v1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Sep 19:28
· 28 commits to main since this release

skNetwork 1.0.0 turns the network into something scripts can act on directly: players are a real type, three events tell you when anyone moves, and the proxy's own server list ping is yours to set.

What's new

  • networkplayer is a new type. so now you could write a name, a UUID, or a real player, and all network players hands back players rather than text.
  • Three new events, firing on every server at once: on network player join, on network player quit, and on network server switch, with event-networkplayer, the previous network server and the new network server. Somebody changing server is one switch, not a quit and a join.
  • send network title, play network sound and set network tab list header/footer reach a player wherever they are, in both the targeted and the across the network forms.
  • Player details from any server: ping of, ip of, display name of, locale of and playtime of. Only what changed is sent, so an idle player costs one packet a minute.
  • Script-controlled server list ping. network motd, network max players and network player count are settable, answered by the proxy without asking any server, and they survive a proxy restart.
  • /sknetproxy lists every backend: address, Skript version, how far through the log it is, and a permanent warning on any server whose use player UUIDs in variable names disagrees with the proxy.
  • /sknetproxy log, compact and backup for the storage file, and /sknetproxy reload to re-read config.yml without a restart. It applies groups, no-persist, debug, players, remote-commands and the script size limits, and tells you what needs a restart.
  • Fixed: a snapshot chunk could overrun the frame cap, which left a backend reconnecting into the same unreadable snapshot for ever.
  • Fixed: no-persist values outlived a proxy restart on the backends, so the proxy and the servers disagreed with nothing to put them right.
  • Fixed: the atomic change failed and was answered were both true in a trigger that never waited.

This release changes the wire protocol, 13 to 14. Update the proxy and every game server together. A half that is behind is refused with a message on both consoles saying which side to update, so nothing is lost by getting the order wrong.

all network players, network players on ... and network server of ... now work in players rather than text. They still print as names, so send "%all network players%" is unchanged, but set {?online::*} to all network players now stores players. Use names of network players (all network players) for the old behaviour. See Upgrading from 0.3.x.

Install

The jar is attached below. It goes in plugins/ on the proxy and on every game server: one jar, it works out which half to be. Restart the network, then check /sknetproxy on the proxy and /sknet on a backend both say READY.

Every server has to run the same build. A half that is behind is refused when it connects, with a message on both consoles saying which side to update.

Read more about the setup here

Requirements

Needs
Java 25, on the proxy and on every backend
Minecraft 1.21 to 26.2
Skript 2.16.0+
Proxy BungeeCord or Velocity

Setup, guides and the full syntax reference are in the wiki.

Full Changelog: v0.3.1...v1.0.0