Skellett - The beast addon!

Addon Skellett - The beast addon! 2.0.10

  • 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!

What is wrong?
(I tried 127.0.0.1 and 0.0.0.0)

Java:
# SkellettProxy config file
#
# The port must match the port in SkellettProxy.yml from Skellett on servers connected to this Bungeecord.
version: "1.3.3b"
debug: false
Port: 7377

# If a spigot server fails to send a packet to SkellettProxy.
# How many trys should be allowed before claiming that server as offline.
AllowedTrys: 5

# If a spigot server goes unresponsive and this is true, SkellettProxy will stop tracking it.
# This will throw a harmless error in your console everytime a server goes unresponsive though.
DisableTracking: false

# If you have scripts in the folder plugins/SkellettProxy/scripts/
# SkellettProxy will relay these scripts to all connected servers.
# This acts like global scripts to keep all servers up to date.
# All connected servers need to have the "events" option enabled in the SkellettProxy settings.
GlobalScripts:
    Enabled: true

# Network variables allow you to create shared varaibles between multiple servers on the bungeecord.
# SkellettProxy will handle the variables on the Bungeecord instance.
NetworkVariables:
    Enabled: true
    # Allow variables to be re-writen if a server calls for it.
    AllowOverrides: true
    # Automatic sharing means that SkellettProxy will try to make Skellett's (Spigot side) variables
    # match the exact variables as Bungeecord.
    # So basically if you update a global variable, SkellettProxy will make every Spigot server variables match that.
    # So all you need todo is
    #
    # set network variable {test} to "Hello world!"
    #
    # Then on every other server, the variable {test} will be be set to "Hello world!"
    #
    # WARNING: Keep in mind this will override any variable names that match SkellettProxy's.
    # If this is enabled SkellettProxy variable names will be priority!
    # It should be harmless if you don't care about your old data.
    # And last thing, this is cap sensitive, can't change or fix that. That's Skript.
    AutomaticSharing: false
    Backups:
        # Backup the variables when the bungeecord ends.
        End: true
        # Backup the variables every X minutes.
        Interval: true
        # Time is in minutes.
        IntervalTime: 120
        # Broadcasts a message to console saying backups have been saved.
        ConsoleMessage: false

Java:
# Skellett the addon with the beast name!
# By LimeGlass

# The Host must be the main IP of the BungeeCord that is hosting SkellettProxy.
# If the bungeecord and this server are on the same machine, you can leave it as localhost.

# The port must match the same port that is in the SkellettProxy config.
SkellettProxy: true
Host: localhost
Port: 7377

# Heartbeat is a running task that SkellettProxy uses to check that servers are still connected.
# This is in milliseconds.
Heartbeat: 50

# Disconnect if the Bungeecord is offline.
# If this is set to false. Skellett will keep making attempts at connecting.
Disconnect: false

# Enable Bungeecord events.
# This will run a repeating task to handle the listener.
# This needs to be enabled if you want to use;
# Bungeecord events, Evaluate effect, Max players, Whitelisted players, Network variables, Global scripts and much more!
Events: true
# The event port is what SkellettProxy looks for when a bungee event has been triggered.
# This can match the port defined in the SkellettProxy settings above. It doesn't really matter.
# The port above is the port from the bungeecord side SkellettProxy config, where as this port is for this server.
# This port has to be DIFFERENT on every one of your bungeecord server if your servers run on the same machine.
EventPort: 7376

# A message that is displayed to the console to notify that a GlobalScript has been reloaded.
GlobalScriptReloadMessage: true

