GangstaPichu's Wishlist
-
Loot Goblin
By banana farmer in Plugins
🧙♂️ Loot Goblin for Rust
Description
Loot Goblin is a lightweight and performance-friendly Rust plugin that automatically collects loot from crates, supply drops, and other containers directly into a player’s inventory.
— just open it once, and the goblin does the rest!
Perfect for PVE or fast-paced PVP servers where players want to focus on gameplay, not micromanaging inventory.
Features
✅ Instantly grabs loot from whitelisted containers
✅ Works on crates, supply drops, scientist corpses, underwater labs, hackable crates, heli & bradley drops
✅ Per-player toggle command (/lootgoblin)
✅ Automatic UI close after looting
✅ Smart retry system ensures loot always transfers — even from slow-loading containers
✅ Lightweight and optimized for large servers
✅ Customizable delay, retries, and prefab whitelist in config
✅ Fully permission-based (granular control for admins)
Commands
CommandDescription
/lootgoblinToggles auto-looting on/off for the player
lootgoblin.toggle (console)Same as above via server console
Permissions
PermissionDescription
lootgoblin.useAllows player to use the Loot Goblin system
Grant example:
oxide.grant group default lootgoblin.use
Configuration Options
All settings are fully configurable in oxide/config/LootGoblin.json:
{ "AutoEnableForNewPlayers": true, "AutoCloseLootUI": true, "LootDelaySeconds": 0.2, "RetryIntervalSeconds": 0.1, "MaxLootRetries": 8, "SkipLocked": true, "SkipTC": true, "LogTransfers": false, "AllowedPrefabContains": [ "crate_elite", "crate_normal", "crate_food", "crate_military", "supply_drop", "scientist_corpse", "oil_barrel", "underwater_labs" ] }
Compatibility
✅ Works with uMod/Oxide
✅ Carbon Compatible
⚙️ Compatible with most loot-modifying plugins (e.g., Loot+, BetterLoot, Raidable Bases)
🚫 No dependency required
Credits
Author: Banana Farmer 🍌
Artwork: Custom plugin logo featuring the Loot Goblin mascot
Version: 2.1.2
-
StaminaBar
StaminaBar
- Adds a visual stamina bar that shows stamina while sprinting
- Prevents sprinting when stamina is too low
- Automatically hides the UI when not needed
- Changes bar color when stamina is low
- Fully configurable (drain, refill, limits, colors, position)
Configuration Highlights
You can easily adjust:
- Maximum stamina
- Drain & Refill speed
- Sprint prevention threshold (percentage)
- UI position, size and color
The config file is auto-generated on first load:
oxide/config/StaminaBar.json
Notes
- Stamina resets on respawn
- UI hides automatically when not sprinting
- No manual setup per player needed
-
Restart Status
The plugin displays the time until restart in the status bar. Depends on AdvancedStatus plugin.
The ability to to add and modify any restart plugins; The ability to automatically generate code for restart hooks; The ability to automatically generate language files for different languages(filled in English); The ability to choose between bar types(TimeCounter and TimeProgressCounter); The ability to specify the order of the bar; The ability to change the height of the bar; The abillity to customize the color and transparency of the background; The ability to set a material for the background; The ability to switch between CuiRawImageComponent and CuiImageComponent for the image; The ability to get images from the local folder(*SERVER*\oxide\data\AdvancedStatus\Images); The abillity to set own image and customize the color and transparency of the image; The abillity to set sprite instead of the image; The ability to customize the color, size, font and outline of the text.
{ "Is it worth generating restart hooks? 0 - disabled, 1 - one-time activation, 2 - always enabled": 2, "List of language keys for creating language files": [ "en" ], "The type of the bar(TimeProgressCounter or TimeCounter)": "TimeCounter", "The height of the bar": 26, "The display order of the bar": 10, "The background color of the bar(HEX or RGBA)": "#E5423F", "The background transparency of the bar": 0.7, "The background material of the bar, leave empty to disable": "", "The URL of the bar image": "https://i.imgur.com/rAiHloW.png", "The local image of the bar, leave empty to use URL": "RestartStatus_Default", "The sprite image of the bar, leave empty to use local or URL": "", "Is it worth using a raw image for the bar?": false, "The color of the bar image(HEX or RGBA)": "#E5423F", "The transparency of the bar image": 1.0, "The outline color of the bar image(HEX or RGBA)": "0.1 0.3 0.8 0.9", "The outline transparency of the bar image": 1.0, "The outline distance of the bar image, leave empty to disable. Example '0.75 0.75'": "", "The size of the bar text": 12, "The color of the bar text(HEX or RGBA)": "#FFFFFF", "The transparency of the bar text": 1.0, "The font of the bar text(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "The horizontal offset of the bar text": 0, "The outline color of the bar text(HEX or RGBA)": "#000000", "The outline transparency of the bar text": 1.0, "The outline distance of the bar text, leave empty to disable": "", "The size of the bar subtext": 12, "The color of the bar subtext(HEX or RGBA)": "#FFFFFF", "The transparency of the bar subtext": 1.0, "The font of the bar subtext": "RobotoCondensed-Bold.ttf", "The outline color of the bar subtext(HEX or RGBA)": "0.5 0.6 0.7 0.5", "The outline transparency of the bar subtext": 1.0, "The outline distance of the bar subtext, leave empty to disable": "", "The background color of the progress bar(HEX or RGBA)": "1 1 1 0.15", "The background transparency of the progress bar": 0.15, "Is it worth making the progress reversible?": true, "The color of the bar progress(HEX or RGBA)": "#E5423F", "The transparency of the bar progress": 0.7, "The OffsetMin of the bar progress": "0 0", "The OffsetMax of the bar progress": "0 0", "The list of restart hooks. Note: After modifying hooks, do not forget to toggle hook generation": [ { "Hook triggered at the start of a restart": "OnSmoothRestartInit", "Argument position containing the number of seconds until restart(counting from 0)": 0, "Hook triggered at the cancellation of a restart": "OnSmoothRestartCancelled" }, { "Hook triggered at the start of a restart": "OnRestartScheduled", "Argument position containing the number of seconds until restart(counting from 0)": 0, "Hook triggered at the cancellation of a restart": "OnRestartCancelled" } ], "Version": { "Major": 0, "Minor": 1, "Patch": 1 } }
EN: { "BarText": "RESTART IN" } RU: { "BarText": "РЕСТАРТ ЧЕРЕЗ" }
-
Roaming NPCs
Bring your Rust server to life with Roaming NPCs — AI bots that act just like real players. They gather, loot, and fight, making your server feel active and alive.
Features:
⚒️ Realistic AI Behavior
• NPCs roam the map and simulate player-like behavior.
• Customizable behaviour: friendly, aggressive, defensive
• Spawn bots on beaches or random points around the map.
• Random or custom names and appearances.
🌲 Resource Farming
• Bots harvest wood, stone, metal, and sulfur using tools like rocks, hatchets, or pickaxes.
• Automatically pick up nearby dropped resources, food, and more.
• Loot crates and barrels found across the map.
• Automatically equip better gear found during looting.
⚔️ Dynamic Combat
• Bots attack wild animals like wolves, bears, and boars.
• Uses ranged and melee weapons – from bows to rifle ak.
🎒 Spawn Loadouts
• Configure bot spawn kits – tools, weapons, clothes, and other.
• Choose whether bots spawn with kit or start with rock and torch.
⚙️ Customization
• Setup health, damage rates, respawn timers and other.
• Record your own voice phrases that bot will replay on some actions using voice chat.
• Define bot's behavior:
- Friendly (doesn't attack, runs away)
- Defensive (defends if attacked)
- Aggressive (attacks first)
📺 See It in Action! Watch the Video
⚠️ Don't forget to download data files that include default voice phrases for bots. You can find them here (put this folder in oxide/data)
📋 Commands (roamingnpcs.admin permission):
/rnpc vis - shows all RoamingNPC's bots /rnpc stashvis - shows all RoamingNPC's stashes /rnpc killall - kills all RoamingNPC's bots /rnpc tp - teleports all RoamingNPC's bots to you /rnpc totp - teleports you to closest RoamingNPC bot /rnpc init - clears all data and respawns bot (needs to be done after editing config)
/rnpc recvoice start - start recording /rnpc recvoice stop - stop recording /rnpc recvoice replay - listen to current recording (recording will be stopped) /rnpc recvoice save <file name> - save current recording /rnpc recvoice replay <file name> - listen to the recording from file /rnpc recvoice clear - clear current recording
📃 Configuration:
{ "Specify the ID of the bot generator (8 - 15)": 9, "Bots settings": { "bob_resources_farmer": { "Enable bot?": true, "Bot appearance (Use the id in the range of the specified number of digits for the bot ID generator or leave 0 for random appearance)": 100000000, "Bot name (leave empty for random)": "Bob", "Respawn timer (3 - 60 seconds)": 300.0, "Use for respawn a random place on the map? (false - will respawn on the beach)": false, "Maximum health": 100.0, "What spawns on death (PlayerCorpse, NpcCorpse, Backpack)": "PlayerCorpse", "How many items will be destroyed when Backpack is selected (0 - 100%)": 50.0, "Bot behaviour - Aggressive, Friendly, Defensive": "Friendly", "Controller setup": { "Brain timer tick (0.01 - 1)": 0.1, "Controls timer tick (0.01 - 1)": 0.5, "Accuracy of fire (lower is better)": 10.0, "Find entities radius": 30.0, "Movement speed (1 - 4)": 4, "Movement speed in water (1 - 4)": 2, "Suicide timer if the bot does not reach the destination point (0 - disables the timer)": 600.0, "Timer attempt to avoid obstacle if the bot does not reach the target route": 3.0, "Damage rate from water": 1.0, "Allowed distance to teleport if the bot does not reach the destination point within this distance (-1 - allowed for any distance)": 0.0, "Damage rate to NPC targets": 2.0, "Damage rate to animals": 2.0, "Damage rate to players": 0.8, "Damage rate from NPCs": 0.2, "Damage rate from animals": 0.2, "Damage rate from players": 0.8 }, "Wear items (on respawn)": { "Lock container? (true - after death loot won't drop)": true, "Allow bot to wear found clothes?": false, "List of items": [ { "Item shortname or ID": "hazmatsuit.lumberjack", "Item skin": 0 } ] }, "Resource collection": { "Allow to gather wood?": true, "Allow to use fuel for chainsaw?": false, "Allow to mine ore?": true, "Allow to loot barrels?": false, "Allow to loot road signs?": false, "Allow to pickup resources?": true, "Allow to pickup dropped items?": false, "Allow to loot containers?": false, "Allow to loot corpses?": false, "Allow to harvest corpses?": false, "List of prefabs of corpses to harvest": [ "assets/rust.ai/agents/boar/boar.corpse.prefab", "polarbear.corpse", "bear.corpse", "stag.corpse", "wolf.corpse", "crocodile.corpse", "panther.corpse", "tiger.corpse", "chicken.corpse" ], "List of prefabs blocked for mining": [ "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree03.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtreeprefab.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree02.prefab" ] }, "Fights with NPCs and players": { "Maximum distance for attack from weapon": 30.0, "Maximum distance for attack from melee": 1.0 }, "Animal hunting": { "Allow to hunt? (true - will attack animals even if they are not attacking)": false, "Make melee weapons preferred for hunting?": true, "Maximum distance for attack from weapon": 30.0, "Maximum distance for attack from melee": 2.0, "List of prefabs of animals to block hunting them": [] }, "Inventory overflow": { "Stash setup (bot will put items in the stash)": { "Enable?": true, "Hide stash?": true, "Life time (0 - will exist until restart)": 3600.0, "Maximum amount to use (0 - without limit)": 10 }, "Box setup (bot will put items in the box)": { "Enable?": true, "Use small box?": true, "Box skin": 0, "Life time (0 - will exist until restart or until it dies)": 3600.0, "Maximum amount to use (0 - without limit)": 5, "Another container prefab (you can leave it empty)": "" } }, "Monuments visit setup": { "Amount of random positions to visit on monument": 5, "List of monument prefabs blocked for visiting": [] }, "Items for ore mining": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "jackhammer", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "diverpickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stone.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for tree gathering": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "chainsaw", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "frontier_hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stonehatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for fights": { "Use ammo?": false, "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "bow.hunting", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "1965232394", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "salvaged.cleaver", "Item skin": 0 } } ], "Amount of ammo to give for weapon if respawning is allowed": 128 }, "Items for harvesting animals": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "knife.skinning", "Item skin": 0 } } ] }, "Items for healing": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "syringe.medical", "Item skin": 0 }, "Amount of items to give when respawning": 5 }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "bandage", "Item skin": 0 }, "Amount of items to give when respawning": 1 } ] }, "Voice phrases for different actions": { "Use voice phrases?": true, "Phrases for the Miner state": { "Phrases when picking up resources": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when picking up items": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when gathering trees": { "Phrases": [ "uinston/miner/mining_tree/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when mining ore": { "Phrases": [ "uinston/miner/mining_ore/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting containers": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when breaking containers (barrels, signs and etc.)": { "Phrases": [ "uinston/miner/breaking/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting corpses": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when harvesting corpses": { "Phrases": [ "uinston/miner/butcher_corpse/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Hunter state": { "Phrases before starting to attack": { "Phrases": [ "uinston/hunter/start_attack/1", "uinston/hunter/start_attack/2" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Fight state": { "Phrases before starting to attack": { "Phrases": [ "uinston/attacker/start_attack/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot does not see the target": { "Phrases": [ "uinston/attacker/not_visible/1", "uinston/attacker/not_visible/2", "uinston/attacker/not_visible/3" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot runs away from the attacker": { "Phrases": [ "uinston/attacker/run_away/1", "uinston/attacker/run_away/2", "uinston/attacker/run_away/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Researcher state": { "Phrases before starting to move to the monument point": { "Phrases": [ "uinston/researcher/before_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when reaching the destination": { "Phrases": [ "uinston/researcher/after_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases when creating a container with resources": { "Phrases": [ "uinston/full_state/1", "uinston/full_state/2" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when healing": { "Phrases": [ "uinston/medical_state/1", "uinston/medical_state/2", "uinston/medical_state/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } } }, "john_looter": { "Enable bot?": true, "Bot appearance (Use the id in the range of the specified number of digits for the bot ID generator or leave 0 for random appearance)": 0, "Bot name (leave empty for random)": "John", "Respawn timer (3 - 60 seconds)": 300.0, "Use for respawn a random place on the map? (false - will respawn on the beach)": false, "Maximum health": 120.0, "What spawns on death (PlayerCorpse, NpcCorpse, Backpack)": "PlayerCorpse", "How many items will be destroyed when Backpack is selected (0 - 100%)": 50.0, "Bot behaviour - Aggressive, Friendly, Defensive": "Defensive", "Controller setup": { "Brain timer tick (0.01 - 1)": 0.1, "Controls timer tick (0.01 - 1)": 0.5, "Accuracy of fire (lower is better)": 10.0, "Find entities radius": 30.0, "Movement speed (1 - 4)": 4, "Movement speed in water (1 - 4)": 2, "Suicide timer if the bot does not reach the destination point (0 - disables the timer)": 600.0, "Timer attempt to avoid obstacle if the bot does not reach the target route": 3.0, "Damage rate from water": 1.0, "Allowed distance to teleport if the bot does not reach the destination point within this distance (-1 - allowed for any distance)": 0.0, "Damage rate to NPC targets": 2.0, "Damage rate to animals": 2.0, "Damage rate to players": 0.8, "Damage rate from NPCs": 0.2, "Damage rate from animals": 0.2, "Damage rate from players": 0.8 }, "Wear items (on respawn)": { "Lock container? (true - after death loot won't drop)": true, "Allow bot to wear found clothes?": false, "List of items": [ { "Item shortname or ID": "hazmatsuit.nomadsuit", "Item skin": 0 } ] }, "Resource collection": { "Allow to gather wood?": false, "Allow to use fuel for chainsaw?": false, "Allow to mine ore?": false, "Allow to loot barrels?": true, "Allow to loot road signs?": true, "Allow to pickup resources?": true, "Allow to pickup dropped items?": true, "Allow to loot containers?": true, "Allow to loot corpses?": true, "Allow to harvest corpses?": false, "List of prefabs of corpses to harvest": [ "assets/rust.ai/agents/boar/boar.corpse.prefab", "polarbear.corpse", "bear.corpse", "stag.corpse", "wolf.corpse", "crocodile.corpse", "panther.corpse", "tiger.corpse", "chicken.corpse" ], "List of prefabs blocked for mining": [ "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree03.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtreeprefab.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree02.prefab" ] }, "Fights with NPCs and players": { "Maximum distance for attack from weapon": 30.0, "Maximum distance for attack from melee": 1.0 }, "Animal hunting": { "Allow to hunt? (true - will attack animals even if they are not attacking)": false, "Make melee weapons preferred for hunting?": true, "Maximum distance for attack from weapon": 30.0, "Maximum distance for attack from melee": 2.0, "List of prefabs of animals to block hunting them": [] }, "Inventory overflow": { "Stash setup (bot will put items in the stash)": { "Enable?": true, "Hide stash?": true, "Life time (0 - will exist until restart)": 3600.0, "Maximum amount to use (0 - without limit)": 10 }, "Box setup (bot will put items in the box)": { "Enable?": true, "Use small box?": true, "Box skin": 0, "Life time (0 - will exist until restart or until it dies)": 3600.0, "Maximum amount to use (0 - without limit)": 5, "Another container prefab (you can leave it empty)": "" } }, "Monuments visit setup": { "Amount of random positions to visit on monument": 5, "List of monument prefabs blocked for visiting": [] }, "Items for ore mining": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "jackhammer", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "diverpickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stone.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for tree gathering": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "chainsaw", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "frontier_hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stonehatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for fights": { "Use ammo?": true, "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "rifle.ak.diver", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "bow.hunting", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "1965232394", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "salvaged.cleaver", "Item skin": 0 } } ], "Amount of ammo to give for weapon if respawning is allowed": 300 }, "Items for harvesting animals": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "knife.skinning", "Item skin": 0 } } ] }, "Items for healing": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "syringe.medical", "Item skin": 0 }, "Amount of items to give when respawning": 5 }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "bandage", "Item skin": 0 }, "Amount of items to give when respawning": 1 } ] }, "Voice phrases for different actions": { "Use voice phrases?": true, "Phrases for the Miner state": { "Phrases when picking up resources": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when picking up items": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when gathering trees": { "Phrases": [ "uinston/miner/mining_tree/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when mining ore": { "Phrases": [ "uinston/miner/mining_ore/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting containers": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when breaking containers (barrels, signs and etc.)": { "Phrases": [ "uinston/miner/breaking/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting corpses": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when harvesting corpses": { "Phrases": [ "uinston/miner/butcher_corpse/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Hunter state": { "Phrases before starting to attack": { "Phrases": [ "uinston/hunter/start_attack/1", "uinston/hunter/start_attack/2" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Fight state": { "Phrases before starting to attack": { "Phrases": [ "uinston/attacker/start_attack/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot does not see the target": { "Phrases": [ "uinston/attacker/not_visible/1", "uinston/attacker/not_visible/2", "uinston/attacker/not_visible/3" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot runs away from the attacker": { "Phrases": [ "uinston/attacker/run_away/1", "uinston/attacker/run_away/2", "uinston/attacker/run_away/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Researcher state": { "Phrases before starting to move to the monument point": { "Phrases": [ "uinston/researcher/before_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when reaching the destination": { "Phrases": [ "uinston/researcher/after_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases when creating a container with resources": { "Phrases": [ "uinston/full_state/1", "uinston/full_state/2" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when healing": { "Phrases": [ "uinston/medical_state/1", "uinston/medical_state/2", "uinston/medical_state/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } } }, "alfred_hunter": { "Enable bot?": true, "Bot appearance (Use the id in the range of the specified number of digits for the bot ID generator or leave 0 for random appearance)": 0, "Bot name (leave empty for random)": "Alfred", "Respawn timer (3 - 60 seconds)": 300.0, "Use for respawn a random place on the map? (false - will respawn on the beach)": false, "Maximum health": 100.0, "What spawns on death (PlayerCorpse, NpcCorpse, Backpack)": "PlayerCorpse", "How many items will be destroyed when Backpack is selected (0 - 100%)": 50.0, "Bot behaviour - Aggressive, Friendly, Defensive": "Defensive", "Controller setup": { "Brain timer tick (0.01 - 1)": 0.1, "Controls timer tick (0.01 - 1)": 0.5, "Accuracy of fire (lower is better)": 10.0, "Find entities radius": 30.0, "Movement speed (1 - 4)": 4, "Movement speed in water (1 - 4)": 2, "Suicide timer if the bot does not reach the destination point (0 - disables the timer)": 600.0, "Timer attempt to avoid obstacle if the bot does not reach the target route": 3.0, "Damage rate from water": 1.0, "Allowed distance to teleport if the bot does not reach the destination point within this distance (-1 - allowed for any distance)": 0.0, "Damage rate to NPC targets": 2.0, "Damage rate to animals": 2.0, "Damage rate to players": 0.8, "Damage rate from NPCs": 0.2, "Damage rate from animals": 0.2, "Damage rate from players": 0.8 }, "Wear items (on respawn)": { "Lock container? (true - after death loot won't drop)": true, "Allow bot to wear found clothes?": false, "List of items": [ { "Item shortname or ID": "hazmatsuit.frontier", "Item skin": 0 } ] }, "Resource collection": { "Allow to gather wood?": false, "Allow to use fuel for chainsaw?": false, "Allow to mine ore?": false, "Allow to loot barrels?": false, "Allow to loot road signs?": false, "Allow to pickup resources?": false, "Allow to pickup dropped items?": true, "Allow to loot containers?": false, "Allow to loot corpses?": false, "Allow to harvest corpses?": true, "List of prefabs of corpses to harvest": [ "assets/rust.ai/agents/boar/boar.corpse.prefab", "polarbear.corpse", "bear.corpse", "stag.corpse", "wolf.corpse", "crocodile.corpse", "panther.corpse", "tiger.corpse", "chicken.corpse" ], "List of prefabs blocked for mining": [ "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree03.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtreeprefab.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree02.prefab" ] }, "Fights with NPCs and players": { "Maximum distance for attack from weapon": 30.0, "Maximum distance for attack from melee": 1.0 }, "Animal hunting": { "Allow to hunt? (true - will attack animals even if they are not attacking)": true, "Make melee weapons preferred for hunting?": false, "Maximum distance for attack from weapon": 25.0, "Maximum distance for attack from melee": 2.0, "List of prefabs of animals to block hunting them": [] }, "Inventory overflow": { "Stash setup (bot will put items in the stash)": { "Enable?": true, "Hide stash?": true, "Life time (0 - will exist until restart)": 3600.0, "Maximum amount to use (0 - without limit)": 10 }, "Box setup (bot will put items in the box)": { "Enable?": true, "Use small box?": true, "Box skin": 0, "Life time (0 - will exist until restart or until it dies)": 3600.0, "Maximum amount to use (0 - without limit)": 5, "Another container prefab (you can leave it empty)": "" } }, "Monuments visit setup": { "Amount of random positions to visit on monument": 5, "List of monument prefabs blocked for visiting": [] }, "Items for ore mining": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "jackhammer", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "diverpickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stone.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for tree gathering": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "chainsaw", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "frontier_hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stonehatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for fights": { "Use ammo?": false, "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "shotgun.spas12", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "bow.hunting", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "1965232394", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "salvaged.cleaver", "Item skin": 0 } } ], "Amount of ammo to give for weapon if respawning is allowed": 300 }, "Items for harvesting animals": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "knife.skinning", "Item skin": 0 } } ] }, "Items for healing": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "syringe.medical", "Item skin": 0 }, "Amount of items to give when respawning": 5 }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "bandage", "Item skin": 0 }, "Amount of items to give when respawning": 1 } ] }, "Voice phrases for different actions": { "Use voice phrases?": true, "Phrases for the Miner state": { "Phrases when picking up resources": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when picking up items": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when gathering trees": { "Phrases": [ "uinston/miner/mining_tree/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when mining ore": { "Phrases": [ "uinston/miner/mining_ore/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting containers": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when breaking containers (barrels, signs and etc.)": { "Phrases": [ "uinston/miner/breaking/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting corpses": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when harvesting corpses": { "Phrases": [ "uinston/miner/butcher_corpse/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Hunter state": { "Phrases before starting to attack": { "Phrases": [ "uinston/hunter/start_attack/1", "uinston/hunter/start_attack/2" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Fight state": { "Phrases before starting to attack": { "Phrases": [ "uinston/attacker/start_attack/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot does not see the target": { "Phrases": [ "uinston/attacker/not_visible/1", "uinston/attacker/not_visible/2", "uinston/attacker/not_visible/3" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot runs away from the attacker": { "Phrases": [ "uinston/attacker/run_away/1", "uinston/attacker/run_away/2", "uinston/attacker/run_away/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Researcher state": { "Phrases before starting to move to the monument point": { "Phrases": [ "uinston/researcher/before_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when reaching the destination": { "Phrases": [ "uinston/researcher/after_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases when creating a container with resources": { "Phrases": [ "uinston/full_state/1", "uinston/full_state/2" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when healing": { "Phrases": [ "uinston/medical_state/1", "uinston/medical_state/2", "uinston/medical_state/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } } }, "austin_fighter": { "Enable bot?": true, "Bot appearance (Use the id in the range of the specified number of digits for the bot ID generator or leave 0 for random appearance)": 0, "Bot name (leave empty for random)": "Austin", "Respawn timer (3 - 60 seconds)": 300.0, "Use for respawn a random place on the map? (false - will respawn on the beach)": false, "Maximum health": 120.0, "What spawns on death (PlayerCorpse, NpcCorpse, Backpack)": "PlayerCorpse", "How many items will be destroyed when Backpack is selected (0 - 100%)": 0.0, "Bot behaviour - Aggressive, Friendly, Defensive": "Aggressive", "Controller setup": { "Brain timer tick (0.01 - 1)": 0.1, "Controls timer tick (0.01 - 1)": 0.5, "Accuracy of fire (lower is better)": 3.0, "Find entities radius": 30.0, "Movement speed (1 - 4)": 4, "Movement speed in water (1 - 4)": 2, "Suicide timer if the bot does not reach the destination point (0 - disables the timer)": 600.0, "Timer attempt to avoid obstacle if the bot does not reach the target route": 3.0, "Damage rate from water": 0.0, "Allowed distance to teleport if the bot does not reach the destination point within this distance (-1 - allowed for any distance)": 0.0, "Damage rate to NPC targets": 2.0, "Damage rate to animals": 2.0, "Damage rate to players": 0.8, "Damage rate from NPCs": 0.2, "Damage rate from animals": 0.2, "Damage rate from players": 0.8 }, "Wear items (on respawn)": { "Lock container? (true - after death loot won't drop)": true, "Allow bot to wear found clothes?": false, "List of items": [ { "Item shortname or ID": "hazmat.krieg", "Item skin": 0 } ] }, "Resource collection": { "Allow to gather wood?": false, "Allow to use fuel for chainsaw?": false, "Allow to mine ore?": false, "Allow to loot barrels?": true, "Allow to loot road signs?": false, "Allow to pickup resources?": false, "Allow to pickup dropped items?": true, "Allow to loot containers?": true, "Allow to loot corpses?": true, "Allow to harvest corpses?": false, "List of prefabs of corpses to harvest": [ "assets/rust.ai/agents/boar/boar.corpse.prefab", "polarbear.corpse", "bear.corpse", "stag.corpse", "wolf.corpse", "crocodile.corpse", "panther.corpse", "tiger.corpse", "chicken.corpse" ], "List of prefabs blocked for mining": [ "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree03.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtreeprefab.prefab", "assets/bundled/prefabs/autospawn/resource/vine_swinging/vineswingingtree02.prefab" ] }, "Fights with NPCs and players": { "Maximum distance for attack from weapon": 30.0, "Maximum distance for attack from melee": 1.0 }, "Animal hunting": { "Allow to hunt? (true - will attack animals even if they are not attacking)": false, "Make melee weapons preferred for hunting?": false, "Maximum distance for attack from weapon": 30.0, "Maximum distance for attack from melee": 2.0, "List of prefabs of animals to block hunting them": [] }, "Inventory overflow": { "Stash setup (bot will put items in the stash)": { "Enable?": true, "Hide stash?": true, "Life time (0 - will exist until restart)": 3600.0, "Maximum amount to use (0 - without limit)": 10 }, "Box setup (bot will put items in the box)": { "Enable?": true, "Use small box?": true, "Box skin": 0, "Life time (0 - will exist until restart or until it dies)": 3600.0, "Maximum amount to use (0 - without limit)": 5, "Another container prefab (you can leave it empty)": "" } }, "Monuments visit setup": { "Amount of random positions to visit on monument": 5, "List of monument prefabs blocked for visiting": [] }, "Items for ore mining": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "jackhammer", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "diverpickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stone.pickaxe", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for tree gathering": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "chainsaw", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "lumberjack.hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "frontier_hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "hatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "stonehatchet", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "rock", "Item skin": 0 } } ] }, "Items for fights": { "Use ammo?": false, "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": false, "Allow to give item when respawning?": true, "Item": { "Item shortname or ID": "krieg.shotgun", "Item skin": 0 } }, { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "krieg.chainsword", "Item skin": 0 } } ], "Amount of ammo to give for weapon if respawning is allowed": 300 }, "Items for harvesting animals": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "knife.skinning", "Item skin": 0 } } ] }, "Items for healing": { "List of items (in priority order)": [ { "Allow to create item if it is not in inventory?": true, "Allow to give item when respawning?": false, "Item": { "Item shortname or ID": "syringe.medical", "Item skin": 0 }, "Amount of items to give when respawning": 5 } ] }, "Voice phrases for different actions": { "Use voice phrases?": true, "Phrases for the Miner state": { "Phrases when picking up resources": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when picking up items": { "Phrases": [ "uinston/miner/pickup_collectable/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when gathering trees": { "Phrases": [ "uinston/miner/mining_tree/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when mining ore": { "Phrases": [ "uinston/miner/mining_ore/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting containers": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when breaking containers (barrels, signs and etc.)": { "Phrases": [ "uinston/miner/breaking/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when looting corpses": { "Phrases": [ "uinston/miner/looting/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when harvesting corpses": { "Phrases": [ "uinston/miner/butcher_corpse/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Hunter state": { "Phrases before starting to attack": { "Phrases": [ "uinston/hunter/start_attack/1", "uinston/hunter/start_attack/2" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Fight state": { "Phrases before starting to attack": { "Phrases": [ "uinston/attacker/start_attack/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot does not see the target": { "Phrases": [ "uinston/attacker/not_visible/1", "uinston/attacker/not_visible/2", "uinston/attacker/not_visible/3" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when the bot runs away from the attacker": { "Phrases": [ "uinston/attacker/run_away/1", "uinston/attacker/run_away/2", "uinston/attacker/run_away/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases for the Researcher state": { "Phrases before starting to move to the monument point": { "Phrases": [ "uinston/researcher/before_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when reaching the destination": { "Phrases": [ "uinston/researcher/after_move/1" ], "Chance of using phrases (% 0 - 100)": 30.0 } }, "Phrases when creating a container with resources": { "Phrases": [ "uinston/full_state/1", "uinston/full_state/2" ], "Chance of using phrases (% 0 - 100)": 30.0 }, "Phrases when healing": { "Phrases": [ "uinston/medical_state/1", "uinston/medical_state/2", "uinston/medical_state/3" ], "Chance of using phrases (% 0 - 100)": 30.0 } } } } }
-
RustCuiEditor - Visual CUI creator
Rust CUI Editor
Visual Interface Designer for Rust
Stop writing UI code blindly. Design your CUI interfaces visually and export ready-to-use code in seconds.
What is this?
Rust CUI Editor is a desktop application for creating Rust game UI (CUI) interfaces using a visual drag-and-drop editor. Instead of writing dozens of lines of CuiHelper code and constantly reloading your plugin to see the result, you design everything visually and get clean, working code instantly.
Video demonstration 2.0.0 Version (At the moment the version is already newer with new features)
Elements
Panel
Image (URL/sprite)
Label (with outline)
Button
InputField
ScrollView
Countdown
Draggable
Slot
NeedsCursor / NeedsKeyboard
Layout
Horizontal Layout Group
Vertical Layout Group
Grid Layout Group
Content Size Fitter
LayoutElement
Visual
Drag elements on canvas
Resize with 8 handles
Multi-selection
Marquee select
Anchor/offset system
Element rotation
Inline text editing
Element locking
Alignment
Left / Center / Right
Top / Middle / Bottom
Stretch to parent
Match Width/Height
Distribute evenly
🆕 Find & Replace
Search and replace element properties across the entire project at once. No need to click through each element manually.
► Search by text content, color value, sprite, or material
► Filter results by element type
► Replace single matches or all at once
► Full undo support for bulk replacements
🆕 Inspect Element
Dedicated inspection window for any selected element. Shows all properties in structured form alongside the raw CUI JSON output.
► All component properties in one place
► Raw CUI JSON with one-click copy
► Useful for debugging and quick exports
► Opens with shortcut or right-click menu
🆕 Snapshots
Save named project states at any point and restore them without losing your current work. Snapshots are completely separate from undo history.
► Create named snapshots before risky changes
► Restore any snapshot at any time — current work is preserved
► Stored in a .snapshots folder next to the project file
► Independent from undo/redo stack
🆕 Wrap in Parent
You've built a header with a label and a close button, then realize you forgot to add a background panel behind them. Select all elements, right-click, Wrap in Parent — done. Nothing moves.
► Works with any selection of elements
► New parent is sized to the bounding box of the selection
► All anchors recalculate automatically
► Wrap into Panel, Button, Image, or ScrollView
🆕 Themes
Dark Theme
Default dark interface.
Easy on the eyes during long sessions.
Light Theme
Full light mode across all panels,
dialogs, and overlays. Toggle in settings.
🆕 Plugin Import
Load CUI elements directly from an existing .cs plugin source file. The parser reconstructs the full element tree for visual editing.
► Parses CuiHelper and CuiElementContainer patterns
► Resolves local variables and string constants
► Handles loops and repeated element generation
► Substitutes lang message references with preview text
► Works on any Oxide/Carbon plugin file
🆕 Built-in Reference
A built-in help system with searchable articles covering the entire CUI system. No need to leave the editor to look something up.
► Articles for every element type and property
► Covers layers, ScrollView, blur materials, anchors, offsets, fonts
► Shortcut reference with all editor hotkeys
► Live demo canvas inside each article
► One-click "Add to project" from any example
🆕 Performance Rewrite
Canvas
GPU rendering
Scene bitmap cache
Static layer cache
SKPicture cache
SKPaint pooling (50+ allocs/frame saved)
Text layout cache
Typeface cache
Pan without full re-render
Element Tree
Debounced rebuild on rapid changes
Bulk update batching
Fast flat selection cache O(n)
ThumbnailBrush cache
Detach() memory leak fixed
Color Picker
Real-time updates while dragging
Only the affected element redraws
No full scene invalidation
🆕 Live Preview
See your UI exactly as it appears in-game, right inside the editor. Every element is fully rendered with correct Rust scaling, colors, sprites, and fonts. No need to reload your plugin to check the result.
Rendering
Panels & Images
Labels with fonts
Rich Text support
Sprite tinting
FadeIn / FadeOut
Interactive
Button hover & press
ScrollView with inertia
Elastic bounce
Auto-hiding scrollbars
Live Countdown
Drag & Drop
Draggable elements
Slot filter matching
MoveToAnchor snap
Element swapping
KeepOnTop z-order
Tools
Element Inspector
Grid overlay
Outlines view
Auto-sync with editor
Screenshot to PNG
All CuiDraggableComponent properties are supported in preview: LimitToParent, MaxDistance, AllowSwapping, DropAnywhere, DragAlpha, ParentPadding, ParentLimitIndex, AnchorOffset, and more.
► Pick up Draggable elements and drop them into Slots
► Filter matching ensures only compatible elements snap
► Swap elements between occupied slots
► Inspector overlay shows element info on hover (shortcut: I)
► Grid and outline overlays for layout debugging (G / O)
► Background selector: dark, light, or any game screenshot
► Auto-sync keeps preview updated as you edit
► Export preview as PNG screenshot (S)
🆕 Smart Hook Generation
When your project uses Draggable or Slot elements, the export automatically generates ready-to-use hook methods with proper logic:
► OnCuiDraggableDrag with if/switch blocks for each draggable
► OnCuiDraggableDropped with switch by slot name
► Comments with accepted elements and filter values
► Works in both Snippet and Plugin export modes
🆕 Developer Tools
Professional plugin development toolkit with four dedicated tabs:
Plugin Settings
Author & version
Chat/console commands
Auto-show hooks
Permissions list
Plugin references
Generate Unload
Lang System
Multi-language support
Visual translation table
Per-element lang keys
lang.GetMessage() export
Canvas preview
ImageLibrary
Image key/URL table
Per-element ImageLib key
GetImage() helper
Auto OnServerInitialized
Auto plugin reference
Templates
Reusable code templates
Custom method generation
Placeholder system
Per-project settings
🆕 Localization System
Full multi-language support for your plugins. Assign lang keys to any text element, manage translations visually, and export with automatic lang.GetMessage() calls.
► Add unlimited languages (en, ru, de, fr, etc.)
► Visual translation table - edit all strings in one place
► Toggle between raw text and lang key per element
► Canvas shows resolved translations in real-time
► Exported code includes full LoadDefaultMessages with all languages
🆕 ImageLibrary Integration
Manage image assets directly in the editor. Define image keys and URLs, assign them to elements, and get clean export code with automatic ImageLibrary loading.
► Image key/URL table in Dev Tools
► ImageLib Key property on Image elements
► Export generates GetImage() helper method
► Plugin export auto-adds OnServerInitialized with image loading
► Automatic [PluginReference] ImageLibrary in export
🆕 Syntax Highlighting
► C# syntax highlighting in Export window
► JSON syntax highlighting in Export window
► Color-coded keywords, strings, numbers, comments
► Optimized for large code blocks
🆕 SVG Design Import
Import your designs directly from professional design tools:
Figma
export to SVG and import
Illustrator
Adobe AI/SVG support
Inkscape
free vector editor
Any SVG
standard format
► Automatic source detection optimizes parsing for each tool
► Smart layer hierarchy preservation
► Automatic element type detection (btn_, lbl_, img_, panel_)
► Correct parent-child coordinate conversion
🆕 Figma Plugin & Tools
New "Tools" folder included with the editor:
► CuiHelper Plugin for Figma - export designs directly to C# code
► Sample SVG designs - ready-to-import examples for testing and learning
► Documentation - setup guide for Figma plugin
🆕 Smart Resize Mode
Default Mode
Resize by changing Anchor values
Perfect for responsive layouts that
scale with screen size
Shift + Resize
Resize by changing Offset values
Perfect for pixel-perfect positioning
Orange handles indicate active mode
🆕 Inline Text Editing
► Double-click any text element to edit it directly on canvas
► No need to switch to the property panel, just click and type
► Press Enter or click outside to confirm changes
Guides, Grid & Smart Snapping
► Draggable guides from rulers
► Customizable grid with snap
► Smart guides - auto-snap to edges
► Distance indicators while dragging
Multiple Backgrounds
Preview your UI on actual game screenshots:
Game view Inventory Loot container Crafting Map Transparent
Export Formats
Generate ready-to-use code in three formats:
C# (CuiHelper)
container.Add(new CuiPanel { RectTransform = { AnchorMin = "0.3 0.3", AnchorMax = "0.7 0.7" }, Image = { Color = "0.1 0.1 0.1 0.9" } }, "Overlay", "MyPanel"); JSON
[{ "name":"MyPanel", "parent":"Overlay", "components":[...] }] Full Plugin
Complete .cs file with:
• using statements
• class definition
• commands & permissions
• Lang & ImageLib integration
• all UI code
Import Existing Code
Already have CUI code? Import it!
► Paste JSON array
► Paste C# CuiHelper code
► Import from PSD files
► Import from SVG files (Figma, Illustrator, Inkscape)
► Import from .cs plugin source files
The editor parses your code and recreates all elements for visual editing.
Project Management
► Save/Load project files
► Multiple tabs for different projects
► Recent projects with thumbnails
► Per-project settings
► Close confirmation for unsaved changes
Property Editor
Full control over every element property:
► Position (anchors + offsets)
► Colors with Rust format (0-1 RGBA)
► Fonts and text alignment
► Sprite/material selection
► Outline settings
► Fade in/out animations
► Button commands
► Input field parameters
► ScrollView settings
► Rotation and pivot point
Element Hierarchy
► Layer-based structure (Overlay, Hud, HudMenu)
► Parent-child relationships
► Drag & drop reordering
► Visibility toggle
► Lock elements to prevent accidental edits
► Rename with double-click
► Hover a tree node to highlight it on canvas
Additional Tools
Measure Tool
measure distances on canvas
Style Picker
copy style between elements
Sprite Library
browse Rust sprites
Color Picker
Rust format preview
Quality of Life
► Unlimited undo/redo
► Copy/paste/duplicate elements
► Copy/paste style
► Keyboard shortcuts for everything
► Multiple preset resolutions
► Smooth multiplicative zoom
► Auto-fit canvas to window
► Dark and light themes
► English & Russian localization
► Automatic update notifications
System Requirements
► Windows 10/11
► .NET 8.0 Runtime (bundled)
Installation
1. Download and extract the archive
2. Run RustCUIEditor.exe
3. Start creating!
Questions or support issues?
Contact me via CodeFling messages.
- #cui
- #cui editor
-
(and 2 more)
Tagged with: