Auto update building blocks when placed

Supported Games

This plugin can automatically upgrade building blocks upon placement. Allowing players to upgrade their building blocks with ease, preventing the needed use of the Hammer.


This plugin has a set of modular permissions, allowing particular users (i.e VIPs) to upgrade to certain upgrade tiers, where others (i.e non-VIPs) cannot.

  • bgrade.all -- Allows the granted user to use all grades possible.
  • bgrade.nores -- Allows the user to not have to consume resources when their block is upgraded
  • bgrade.1 -- Allows the user to automatically upgrade to grade 1
  • bgrade.2 -- Allows the user to automatically upgrade to grade 2
  • bgrade.3 -- Allows the user to automatically upgrade to grade 3
  • bgrade.4 -- Allows the user to automatically upgrade to grade 4

Chat Commands

The commands are completely dynamic to the user. So replace the /bgrade to whatever you change your commands to in your configuration file, if you decide to do so.

  • /bgrade t <seconds> -- Change the players disable timer
  • /bgrade 0 -- Disable BGrade
  • /bgrade 1 -- Enable automatic Wood upgrades
  • /bgrade 2 -- Enable automatic Stone upgrades
  • /bgrade 3 -- Enable automatic Metal upgrades
  • /bgrade 4 -- Enable automatic Armoured upgrades

Console Commands

Again, these commands are completely reliant on your configuration values. So if you change them from default, change the usages here with your desired commands.

  • bgrade.up -- Mainly added for binds so users can easily increment their BGrade level by pressing a key. Example of how to bind: bind u bgrade.up


I have used a fool-proof configuration helper in this plugin so it's pretty hard to break it. But if you do manage to break it, refer to this to restore your values the way you want them.

  "Building Attack Settings": {
    "Cooldown Time": 30,
    "Enabled": true
  "Command Settings": {
    "Chat Commands": [
    "Console Commands": [
  "Refund Settings": {
    "Refund on Block": true
  "Timer Settings": {
    "Default Timer": 30,
    "Enabled": true,
    "Max Timer": 180


  "Permission": "You don't have permission to use that command",
  "Error.InvalidArgs": "Invalid arguments, please use /{0} help",
  "Error.Resources": "You don't have enough resources to upgrade.",
  "Error.InvalidTime": "Please enter a valid time. '<color=orange>{0}</color>' is not recognised as a number.",
  "Error.TimerTooLong": "Please enter a time that is below the value of <color=orange>{0}</color>.",
  "Notice.SetGrade": "Automatic upgrading is now set to grade <color=orange>{0}</color>.",
  "Notice.SetTime": "The disable timer is now set to <color=orange>{0}</color>.",
  "Notice.Disabled": "Automatic upgrading is now disabled.",
  "Notice.Disabled.Auto": "Automatic upgrading has been automatically disabled.",
  "Notice.Time": "It'll automatically disable in <color=orange>{0}</color> seconds.",
  "Command.Help": "<color=orange><size=16>BGrade Command Usages</size></color>",
  "Command.Help.0": "/{0} 0 - Disables BGrade",
  "Command.Help.1": "/{0} 1 - Upgrades to Wood upon placement",
  "Command.Help.2": "/{0} 2 - Upgrades to Stone upon placement",
  "Command.Help.3": "/{0} 3 - Upgrades to Metal upon placement",
  "Command.Help.4": "/{0} 4 - Upgrades to Armoured upon placement",
  "Command.Help.T": "/{0} t <seconds> - Time until BGrade is disabled",
  "Command.Settings": "<color=orange><size=16>Your current settings</size></color>",
  "Command.Settings.Timer": "Timer: <color=orange>{0}</color> seconds",
  "Command.Settings.Grade": "Grade: <color=orange>{0}</color>",
  "Words.Disabled": "disabled"

The recent update will break existing plugins that use the API methods this plugin used to provide. Please get in touch with the plugins authors and tell them to read the section below.

API Methods (for developers)

CanAutoGrade (deprecated)

CanAutoGrade(int playerGrade, BuildingBlock buildingBlock, Planner plan) => 0;


CanBGrade(int playerGrade, BuildingBlock buildingBlock, Planner plan) => 0;
  • Return -1 or 0 to block upgrade
  • Return 1 to kill the building block and refund depending on config value

This plugin also hooks into OnStructureUpgrade, so you can also use this hook to change upgrade behaviour if you wish. Returning a non null value will prevent the upgrade.

    394 watchers