Join the Game4Freak Discord Get exclusive plugin sneak peeks, talk directly with VisEntities, never miss important updates, and unlock special discount codes!
Workbench Experimentation

Workbench Experimentation 1.4.1

Restores the classic workbench experimentation system, letting players spend scrap at a workbench to learn a random unknown blueprint
11.jpg
22.jpg
33.jpg
44.jpg


Workbench experimentation was the original blueprint discovery system in Rust. Introduced in devblog 185, it let players insert scrap into a workbench to roll for a random unknown blueprint from that workbench's tier. It was eventually removed and replaced by the tech tree, where players unlock blueprints in a fixed branching order. This plugin brings the old system back.

The interface is rebuilt to match the original workbench experimentation menu, so it looks and feels exactly like it did back when this was a vanilla Rust feature. Players who remember the old system will recognize it right away, and players who don't will assume it's just part of the game.

When a player opens a tier 1, 2, or 3 workbench, the experimentation menu opens. They insert the configured scrap cost, start the experiment, wait out a short countdown, and receive a blueprint for a random craftable item from that tier that they haven't already unlocked. An "Upgrade Workbench" button is included in the UI so players can still access the upgrade panel when they need it.

Permissions

  • workbenchexperimentation.use -- Allows the player to use workbench experimentation. Only checked when Require Permission To Experiment is enabled in the config

Configuration

JSON:
{
  "Version": "1.4.0",
  "Require Permission To Experiment (off = open to everyone)": false,
  "Only Give Blueprints Player Doesn't Own (off = may give duplicates)": true,
  "Experiment Duration In Seconds - Tier 1 Workbench": 10.0,
  "Experiment Duration In Seconds - Tier 2 Workbench": 10.0,
  "Experiment Duration In Seconds - Tier 3 Workbench": 10.0,
  "Experiment Duration In Seconds - Engineering Workbench": 10.0,
  "Scrap Cost Per Experiment - Tier 1 Workbench": 100,
  "Scrap Cost Per Experiment - Tier 2 Workbench": 300,
  "Scrap Cost Per Experiment - Tier 3 Workbench": 1000,
  "Scrap Cost Per Experiment - Engineering Workbench": 100
}
  • Require Permission To Experiment -- When true, only players with the workbenchexperimentation.use permission can open the experimentation menu. When false, every player can experiment regardless of permissions
  • Only Give Blueprints Player Doesn't Own -- When true, experiments only return blueprints the player hasn't unlocked yet. When false, players may roll duplicates of blueprints they already own
  • Experiment Duration In Seconds - Tier 1 Workbench -- How long the countdown runs for a tier 1 workbench experiment
  • Experiment Duration In Seconds - Tier 2 Workbench -- How long the countdown runs for a tier 2 workbench experiment
  • Experiment Duration In Seconds - Tier 3 Workbench -- How long the countdown runs for a tier 3 workbench experiment
  • Experiment Duration In Seconds - Engineering Workbench -- How long the countdown runs for an engineering workbench experiment
  • Scrap Cost Per Experiment - Tier 1 Workbench -- Scrap required to run one experiment at a tier 1 workbench. Default 100 matches the original Rust value
  • Scrap Cost Per Experiment - Tier 2 Workbench -- Scrap required to run one experiment at a tier 2 workbench. Default 300 matches the original Rust value
  • Scrap Cost Per Experiment - Tier 3 Workbench -- Scrap required to run one experiment at a tier 3 workbench. Default 1000 matches the original Rust value
  • Scrap Cost Per Experiment - Engineering Workbench -- Scrap required to run one experiment at an engineering workbench

Localization

JSON:
{
  "UI.Title": "WORKBENCH LEVEL {0}",
  "UI.TitleEngineering": "ENGINEERING WORKBENCH",
  "UI.Subtitle": "Use the workbench to experiment with scrap and\ncreate a new, previously unknown blueprint.",
  "UI.Cost.Title": "Experiment Cost",
  "UI.Cost.Description": "Scrap required to conduct an experiment.",
  "UI.Scrap.Title": "Scrap to Use",
  "UI.Scrap.Description": "Scrap is required to produce an item\nblueprint. Insert it here.",
  "UI.Result.Title": "Experiment Result",
  "UI.Result.Description": "The item created from your experiment\nwill appear to the left.",
  "UI.Button.AddScrap": "Add Scrap to Experiment",
  "UI.Button.Begin": "Begin Experiment",
  "UI.Button.Upgrade": "Upgrade Workbench",
  "UI.Button.Take": "Click here to add this\nblueprint to your inventory.",
  "UI.AllLearned": "You have already learned every\nblueprint available here.",
  "UI.ItemAmount": "x{0}",
  "Error.NotEnoughScrap": "You don't have enough scrap. {0} is required for this tier.",
  "Error.NoScrapAdded": "Add scrap before starting the experiment.",
  "Error.NothingToUnlock": "You have already unlocked everything available at this workbench tier.",
  "Info.ExperimentComplete": "Experiment complete! You discovered the blueprint for {0}.",
  "Info.InventoryFull": "Your inventory was full, so the blueprint was dropped at your feet."
}

Developer Hooks

These are Oxide hooks that are normally called when a player researches an item at a research table. To allow for compatibility with other plugins, this plugin also calls them whenever a player runs an experiment at a workbench.

OnExperimentStarted

Called when the countdown begins.
C#:
void OnExperimentStarted(Workbench workbench, BasePlayer player)

OnExperimentEnd

Called right before the blueprint is awarded. Return non-null to cancel.
C#:
object OnExperimentEnd(Workbench workbench, BasePlayer player)

OnExperimentEnded

Called after the blueprint has been awarded.
C#:
void OnExperimentEnded(Workbench workbench, BasePlayer player, ItemDefinition blueprint)
Author
VisEntities
License duration
Unlimited
Price
14.99 USD
First release
Last update

Ratings

0.00 star(s) 0 reviews

Also by VisEntities

Latest updates

  1. 1.4.1

    Fixed experiments pulling scrap out of nearby tool cupboards and boxes on servers running...
  2. 1.4.0

    Fixed workbench experiments not offering some blueprints that should have been available at that...
  3. 1.3.0

    The result slot now rolls through items like opening a case while an experiment runs. It cycles...
Back
Top
Chat commands start with a /, while console commands can be entered directly in the F1 console or server console. Use find <keyword> in console to search for available commands related to the plugin. Parameters in < > are required, while [ ] are optional.
This plugin uses Oxide's permission system. Grant or revoke permissions using oxide.grant and oxide.revoke. You can assign them to individual players or groups using their Steam id or group name.
Settings are stored in the config file found under the config/ directory. You can edit this file manually, then reload the plugin to apply your changes.
Persistent data is saved in the data/ directory. This includes things like saved settings, usage stats, or player progress depending on the plugin. Deleting a data file will reset stored progress or customizations.
Language files are located in the lang/ folder. To translate messages, copy the en.json file into your target language folder (e.g. fr, de) and edit the values. Reload the plugin after changes to apply new messages.
This section lists public methods exposed by the plugin for use in other plugins. You can call these via the CallHook method. Ensure the plugin is loaded before calling its API to avoid null reference errors.
These are custom hooks that other plugins can listen for. Simply define a method with the same name and expected parameters in your plugin to handle the event. Hooks are triggered at key moments and are useful for extending or reacting to plugin behavior.
These hooks are injected into the game's code using Harmony. They let the plugin run code at key points in the game's internal logic. You can return values to block or modify behavior. Use with caution — these are powerful and can affect core mechanics.
Cart