Releases: ahmadmsaleem/skNetwork
Release list
skNetwork v1.0.0
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
networkplayeris a new type. so now you could write a name, a UUID, or a real player, andall network playershands back players rather than text.- Three new events, firing on every server at once:
on network player join,on network player quit, andon network server switch, withevent-networkplayer,the previous network serverandthe new network server. Somebody changing server is one switch, not a quit and a join. send network title,play network soundandset network tab list header/footerreach a player wherever they are, in both the targeted and theacross the networkforms.- Player details from any server:
ping of,ip of,display name of,locale ofandplaytime of. Only what changed is sent, so an idle player costs one packet a minute. - Script-controlled server list ping.
network motd,network max playersandnetwork player countare settable, answered by the proxy without asking any server, and they survive a proxy restart. /sknetproxylists every backend: address, Skript version, how far through the log it is, and a permanent warning on any server whoseuse player UUIDs in variable namesdisagrees with the proxy./sknetproxy log,compactandbackupfor the storage file, and/sknetproxy reloadto re-readconfig.ymlwithout a restart. It appliesgroups,no-persist,debug,players,remote-commandsand 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-persistvalues outlived a proxy restart on the backends, so the proxy and the servers disagreed with nothing to put them right. - Fixed:
the atomic change failedandwas answeredwere 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
skNetwork v0.3.1
What's new
- New proxy option, no-persist. It takes variable names, * wildcards included, spelled the way /sknetproxy dump takes them:
no-persist:
- "session::*"
- "apikey"
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.0...v0.3.1
skNetwork v0.3.0
What's new
/sknetis rewrote with MiniMessage. Hover any row for a line explaining what it
means, click either command at the bottom to type it- New update check. skNetwork asks GitHub once at startup and reports a newer release on the console, and to anyone with
sknetwork.updates.viewwhen they join.
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.2.0...v0.3.0
skNetwork v0.2.0
Servers can now see and reach each other, not just share variables. Wire protocol 8.
network servers,network players, andnetwork server of %player%who is online and where, read from this server's own copy.motd of,version of,max player count ofandwhitelisted players of network server %string%. Each server reports its own.network server %string% is online.send network messageandsend network action barto players anywhere, orbroadcast ... across the network. Colours, hover and click survive the trip.connect network player %string% to server %string%.execute console command %string% on network server %string%. Off unlessremote-commandsis turned on in the proxy config.on network variable change [of "pattern"], withthe changed variable,the new valueandthe old value.
New proxy config keys: players (on) and remote-commands (off).
Protocol 8, so update the proxy and every backend together.
Setup and the full syntax reference are in the wiki.
Full Changelog: v0.1.0...v0.2.0
skNetwork v0.1.0
0.1.0
First release. Wire protocol 6.
- Network variables: any
{?variable}is shared across every server. Reads come
from local memory, so only writes cross the wire. - Atomic changes worked out on the proxy:
add,remove,set if not set,
set if it is, andremove ... without going below. Two servers racing the
same key cannot lose an update. and waithands back the new value, or why it was refused.network server name,network is synced,on network sync,
on network disconnect.- Script sharing from the proxy, with per-server groups.
- Append-only change log that compacts itself, so a proxy restart resumes where
it left off. Reconnects replay only what was missed. - One jar for BungeeCord, Velocity and every backend.
/sknetand/sknetproxy.
Requires Java 25 on the proxy and on every backend.
Setup and the full syntax reference are in the wiki.
Full Changelog: https://github.com/ahmadmsaleem/skNetwork/commits/v0.1.0