Java:
[20:46:26] [Server thread/WARN]: java.io.EOFException
[20:46:26] [Server thread/WARN]:        at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2626)
[20:46:26] [Server thread/WARN]:        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1321)
[20:46:26] [Server thread/WARN]:        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
[20:46:26] [Server thread/WARN]:        at com.gmail.thelimeglass.Sockets.connect(Sockets.java:69)
[20:46:26] [Server thread/WARN]:        at com.gmail.thelimeglass.Sockets$1.run(Sockets.java:27)
[20:46:26] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[20:46:26] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:3$
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:723)
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[20:46:26] [Server thread/WARN]:        at java.lang.Thread.run(Thread.java:745)
[20:46:26] [Craft Scheduler Thread - 6/INFO]: ^[[0;30;1m[^[[0;32;1mSkellett^[[0;30;1m] ^[[0;33;1mSkellettProxy connection established on por$
[20:46:26] [Craft Scheduler Thread - 0/INFO]: ^[[0;30;1m[^[[0;32;1mSkellett^[[0;30;1m] ^[[0;33;1m^[[0;31;1mIncorrect SkellettProxy details, $
[20:46:26] [Craft Scheduler Thread - 0/ERROR]: [Skript] If you're 100% sure your details are correct, this can be caused because some server$
[20:46:26] [Craft Scheduler Thread - 0/INFO]: ^[[0;30;1m[^[[0;32;1mSkellett^[[0;30;1m] ^[[0;33;1m^[[0;31;1mAttempting to reconnect and fix m$
[20:46:26] [Craft Scheduler Thread - 6/INFO]: ^[[0;30;1m[^[[0;32;1mSkellett^[[0;30;1m] ^[[0;33;1m^[[0;31;1mBungeecord went offline. Attempti$
[20:46:26] [Server thread/WARN]: java.io.EOFException
[20:46:26] [Server thread/WARN]:        at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2626)
[20:46:26] [Server thread/WARN]:        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1321)
[20:46:26] [Server thread/WARN]:        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
[20:46:26] [Server thread/WARN]:        at com.gmail.thelimeglass.Sockets.connect(Sockets.java:69)
[20:46:26] [Server thread/WARN]:        at com.gmail.thelimeglass.Sockets$1.run(Sockets.java:27)
[20:46:26] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[20:46:26] [Server thread/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:3$
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:723)
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[20:46:26] [Server thread/WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[20:46:26] [Server thread/WARN]:        at java.lang.Thread.run(Thread.java:745)
 
@LimeGlass Could you please add pathfinding goals to the addon?
SkStuff's pathfinding goals stuff is a pain and does not always work for some reason, also it is very limited. Example: I can not make a mob follow a specific player etc.
 
@LimeGlass Could you please add pathfinding goals to the addon?
SkStuff's pathfinding goals stuff is a pain and does not always work for some reason, also it is very limited. Example: I can not make a mob follow a specific player etc.
If you do that can you Also Add nbt stuff because i think skstuff won't keep updating by someone
 
I totally agree with @pepper82 and @Lego_freak1999 ! :emoji_slight_smile:
NBT stuff and Pathfinding are very useful !

And I noticed a "warning" about your schematic syntaxes!
code_language.skript:
14.12 18:01:09 [Server] INFO (FAWE) @CuboidClipboard used by EffPasteSchematic.pasteOld():93 is deprecated.
14.12 18:01:09 [Server] INFO (FAWE)  - Alternatives: { class com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard,class com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat }

Good luck and keep going :emoji_grinning:
Kiss <3
 
@LimeGlass Could you please add pathfinding goals to the addon?
SkStuff's pathfinding goals stuff is a pain and does not always work for some reason, also it is very limited. Example: I can not make a mob follow a specific player etc.
If you do that can you Also Add nbt stuff because i think skstuff won't keep updating by someone
I totally agree with @pepper82 and @Lego_freak1999 ! :emoji_slight_smile:
NBT stuff and Pathfinding are very useful !

And I noticed a "warning" about your schematic syntaxes!
code_language.skript:
14.12 18:01:09 [Server] INFO (FAWE) @CuboidClipboard used by EffPasteSchematic.pasteOld():93 is deprecated.
14.12 18:01:09 [Server] INFO (FAWE)  - Alternatives: { class com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard,class com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat }

Good luck and keep going :emoji_grinning:
Kiss <3
NBT should be totally handled by a separated addon, it would be more worth create another addon or a fork of skStuff rather than adding it to Skellett.
 
@LimeGlass Is it possible to disguise a mob using the on damage event?
I'm trying to get it to disguise when it takes damage. However, when I use this code I get an error in game that says "Use 'attacker' and/or 'victim' in damage events":

code_language.skript:
on damage of zombie:
    set {_d} to new disguise with type GIANT
    set disguise of victim to {_d}

The code works fine when disguising mobs using commands such as:
code_language.skript:
command /dis:
    trigger:
        spawn chicken at player
        set {_d} to new disguise with type GIANT
        set disguise of last spawned chicken to {_d}

Any ideas?
 
@LimeGlass Is it possible to disguise a mob using the on damage event?
I'm trying to get it to disguise when it takes damage. However, when I use this code I get an error in game that says "Use 'attacker' and/or 'victim' in damage events":

code_language.skript:
on damage of zombie:
    set {_d} to new disguise with type GIANT
    set disguise of victim to {_d}

The code works fine when disguising mobs using commands such as:
code_language.skript:
command /dis:
    trigger:
        spawn chicken at player
        set {_d} to new disguise with type GIANT
        set disguise of last spawned chicken to {_d}

Any ideas?
You can try setting a variable to the victim then using that
 
You can try setting a variable to the victim then using that
I have tried
code_language.skript:
set {_d} to new disguise with type GIANT
set {_victim} to victim
set disguise of victim to to {_d}
and still get the same error "Use 'attacker' and/or 'victim' in damage events".
I suppose I can set a variable to the specific mob, run a console command to disguise that mob. But if I could do it all within that event, it would be much cleaner.
 
I have tried
code_language.skript:
set {_d} to new disguise with type GIANT
set {_victim} to victim
set disguise of victim to to {_d}
and still get the same error "Use 'attacker' and/or 'victim' in damage events".
I suppose I can set a variable to the specific mob, run a console command to disguise that mob. But if I could do it all within that event, it would be much cleaner.
... you have to use the variabke in the third line
 
... you have to use the variabke in the third line
Sorry! It was late when I typed that, I messed it up. I am definitely using the variable and getting the same error.
The proper version:
code_language.skript:
set {_d} to new disguise with type GIANT
set {_victim} to victim
set disguise of {_victim} to to {_d}
Still get the error "Use 'attacker' and/or 'victim' in damage events".
 
Sorry! It was late when I typed that, I messed it up. I am definitely using the variable and getting the same error.
The proper version:
code_language.skript:
set {_d} to new disguise with type GIANT
set {_victim} to victim
set disguise of {_victim} to to {_d}
Still get the error "Use 'attacker' and/or 'victim' in damage events".
in what line and event
 
Sorry! It was late when I typed that, I messed it up. I am definitely using the variable and getting the same error.
The proper version:
code_language.skript:
set {_d} to new disguise with type GIANT
set {_victim} to victim
set disguise of {_victim} to to {_d}
Still get the error "Use 'attacker' and/or 'victim' in damage events".
You have "to to" put in there twice, so Skript doesn't know what you want. Remove one of the "to" in the syntax and see if that fixes it. If not please send any console errors you might have. That's what I see is the problem from looking at this code. You can also try putting the "GIANT" in a string as it supports both string and enum.
 
Hey there,
how can I permanently remove a NPC (targeted entity) with Skellett?
(When I try the "remove citizen"-effect it despawns the citizen but after server restart the NPC is back)
 
You have "to to" put in there twice, so Skript doesn't know what you want. Remove one of the "to" in the syntax and see if that fixes it. If not please send any console errors you might have. That's what I see is the problem from looking at this code. You can also try putting the "GIANT" in a string as it supports both string and enum.
I swear, every time I type something here for help I accidentally typo... I feel like such a fool.
The "to to" wasn't in my code, I just typed it in here by mistake. Here is a copy paste of my code for fidelity sake!

code_language.skript:
on damage of zombie:
    set {_d} to new disguise with type GIANT
    set {_victim} to victim
    set disguise of {_victim} to {_d}

I have tried "GIANT" as a string as well as not as a string. It always throws an error on the "set disguise of {_victim} to {_d}" line. The error is "Use 'attacker' and/or 'victim' in damage events". There are no errors in console, just errors in game upon reloading. I have a ton of skript add-ons, maybe one is interfering somehow. Can anyone confirm that this method does work for them?
 
I swear, every time I type something here for help I accidentally typo... I feel like such a fool.
The "to to" wasn't in my code, I just typed it in here by mistake. Here is a copy paste of my code for fidelity sake!

code_language.skript:
on damage of zombie:
    set {_d} to new disguise with type GIANT
    set {_victim} to victim
    set disguise of {_victim} to {_d}

I have tried "GIANT" as a string as well as not as a string. It always throws an error on the "set disguise of {_victim} to {_d}" line. The error is "Use 'attacker' and/or 'victim' in damage events". There are no errors in console, just errors in game upon reloading. I have a ton of skript add-ons, maybe one is interfering somehow. Can anyone confirm that this method does work for them?
I mean, if you have skript-mirror i guess you can use it to get the victim instead
 
I swear, every time I type something here for help I accidentally typo... I feel like such a fool.
The "to to" wasn't in my code, I just typed it in here by mistake. Here is a copy paste of my code for fidelity sake!

code_language.skript:
on damage of zombie:
    set {_d} to new disguise with type GIANT
    set {_victim} to victim
    set disguise of {_victim} to {_d}

I have tried "GIANT" as a string as well as not as a string. It always throws an error on the "set disguise of {_victim} to {_d}" line. The error is "Use 'attacker' and/or 'victim' in damage events". There are no errors in console, just errors in game upon reloading. I have a ton of skript add-ons, maybe one is interfering somehow. Can anyone confirm that this method does work for them?
Do you have the LibsDisguises option enabled in the config for Skellett?
[doublepost=1513595363,1513595330][/doublepost]
Hey there,
how can I permanently remove a NPC (targeted entity) with Skellett?
(When I try the "remove citizen"-effect it despawns the citizen but after server restart the NPC is back)
Unregister npc syntax
 
Do you have the LibsDisguises option enabled in the config for Skellett?

Yes I do. I also have the latest Skellett, the latest Skript, the latest LibsDisguise, and ProtocolLib.

I've noticed disguising works if I'm issuing the command such as:
code_language.skript:
command /madcow:
    trigger:
        spawn zombie at player
        set {_zombie} to last spawned zombie
        set {_d} to new disguise with type COW
        set disguise of {_zombie} to {_d}

However if I'm using another event or the console is issuing a command, it won't work. Such as the on damage event or this:
code_language.skript:
command /madcow_spawn:
    trigger:
        loop all players:
            make console execute "madcow %loop-player%"
           
command /madcow <player>:
    trigger:
        set {_player} to player-arg 
        spawn zombie at {_player}
        set {_zombie} to last spawned zombie
        set {_d} to new disguise with type COW
        set disguise of {_zombie} to {_d}
In this scenario the zombie spawns, but just won't disguise.
There are no errors in console.
 
Yes I do. I also have the latest Skellett, the latest Skript, the latest LibsDisguise, and ProtocolLib.

I've noticed disguising works if I'm issuing the command such as:
code_language.skript:
command /madcow:
    trigger:
        spawn zombie at player
        set {_zombie} to last spawned zombie
        set {_d} to new disguise with type COW
        set disguise of {_zombie} to {_d}

However if I'm using another event or the console is issuing a command, it won't work. Such as the on damage event or this:
code_language.skript:
command /madcow_spawn:
    trigger:
        loop all players:
            make console execute "madcow %loop-player%"
          
command /madcow <player>:
    trigger:
        set {_player} to player-arg
        spawn zombie at {_player}
        set {_zombie} to last spawned zombie
        set {_d} to new disguise with type COW
        set disguise of {_zombie} to {_d}
In this scenario the zombie spawns, but just won't disguise.
There are no errors in console.
Try casting the entity/player through a function rather than an event.