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} ({1})</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} ({1})</color>",
  "Words.Disabled": "disabled",
  "Words.Grade.1": "Wood",
  "Words.Grade.2": "Stone",
  "Words.Grade.3": "Metal",
  "Words.Grade.4": "Armoured"


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.

This plugin is unlicensed and the original author reserves all rights to it.

The original author may request that this plugin be removed and there is a risk that the plugin may be unavailable in the future.

Note that the current maintainer may not have permission to assign a license to the plugin if they are not the original author, so explicit permission would need to be obtained from the original author in order for the plugin to remain openly available and guarantee that it will be around for all to enjoy going forward.