-
Posts
53 -
Joined
-
Last visited
Content Type
Profiles
Warranty Claims
Downloads
Forums
Store
Services
Downloads Plus Support
DOWNLOADS EXTRA
Everything posted by romzar
-
- 17 comments
-
- #title
- #betterchat
- (and 16 more)
-
Let’s make it work .. I already prove it its working in the video with your config .. so the plugin is perfectly fine .. since is a problem with your setup there is no much what I can do.
-
It's working perfectly on my end, which makes me think the issue might be isolated to your setup. Have you tried disabling all your other plugins to check for a conflict? keeping only titleselector and betterchat? Here a video: https://www.dropbox.com/scl/fi/o5gic0xqwptt5tnnab191/2025-12-22-08-15-42.mp4?rlkey=0s1jmd9rpo1brqo7ekvymi815&st=iwjd2wps&dl=0
-
Could you try version 1.5.2 for me, please? I'll need your help debugging this — some info about your setup would be great, as it might be a plugin conflict. But first, install this version and let me know if the issue persists.
-
are u using oxide or carbon? Can you share your BetterChat groups?
-
Can you share your BetterChat groups? Maybe you have a buggy group name.
-
i released a new version, can u try again plz
-
Are there any errors in the console?
-
Can you share your config? And if possible, a video? I can't reproduce what you described.
-
Version 1.1.4
6 downloads
Wipe Permission Groups Tired of manually removing permission groups and player permissions every wipe? Players keeping their earned titles, ranks, and special permissions from the previous wipe when they shouldn't? Spending the first hours of every wipe cleaning up your permission system instead of enjoying the fresh start? WipePermissionGroups is your solution. How It Works On every map wipe, the plugin detects the OnNewSave event Automatically removes all players from your configured permission groups Revokes specified user permissions (supports wildcards like kits.* to remove all kit permissions at once) Logs everything to console so you know exactly what happened Features Zero Maintenance: Set it up once, never worry about it again Wildcard Support: Bulk permission removal with patterns like kits.* Manual Commands: /wipegroups and /wipepermissions available anytime Detailed Logging: Full console output (can be disabled in config) Perfect For Servers with progression-based rank systems Event rewards that should reset Raid tier permissions Any permission that should reset with the wipe Set it once, wipe worry-free.$1.99 -
Version 1.6.0
43 downloads
════════════════════════════════════════════════════ AUTOCHICKENCOOP Full Industrial Automation for Chicken Coops by romzar.games ════════════════════════════════════════════════════ DESCRIPTION ----------- AutoChickenCoop transforms chicken coops into fully automated industrial production units! Automatically attach storage adaptors and fluid splitters to chicken coops, enabling complete integration with Rust's industrial system. Features automatic water transfer, egg hatching, chicken breeding optimization, and advanced chicken protection systems. COMPATIBLE WITH BOTH OXIDE/uMOD AND CARBON FRAMEWORKS KEY FEATURES ------------ ✓ Automatic Storage Adaptor Attachment - Automatically attaches industrial storage adaptor to every chicken coop - Connect conveyors directly to collect eggs and feathers - Full industrial automation integration - No player interaction required - completely automatic ✓ Automatic Fluid Splitter System - Fluid splitter automatically attached to every coop - Automatic water transfer from connected industrial sources - Smart IO chain detection for water sources - Configurable transfer rates based on IO setup - Never manually fill water again! ✓ Auto-Hatch System - Automatically hatches eggs when chicken count is below max - Configurable max chickens per coop - Perfect for automated breeding farms ✓ Chicken Love & Sunlight Control - Force max love (100%) for constant breeding readiness - Force max sunlight (100%) for optimal health - Separate permissions for love and sunlight control - Works on all chickens in automated coops - Automatic attribute updates ✓ Advanced Chicken Protection - Protect chickens from unauthorized damage - Only owner and team/clan/friends can damage chickens - Integrates with: Friends API, Clans, BetterTeams - Configurable protection options - Perfect for PvE servers ✓ Group-Based Limits System - Configure different coop limits per permission group - Perfect for VIP tiers and donation rewards - Unlimited permission available for admins/special players - Players get helpful upgrade messages when limit reached - Data persistence - limits maintained across restarts ✓ Smart Water Transfer System - Automatic detection of water in connected IO chains - Supports multiple water sources (tanks, pumps, etc.) - Transfer rate based on IO configuration - Prevents water duplication and exploits - Efficient batch processing for multiple coops ✓ Fully Configurable - Adjust adaptor and splitter position/rotation - Configure auto-hatch settings (max chickens, interval) - Configure love/sunlight update intervals - Configure chicken protection rules - Fine-tune all aspects to match your server ✓ Admin Management Tools - Reset command to reposition all adaptors/splitters - Debug command for water transfer troubleshooting - Check water status for specific coops/splitters - Limit check command for players - Comprehensive logging ✓ Automatic Cleanup & Optimization - Removes adaptors/splitters when coops are destroyed - No orphaned entities - Automatic cleanup of old data (30 days) - Dirty bit tracking for efficient saves - Randomized auto-save to reduce I/O spikes ✓ Data Persistence - Per-player data files for optimal performance - Tracks all coops, adaptors, splitters, and chickens - Automatic save on server save, player disconnect, and interval - Backup system for corrupted data - Clean and optimized performance INSTALLATION ------------ 1. Upload AutoChickenCoop.cs to oxide/plugins/ 2. The plugin will auto-generate its config file on first load 3. Grant permissions to players/groups (see PERMISSIONS section) 4. Reload the plugin if needed: o.reload AutoChickenCoop PERMISSIONS ----------- autochickencoop.use - Required for players to have automated chicken coops - Without this permission, coops work normally (no automation) autochickencoop.love.max - Forces 100% love on all chickens in automated coops - Ensures constant breeding readiness - Updates automatically at configured interval autochickencoop.autohatch - Enables automatic egg hatching in chicken coops - Automatically moves eggs to hatching slot - Maintains configured max chicken count autochickencoop.sunlight - Forces 100% sunlight on all chickens in automated coops - Ensures optimal health regardless of actual sunlight - Perfect for indoor farms autochickencoop.unlimited - Bypass all chicken coop limits - Perfect for admins or special players - No maximum coop count autochickencoop.admin - Required to use admin commands - For server administrators only autochickencoop.{group} - Group-specific limits configured in config file - Examples: autochickencoop.default, autochickencoop.vip, autochickencoop.premium - Players get the highest limit from all their group permissions PERMISSION EXAMPLES ------------------- Grant to all players with basic automation (3 coops): o.grant group default autochickencoop.use o.grant group default autochickencoop.default Grant VIP with auto-hatch and more coops (6 coops): o.grant group vip autochickencoop.use o.grant group vip autochickencoop.vip o.grant group vip autochickencoop.autohatch Grant premium with full automation (12 coops): o.grant group premium autochickencoop.use o.grant group premium autochickencoop.premium o.grant group premium autochickencoop.autohatch o.grant group premium autochickencoop.love.max o.grant group premium autochickencoop.sunlight Grant unlimited coops to admins: o.grant group admin autochickencoop.use o.grant group admin autochickencoop.unlimited o.grant group admin autochickencoop.autohatch o.grant group admin autochickencoop.love.max o.grant group admin autochickencoop.sunlight Grant admin permissions: o.grant group admin autochickencoop.admin COMMANDS -------- /chickencoop.limit (Chat) - Check your current chicken coop limit and usage - Shows how many automated coops you have vs your limit - Available to all players with .use permission - Example output: "Automated Chicken Coops: 2/6" /autochickencoop.reset (Chat) or autochickencoop.reset (Console) - Requires: autochickencoop.admin permission - Removes all old adaptors/splitters and recreates them - Useful when adjusting position/rotation or limits in config - Shows statistics: coops found, adaptors removed, splitters removed, entities created - Respects player limits when recreating automation /chickencoop.debug (Chat) - Admin Only - Requires: autochickencoop.admin permission - Shows comprehensive water transfer debug information - Displays total coops/chickens tracked - Shows coops with water, splitter configs, active splitters - Shows water transfer timer status - Perfect for troubleshooting water issues /chickencoop.checkwater (Chat) - Admin Only - Requires: autochickencoop.admin permission - Look at a chicken coop or fluid splitter - Shows detailed water status for that specific entity - Displays water amount, transfer calculations, IO connections - Shows water source chain and transfer rates - Best tool for diagnosing individual coop issues CONFIGURATION ------------- File Location: oxide/config/AutoChickenCoop.json Default Configuration: { "Enabled": true, "StorageAdaptorPosition": { "x": -0.5, "y": 1.45, "z": -1.0 }, "StorageAdaptorRotation": { "x": -15.0, "y": 0.0, "z": 0.0 }, "FluidSplitterPosition": { "x": 0.1, "y": 0.9, "z": -1.0 }, "FluidSplitterRotation": { "x": 0.0, "y": 90.0, "z": 0.0 }, "LoveSystem": { "UpdateInterval": 30.0, "ForceUpdateOnPet": true }, "AutoHatch": { "Enabled": true, "MaxChickens": 4, "CheckInterval": 30.0 }, "ChickenProtection": { "Enabled": true, "OnlyOwnerAndTeamCanDamage": true, "CheckFriends": true, "CheckClans": true, "CheckBetterTeams": true }, "GroupLimits": { "default": 3, "vip": 6, "premium": 12 } } Configuration Options: - Enabled: Set to false to disable the plugin without unloading - StorageAdaptorPosition: Position offset relative to the coop (X, Y, Z) * Default values position adaptor on upper back of coop * Adjust to match your server's aesthetic preferences - StorageAdaptorRotation: Rotation of the adaptor in degrees (X, Y, Z) * Default: -15° pitch for proper alignment - FluidSplitterPosition: Position offset relative to the coop (X, Y, Z) * Default values position splitter on side of coop * Must be positioned to allow IO connections - FluidSplitterRotation: Rotation of the splitter in degrees (X, Y, Z) * Default: 90° yaw for proper IO orientation - LoveSystem: * UpdateInterval: Seconds between love/sunlight updates (default: 30) * ForceUpdateOnPet: Force update when chicken is pet (default: true) - AutoHatch: * Enabled: Enable/disable auto-hatch system (default: true) * MaxChickens: Maximum chickens per coop before stop hatching (default: 4) * CheckInterval: Seconds between auto-hatch checks (default: 30) - ChickenProtection: * Enabled: Enable/disable chicken protection (default: true) * OnlyOwnerAndTeamCanDamage: Only owner/team can damage (default: true) * CheckFriends: Check Friends API (default: true) * CheckClans: Check Clans plugin (default: true) * CheckBetterTeams: Check BetterTeams plugin (default: true) - GroupLimits: Dictionary of group names and their coop limits * "default": 3 = Players with autochickencoop.default get 3 coops * "vip": 6 = Players with autochickencoop.vip get 6 coops * "premium": 12 = Players with autochickencoop.premium get 12 coops * Add as many custom groups as you want * Players with multiple group permissions get the highest limit * Permissions are automatically registered from this config HOW IT WORKS ------------ 1. Player with 'use' permission places a chicken coop 2. Plugin checks if player has reached their group limit 3. If within limit, plugin automatically attaches: - Storage adaptor (for eggs/feathers collection) - Fluid splitter (for automatic water supply) 4. If limit reached, player receives message with upgrade information 5. Player connects industrial components: - Water source (tank, pump) to fluid splitter INPUT - Conveyors to storage adaptor OUTPUT for egg/feather collection 6. Water automatically transfers to coop every 10 seconds 7. If auto-hatch enabled and player has permission: - Eggs automatically move from storage to hatching slot - System maintains max chicken count 8. If love.max permission: Chickens always at 100% love (breeding ready) 9. If sunlight permission: Chickens always at 100% sunlight (healthy) 10. Chicken protection prevents unauthorized damage 11. When coop destroyed, all automation removed and count updated 12. Player data saved persistently across server restarts CHICKEN PROTECTION SYSTEM ------------------------- Advanced protection prevents unauthorized damage: Protection Levels: 1. Owner: Always allowed to damage their own chickens 2. Team: Rust team members allowed (if OnlyOwnerAndTeamCanDamage = true) 3. Friends: Friends API integration (if CheckFriends = true) 4. Clans: Clans plugin integration (if CheckClans = true) 5. BetterTeams: BetterTeams plugin integration (if CheckBetterTeams = true) How It Works: - OnEntityTakeDamage hook intercepts all chicken damage - Checks if chicken is in an automated coop (has parent coop) - Gets coop owner ID - Checks if attacker is authorized (owner/team/friend/clan) - Blocks damage if unauthorized - Returns null (allows damage) if authorized Configuration: - Enabled: Turn entire protection system on/off - OnlyOwnerAndTeamCanDamage: Core protection toggle - CheckFriends/Clans/BetterTeams: Individual integration toggles - Disable specific integrations if you don't have those plugins ADMIN WORKFLOW -------------- Initial Setup: 1. Configure GroupLimits in config file for your server tiers 2. Configure auto-hatch settings (max chickens, interval) 3. Configure love/sunlight update intervals 4. Configure chicken protection rules 5. Adjust adaptor/splitter positions if needed Permission Setup: 6. Grant 'use' permission and group limit permissions to players/groups 7. Grant auto-hatch permission to VIP+ tiers 8. Grant love.max and sunlight to premium tiers 9. Grant 'unlimited' permission to admins or special players 10. Grant 'admin' permission to administrators Maintenance: 11. Use /autochickencoop.reset command to apply config changes 12. Use /chickencoop.debug to monitor water transfer system 13. Use /chickencoop.checkwater to diagnose specific coops 14. Monitor player limits and upgrade requests 15. Enjoy players' creative automated chicken farms within balanced limits! PERFORMANCE ----------- • Lightweight and optimized • Efficient per-player data file system • Batch processing for entity initialization • Safe to use on high-population servers COMPATIBILITY ------------- • Works with vanilla Rust • Compatible with all industrial system items • Integrates with: Friends API, Clans, BetterTeams • No conflicts with other plugins • Standalone - no dependencies required (friends/clans optional) • Works with building plugins (CopyPaste, etc.) • Oxide/uMod Framework - Fully Compatible • Carbon Framework - Fully Compatible • Single plugin file works on both frameworks automatically TROUBLESHOOTING --------------- Q: Adaptors/splitters aren't appearing on coops A: Check that players have the 'autochickencoop.use' permission Q: Multiple adaptors on one coop A: Use /autochickencoop.reset command to clean up and recreate Q: Want to change adaptor/splitter position A: Edit the config file, reload plugin, then use /autochickencoop.reset Q: Water isn't transferring to coops A: Use /chickencoop.checkwater while looking at coop to diagnose Verify IO connections from water source to fluid splitter Check that water source has water in it Ensure fluid splitter is properly connected Q: Eggs aren't auto-hatching A: Verify player has autochickencoop.autohatch permission Check that coop has eggs in slot 3 Verify chicken count is below MaxChickens config value Check AutoHatch.Enabled = true in config Q: Chickens not at max love/sunlight A: Verify player has autochickencoop.love.max and/or autochickencoop.sunlight Check LoveSystem.UpdateInterval in config (default: 30s) Wait for next update cycle Q: Players without permission have automation A: Existing coops keep automation. Remove permission and use /autochickencoop.reset Q: Chickens being damaged by other players A: Enable ChickenProtection in config Verify OnlyOwnerAndTeamCanDamage = true Check that protection integrations are enabled Q: Player can't place more coops A: They've reached their group limit. Check with /chickencoop.limit Grant them a higher tier permission or .unlimited permission Q: How do I change a player's limit? A: Grant them the permission for a higher tier group: o.grant user PlayerName autochickencoop.vip Q: Player data not saving A: Check oxide/data/AutoChickenCoop/ folder exists and has write permissions Data saves automatically when coops are placed/destroyed Check server console for error messages Q: Want to reset all player data A: Delete files in oxide/data/AutoChickenCoop/ folder and use /autochickencoop.reset Q: How to add custom group limits? A: Edit config file GroupLimits section, add your group and limit: "elite": 20 Then grant permission: o.grant group elite autochickencoop.elite Q: Water transfer rate too slow/fast A: Transfer rate is calculated based on IO chain configuration Add more pumps or tanks to increase rate (10 per pump/tank) Maximum rate is 100 water per 10 seconds Use /chickencoop.checkwater to see current transfer calculations Q: Auto-hatch too fast/slow A: Adjust AutoHatch.CheckInterval in config Lower value = checks more often (faster response) Higher value = checks less often (lower CPU usage) Default: 30 seconds is balanced Q: Love/Sunlight updates not frequent enough A: Adjust LoveSystem.UpdateInterval in config Lower value = updates more often Higher value = updates less often (lower CPU usage) Default: 30 seconds is balanced SUPPORT ------- For support, questions, or feature requests, please contact: Discord: romzar LICENSE ------- This plugin is provided for use on Rust game servers. Redistribution or resale of this plugin is prohibited. © 2025 romzar.games - All rights reserved. ══════════════════════════════════════════════════════ Thank you for using AutoChickenCoop! Build the ultimate automated chicken farm on your server! ══════════════════════════════════════════════════════$9.99-
- #industrial
- #automation
- (and 12 more)
-
Version 2.3.0
113 downloads
TITLE SELECTOR Customize Chat Titles Without Losing Permission Groups by romzar.games Description TitleSelector provides an intuitive UI for players to select, hide, or show their chat titles from BetterChat. It also integrates seamlessly with SkillTree, giving players independent control over their Level and Prestige indicators. Players can customize which titles appear in chat without losing their permission groups. Key Features Visual Title Selection — Clean modal UI with green/gray/orange/locked states Title Presets — 5 slots, quick-switch via buttons or keybinds Collectible Display — Shows locked titles players can work towards SkillTree Integration — Independent toggle for Level/Prestige indicators Hide All Option — One-click hide all titles, keep SkillTree/Clan visible Clan Tag Preservation — Clan tags always visible, even with Hide All Emoji Toggle — Hide emoji-only titles or strip emojis from mixed titles Permission-Based Title Limits — Different max titles per group/VIP tier Title Exclusion System — Prevent conflicting titles simultaneously Pagination — Handles large title collections with configurable pages Multi-language Support — Fully translatable via Oxide lang system Persistent Data — Auto-saved per-player, survives restarts/reloads BetterChatGradients Support — Native gradient color support Installation Upload TitleSelector.cs to oxide/plugins/ or carbon/plugins/ Ensure BetterChat is installed and configured Grant permission: o.grant group default titleselector.use Reload the plugin if needed: o.reload TitleSelector (Optional) Customize the config and lang files Dependencies Required: BetterChat — hooks into BetterChat to modify title display Optional: SkillTree — toggle Level/Prestige visibility Clans (Reborn) — clan tags forced visible BetterChatGradients — gradient colors render natively Permissions titleselector.use — Access to the title selector UI titleselector.default — Grants "default" max title limit (default: 3) titleselector.vip1 — Grants "vip1" max title limit (default: 4) titleselector.vip2 — Grants "vip2" max title limit (default: 5) Permission names match keys in "Max titles per permission" config. Player gets the HIGHEST limit from all matching permissions. Permission Examples: # Grant to all players o.grant group default titleselector.use o.grant group default titleselector.default # Grant VIP tiers o.grant group vip titleselector.vip1 o.grant group vip+ titleselector.vip2 # Grant to specific player o.grant user PlayerName titleselector.use o.grant user 76561198000000000 titleselector.use Commands /title — Opens the Title Selector UI (main command) /titulo — Alternative command (configurable) /titulos — Alternative command (configurable) /titlepreset <1-5> — Switch to a specific preset titleselector.preset <1-5> — Console/bind command for preset switching Configuration File: oxide/config/TitleSelector.json or carbon/configs/TitleSelector.json { "Allow hide all titles": true, "Allow toggle SkillTree (level + prestige)": false, "Allow toggle emoji titles": true, "Force show clan tags (Clans)": true, "Emoji patterns (regex)": ["\\s*:\\w+:\\s*"], "Max titles per permission": { "default": 3, "vip1": 4, "vip2": 5 }, "Default max titles (no permission)": 2, "Main command": "title", "Alternative commands": ["titulo", "titulos"], "Ignored groups (hidden from UI)": ["default", "player", "guest"], "Permanent groups (always shown)": [], "Title exclusion groups (mutual exclusion)": [], "Items per page": 7, "UI - Background color": "0.1 0.1 0.1 0.95", "UI - Header color": "0.15 0.15 0.15 1", "UI - Available item color": "0.2 0.2 0.2 0.9", "UI - Locked item color": "0.12 0.12 0.12 0.7", "UI - Selected item color": "0.1 0.4 0.1 0.9", "UI - Close button color": "0.8 0.2 0.2 1", "UI - Active checkbox color": "0.3 0.8 0.3 1", "UI - Restricted item color": "0.35 0.25 0.1 0.9", "UI - Inactive checkbox color": "0.3 0.3 0.3 1" } Configuration Options: Allow hide all titles — Enable/disable the "Hide All" button Allow toggle SkillTree — Enable/disable SkillTree toggle Allow toggle emoji titles — Enable/disable Emoji toggle Force show clan tags — Keep clan tags visible when hiding Emoji/Extra patterns — Regex patterns for emoji detection Max titles per permission — Named permission entries with limits Default max titles — Fallback when no permission matches Main/Alternative commands — Chat commands to open UI Ignored groups — BetterChat groups hidden from UI Permanent groups — Always-displayed groups Title exclusion groups — Mutually exclusive title lists Items per page — Titles per page in UI UI colors — Customize interface appearance Title Exclusion System Prevents conflicting titles from being active simultaneously. { "Title exclusion groups (mutual exclusion)": [ ["vip", "mvp", "elite"], ["admin", "moderator"] ] } A player cannot have "vip" and "mvp" active simultaneously Selecting "mvp" when "vip" is active auto-deselects "vip" Player receives a chat notification about the conflict Restricted titles show in orange in the UI Title Presets Players can save up to 5 different title configurations: Each preset stores: selected titles, hide all, emoji toggle, skilltree toggle Switch via numbered buttons (1-5) in the UI header Active preset highlighted in green Chat: /titlepreset 3 Keybind: bind f5 titleselector.preset 1 Hook events fire for changed titles when switching How It Works Player with titleselector.use permission types /title UI opens showing all available titles Titles organized by status: Active (green) | Available (gray) | Restricted (orange) | Locked Click titles to enable/disable them Use preset buttons (1-5) to save/switch configurations When no titles selected, BetterChat displays by priority Preferences saved automatically Title States Available — Player owns it, interactive checkbox, click to toggle Selected — Green checkbox, displays in chat Restricted — Orange indicator, conflicts with selected title Locked — Collectible/goal, locked icon, cannot select SkillTree Integration Toggle button in the Filters row of the UI Controls Level [Lv.X] and Prestige [Pr.X] visibility Uses skilltree.notitles permission internally Emoji Toggle Controls emoji-only titles (:coffeecan:, , etc.) Strips emojis from mixed titles (e.g., "Admin :star:" becomes "Admin") Works with selected titles and Hide All mode Extra patterns applied when emoji toggle is OFF Gradient Collors Support Gradient colors render correctly when selecting titles Supports hex colors: #ff0000, #00ff00, #0000ff Supports named colors: red, green, blue, yellow, orange, purple, pink, cyan, white, black, gray, gold, silver Multi-color gradients: red,orange,yellow,green No additional configuration required Clan Tag Preservation Clan tags remain visible even with "Hide All" Don't count towards max title limit Prevents hiding clan identity on solo/trio servers Requires Clans Reborn plugin Hide All Feature One-click hide all BetterChat titles Respects SkillTree and Emoji toggle settings Clan tags preserved when configured "Show All" button reverses the action Player Workflow Type /title to open the UI Browse titles using pagination Click checkboxes to select titles (up to max limit) Toggle SkillTree/Emoji visibility Use "Hide All" for quick hiding Save configurations using presets (1-5) Close UI — preferences saved automatically Admin Workflow Install plugin with BetterChat dependency Configure ignored groups Set up permission-based max titles Configure exclusion groups if needed Set permanent groups Customize UI colors Grant permissions to groups Translate lang file if needed API Methods API_GetSelectedTitles(string odId) — Returns List<string> of selected titles API_IsHidingTitles(string odId) — Returns bool hide status API_SetSelectedTitles(string odId, List<string> titles) — Set titles programmatically API_RefreshTitles() — Refresh title cache after config changes Developer Hooks OnTitleSelected(BasePlayer player, string groupName) — Fires on select and preset switch OnTitleDeselected(BasePlayer player, string groupName) — Fires on deselect, exclusion, and preset switch OnTitlesCleared(BasePlayer player, List<string> previousTitles) — Fires on Clear button API Usage Example [PluginReference] private Plugin TitleSelector; void Example(BasePlayer player) { var titles = TitleSelector?.Call<List<string>>( "API_GetSelectedTitles", player.UserIDString); var isHiding = TitleSelector?.Call<bool>( "API_IsHidingTitles", player.UserIDString) ?? false; TitleSelector?.Call("API_SetSelectedTitles", player.UserIDString, new List<string> { "vip", "donator" }); TitleSelector?.Call("API_RefreshTitles"); } Localization File: oxide/lang/en/TitleSelector.json or carbon/lang/en/TitleSelector.json { "NoPermission": "<color=#ff5555>You do not have permission.</color>", "BetterChatNotLoaded": "<color=#ff5555>BetterChat is not loaded!</color>", "TitleLocked": "<color=#ff5555>You do not own this title!</color>", "MaxTitlesReached": "<color=#ff5555>Maximum of {max} titles reached!</color>", "UITitle": "TITLE SELECTOR", "UIStatusHidden": "All titles are hidden", "UIStatusDefault": "Showing default titles (by priority)", "UIStatusSelected": "{count}/{max} titles selected", "UILocked": "Locked", "UISelected": "Active", "UIAvailable": "Available", "UIRestricted": "Restricted", "UIClear": "Clear", "UIHideAll": "Hide All", "UIShowAll": "Show All", "UIClose": "Close", "PresetSwitched": "<color=#55ff55>Preset {num} activated!</color>", "TitleExclusionRemoved": "<color=#ffaa55>Title removed (conflicts).</color>" } Troubleshooting UI not opening? — Check titleselector.use permission Titles not showing in chat? — Ensure BetterChat is loaded SkillTree toggles missing? — Install SkillTree + enable in config Titles missing from UI? — Check "Ignored groups" config Can't select more titles? — Max limit reached, check permissions Changes not saving? — Check data folder permissions Emoji toggle not working? — Enable in config Gradients broken? — Ensure hex colors are right Title shows "Restricted"? — Conflicts with selected title (exclusion groups) Preset not switching? — Needs titleselector.use permission Performance Lightweight and optimized Per-player data files with lazy loading UI rendered on-demand only Safe for high-population servers Compatibility Requires BetterChat (mandatory) Optional: SkillTree, Clans Works with Oxide and Carbon No conflicts with other chat plugins Use Cases VIP Customization — Let VIP players customize chat appearance VIP Tiers — Different limits per donation level Roleplay Servers — Choose titles that fit character Clean Chat — Minimalist players hide all titles Quick Switching — Presets for instant config swaps Exclusive Ranks — Exclusion groups prevent conflicts Clan Identity — Force clan tags for accountability Gradient Titles — Beautiful color gradients Collectibles — Motivate players to unlock titles © 2025-2026 romzar.games — All rights reserved. Thank you for using Title Selector! Give your players control over their chat identity!$14.99- 17 comments
- 6 reviews
-
- 1
-
-
- #title
- #betterchat
- (and 16 more)
-
ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in <f98723dd4586469db5213ec59da723ca>:0 at BradleyAPC.IdealPathPosition () [0x0003e] in <9d776f00626a49c8a30563a78e624bf9>:0 at BradleyAPC.AdvancePathMovement (System.Boolean force) [0x00040] in <9d776f00626a49c8a30563a78e624bf9>:0 at BradleyAPC.DoSimpleAI () [0x00076] in <9d776f00626a49c8a30563a78e624bf9>:0 at BradleyAPC.FixedUpdate () [0x0001e] in <9d776f00626a49c8a30563a78e624bf9>:0 ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Error spammed on console when bradley get stucked
-
Bomber[4064023] was killed by [Saea] verstapen[2948064/76561199445221636] at (750.51, 20.63, 1244.30) 08:55:34 at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BasePlayer.Hurt_Patch0(BasePlayer,HitInfo) at HumanNPC.Hurt (HitInfo info) (at <4a8675d0fdb04a78becadde562d78f49>:0) at BaseCombatEntity.OnAttacked (HitInfo info) (at <4a8675d0fdb04a78becadde562d78f49>:0) at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BasePlayer.OnAttacked_Patch0(BasePlayer,HitInfo) at ScientistNPC.OnAttacked (HitInfo info) (at <4a8675d0fdb04a78becadde562d78f49>:0) at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BasePlayer.OnProjectileAttack_Patch0(BasePlayer,BaseEntity/RPCMessage) at BasePlayer.OnRpcMessage (BasePlayer player, System.UInt32 rpc, Network.Message msg) (at <4a8675d0fdb04a78becadde562d78f49>:0) at UnityEngine.Debug:LogException(Exception) at BasePlayer:OnRpcMessage(BasePlayer, UInt32, Message) at BaseEntity:SV_RPCMessage(UInt32, Message) at ServerMgr:OnRPCMessage(Message) at ServerMgr:OnNetworkMessage(Message) at Facepunch.Network.Raknet.Server:ProcessRead(NetRead) at Network.BaseNetwork:Cycle() at ServerMgr:Update() NullReferenceException: Object reference not set to an instance of an object at BasePlayer.OnDied (HitInfo info) [0x00482] in <4a8675d0fdb04a78becadde562d78f49>:0 at ScientistNPC.OnDied (HitInfo info) [0x00000] in <4a8675d0fdb04a78becadde562d78f49>:0 at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BaseCombatEntity.Die_Patch0(BaseCombatEntity,HitInfo) at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BasePlayer.Die_Patch0(BasePlayer,HitInfo) at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BaseCombatEntity.Hurt_Patch0(BaseCombatEntity,HitInfo) at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BasePlayer.Hurt_Patch0(BasePlayer,HitInfo) at HumanNPC.Hurt (HitInfo info) [0x00018] in <4a8675d0fdb04a78becadde562d78f49>:0 at BaseCombatEntity.OnAttacked (HitInfo info) [0x00023] in <4a8675d0fdb04a78becadde562d78f49>:0 at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BasePlayer.OnAttacked_Patch0(BasePlayer,HitInfo) at ScientistNPC.OnAttacked (HitInfo info) [0x00000] in <4a8675d0fdb04a78becadde562d78f49>:0 at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.BasePlayer.OnProjectileAttack_Patch0(BasePlayer,BaseEntity/RPCMessage) at BasePlayer.OnRpcMessage (BasePlayer player, System.UInt32 rpc, Network.Message msg) [0x009b3] in <4a8675d0fdb04a78becadde562d78f49>:0 UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object) UnityEngine.DebugLogHandler:LogException(Exception, Object) UnityEngine.Logger:LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) BasePlayer:OnRpcMessage(BasePlayer, UInt32, Message) BaseEntity:SV_RPCMessage(UInt32, Message) ServerMgr:OnRPCMessage(Message) ServerMgr:OnNetworkMessage(Message) Facepunch.Network.Raknet.Server:ProcessRead(NetRead) Network.BaseNetwork:Cycle() ServerMgr:Update() 190.135.201.43:57242/76561199445221636/verstapen kicked: RPC Error in OnProjectileAttack happen some times when killing a npc. not always, but frequently enough to players complain about.
-
yes add me. discord: romzar
-
yes default dungeons. No plugins related to security or access cards.
-
every single dungeon at some point players cant go foward, because doors not open. players cant get fuse access because they cant open doors yes is true pve { "Config Version": "2.3.4", "Default RuleSet": "default", "Configuration Options": { "Armor damage (PVE)": { "Skin IDs which are immune to damage": [], "Enable support for npcs to cause armor damage on hit": false, "Play headshot sound when a player is headshot by an npc": false }, "Loot": { "Auto lock (codelock, keylock, nothing)": { "cupboard.tool.deployed": "codelock" }, "Exceptions for locks to various containers option": [ "skulltrophy.deployed", "skull_fire_pit", "bbq.static", "small_refinery_static", "campfire" ], "Enable support to allow adding locks to various containers": false, "Enable codelock anti-raiding (team/clan/friend access only)": true, "Protect unlocked TC from being accessed by enemy players": true, "Prevent player shield from dropping on death": true, "Prevent player active item from dropping on death": true, "Prevent player backpack from dropping on death (Rust backpack)": true, "Prevent players from using enemy car lifts": true }, "Reflect PVP Damage Multipliers (0 = disabled, 1 = 100%)": { "Multiplier Allows Armor Protection": true, "Arrow Damage": 0.0, "Blunt Damage": 0.0, "Bullet Damage": 0.0, "Slash Damage": 0.0, "Stab Damage": 0.0 }, "TwigDamage (FLAG)": { "Apply To Twig (when TwigDamage flag is not set": false, "Apply To Wood": false, "Apply To Stone": false, "Apply To Metal": false, "Apply To HQM": false, "Require Owner Online": true, "Log Offenses": false, "Notify Offenders": false, "Reflect Damage Multiplier": 0.0, "Multiplier Allows Armor Protection": true }, "handleDamage": true, "useZones": true, "Trace To Player Console": false, "Trace To Server Console": true, "Log Trace To File": true, "Maximum Distance From Player To Trace": 50.0, "Prevent Water From Extinguishing BaseOven": false, "Prevent Players From Being Marked Hostile": true, "Allow PVP Below Height": -500.0, "Allow PVP Above Height": 5000.0, "Allow Other Damage Below Height": -500.0, "Allow Other Damage Above Height": 5000.0, "Allow Cold Metabolism Damage": true, "Allow Heat Metabolism Damage": true, "Allow Thirst And Hunger Damage To Farmable Animals": true }, "Mappings": { "default": "default", "54714577": "arena", "buildings": "buildings" }, "Schedule": { "enabled": false, "useRealtime": false, "broadcast": false, "entries": [] }, "RuleSets": [ { "name": "default", "enabled": true, "defaultAllowDamage": false, "flags": "HopperCannotTargetEnemyLoot, AuthorizedFarmableDamage, HumanNPCDamage, LockedBoxesImmortal, LockedDoorsImmortal, PlayerSamSitesIgnorePlayers, TrapsIgnorePlayers, TurretsIgnorePlayers", "rules": [ "npcs can hurt buildings", "anything can hurt dispensers", "anything can hurt resources", "anything can hurt barricades", "anything can hurt traps", "anything can hurt heli", "anything can hurt npcs", "anything can hurt players", "nothing can hurt ch47", "nothing can hurt cars", "nothing can hurt mini", "nothing can hurt snowmobiles", "nothing can hurt ridablehorses", "cars cannot hurt anything", "mini cannot hurt anything", "ch47 cannot hurt anything", "scrapheli cannot hurt anything", "players cannot hurt players", "players cannot hurt traps", "guards cannot hurt players", "fire cannot hurt players", "traps cannot hurt players", "highwalls cannot hurt players", "barricades2 cannot hurt players", "mini cannot hurt mini", "npcs can hurt players", "junkyard cannot hurt anything", "junkyard can hurt cars", "players cannot hurt tugboats", "heliturrets cannot hurt players", "ramhead can hurt ramhead", "siege cannot hurt players", "players cannot hurt farm" ] }, { "name": "buildings", "enabled": true, "defaultAllowDamage": true, "flags": "LockedBoxesImmortal", "rules": [] }, { "name": "arena", "enabled": true, "defaultAllowDamage": true, "flags": "", "rules": [ "players can hurt players", "anything can hurt players", "fire can hurt players", "traps can hurt players" ] } ], "Entity Groups": [ { "name": "barricades", "members": "door_barricade_a, door_barricade_a_large, door_barricade_b, door_barricade_dbl_a, door_barricade_dbl_a_large, door_barricade_dbl_b, door_barricade_dbl_b_large, gingerbread_barricades_house, gingerbread_barricades_snowman, gingerbread_barricades_tree, wooden_crate_gingerbread", "exclusions": "barricade.concrete, barricade.sandbags, barricade.stone" }, { "name": "barricades2", "members": "spikes_static, barricade.metal, barricade.wood, barricade.woodwire, spikes.floor, icewall, GraveyardFence", "exclusions": "" }, { "name": "dispensers", "members": "BaseCorpse, HelicopterDebris, PlayerCorpse, NPCPlayerCorpse, HorseCorpse, SkyLantern, Pinata", "exclusions": "" }, { "name": "fire", "members": "FireBall, FlameExplosive, FlameThrower, BaseOven, FlameTurret, rocket_heli_napalm, napalm, oilfireball2", "exclusions": "" }, { "name": "guards", "members": "bandit_guard, scientistpeacekeeper, sentry.scientist.static, sentry.bandit.static", "exclusions": "" }, { "name": "heli", "members": "PatrolHelicopter, oilfireballsmall, heli_napalm, rocket_heli, rocket_heli_napalm", "exclusions": "" }, { "name": "highwalls", "members": "SimpleBuildingBlock, wall.external.high.ice, gates.external.high.stone, gates.external.high.wood", "exclusions": "" }, { "name": "ridablehorses", "members": "RidableHorse", "exclusions": "" }, { "name": "cars", "members": "BasicCar, ModularCar, BaseModularVehicle, BaseVehicleModule, VehicleModuleEngine, VehicleModuleSeating, VehicleModuleStorage, VehicleModuleTaxi, ModularCarSeat, Bike", "exclusions": "" }, { "name": "mini", "members": "minicopter.entity", "exclusions": "" }, { "name": "scrapheli", "members": "ScrapTransportHelicopter", "exclusions": "" }, { "name": "ch47", "members": "ch47.entity", "exclusions": "" }, { "name": "npcs", "members": "ch47scientists.entity, BradleyAPC, CustomScientistNpc, SnakeHazard, ScarecrowNPC, HumanNPC, NPCPlayer, ScientistNPC, TunnelDweller, SimpleShark, UnderwaterDweller, ZombieNPC", "exclusions": "" }, { "name": "players", "members": "BasePlayer, FrankensteinPet", "exclusions": "" }, { "name": "resources", "members": "ResourceEntity, TreeEntity, OreResourceEntity, LootContainer, NaturalBeehive, VineSwingingTree", "exclusions": "hobobarrel.deployed" }, { "name": "snowmobiles", "members": "snowmobile, tomahasnowmobile", "exclusions": "" }, { "name": "traps", "members": "AutoTurret, BearTrap, FlameTurret, Landmine, GunTrap, ReactiveTarget, TeslaCoil, spikes.floor", "exclusions": "" }, { "name": "junkyard", "members": "magnetcrane.entity, carshredder.entity", "exclusions": "" }, { "name": "tugboats", "members": "Tugboat", "exclusions": "" }, { "name": "heliturrets", "members": "turret_attackheli", "exclusions": "" }, { "name": "ramhead", "members": "BatteringRamHead", "exclusions": "" }, { "name": "siege", "members": "SiegeTower, Catapult, Ballista, BallistaGun, BatteringRam, ConstructableEntity", "exclusions": "" }, { "name": "bees", "members": "BeeSwarmAI, Beehive, BeeGrenade, BeeSwarmMaster, NaturalBeehive", "exclusions": "" }, { "name": "farm", "members": "simplechicken.entity, FarmableAnimal, ChickenCoop", "exclusions": "" } ], "Allow Killing Sleepers": false, "Allow Killing Sleepers (Ally Only)": false, "Allow Killing Sleepers (Authorization Only)": false, "Allow Killing Sleepers (After X Hours Offline)": 0.0, "Allow Killing Sleepers (Allowed steam ids)": [ 76561198000577562 ], "Ignore Firework Damage": true, "Ignore Campfire Damage": false, "Ignore Ladder Damage": false, "Ignore Sleeping Bag Damage": false, "Players Can Trigger Traps In Monument Topology": true, "Players Can Hurt Traps In Monument Topology": false, "Players Can Trigger Turrets In Monument Topology": true, "Players Can Hurt Turrets In Monument Topology": false, "Block Scrap Heli Damage": true, "Block Igniter Damage": false, "Block Wallpaper Damage": true, "Block Radioactive Water Damage": true, "Block Decay Damage To Vehicles": false, "Block Spray Can In Safe Zones": false, "Prevent heli from strafing in the inner radius of safe zones": false, "Prevent players from throwing water in arctic and tundra biome": false, "Prevent ragdolling when struck by another vehicle": true, "Experimental ZoneManager support for PVE zones": false }
-
about the doors even after restart, still not open sometimes. i reviewed your code and i think its a race codition issue, when u are creating the door, input card, etc.
-
perhabs is "players cannot hurt traps"? the plugin set a zone inside the event ? so i can set damage to traps inside the zone { "name": "default", "enabled": true, "defaultAllowDamage": false, "flags": "HopperCannotTargetEnemyLoot, AuthorizedFarmableDamage, HumanNPCDamage, LockedBoxesImmortal, LockedDoorsImmortal, PlayerSamSitesIgnorePlayers, TrapsIgnorePlayers, TurretsIgnorePlayers", "rules": [ "npcs can hurt buildings", "anything can hurt dispensers", "anything can hurt resources", "anything can hurt barricades", "anything can hurt traps", "anything can hurt heli", "anything can hurt npcs", "anything can hurt players", "nothing can hurt ch47", "nothing can hurt cars", "nothing can hurt mini", "nothing can hurt snowmobiles", "nothing can hurt ridablehorses", "cars cannot hurt anything", "mini cannot hurt anything", "ch47 cannot hurt anything", "scrapheli cannot hurt anything", "players cannot hurt players", "players cannot hurt traps", "guards cannot hurt players", "fire cannot hurt players", "traps cannot hurt players", "highwalls cannot hurt players", "barricades2 cannot hurt players", "mini cannot hurt mini", "npcs can hurt players", "junkyard cannot hurt anything", "junkyard can hurt cars", "players cannot hurt tugboats", "heliturrets cannot hurt players", "ramhead can hurt ramhead", "siege cannot hurt players", "players cannot hurt farm" ] },
-
PVE mode not detected owner Failed to run a 4.00 timer in 'TrainYardEvent v3.0.11' (NullReferenceException: Object reference not set to an instance of an object.) at Oxide.Plugins.TrainYardEvent.EnablePveMode (Oxide.Plugins.TrainYardEvent+PveModeConfig config, BasePlayer player) [0x001c9] in <61325069fbec443bbedce91ac3dfd572>:0 at Oxide.Plugins.TrainYardEvent+<>c__DisplayClass90_0.<StartEvent>b__3 () [0x00016] in <61325069fbec443bbedce91ac3dfd572>:0 at Oxide.Core.Libraries.Timer+TimerInstance.FireCallback () [0x00018] in <112d89ea5d3348c8b949af0ab1a866d2>:0
-
Version 1.8.0
40 downloads
════════════════════════════════════════════════ BEEHIVE STORAGE ADAPTOR Industrial Automation for Beehives v1.8.0 by romzar.games ════════════════════════════════════════════════ DESCRIPTION ----------- Beehive Storage Adaptor allows players to connect industrial storage adaptors to beehives, enabling full automation of honey and honeycomb collection through Rust's industrial system. Players can now integrate beehives into their conveyor belt systems, electrical grids, and automated factories! COMPATIBLE WITH BOTH OXIDE/uMOD AND CARBON FRAMEWORKS KEY FEATURES ------------ ✓ Automatic Storage Adaptor Attachment - Automatically attaches a storage adaptor to every beehive placed by authorized players - No player interaction required - completely automatic ✓ Full Industrial System Integration - Connect conveyors directly to beehives - Use electrical switches and power to control honey collection - Build complex automated honey farms ✓ Ideal Conditions System - Force ideal temperature for beehives (per-player permission) - Bypass outside placement requirement - Bypass rain penalty - Each condition has its own permission for granular control - Configurable ideal temperature value ✓ Disable Bee Swarms (Optional) - Option to remove the visual bee swarms around active beehives - Reduces visual clutter on large honey farms - Removes both passive and angry bee effects ✓ Permission-Based System - Control who can have automated beehives - Perfect for VIP perks or donation rewards - Separate admin permissions for management commands ✓ Group-Based Limits System - Configure different beehive limits per permission group - Perfect for VIP tiers and donation rewards - Unlimited permission available for admins/special players - Players get helpful upgrade messages when limit reached - Data persistence - limits maintained across restarts ✓ Per-Player Reset Command - Reset and recreate adaptors for a specific player - Automatically cleans up orphaned data entries - Does not affect other players' beehives - Search by SteamID or player name ✓ Server-Wide Sync Command - Reconcile data files with actual server state - Remove orphaned entries from all players - Recreate missing adaptors on tracked beehives - Add tracking for untracked beehives with adaptors ✓ Admin Global Reset Command - Reposition all adaptors with a single command - Perfect for config adjustments - Works on all existing beehives ✓ Smart Duplicate Prevention - Never creates duplicate adaptors - Safe to reload the plugin anytime - Automatically detects existing adaptors ✓ Dirty Bit Data System - Data only saves to disk when actually changed - Randomized auto-save timer (270-330s) to avoid I/O spikes - Player data removed from memory on disconnect to save RAM - Proper wipe detection clears all data ✓ Automatic Cleanup - Removes adaptors when beehives are destroyed - No orphaned entities - Clean and optimized performance ✓ Multi-Language Support - Full English and Portuguese (pt-BR) translations - All player messages localized automatically - Easy to add more languages INSTALLATION ------------ 1. Upload BeehiveStorageAdaptor.cs to your plugins folder 2. The plugin will auto-generate its config file on first load 3. Grant permissions to players/groups (see PERMISSIONS section) 4. Reload the plugin if needed PERMISSIONS ----------- beehivestorageadaptor.use - Required for players to have storage adaptors on their beehives - Without this permission, beehives work normally (no adaptor) beehivestorageadaptor.admin - Required to use admin commands (/beehive.reset, /beehive.resetplayer, /beehive.sync) - For server administrators only beehivestorageadaptor.unlimited - Bypass all beehive limits - Perfect for admins or special players - No maximum beehive count beehivestorageadaptor.idealtemp - Forces ideal temperature on the player's beehives - Temperature value configured in config (default: 20°C) beehivestorageadaptor.bypassoutside - Beehives always count as "outside" for the player - Allows indoor beehive placement without production penalty beehivestorageadaptor.bypassrain - Removes rain penalty from the player's beehives - Beehives produce at full rate regardless of weather beehivestorageadaptor.{group} - Group-specific limits configured in config file - Examples: beehivestorageadaptor.default, beehivestorageadaptor.vip, beehivestorageadaptor.premium - Players with multiple group permissions get the highest limit PERMISSION EXAMPLES ------------------- Grant to all players with default limit (5 beehives): o.grant group default beehivestorageadaptor.use o.grant group default beehivestorageadaptor.default Grant to VIP group with higher limit (10 beehives): o.grant group vip beehivestorageadaptor.use o.grant group vip beehivestorageadaptor.vip Grant to premium group with highest limit (20 beehives): o.grant group premium beehivestorageadaptor.use o.grant group premium beehivestorageadaptor.premium Grant unlimited beehives to admins: o.grant group admin beehivestorageadaptor.use o.grant group admin beehivestorageadaptor.unlimited Grant ideal conditions to VIP: o.grant group vip beehivestorageadaptor.idealtemp o.grant group vip beehivestorageadaptor.bypassoutside o.grant group vip beehivestorageadaptor.bypassrain Grant admin permissions: o.grant group admin beehivestorageadaptor.admin COMMANDS -------- /beehive.limit (Chat) - Check your current beehive limit and usage - Shows how many beehives you have vs your limit - Available to all players with .use permission - Example output: "Beehive Adaptors: 3/10" /beehive.reset (Chat) or beehive.reset (Console) - Requires: beehivestorageadaptor.admin - Removes all old adaptors and recreates them with current config settings - Useful when adjusting adaptor position/rotation or limits - Shows statistics: beehives found, adaptors removed /beehive.resetplayer <steamid or name> (Chat) or beehive.resetplayer (Console) - Requires: beehivestorageadaptor.admin - Resets adaptors for a specific player only - Cleans up orphaned data entries (registered IDs that no longer exist) - Removes old adaptors and recreates them respecting permissions and limits - Does NOT affect other players' beehives - Accepts SteamID or partial player name - Shows: beehives found, adaptors removed, adaptors recreated, orphans removed /beehive.sync (Chat) or beehive.sync (Console) - Requires: beehivestorageadaptor.admin - Synchronizes data files with actual server state - Removes orphaned entries from all loaded player data - Adds tracking for untracked beehives that already have adaptors - Creates missing adaptors on tracked beehives - Processes all beehives on the map grouped by owner - Shows: players scanned, orphans removed, missing added, adaptors created CONFIGURATION ------------- File Location: config/BeehiveStorageAdaptor.json Default Configuration: { "Enabled": true, "DisableBeeSwarms": false, "GroupLimits": { "default": 5, "vip": 10, "premium": 20 }, "AlwaysIdealConditions": { "Enabled (master switch for ideal conditions patches)": false, "IdealTemperature (16-28 is optimal range, 20 recommended)": 20.0 }, "AdaptorPosition": { "x": 0.0, "y": 1.5, "z": 0.0 }, "AdaptorRotation": { "x": 0.0, "y": 0.0, "z": 0.0 } } Configuration Options: - Enabled: Set to false to disable the plugin without unloading - DisableBeeSwarms: Set to true to remove the visual bee swarms around active beehives. Removes both passive and angry bee effects. - GroupLimits: Dictionary of group names and their beehive limits * "default": 5 = Players with beehivestorageadaptor.default get 5 beehives * "vip": 10 = Players with beehivestorageadaptor.vip get 10 beehives * "premium": 20 = Players with beehivestorageadaptor.premium get 20 beehives * Add as many custom groups as you want * Players with multiple group permissions get the highest limit * Permissions are automatically registered from this config - AlwaysIdealConditions: Harmony patch system for beehive conditions * Enabled: Master switch - must be true for any ideal condition patches to work * IdealTemperature: Temperature value forced on beehives (16-28 optimal, 20 rec.) * Each condition requires its own player permission (see PERMISSIONS) * Patches are applied on load and removed on unload - AdaptorPosition: Position offset relative to the beehive (X, Y, Z) * Y: 1.5 = on top of beehive (default) * Y: -0.4 = below beehive - AdaptorRotation: Rotation of the adaptor in degrees (X, Y, Z) HOW IT WORKS ------------ 1. Player with 'use' permission places a beehive 2. Plugin checks if player has reached their group limit 3. If within limit, plugin automatically attaches a storage adaptor 4. If limit reached, player receives a message with upgrade information 5. Player can now connect industrial components: - Conveyors to transport honey/honeycomb - Power switches to control automation - Electrical circuits for advanced setups 6. When beehive is destroyed, adaptor is removed and count updated 7. Player data is saved persistently across server restarts 8. On player disconnect, data saves and is removed from memory ADMIN WORKFLOW -------------- 1. Configure GroupLimits in config file for your server tiers 2. Grant 'use' permission and group limit permissions to players/groups 3. Enable AlwaysIdealConditions and grant condition permissions if desired 4. Adjust position/rotation in config if needed 5. Use /beehive.reset to apply config changes to all existing beehives 6. Use /beehive.resetplayer <name> to fix a specific player's beehives 7. Use /beehive.sync to reconcile data with server state after issues COMMON SCENARIOS FOR NEW COMMANDS ---------------------------------- Player reports beehive lost its adaptor: -> /beehive.resetplayer PlayerName Recreates all adaptors for that player, cleans orphaned data. Player removed adaptor manually and data is out of sync: -> /beehive.resetplayer PlayerName Removes stale entries, re-processes all their beehives. Server crash or unexpected restart caused data inconsistencies: -> /beehive.sync Scans entire map, fixes all mismatches for all players. Migrated from older plugin version: -> /beehive.sync Picks up existing adaptors and adds missing tracking entries. DATA FILES ---------- Player data is automatically saved to: data/BeehiveStorageAdaptor/{steamid}.json Each player's file contains: - Steam ID - List of beehive network IDs with adaptors - Last update timestamp Example data file (76561198012345678.json): { "SteamID": 76561198012345678, "BeehiveIDs": [12345678, 87654321, 11223344], "LastUpdated": "2025-10-17T10:30:00.0000000Z" } Data Features: - Dirty bit tracking - only writes to disk when data actually changes - Randomized auto-save interval (270-330s) to prevent I/O spikes - Player data unloaded from memory on disconnect - Proper wipe detection via OnNewSave - Individual files per player for easy management PERFORMANCE ----------- - Dirty bit system prevents unnecessary disk writes - Randomized save timers avoid multiple plugins saving simultaneously - Player data removed from RAM on disconnect - Efficient reverse lookup map (beehive ID -> player ID) - Only processes when beehives are placed or destroyed - Harmony patches are lightweight prefix overrides - Safe to use on high-population servers COMPATIBILITY ------------- - Works with vanilla Rust - Compatible with all industrial system items - No conflicts with other plugins - Standalone - no dependencies required - Works with building plugins (CopyPaste, etc.) - Oxide/uMod Framework - Fully Compatible - Carbon Framework - Fully Compatible - Single plugin file works on both frameworks automatically TROUBLESHOOTING --------------- Q: Adaptors aren't appearing on beehives A: Check that players have the 'beehivestorageadaptor.use' permission Q: Multiple adaptors on one beehive A: Use /beehive.reset command to clean up and recreate all adaptors Q: Want to change adaptor position A: Edit the config file, reload plugin, then use /beehive.reset Q: Players without permission have adaptors A: Existing beehives keep adaptors. Remove permission and use /beehive.reset Q: Want to remove bee swarms from beehives A: Set "DisableBeeSwarms": true in config and reload the plugin Q: Player can't place more beehives A: They've reached their group limit. Check with /beehive.limit command. Grant them a higher tier permission or .unlimited permission. Q: Player says beehive came back without adaptor A: Use /beehive.resetplayer <name> to fix that specific player's beehives Q: Data seems out of sync after server issues A: Use /beehive.sync to reconcile all data with actual server state Q: Ideal conditions not working A: Check that AlwaysIdealConditions.Enabled is true in config AND the player has the specific permission (idealtemp, bypassoutside, bypassrain) Q: How to add custom group limits? A: Edit config file GroupLimits section, add your group and limit: "elite": 50 Then grant permission: o.grant group elite beehivestorageadaptor.elite SUPPORT ------- For support, questions, or feature requests, please contact: Discord: romzar LICENSE ------- This plugin is provided for use on Rust game servers. Redistribution or resale of this plugin is prohibited. © 2025 romzar.games - All rights reserved. ═══════════════════════════════════════════════ Thank you for using Beehive Storage Adaptor! Enhance your server with industrial automation! ═══════════════════════════════════════════════$9.99-
- #rust
- #industrial
- (and 12 more)