Jump to content

1 Screenshot

Works with

About Structure Upgrade

StructureUpgrade allows players to upgrade entire structures, regardless of size, quickly, efficiently and securely using as much of Rust's code as possible to maintain stability.

StructureUpgrade was built for performance from the ground up, and resolves many issues in free alternatives such as exploits, client & server crashes, and extreme lag.

In addition, due to issues a lot of plugins suffer from, I offer a 6 month support guarantee with maximum 7 day turnaround (including for updates to fix the plugin if functionality is lost due to updates) for all support handled through Codeflings support system. If I can't get the plugin into a working condition or provide a reasonable level of support through Codeflings support requests within 7 days, I'll refund what you paid for the plugin if within the 6 month guarantee period.

Support is provided in many places other than Codeflings support system, and I encourage everyone to ask on the forums or our discord first for the fastest response times. Click here to join my discord.

Features

  • Upgrades entire buildings, regardless of size, without causing lag in batches.
  • Determines upgrade costs, handles taking costs from player inventory, dominating tool cupboard, and soon, storages inside the structure. Several checks ensure payment is taken correctly, and when refunding is added even more checks will be implemented.
  • Resumes upgrading efficiently where it left off after a server crash or plugin reload.
  • Supports a virtually infinite queue with optimized queue storage, jobs are stored and tracked in a data file and worked one at a time. Players are notified when their job starts.

  • Unlike the simpler free alternative this plugin is optimized to prevent crashing on upgrading large structures, optimized to eliminate server lag, only a small frame drop for players looking at the structure.

  • Uses Rusts existing building system rather than a janky, laggy alternative. We don't to build lists of entities because Rust already maintains that for us. We're just manipulating and using that information.

  • Free alternative has an exploit allowing players to unintentionally upgrade nearby structures that aren't theirs, StructureUpgrade resolves that issue.

 

Permissions

  • structureupgrade.admin - Allows the player to upgrade structures without being authenticated on the tool cabinet.
  • structureupgrade.free - Allows the player to bypass the upgrade costs when upgrading. They still must be authenticated on the tool cabinet.

  • structureupgrade.up - Allows the player to use the /tc command.

  • structureupgrade.uptc - Allows the player to use the /uptc command.

  • structureupgrade.ups - Allows the player to use the /ups command.

  • structureupgrade.norefund - Disables refunding cost when using /down for that player.

 

Chat Commands

Up Command

  • Adds an upgrade job to queue after verifying and taking payment from the players inventory.
  • Usage: /up {NewGrade}
  • Usage Example: /up 2 (Upgrades structure to Stone Tier)
  • Parameters
    • NewGrade - What grade you'd like to upgrade to. 0 = Twig, 1 = Wood, 2 = Stone, 3 = Sheet Metal, 4 = High Quality
  • Conditions For Use
    1. If using NoEscape Plugin - Player is not currently RaidBlocked.
    2. Provided NewGrade variable is inside supported range; currently 0 - 4.

    3. Command is run by a player.

    4. Player is inside building privilege.

    5. Player is authenticated on dominating tool cabinet, or has permission structureupgrade.admin.

    6. Player has upgrade costs in inventory, or has permission structureupgrade.free.

Down Command

  • Adds an downgrade job to queue after verifying and refunding cost to the players inventory. (Disable refund by giving player structureupgrade.norefund permission)
  • Usage: /down {NewGrade}
  • Usage Example: /down 2 (Downgrades structure to Stone Tier)
  • Parameters
    • NewGrade - What grade you'd like to downgrade to. 0 = Twig, 1 = Wood, 2 = Stone, 3 = Sheet Metal, 4 = High Quality
  • Conditions For Use
    1. If using NoEscape Plugin - Player is not currently RaidBlocked.
    2. Provided NewGrade variable is inside supported range; currently 0 - 4.

    3. Command is run by a player.

    4. Player is inside building privilege.

    5. Player is authenticated on dominating tool cabinet, or has permission structureupgrade.admin.

    6. Player has space for refunded resources in main inventory, or has permission structureupgrade.norefund.

