Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

1 Screenshot

  • 305
  • 2
  • 22.25 kB

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 email. If I can't get the plugin into a working condition or provide a reasonable level of support through email requests within 7 days (details defined below in Support Guarantee) I'll refund what you paid for the plugin if within the 6 month guarantee period.

Support is provided in many places other than email, and I encourage everyone to ask on the forums or our discord first for the fastest response times. Generally the email is reserved for emergency support when I can't be contacted through other methods.

 

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.

 

Guarantees & Assurances

Support Guarantee

Pending writeup.

Quality Assurances

Pending writeup.

 

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.

 

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.

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.

UpBox Command (Coming in version 0.4.0)

 

Configuration

Default Configuration

{
  "BatchSize": 1,
  "AllowUpgradeFromTc": true,
  "UpgradeFrequency": 0.025,
  "HidePrefixWithPluginNameInMessages": false
}
  • AllowUpgradeFromTc - If enabled the /uptc command is registered, if disabled /uptc is not even registered so 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.

  • Upgrading from storage with /upbox (v0.4.0)
  • Additional verbosity and formatting on chat messages. (v0.4.0)
  • Add notice to use /uptc or /upbox if items not in inventory but are in tool cabinet or storages. (v1.0.0)
  • Command Aliases (in configuration) (v1.0.0)
  • Logging all usages with statistics to log file (v1.1.0)
  • Additional payment and block statistics to aid in future refunding functionality and abuse protection
  • Refunding and better payment tracking.
  • /upundo command to undo an upgrade.
  • /down command for downgrading. (Very low priority unless requests are made)

 

FAQ

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

Codefling provides a support and discussion tab that's perfect for that.
A Discord is in the works for all projects which will be the fastest way to get basic support. Until the discord is finished you can also DM AnExiledGod#0001
Additionally and this should be the last option you can email [email protected] for support.

What's the difference between Internal, Beta and Public releases?

Internal & Beta releases will be distributed to testers only. Gaining access is as simple as contacting me and verifying that you've already purchased the plugin.

  1. Internal Versioning: Fully functional working releases that have undergone acceptance testing for core feature sets. These releases will only be available to a limited number of individuals. Anyone using these releases on a live server should conduct their own testing as these releases can be unstable.
  2. Beta Versioning: Fully functional working releases that have undergone white-box, acceptance, and exploratory testing across the majority of functionality. These releases will either be available to everyone, or a group with basic acceptance criteria. Anyone using these releases on a live server should expect end-users to experience very few bugs that don't affect functionality. These releases may contain an occasional error (displayed internally, not to the end-user) that is due to a bug that doesn't have a negative effect on functionality.

  3. Public Versioning: Fully functional working releases that have undergone white-box, acceptance, functional and regression testing across all components with a final exploratory testing phase targeted at identifying security and exploit edge cases. These releases are available to everyone. Anyone using these releases on a live server should expect the end-user to experience all functionality as defined without known bugs. These releases should not contain known errors, harmless or otherwise.

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

×
×
  • 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.