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 whenRequire Permission To Experimentis 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-- Whentrue, only players with theworkbenchexperimentation.usepermission can open the experimentation menu. Whenfalse, every player can experiment regardless of permissionsOnly Give Blueprints Player Doesn't Own-- Whentrue, experiments only return blueprints the player hasn't unlocked yet. Whenfalse, players may roll duplicates of blueprints they already ownExperiment Duration In Seconds - Tier 1 Workbench-- How long the countdown runs for a tier 1 workbench experimentExperiment Duration In Seconds - Tier 2 Workbench-- How long the countdown runs for a tier 2 workbench experimentExperiment Duration In Seconds - Tier 3 Workbench-- How long the countdown runs for a tier 3 workbench experimentExperiment Duration In Seconds - Engineering Workbench-- How long the countdown runs for an engineering workbench experimentScrap Cost Per Experiment - Tier 1 Workbench-- Scrap required to run one experiment at a tier 1 workbench. Default100matches the original Rust valueScrap Cost Per Experiment - Tier 2 Workbench-- Scrap required to run one experiment at a tier 2 workbench. Default300matches the original Rust valueScrap Cost Per Experiment - Tier 3 Workbench-- Scrap required to run one experiment at a tier 3 workbench. Default1000matches the original Rust valueScrap 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)