Bossbars - ShaneBeee/SkBee GitHub Wiki
Bossbars are a way to add a bit more pizzazz to your server by providing a different way of displaying information, in the form of a colored bar at the top of your screen.
Creating a Bossbar
Bossbars can be created using a relatively short expression, each component will be explained below:
[new] boss[ ]bar named %string% [with title %string%] [with color %color%] [with style %bossbarstyle%] [with progress %number%]
Bossbar Name
The name is simply used as a way to reference the bossbar, for example, if you choose to delete the bossbar you can use:
delete bossbar named "myCoolBar"
Bossbar Title
The title is what is actually shown to the user above the bar:
set {_myBar} to bossbar named "myCoolBar" with title "&aHello &bWorld!"
Bossbar Color
The color defines the color of the bar, Minecraft only offers a few colors to choose from so don't be picky:
set {_myBar} to bossbar named "myCoolBar" with title "&aHello &bWorld!" with color blue
The colors offered are:
blue
green
pink
purple
red
white
yellow
Bossbar Style
The style of the bar changes how it looks a bit, like colors you only have a few options.
set {_myBar} to bossbar named "myCoolBar" with title "&aHello &bWorld!" with color blue with style segmented 6
The styles offered are:
segmented 6
segmented 10
segmented 12
segmented 20
solid bar
Segmented
simply means that the bar has that many darkened dividers evenly placed on the bar, and of course solid bar
means there are no dividers.
Bossbar Progress
With bossbars being... bossbars that also means that the progress of them can be changed (how full the bar is), in SkBee, the progression is measured from 0
to 100
.
set {_myBar} to bossbar named "myCoolBar" with title "&aHello &bWorld!" with color blue with style segmented 6 with progress 50
Editing an existing Bossbar
After creating a base bossbar (like the examples above) or as just a plain bossbar with set {_myBar} to bossbar named "myCoolBar"
, you can now edit the individual properties of the bossbar with their own expressions:
[boss[ ]]bar title of %bossbar%
[boss[ ]]bar color of %bossbar%
[boss[ ]]bar style of %bossbar%
[boss[ ]]bar progress of %bossbar%
[boss[ ]]bar players of %bossbar%
[boss[ ]]bar flag %bossbarflag% of %bossbar%
[boss[ ]]bar visibility of %bossbar%
The first 4
things were already discussed in the previous section, so now we can introduce the 3
remaining.
Players of a Bossbar
Now you may be wondering, after trying the examples shown, why does the bar not appear? Simply, no one was added to the bar so it's not being shown to anyone. The bossbar players expression represents a list of players who will be shown the bar, so typical Skript syntax will work like expected:
set bossbar players of {_myBar} to player
add {_player} to bossbar players of {_myBar}
Bossbar Visibility
After adding players to a bossbar, you may want to keep them added to that bar, but you also want to hide the bar. That's when this expression is handy, it simply allows you to change the visibility state of a bossbar:
set bossbar visibility of {_myBar} to false
Bossbar Flags
Not as widely used as the other expressions, but it still has its place. The bossbar flag expression lets you adjust a few options for the bar:
set bossbar flag create fog of {_myBar} to true
The options for flags are as follows:
create fog
darken sky
play boss music
Which should be self explanatory based on the names.
Popular Use Cases
Linking a Bossbar to the Health of an Entity
So you want to add a bossbar and have the progress linked to the health of something huh? Well luckily that's very easy to do, first we need to understand what we actually want to do before we go off writing code.
If we know that the range of a bossbar is from 0 to 100, and that the health of the entity we want is, lets say, 0 to 10 (as in 10 hearts), then we need a way to convert the range of the entity to the range of the bossbar, in this case it's very simple, we just need to multiply the health of the entity by 10
, but what if we dont want to hardcode that? Then we can write a very simple equation, 100 / maxHealth * currentHealth
which will spit out the value we need for the progression.
set bossbar progress of {_myBar} to 100 / max health of {_entity} * health of {_entity}
Now, if you wanted to make the code more efficient you would add it in the damage and heal event, but that's out of scope for this wiki.