SkellettProxy SkellettProxy

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

YoshYz

Well-Known Member
Jan 28, 2017
694
82
28
24
Italy
gVE8DHN.jpg

What I'll explain in this tutorial?
  • How to install correctly SkellettProxy
  • How to use correctly the syntax of it
  • Many examples
SkellettProxy is an addon that give to us a really huge BungeeCord support on Skript.

What you need to install SkellettProxy?
  • A BungeeCord server
  • 1+ Servers
  • Skellett installed in all connected servers.
Place SkellettProxy.jar in your plugins folder of your BungeeCord server.
Place Skellett.jar in all your connected servers of your BungeeCord.
Enable SkellettProxy option in every Skellett config.
Put the IP of your Bungeecord in every Skellett config as "Host".
Run BungeeCord and all the servers connected in it.

(Version of Skellet & SkellettProxy should match to work correctly.)
(EventPort must be different in every Skellett config.)
(Port must be the same in every Skellett & SkellettProxy config.)

SkellettProxy Config.yml
code_language.skript:
debug: false #Debug Mode if enabled you l'll get connection info messages in your bungee console.
Port: 7332 #Event port (Should be the same in all Skellett config files connected in your bungeecord.)
GlobalScripts: #These scripts are loaded into all connected servers in your bungeecord.)
    Enabled: true
NetworkVariables: #These variables are connected in all servers in your bungeecord.)
    Enabled: true
    AutomaticSharing: false #If enabled all network variables are automatically loaded in all the servers and you don't need to get them first of use.

NetworkVariables [AutomaticSharing: False]
code_language.skript:
set network variable {tutorial} to "Example"
set {_variable} to network variable {tutorial}
NetworkVariables [AutomaticSharing: True]
code_language.skript:
set global variable {tutorial} to "Example"
RAlVIDi.jpg

You can execute bungeecord commands using:
code_language.skript:
skellettcord execute bungeecord console command "end"
You can execute an action in every connected servers using the evaluate expression:
code_language.skript:
loop all bungeecord servers:
    evaluate "broadcast ""&cJust a tutorial!""" on bungeecord server "%loop-value%"

Small resources using Skellettcord sintax

Little friends system using global variables:
code_language.skript:
command /friends [<text>] [<offlineplayer>]:
    trigger:
        if arg-1 is "add":
            if arg-2 is set:
                if {friends::%player%::%arg-2%} isn't set:
                    set global variable {friends::%player%::%arg-2%} to true
                    message "&8[&3Friends&8] &7You have added &b%arg-2% &7to your friends list."
                    stop
                else:
                    message "&8[&3Friends&8] &c%arg-2% &7is already in your friends list."
                    stop
        if arg-1 is "remove":
            if arg-2 is set:
                if {friends::%player%::%arg-2%} is set:
                    delete global variable {friends::%player%::%arg-2%}
                    message "&8[&3Friends&8] &7You have removed &c%arg-2% &7from your friends list."
                    stop
                else:
                    message "&8[&3Friends&8] &c%arg-2% &7is not in your friends list."
                    stop
        if arg-1 is "list":
            set {_size} to size of {friends::%player%::*}
            if {_size} is more than 0:
                message "&8[&3Friends&8] &8(&b%{_size}%&8) &a%{friends::%player%::*}%"
            else:
                message "&8[&3Friends&8] &7Your friends list is empty."
                stop
              
on join:
    loop {friends::%player%::*}:
        if skellettcord "%loop-value%" is online bungeecord:
            add loop-value to {_online::*}
    set {_size} to size of {_online::*}
    if {_size} is more than 0:
        message "&3Online Friends&8: &8(&b%{_size}%&8) &a%{_online::*}%"
    else:
        message "&cNo one of your friends is online."

Global "/msg" command:
code_language.skript:
command /msg [<offlineplayer>] [<text>]:
    aliases: /tell , /message , /send , /say , /w
    trigger:
        if arg-1 is set:
            if arg-1 isn't player:
                if arg-2 is set:
                    message coloured "&8[&b►&8] &a%player% &9&l> &3%arg 2%" to bungeecord player "%arg-1%"
                    message coloured "&8[&b►&8] &a%player% &9&l> &3%arg 2%"
                    stop
                else:
                    message " &8[&c✖&8] &7You need to write the text of the message."
                    stop
            else:
                message " &8[&c✖&8] &7You can't send a message to yourself."
                stop
        else:
            message " &8[&c✖&8] &7You need to write the player's name."
            stop

