skNetwork by eult

Skript variables and scripts shared across every server on a BungeeCord or Velocity network.

Events

1

Expressions

15

Effects

8

Conditions

4

Types

1

Sections

0

Structures

0

Total

29

skNetwork v1.0.0 4 days, 1 hour and 33 minutes ago

skNetwork 1.0.0

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.

View Update

skNetwork v0.3.1 7 days and 54 minutes ago

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

Full Changelog: https://github.com/ahmadmsaleem/skNetwork/compare/v0.3.0...v0.3.1

View Update

skNetwork 8 days, 2 hours and 19 minutes ago



Requirements: Skript 2.16.0+ | Java 25 | BungeeCord or Velocity

A Skript addon for sharing variables and scripts across every server on a BungeeCord or Velocity network.

# on the lobby
set {?coins::%player%} to 100

# on survival, straight away, no extra code
send "You have %{?coins::%player%}% coins"


Any variable starting with ? is a network variable. Reads come from this server's own copy, so only writes go over the wire.

Read the wiki for setup, guides, the full syntax reference and copyable example scripts.




Features

  • Shared variables: any {?variable} is live on every server at once.
  • Free reads: values are served from local memory, so only writes cross the wire.
  • Atomic changes: add, remove, set if not set and set if it is are worked out on the proxy, so nothing is lost when two servers race.
  • A spend floor: without going below 0 refuses the change instead of letting a balance go negative.
  • Read the outcome: and wait gives you back the new value, or the reason it was refused.
  • Server identity: network server name lets you write one script that runs everywhere.
  • Sync state: network is synced, on network sync and on network disconnect tell you where you stand.
  • Change events: on network variable change of "coins::*" fires on every server with the old and the new value.
  • Who is where: all network players, network server of "Notch", network server "survival" is online, plus the motd, version, player limit and whitelist of any server, read from memory and kept fresh by the proxy.
  • Messages anywhere: send network message and send network action bar reach a player on any server, and broadcast ... across the network reaches everyone.
  • Moving players: connect network player "%player%" to "survival" sends someone to another server.
  • Remote console: execute command ... on network server "survival", off until the proxy config allows it.
  • Script sharing: push scripts from the proxy and get a load result back per server.
  • Survives restarts: an append-only log that compacts itself, and reconnects that resume where they left off.
  • BungeeCord and Velocity: the same jar and the same config on both.


Requirements

[TABLE]
[TR]
[TH][/TH]

[TH]Works with[/TH]
[TH]Recommended[/TH]
[/TR]
[TR]
[TD]Java[/TD]
[TD]25[/TD]
[TD]25[/TD]
[/TR]
[TR]
[TD]Minecraft[/TD]
[TD]1.21 to 26.2[/TD]
[TD]26.1.2[/TD]
[/TR]
[TR]
[TD]Skript[/TD]
[TD]2.16.0+[/TD]
[TD]2.16.2[/TD]
[/TR]
[TR]
[TD]Proxy[/TD]
[TD]BungeeCord or Velocity[/TD]
[TD]either[/TD]
[/TR]
[/TABLE]

Java 25 is required. The jar will not load on Java 21 or older, whatever Minecraft version you run. Both rules apply together, so a 1.21 server also has to be started with Java 25.

Every game server and the proxy run the same jar. One that is behind is refused when it connects, and both consoles say which side to update.

Works on offline servers. skNetwork never looks at player identity.

Tested on Minecraft 1.21.11 and 26.1.2, Skript 2.16.2, BungeeCord 26.1 and Velocity 4.1.1.


Commands


/sknet state, proxy, copy size, latency
/sknet resync pull the whole map again
/sknet reconnect drop the connection and resume

/sknetproxy proxy: state, backends, variable count
/sknetproxy push proxy: send scripts now
/sknetproxy dump <pattern> proxy: look up variables, '*' is a wildcard


The two halves use different names on purpose. A proxy handles any command it knows before the game server sees it, so keeping /sknet free means it always reaches the server you are standing on, where being an operator is already enough.

Statistics

skNetwork uses bStats for anonymous usage stats. You can opt out in plugins/bStats/config.yml.

Bukkit / Spigot / Paper


BungeeCord


Velocity


Setup, config and the full syntax reference are all in the wiki.

View Update

© Copyright 2014-2026 skUnity

All rights reserved.