Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.
options:
#
#░██████╗██╗░░░██╗██████╗░██████╗░███████╗███╗░░░███╗███████╗██████╗░░█████╗░░██████╗░██████╗███████╗░██████╗
#██╔════╝██║░░░██║██╔══██╗██╔══██╗██╔════╝████╗░████║██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝██╔════╝
#╚█████╗░██║░░░██║██████╔╝██████╔╝█████╗░░██╔████╔██║█████╗░░██████╦╝██║░░██║╚█████╗░╚█████╗░█████╗░░╚█████╗░
#░╚═══██╗██║░░░██║██╔═══╝░██╔══██╗██╔══╝░░██║╚██╔╝██║██╔══╝░░██╔══██╗██║░░██║░╚═══██╗░╚═══██╗██╔══╝░░░╚═══██╗
#██████╔╝╚██████╔╝██║░░░░░██║░░██║███████╗██║░╚═╝░██║███████╗██████╦╝╚█████╔╝██████╔╝██████╔╝███████╗██████╔╝
#╚═════╝░░╚═════╝░╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═╝░░░░░╚═╝╚══════╝╚═════╝░░╚════╝░╚═════╝░╚═════╝░╚══════╝╚═════╝░
#
# Fun, Customizable and Easy to use bosses.
#
#
# Script: SupremeBosses
# Developer: JAYJAYTEE
# Version: 1.0
#
#
# Dependencies:
# - Skript 2.5-alpha3 (Bensku's Fork) # Download: https://github.com/SkriptLang/Skript/releases
# - skript-mirror 2.0.0 # Download: https://skripttools.net/dl/skript-mirror+2.0.0-SNAPSHOT.jar
#
# Settings:
#
# - Messages
general_prefix: &6&lBosses&7&o # Default: &6&lBosses &7&o
general_permission_denied: &cNo Permission. # Default: &cNo Permission.
#
# - Values
base_boss_damage: 20 # Default: 20
#
# - Permissions
boss_permission: supremebosses.use # Default: supremebosses.use # Usage: Command /boss
#
# -> You should not change the code below unless you know what you are doing.
# -> You should not change the code below unless you know what you are doing.
# -> You should not change the code below unless you know what you are doing.
#
version: 1.0
skunity: &c&lERROR!
expression %item% enchanted with %enchantmenttypes%:
return type: item
get:
set {_i} to expr-1.clone()
loop exprs-2:
set {_e} to loop-value
enchant {_i} with {_e}
return {_i}
expression glowing %items%:
return type: items
get:
loop exprs-1:
add 1 to {_n}
set {_i} to loop-value
set {_r::%{_n}%} to {_i} enchanted with lure 1
return {_r::*}
on script load:
set {_letters} to "Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz"
set {_letter-pairs::*} to {_letters} split at " "
loop {_letter-pairs::*}:
set {_pair::*} to loop-value split at ""
set {_uppercase} to {_pair::1}
set {_lowercase} to {_pair::2}
set {letters::uppercase::%{_lowercase}%} to {_uppercase}
set {letters::lowercase::%{_uppercase}%} to {_lowercase}
on script unload:
delete {letters::*}
function switchCaseFor(text: text, to-uppercase: boolean) :: text:
set {_characters::*} to {_text} split at ""
set {_new} to ""
loop {_characters::*}:
set {_char} to loop-value
if {_to-uppercase} is true:
set {_char} to {letters::uppercase::%loop-value%}
else:
set {_char} to {letters::lowercase::%loop-value%}
set {_new} to "%{_new}%%{_char}%"
return {_new}
function uppercase(text: text) :: text:
return switchCaseFor({_text}, true)
function lowercase(text: text) :: text:
return switchCaseFor({_text}, false)
function capitalize(text: text) :: text:
set {_char} to the first character of {_text}
set {_char} to {letters::uppercase::%{_char}%}
set {_remaining} to ""
set {_remaining} to the last (length of {_text} - 1) characters of {_text}
return "%{_char}%%{_remaining}%"
command /boss:
permission: {@boss_permission}
permission message: {@general_permission_denied}
trigger:
if sender is not console:
openBossGUI(sender, "main")
else if sender is console:
send "&cYou must be a player to execute this command!" to sender
on inventory click:
if event.getView().getTitle() = "&6&lSupreme&6Bosses":
cancel event
if clicked slot = 2:
openBossGUI(player, "create")
if clicked slot = 6:
openBossGUI(player, "view")
else if event.getView().getTitle() = "&6&lSupreme&6Bosses &7&oCreation":
cancel event
if clicked slot = 0:
delete {TEMP_MOBTYPE.%player%}
delete {TEMP_MOBHEALTH.%player%}
delete {TEMP_MOBATTACK.%player%}
openBossGUI(player, "main")
else if clicked slot = 8:
if {SupremeBosses_Bosses_Count::%player's uuid%} is not set:
set {SupremeBosses_Bosses_Count::%player's uuid%} to 0
wait 1 tick
add 1 to {SupremeBosses_Bosses_Count::%player's uuid%}
set {_count} to {SupremeBosses_Bosses_Count::%player's uuid%}
set {_mobtype} to {TEMP_MOBTYPE.%player%}.toString()
set {_counttype} to "%{_count}%, %{_mobtype}%"
set {_mobhealth} to {TEMP_MOBHEALTH.%player%}.toString()
set {_mobattack} to {TEMP_MOBATTACK.%player%}.toString()
set {_healthattack} to "%{_mobhealth}%, %{_mobattack}%"
set {_final} to "%{_counttype}%, %{_healthattack}%"
add {_final} to {SupremeBosses_Bosses_Saved::%player's uuid%::*}
send "&a&lSuccessfully &6Saved Your Boss!" to player
openBossGUI(player, "main")
else if clicked slot = 3:
if {TEMP_MOBTYPE.%player%} is "Zombie":
set {TEMP_MOBTYPE.%player%} to "Skeleton"
else if {TEMP_MOBTYPE.%player%} is "Skeleton":
set {TEMP_MOBTYPE.%player%} to "WitherSkeleton"
else if {TEMP_MOBTYPE.%player%} is "WitherSkeleton":
set {TEMP_MOBTYPE.%player%} to "Spider"
else if {TEMP_MOBTYPE.%player%} is "Spider":
set {TEMP_MOBTYPE.%player%} to "Creeper"
else if {TEMP_MOBTYPE.%player%} is "Creeper":
set {TEMP_MOBTYPE.%player%} to "Zombie"
openBossGUI(player, "create")
else if clicked slot = 4:
if "%click type%" contains "LEFT":
if {TEMP_MOBHEALTH.%player%} < 1000:
add 10 to {TEMP_MOBHEALTH.%player%}
else if "%click type%" contains "RIGHT":
if {TEMP_MOBHEALTH.%player%} > 10:
remove 10 from {TEMP_MOBHEALTH.%player%}
openBossGUI(player, "create")
else if clicked slot = 5:
if {TEMP_MOBATTACK.%player%} is "Lightning":
set {TEMP_MOBATTACK.%player%} to "Fire"
else if {TEMP_MOBATTACK.%player%} is "Fire":
set {TEMP_MOBATTACK.%player%} to "Water"
else if {TEMP_MOBATTACK.%player%} is "Water":
set {TEMP_MOBATTACK.%player%} to "Earth"
else if {TEMP_MOBATTACK.%player%} is "Earth":
set {TEMP_MOBATTACK.%player%} to "Lightning"
openBossGUI(player, "create")
else if event.getView().getTitle() contains "&6&lSupreme&6Bosses &7&oView":
cancel event
if clicked slot = 53:
# Next
set {_next} to {TEMP_PAGE.%player%} + 1
openView(player, {_next})
else if clicked slot = 45:
if clicked item = arrow:
# Previous
set {_prev} to {TEMP_PAGE.%player%} - 1
openView(player, {_prev})
else if clicked slot = 49:
openBossGUI(player, "main")
else if index of event-slot is between 9 and 45:
if "%click type%" contains "RIGHT":
if event-slot != air:
set {_y} to player's uuid
set {_index::*} to uncolored name of event-slot parsed as "\(%int%\)%string%"
delete {SupremeBosses_Bosses_Saved::%{_y}%::*} if (size of {SupremeBosses_Bosses_Saved::%{_y}%::*}) = 1
remove {SupremeBosses_Bosses_Saved::%{_y}%::%{_index::1}%} from {SupremeBosses_Bosses_Saved::%{_y}%::*}
wait 1 tick
set {SupremeBosses_Bosses_Saved::%{_y}%::*} to sorted {SupremeBosses_Bosses_Saved::%{_y}%::*}
remove 1 from {SupremeBosses_Bosses_Count::%player's uuid%}
openView(player, {TEMP_PAGE.%player%})
send "&c&lSuccessfully&6 Deleted Your Boss!" to sender
else if "%click type%" contains "LEFT":
if event-slot != air:
set {_lore_1} to line 1 of lore of event-slot
set {_lore_2} to line 2 of lore of event-slot
set {_lore_3} to line 3 of lore of event-slot
set {_loreall} to uncolored ("%{_lore_1}%, %{_lore_2}%, %{_lore_3}%")
set {_lores::*} to {_loreall} parsed as "Mob Type: %string%, Health: %int%, Mob Attack: %string%"
give 1 of glowing ("%({_lores::1} parsed as entity type)% spawn egg" parsed as item) named "&6&l%{_lores::3}% &6%{_lores::1}%" with lore " ", "&7Mob Type: &f%{_lores::1}%", "&7Health: &f%{_lores::2}%" and "&7Mob Attack: &f%{_lores::3}%" to player
on rightclick:
if player's held item is spawn egg:
if targeted block is set:
if distance between player and targeted block <= 6:
set {_lore1} to uncolored line 2 of lore of player's tool
set {_lore2} to uncolored line 3 of lore of player's tool
set {_lore3} to uncolored line 4 of lore of player's tool
if {_lore1} contains "Mob Type":
cancel event
set {_lores1::*} to {_lore1} parsed as "Mob Type: %string%"
set {_lores2::*} to {_lore2} parsed as "Health: %int%"
set {_lores3::*} to {_lore3} parsed as "Mob Attack: %string%"
if gamemode of player is survival:
remove 1 of player's tool from player's tool
set {_loc} to location of targeted block
add 1 to the y-coordinate of {_loc}
spawn 1 of (lowercase({_lores1::1}) parsed as entity type) at {_loc}
set {_mob} to last spawned entity
set the maximum health of {_mob} to {_lores2::1}
heal {_mob}
{_mob}.setCustomName("&e-&6=&e- &6&l%{_lores3::1}% &6%{_lores1::1}% &e-&6=&e-")
set helmet of {_mob} to gold helmet
loop players in radius 50 around {_mob}:
play sound "ENTITY_WITHER_SPAWN" with volume 100 to loop-player
if {_lores3::1} contains "Lightning":
apply speed 2 to {_mob} for 9999 minutes
strike lightning at {_loc}
wait 0.25 seconds
strike lightning at {_loc}
wait 0.1 seconds
strike lightning at {_loc}
on damage:
if attacker is not a player:
if victim is a player:
if uncolored display name of attacker contains "-=-":
set {_display::*} to uncolored display name of attacker parsed as "-=- %string% %string% -=-"
set damage to {@base_boss_damage}
if {_display::1} is "Lightning":
chance of 60%:
set {_ploc} to victim's location
strike lightning at {_ploc}
make attacker damage victim by {@base_boss_damage} * 2
function openBossGUI(p: player, t: text):
#close {_p}'s inventory
if {_t} = "main":
set {_inv} to chest inventory with 1 rows named "&6&lSupreme&6Bosses"
set slot (integers from 0 to 8) of {_inv} to black stained glass pane named "&7"
set slot 2 of {_inv} to glowing oak sign named "&aCreate a boss" with lore " ", "&7Click me to create a new" and "&7boss."
set slot 6 of {_inv} to glowing paper named "&aView created bosses" with lore " ", "&7Click me to view all" and "&7the bosses."
open {_inv} to {_p}
else if {_t} = "create":
if {TEMP_MOBTYPE.%{_p}%} is not set:
set {TEMP_MOBTYPE.%{_p}%} to "Zombie"
if {TEMP_MOBHEALTH.%{_p}%} is not set:
set {TEMP_MOBHEALTH.%{_p}%} to 20
if {TEMP_MOBATTACK.%{_p}%} is not set:
set {TEMP_MOBATTACK.%{_p}%} to "Lightning"
set {_inv} to chest inventory with 1 rows named "&6&lSupreme&6Bosses &7&oCreation"
set slot (integers from 0 to 8) of {_inv} to black stained glass pane named "&7"
if {TEMP_MOBTYPE.%{_p}%} is "Zombie":
set slot 3 of {_inv} to zombie spawn egg named "&aMob Type" with lore " ", "&7Zombie", "&8Skeleton", "&8Wither Skeleton", "&8Spider", "&8Creeper" and " "
else if {TEMP_MOBTYPE.%{_p}%} is "Skeleton":
set slot 3 of {_inv} to skeleton spawn egg named "&aMob Type" with lore " ", "&8Zombie", "&7Skeleton", "&8Wither Skeleton", "&8Spider", "&8Creeper" and " "
else if {TEMP_MOBTYPE.%{_p}%} is "WitherSkeleton":
set slot 3 of {_inv} to wither skeleton spawn egg named "&aMob Type" with lore " ", "&8Zombie", "&8Skeleton", "&7Wither Skeleton", "&8Spider", "&8Creeper" and " "
else if {TEMP_MOBTYPE.%{_p}%} is "Spider":
set slot 3 of {_inv} to spider spawn egg named "&aMob Type" with lore " ", "&8Zombie", "&8Skeleton", "&8Wither Skeleton", "&7Spider", "&8Creeper" and " "
else if {TEMP_MOBTYPE.%{_p}%} is "Creeper":
set slot 3 of {_inv} to creeper spawn egg named "&aMob Type" with lore " ", "&8Zombie", "&8Skeleton", "&8Wither Skeleton", "&8Spider", "&7Creeper" and " "
set {_health} to {TEMP_MOBHEALTH.%{_p}%}
set slot 4 of {_inv} to diamond chestplate with all flags hidden named "&aMob Health" with lore " ", "&cHealth &f%{_health}%", " ", "&7Right-click to &c- 10" and "&7Left-click to &a+ 10"
if {TEMP_MOBATTACK.%{_p}%} is "Lightning":
set slot 5 of {_inv} to iron sword with all flags hidden named "&aMob Attack" with lore " ", "&7Lightning", "&8Fire &cComing Soon", "&8Water &cComing Soon", "&8Earth &cComing Soon" and " "
else if {TEMP_MOBATTACK.%{_p}%} is "Fire":
set slot 5 of {_inv} to fire charge named "&aMob Attack" with lore " ", "&8Lightning", "&7Fire &cComing Soon", "&8Water &cComing Soon", "&8Earth &cComing Soon" and " "
else if {TEMP_MOBATTACK.%{_p}%} is "Water":
set slot 5 of {_inv} to water bucket named "&aMob Attack" with lore " ", "&8Lightning", "&8Fire &cComing Soon", "&7Water &cComing Soon", "&8Earth &cComing Soon" and " "
else if {TEMP_MOBATTACK.%{_p}%} is "Earth":
set slot 5 of {_inv} to dirt named "&aMob Attack" with lore " ", "&8Lightning", "&8Fire &cComing Soon", "&8Water &cComing Soon", "&7Earth &cComing Soon" and " "
set slot 0 of {_inv} to barrier named "&cExit"
set slot 8 of {_inv} to glowing emerald block named "&aSave"
open {_inv} to {_p}
else if {_t} = "view":
openView({_p}, 1)
function openView(p: player, page: number):
set {_inv} to chest inventory with 6 rows named "&f&o%{_page}% &6&lSupreme&6Bosses &7&oView"
set slot (integers from 0 to 8) of {_inv} to black stained glass pane named "&7"
set slot (integers from 45 to 53) of {_inv} to black stained glass pane named "&7"
set slot 49 of {_inv} to barrier named "&cExit"
set {TEMP_PAGE.%{_p}%} to {_page}
set slot 53 of {_inv} to arrow named "&fNext Page"
if {_page} > 1:
set slot 45 of {_inv} to arrow named "&fPrevious Page"
set {_n} to 10
set {_y} to {_p}'s uuid
loop 36 times:
set {_no} to {_n} - 9
if {_no} <= (size of {SupremeBosses_Bosses_Saved::%{_y}%::*}):
set {_nop} to ({_no} + (36*({_page}-1)))
{SupremeBosses_Bosses_Saved::%{_y}%::%{_nop}%} exists
set {_split::*} to {SupremeBosses_Bosses_Saved::%{_y}%::%{_nop}%} parsed as "%int%, %string%, %int%, %string%"
set {_split::1} to {_nop}
if {_split::2} is "WitherSkeleton":
set {_split::2} to "Wither Skeleton"
set {_type} to lowercase({_split::2})
set slot {_n} - 1 of {_inv} to glowing ("%({_type} parsed as entity type)% spawn egg" parsed as item) named "&b(%{_split::1}%&b) Debug Name" with lore "&7Mob Type:&f %{_split::2}%", "&7Health:&f %{_split::3}%", "&7Mob Attack:&f %{_split::4}%", " ", "&7Right-click to &cdelete &7your boss." and "&7Left-click to &agive &7your boss."
add 1 to {_n}
open {_inv} to {_p}