Upgrades#
Upgrades allows you to upgrade your island size, Entities/Blocks limits at the cost of money and island level.
This addon was created to add a progression curve and a use of money for the island.
Created and maintained by Ikkino
Warning
Upgrades is currently in Beta.
Keep in mind that you are more likely to encounter bugs and some features might not be stable.
Useful links
Installation#
- Place the Upgrades addon jar in the addons folder of the BentoBox plugin
- Restart the server
- The addon will create a data folder and inside the folder will be a config.yml
- Edit the config.yml how you want.
- Restart the server if you make a change
Commands#
Tip
[player_command]
is a command that differs depending on the gamemode you are running. The Gamemodes' config.yml
file contains options that allows you to modify this value. As an example, on BSkyBlock, the default [player_command]
is island
.
There is a user command to open a GUI with the upgrades.
/[Player command] upgrade
Setup - Config.yml#
The config.yml has the following sections:
- range-upgrade
- block-limits-upgrade
- entity-limits-upgrade
- command-upgrade
- gamemodes
- entity-icon
- command-icon
Tip
All upgrade
, island-min-level
and vault-cost
fields are mathematical expression. So:
- +,-,*,/,^,(,) can be used
- sqrt(), sin(), cos(), tan() can be used
[level]
is replaced by the actual level for this upgrade[islandLevel]
is replaced by the island level from level addon (Can be 0)[numberPlayer]
is replaced by the number of players in the team
General#
One upgrade is divided by "tier" that can be named at will
Exemple:
tier1:
max-level: 5
upgrade: "5"
island-min-level: "2"
vault-cost: "[level]*100"
permission-level: 1
max-level
is the maximum level of this tier.upgrade
is how much is given at each level.island-min-level
is the minimum island level needed to buy this upgrade. It is given by Level Addonvault-cost
is the cost to buy this upgrade (>= 0)permission-level
is the level of permission needed to buy this upgrade (cf. Permission)
Range Upgrade#
This upgrade increases the protection size of the island.
The size increase is given in the upgrade
field
Exemple:
range-upgrade:
tier1:
max-level: 5
upgrade: "5"
island-min-level: "2"
vault-cost: "[level]*100"
tier2:
max-level: 10
upgrade: "3"
island-min-level: "4"
vault-cost: "[level]*[numberPlayer]*200"
Max Range
You should always check that, even at the maximum upgrade, the protection size never exceeds the size between island.
Block Limits Upgrade#
This upgrade increase the limits of blocks set in the Limits Addon
The number to add to the limits is given by the upgrade
field.
Exemple:
block-limits-upgrade:
HOPPER:
tier1:
max-level: 2
upgrade: "1"
island-min-level: "2"
vault-cost: "[level]*100"
tier2:
max-level: 5
upgrade: "1"
island-min-level: "4"
vault-cost: "([level]-2)*[numberPlayer]*700"
permission-level: 1
Blocks
A list of blocks can be found here
Entity Limits Upgrade#
This upgrade increase the limits of entities set in the Limits Addon
All entities need to have a corresponding icon (CF: entity-icon)
The number to add to the limits is given by the upgrade
field.
Exemple:
entity-limits-upgrade:
CHICKEN:
tier1:
max-level: 2
upgrade: "1"
island-min-level: "2"
vault-cost: "[level]*100"
tier2:
max-level: 5
upgrade: "1"
island-min-level: "4"
vault-cost: "([level]-2)*[numberPlayer]*700"
permission-level: 3
Entities
A list of entities can be found here
Command Upgrade#
This upgrade runs given command on each upgrade
All command upgrade needs to have a corresponding icon (CF: command-icon)
In the config:
- The name of the section is the real name of the upgrade
- The
name
field is only the display name. Not used in permission. - The
console
field specify if the command should be launched by the console or by the player - The
command
field is a list containing all the commands to run. They are launched in the list order
Command Field
In the command field:
[player]
is replaced by the name of the player who bought the upgrade[level]
is replaced with the level of the upgrade
Exemple:
command-upgrade:
lambda-upgrade:
name: "Lambda upgrade"
tier1:
max-level: 1
island-min-level: "2"
vault-cost: "[level]*100"
console: true
command:
- "say [player] has upgrade his lambda to level [level]"
tier2:
max-level: 2
island-min-level: "2"
vault-cost: "[level]*200"
console: true
command:
- "say [player] has upgrade his lambda to level [level]"
- "say [player] has reached the max level"
Gamemode#
It is possible to set differences in upgrade between each gamemode.
Exemple:
gamemodes:
BSkyBlock:
range-upgrade:
tier3:
max-level: 15
upgrade: "5"
island-min-level: "6"
vault-cost: "[level]*[numberPlayer]*500"
block-limits-upgrade:
HOPPER:
tier1:
max-level: 2
upgrade: "1"
island-min-level: "2"
vault-cost: "[level]*200"
Entity Icon#
This section is made to link entities to icons.
Here the syntax:
ENTITY: MATERIAL
Exemple:
entity-icon:
CHICKEN: CHICKEN_SPAWN_EGG
Entities
A list of entities can be found here
Material
A list of materials can be found here
Command Icon#
This section is made to link command upgrade to icon.
Here the syntax:
NAME: MATERIAL
NAME
being the real name of the command upgrade (!= display name)
Exemple:
command-icon:
lambda-upgrade: GRASS
Material
A list of materials can be found here
Permissions#
There can be permission for buying an upgrade.
To do so, a permission-level
superior to 0 should be added to the upgrade. To buy the upgrade, the player need to have a level superior or equal to this level. By default, a player has a level of 0 everywhere.
Here is the permission:
[GAMEMODE].upgrades.[UPGRADE].[LEVEL]
Where:
[GAMEMODE]
is the name of the gamemode where this permission should be set[UPGRADE]
is the name of the upgrade (CF: Name Upgrades)[LEVEL]
is the level to give to the player
Exemple:
bskyblock.upgrades.range-upgrade.2
Warning
Permission is in lowercase
Tip
Because permission is created at runtime, it won't appear in a list of permissions
Name Upgrades#
Range Upgrade:
rangeupgrade
| Exemple: bskyblock.upgrades.range-upgrade.1
Block Limits Upgrade:
limitsupgrade-[BLOCK]
| Exemple: bskyblock.upgrades.limitsupgrade-hopper.8
Entity Limits Upgrade:
limitsupgrade-[ENTITY]
| Exemple: bskyblock.upgrades.limitsupgrade-chicken-hopper.4
Command Upgrade:
command-[NAME]
| Exemple: bskyblock.upgrades.command-lambda-upgrade.6
NAME
being the real name of the command upgrade (!= display name)