Ping command:
code_language.skript:
command /ping:
    trigger:
        set {_ping} to skellettcord ping of "%player%" 
        if {_ping} is less than 51:
            message " &8[&a▪&8] &3Ping: &a%{_ping}%ms"
            stop
        if {_ping} is more than 50:
            if {_ping} is less than 151:
                message " &8[&a▪&8] &3Ping: &6%{_ping}%ms"
                stop
        if {_ping} is more than 150:
            message " &8[&a▪&8] &3Ping: &c%{_ping}%ms"
            stop

Bungee broadcast:
code_language.skript:
command /broadcast [<text>]:
    trigger:
        if sender is a player:
            if player has permission "bungeescript.broadcast":
                skellettcord message coloured "&8[&3Network&8] &b%arg-1%" to all bungeecord players
        if sender is console:
            skellettcord message coloured "&8[&3Network&8] &b%arg-1%" to all bungeecord players

FAQ
Q Skellett isn't correctly connected in your Bungeecord?
A Be sure that you enabled skellettproxy in the options and that you put the correctly IP of your bungeecord.

Q Are you getting socket errors?
A Be sure that all the ports your using are open and with all correctly permissions to do what you need.
 
Last edited:
  • Like
Reactions: LimeGlass
fells dumb. but can i do ... ONLY set varaibles to two server instead global?

example:

code_language.skript:
set global variable {friends::%player%::%arg-2%} to true
#instead
set "SkyBlock" and "Prison" variable {Friends::%player%}
#because i got Prison, Lobby, SkyBlock, Prison OP, Survival
#and i only want set variables between skyblock and prison
 
fells dumb. but can i do ... ONLY set varaibles to two server instead global?

example:

code_language.skript:
set global variable {friends::%player%::%arg-2%} to true
#instead
set "SkyBlock" and "Prison" variable {Friends::%player%}
#because i got Prison, Lobby, SkyBlock, Prison OP, Survival
#and i only want set variables between skyblock and prison

Nope , you can't.
You should use them with "AutomaticSharing: False" and get them only where you need.
 
Nope , you can't.
You should use them with "AutomaticSharing: False" and get them only where you need.
Hmmm so its mean i need on Server Prison:

code_language.skript:
set network variable {tutorial} to "Example"

and On Server SkyBlock:

code_language.skript:
set {_variable} to network variable {tutorial}

?
 
@ChisleLP The AutomaticSharing means that the global variables will override variables on all servers. So if you set a network variable {this} to something. On all servers the variable {this} will be set to that. (Keep that on false in this case for what you're doing)

And you can use the evaluate effect to send variables to special servers.
code_language.skript:
evaluate "set {this} to true" on bungeecord server "Skyblock"
 
Hmmm... seen doesn't work. :/


output broadcast: <none>

test.sk in Prison server:
code_language.skript:
command /test:
    trigger:
        evaluate "set {this} to Hahahaha" on bungeecord server "Skyblock"

test.sk in Skyblock server:
code_language.skript:
command /test:
    trigger:
        broadcast "%{this}%"

Output:
upload_2017-5-18_20-19-0.png
 
Hmmm... seen doesn't work. :/


output broadcast: <none>

test.sk in Prison server:
code_language.skript:
command /test:
    trigger:
        evaluate "set {this} to Hahahaha" on bungeecord server "Skyblock"

test.sk in Skyblock server:
code_language.skript:
command /test:
    trigger:
        broadcast "%{this}%"

Output:
View attachment 714
It's case sensitive and make sure it matches the name that's in the Bungeecord. Also that it's sending packets to the bungeecord still.
 
....

no one need to know what i edit.


I added "" "" and its work...

code_language.skript:
evaluate "set {this} to ""Im a text""" on bungeecord server "Skyblock"
 
But I would like to use Skellett Proxy, because this crap Skungee does not work. I am looking for a system where you can send variables between servers in real time. Since the feature of script with the database does not work, because that is not in real time and if you put this down to 1 second the server has only 5 TPS, I tried it with Skungee but that is no longer developed and the thousands of errors are simply not fixed.