UpTc Command

  • This command functions like /up except payment is taken out of the dominating tool cupboard.
  • Usage: /uptc {NewGrade}
  • Usage Example: /uptc 2 (Upgrades structure to Stone Tier)
  • Parameters
    • NewGrade - What grade you'd like to upgrade to. 0 = Twig, 1 = Wood, 2 = Stone, 3 = Sheet Metal, 4 = High Quality
  • Conditions For Use
    1. If using NoEscape Plugin - Player is not currently RaidBlocked.
    2. Provided NewGrade variable is inside supported range; currently 0 - 4.

    3. Command is run by a player.

    4. Player is inside building privilege.

    5. Player is authenticated on dominating tool cabinet, or has permission structureupgrade.admin.

    6. Player has upgrade costs in inventory, or has permission structureupgrade.free.

UpS Command

  • Upgrades the structure, takes payment from storages attached to the structure.
  • Usage: /ups {NewGrade}
  • Usage Example: /ups 2 (Upgrades structure to Stone Tier)
  • Parameters
    • NewGrade - What grade you'd like to upgrade to. 0 = Twig, 1 = Wood, 2 = Stone, 3 = Sheet Metal, 4 = High Quality
  • Conditions For Use
    1. If using NoEscape Plugin - Player is not currently RaidBlocked.
    2. Provided NewGrade variable is inside supported range; currently 0 - 4.

    3. Command is run by a player.

    4. Player is inside building privilege.

    5. Player is authenticated on dominating tool cabinet, or has permission structureupgrade.admin.

    6. Player has upgrade costs in building storages, or has permission structureupgrade.free.

Configuration

Default Configuration

{
  "BatchSize": 1,
  "AllowUpgradeFromTc": true,
  "AllowUpgradeFromStorages": true,
  "UpgradeFrequency": 0.025,
  "HidePrefixWithPluginNameInMessages": false
}
  • AllowUpgradeFromTc - If enabled the /uptc command is registered, if disabled /uptc is not registered and will result in an unknown command error. 

  • AllowUpgradeFromStorages - If enable the /ups command is registered, if disabled /uptc is not registered and will result in an unknown command error.

  • BatchSize - Determines how many building blocks are upgraded every UpgradeFrequency

    • WARNING! :: Increasing this value does considerably reduce time to upgrade a structure. However for every 1 (one) increment players in the area will see a reduced 15 fps average. Setting this to 3 may kill fps by up to 30 in addition to the normal 20 or so. It is strongly recommended to modify UpgradeFrequency instead.

  • HidePrefixWithPluginNameInMessages - If enabled the [StructureUpgrade] branding is removed from all player communications, as this is attached programatically rather than through the lang file.

  • UpgradeFrequency - This is the frequency in fractions of a second that upgrades structures (quantity defined by BatchSize). This is optimized by default, lowering it too far will still cause lag. By default 1 block is upgraded every 25ms, or 0.025 seconds.

 

For Developers

Currently no API or Hooks exposed. This will be changed in the future, suggestions welcome.

 

Future Features

Want a feature not listed? Please suggest it as I'd love to continue expanding and increasing on the already substantial feature sets of StructureUpgrade.

  • Command Aliases (in configuration)
  • Logging all usages with statistics to log file
  • Additional payment and block statistics to aid in future refunding functionality and abuse protection
  • /upundo command to undo an upgrade.
  • GUI in inventory screen detailing cost and duration, with buttons for grade and upgrade.
  • Partial upgrades.
  • Changeable chat icon.

 

FAQ

Where can I get support and interact with the community & developer?

Codefling provides a support and discussion tab that's perfect for that.
Additionally you're welcome to join my discord for faster more direct support: Click here to join!

 

What checks are conducted to prevent abuse when upgrading?

There are a few checks in addition to the checks defined for each command in the commands section above.

  1. Does the building block still exist?
  2. Is the building blocks grade higher than desired value? Skip.

User Feedback

1.4m

Downloads

Total number of downloads.

6.9k

Customers

Total customers served.

102.2k

Files Sold

Total number of files sold.

2m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.