-
Posts
39 -
Joined
-
Last visited
Content Type
Profiles
Warranty Claims
Downloads
Forums
Store
Support
DOWNLOADS EXTRA
Services
Everything posted by romzar
-
Version 1.2.2
45 downloads
AdminStats - Server Monitor HUD Keep an eye on your server health while you play! AdminStats is a lightweight, always-visible HUD that shows real-time server performance metrics to administrators. Perfect for server owners who want to monitor performance while testing plugins, building, or just playing. What does it show? Server FPS - Color-coded (green = good, yellow = warning, red = critical) with a mini graph showing the last 30 seconds Players Online - Current / Maximum Entities - Total world entities Memory - Server RAM usage Network Traffic - Incoming and outgoing bandwidth Uptime - Time since last server restart Two Display Modes Full Mode - All stats in a compact panel Minimal Mode - Just FPS, super tiny, stays out of your way Switch between modes anytime with /adminstats.mode Easy Positioning Place the HUD wherever you want: Top Left Top Right Bottom Left Bottom Right Custom position Adjust margins to fit perfectly with your other UI elements. Commands /adminstats - Toggle HUD on/off /adminstats.mode - Switch between full and minimal mode Features Zero performance impact - updates once per second Auto-enables for admins on connect Sleek blur background that fits Rust's style Multi-language support (English, Portuguese, Spanish) Fully configurable colors, size, and position Permission-based (adminstats.use) Perfect for: Testing new plugins while monitoring server health Identifying performance issues in real-time Keeping track of player count and entity buildup Server owners who like to stay informed Lightweight. Unobtrusive. Essential.Free-
- 1
-
-
- #admin stats
- #stats
- (and 15 more)
-
chicken stopped laying <and> splitters/adapters going missing
romzar replied to Farmer Bob's Support Request in Support
Changed Status from Pending to Fixed Changed Fixed In to 1.5.4 -
chicken stopped laying <and> splitters/adapters going missing
romzar replied to Farmer Bob's Support Request in Support
Okay, I think I know what's happening. You can't leave eggs sitting there because they degrade over time. A new egg at 100% health can't stack with an egg at 50% health — that's why it looks like they're not producing. They actually are, but the eggs just can't stack due to different health values. With that solved, I'll release a new update to fix the autochickencoop.reset issue. Thanks for your time! -
chicken stopped laying <and> splitters/adapters going missing
romzar replied to Farmer Bob's Support Request in Support
If you remove the produced eggs (5) they will produce more 5 and stop? They stoped after server restart or plugin restart or after the autochickencoop.reset command? -
chicken stopped laying <and> splitters/adapters going missing
romzar replied to Farmer Bob's Support Request in Support
What was your conveyor configuration? (Max, Buffer, Min) I've identified the autochickencoop.reset issue and will upload a fix soon. Now we need to figure out this egg production problem — I need to reproduce it on my end. -
chicken stopped laying <and> splitters/adapters going missing
romzar replied to Farmer Bob's Support Request in Support
The plugin doesn't actually control or block egg production. By any chance, do you have a stack limit plugin or any other plugins that affect chickens or animals? -
chicken stopped laying <and> splitters/adapters going missing
romzar replied to Farmer Bob's Support Request in Support
I don't understand — you collected 16.5k eggs but they stopped producing? Currently, do all of them (except 1) have 5 eggs in some slot, and that number doesn't change? How many chicken coops do you have? Can you send a video so I can get a better idea of what's happening? -
chicken stopped laying <and> splitters/adapters going missing
romzar replied to Farmer Bob's Support Request in Support
Are your chickens at 100% for all stats — hunger, happiness, sun, etc.? Are no chickens laying eggs at all, or just the ones in coops without a storage adapter? The plugin auto-hatches eggs until it fills 4 chicken slots. What are your current plugin permissions and configs, and what settings did you use for your test? It removes them if you exceeded the limits or changed the config to allow fewer per group. -
- 5 comments
-
- 1
-
-
- #title
- #betterchat
- (and 11 more)
-
Changed Status from Pending to Fixed Changed Fixed In to 1.5.4
-
Fixed in version 1.5.4
-
- 5 comments
-
- #title
- #betterchat
- (and 11 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
1 download
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.$7.99 -
Version 1.5.4
7 downloads
═══════════════════════════════════════════════════════════════════════════════ AUTOCHICKENCOOP v1.5.0 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 VERSION HISTORY --------------- v1.4.0 - Group-Based Limits & Data Persistence • Group-based limits system (VIP tiers) • Per-player data persistence • Automatic data cleanup (30 days) • Dirty bit tracking for efficient saves • /chickencoop.limit command • Automatic upgrade suggestions when limit reached • Enhanced water transfer system • Batch entity processing on server init • Randomized auto-save intervals • Performance optimizations v1.3.0 - Chicken Protection & Team Integration • Chicken protection system • Friends API integration • Clans integration • BetterTeams integration • Configurable protection rules v1.2.0 - Auto-Hatch System • Automatic egg hatching • Smart chicken count management • Configurable max chickens • Auto-hatch permission v1.1.0 - Admin Tools & Debug • /autochickencoop.reset command • /chickencoop.debug command • /chickencoop.checkwater command • Enhanced logging v1.0.0 - Initial Release • Storage adaptor automation • Fluid splitter automation • Automatic water transfer • Love control system • Sunlight control system 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 3 more)
Tagged with:
-
Version 1.8.0
43 downloads
═══════════════════════════════════════════════════ TITLE SELECTOR v1.6.0 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. ═══════════════════════════════════════════════════ WHAT'S NEW IN v1.5.0 ═══════════════════════════════════════════════════ ✓ Emoji Toggle - New toggle to hide emoji-only titles (:coffeecan:, :medal:, etc.) - Removes emojis from mixed titles (e.g., "Admin :star:" → "Admin") - Works with selected titles and Hide All mode - "Emoji: ON/OFF" button in the Filters row ✓ BetterChatGradients Support - Full native support for gradient colors in titles - Gradients render correctly when selecting custom titles - Supports both hex colors (#ff0000) and named colors (red, blue, yellow) - Multi-color gradients: red,orange,yellow,green ✓ Extra Patterns (Config Only) - Advanced regex patterns for complex title formats - Handles uMod gradient tags: [#red,blue]text[/#] - Handles HTML color tags: <color=#fff>:emoji:</color> - No UI toggle - applied automatically with Emoji toggle ✓ Named Color Support - Gradients support color names: red, green, blue, yellow, orange, purple, pink, cyan, white, black, gray, gold, silver - Mix hex and named: #ff0000,orange,yellow ═══════════════════════════════════════════════════ KEY FEATURES ------------ ✓ Visual Title Selection - Clean modal UI where players can enable/disable their owned titles - Green checkbox for active titles, gray for available, locked icon for unowned - Intuitive interface for easy title management ✓ Collectible Display - Shows locked titles players can work towards obtaining - Motivates players to unlock new titles - Clear visual distinction between owned and locked titles ✓ SkillTree Integration - Independent toggle controls for Level [Lv.X] indicators - Independent toggle controls for Prestige [Pr.X] indicators - Mix and match visibility settings ✓ Hide All Option - Quickly hide all BetterChat titles with one click - Keep SkillTree indicators visible while hiding rank titles - Perfect for players who want minimal chat clutter ✓ Pagination System - Handles large title collections with page navigation - Configurable items per page - Smooth browsing experience ✓ Multi-language Support - Fully translatable via Oxide lang system - All UI text customizable - Easy localization for any language ✓ Permission Based Access - Control who can access the title selector - Simple permission system - Grant to specific groups or players ✓ Persistent Data - Player preferences saved automatically - Settings persist across sessions and restarts - No data loss on plugin reload INSTALLATION ------------ 1. Upload TitleSelector.cs to oxide/plugins/ or carbon/plugins/ 2. Ensure BetterChat is installed and configured 3. Grant permission: o.grant group default titleselector.use 4. Reload the plugin if needed: o.reload TitleSelector 5. (Optional) Customize the config and lang files DEPENDENCIES ------------ Required: - BetterChat - This plugin hooks into BetterChat to modify title display Optional: - SkillTree - If installed, players can toggle Level/Prestige visibility - BetterChatGradients - If installed, gradient colors render natively PERMISSIONS ----------- titleselector.use - Allows access to the title selector UI - Required for players to open the /title menu - Grant to groups or individual players PERMISSION EXAMPLES ------------------- Grant to all players: o.grant group default titleselector.use Grant to VIP group only: o.grant group vip titleselector.use Grant to specific player: o.grant user PlayerName titleselector.use o.grant user 76561198000000000 titleselector.use COMMANDS -------- /title (Chat) - Opens the Title Selector UI - Requires: titleselector.use permission - Main command for accessing the interface /titulo (Chat) - Alternative command (configurable) - Same functionality as /title /titulos (Chat) - Alternative command (configurable) - Same functionality as /title CONFIGURATION ------------- File Location: oxide/config/TitleSelector.json Default Configuration: { "Allow hide all titles": true, "Allow toggle SkillTree level": true, "Allow toggle SkillTree prestige": true, "Allow toggle emoji titles": true, "Level patterns (regex)": [ "\\s*<color=[^>]*>\\[Lv\\.\\d+\\]</color>\\s*", "\\s*<color=[^>]*>\\[Level\\s*\\d+\\]</color>\\s*", "\\s*\\[Lv\\.\\d+\\]\\s*", "\\s*\\[Level\\s*\\d+\\]\\s*" ], "Prestige patterns (regex)": [ "\\s*<color=[^>]*>\\[Pr\\.\\d+\\]</color>\\s*", "\\s*<color=[^>]*>\\[Prestige\\s*\\d+\\]</color>\\s*", "\\s*\\[Pr\\.\\d+\\]\\s*", "\\s*\\[Prestige\\s*\\d+\\]\\s*" ], "Emoji patterns (regex)": [ "\\s*:\\w+:\\s*" ], "Extra patterns (regex) - applied with emoji toggle": [ "\\s*\\[#[\\w,\\s#]+\\]\\[\\+\\d+\\]\\s*:\\w+:\\s*\\[/\\+\\]\\[/#\\]\\s*", "\\s*\\[#[\\w,\\s#]+\\]\\s*:\\w+:\\s*\\[/#\\]\\s*", "\\s*<color=[^>]*>:\\w+:</color>\\s*" ], "Max selectable titles": 3, "Main command": "title", "Alternative commands": ["titulo", "titulos"], "Ignored groups (hidden from UI)": ["default", "player", "guest"], "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 - 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 level: Enable/disable Level toggle for players - Allow toggle SkillTree prestige: Enable/disable Prestige toggle for players - Allow toggle emoji titles: Enable/disable Emoji toggle for players - Level patterns: Regex patterns to detect Level indicators from SkillTree - Prestige patterns: Regex patterns to detect Prestige indicators from SkillTree - Emoji patterns: Regex patterns to detect emoji-only titles - Extra patterns: Advanced regex patterns for complex formats (applied with emoji toggle) - Max selectable titles: Maximum number of titles a player can display at once - Main command: Primary chat command to open the UI - Alternative commands: Additional commands that open the UI - Ignored groups: BetterChat groups to hide from the UI (e.g., default groups) - Items per page: Number of titles shown per page in the UI - UI colors: Customize the appearance of the interface HOW IT WORKS ------------ 1. Player with 'use' permission types /title in chat 2. Title Selector UI opens showing all available titles 3. Player sees their titles organized by status: - Green checkbox = Title is active and will show in chat - Gray checkbox = Title is available but not selected - Locked icon = Title the player doesn't own yet (collectible) 4. Player clicks titles to enable/disable them 5. When no titles are selected, BetterChat displays titles based on priority 6. Player preferences are saved automatically TITLE SELECTION SYSTEM ---------------------- AVAILABLE (Player owns the title): - Displayed with interactive checkbox - Click to toggle on/off - Limited by Max selectable titles setting SELECTED (Currently active): - Green checkbox indicator - Will display in chat messages - Can be deselected by clicking LOCKED (Player doesn't own): - Shown as collectible/goal - Locked icon displayed - Cannot be selected until unlocked SKILLTREE INTEGRATION --------------------- The bottom row of the UI shows toggle buttons for SkillTree indicators: Level Toggle: - Controls visibility of [Lv.109] style indicators - "Level: ON" = Level shown in chat - "Level: OFF" = Level hidden from chat Prestige Toggle: - Controls visibility of [Pr.1] style indicators - "Prestige: ON" = Prestige shown in chat - "Prestige: OFF" = Prestige hidden from chat These work independently - players can show Level but hide Prestige, or vice versa. EMOJI TOGGLE ------------ The Filters row includes a toggle for emoji visibility: Emoji Toggle: - Controls visibility of emoji-only titles (:coffeecan:, :medal:, etc.) - Removes emojis from mixed titles (e.g., "Admin :star:" → "Admin") - "Emoji: ON" = Emojis shown in chat - "Emoji: OFF" = Emojis hidden from chat - Works with both selected titles and Hide All mode - Extra patterns are applied automatically when emoji toggle is OFF BETTERCHATGRADIENTS SUPPORT --------------------------- TitleSelector natively supports BetterChatGradients: Features: - Gradient colors render correctly when selecting custom 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 - Mix hex and named colors: #ff0000,orange,yellow No additional configuration required - gradients work automatically. HIDE ALL FEATURE ---------------- The "Hide All" button provides quick title management: - Hides all BetterChat titles with one click - Respects SkillTree toggle settings - Respects Emoji toggle settings - Players can hide rank titles while showing Level/Prestige - "Show All" button reverses the action PLAYER WORKFLOW --------------- 1. Type /title to open the Title Selector UI 2. Browse available titles using pagination if needed 3. Click checkboxes to select desired titles (up to max limit) 4. Toggle SkillTree Level/Prestige visibility as desired 5. Toggle Emoji visibility as desired 6. Use "Hide All" for quick hiding of all BetterChat titles 7. Close the UI - preferences are saved automatically 8. Chat messages now display only selected titles ADMIN WORKFLOW -------------- 1. Install the plugin with BetterChat dependency 2. Configure ignored groups to hide default/system groups 3. Set max selectable titles based on server preference 4. Customize UI colors to match server theme 5. Grant 'titleselector.use' permission to appropriate groups 6. Translate lang file if needed for non-English servers API METHODS ----------- For developers who want to integrate with TitleSelector: API_GetSelectedTitles(string odId) - Returns: List<string> of player's selected titles - Use to check what titles a player has enabled API_IsHidingTitles(string odId) - Returns: bool indicating if player is hiding all titles - Use to check player's hide status API_SetSelectedTitles(string odId, List<string> titles) - Sets player's selected titles programmatically - Use to modify player preferences via code API_RefreshTitles() - Refreshes the title cache - Call after BetterChat config changes API USAGE EXAMPLE ----------------- [PluginReference] private Plugin TitleSelector; void Example(BasePlayer player) { // Get selected titles var titles = TitleSelector?.Call<List<string>>( "API_GetSelectedTitles", player.UserIDString); // Check if hiding var isHiding = TitleSelector?.Call<bool>( "API_IsHidingTitles", player.UserIDString) ?? false; // Set titles TitleSelector?.Call("API_SetSelectedTitles", player.UserIDString, new List<string> { "vip", "donator" }); // Refresh cache TitleSelector?.Call("API_RefreshTitles"); } LOCALIZATION ------------ All UI text is customizable via the lang file. File Location: oxide/lang/en/TitleSelector.json Default Messages: { "NoPermission": "<color=#ff5555>You don't have permission to use this command.</color>", "BetterChatNotLoaded": "<color=#ff5555>BetterChat is not loaded!</color>", "TitleLocked": "<color=#ff5555>You don't own this title!</color>", "MaxTitlesReached": "<color=#ff5555>Maximum of {max} titles reached!</color>", "HideNotAllowed": "<color=#ff5555>Hiding titles is not enabled.</color>", "ToggleLevelNotAllowed": "<color=#ff5555>Toggle level is not enabled.</color>", "TogglePrestigeNotAllowed": "<color=#ff5555>Toggle prestige is not enabled.</color>", "ToggleEmojiNotAllowed": "<color=#ff5555>Toggle emoji is not enabled.</color>", "UITitle": "TITLE SELECTOR", "UIStatusHidden": "All titles are hidden", "UIStatusDefault": "Showing default titles (based on priority)", "UIStatusSelected": "{count}/{max} titles selected", "UILocked": "Locked", "UISelected": "Active", "UIAvailable": "Available", "UIClear": "Clear", "UIHideAll": "Hide All", "UIShowAll": "Show All", "UIClose": "Close", "UISkillTreeLabel": "Filters:", "UILevelVisible": "Level: ON", "UILevelHidden": "Level: OFF", "UIPrestigeVisible": "Prestige: ON", "UIPrestigeHidden": "Prestige: OFF", "UIEmojiVisible": "Emoji: ON", "UIEmojiHidden": "Emoji: OFF" } USE CASES --------- • VIP Customization: Let VIP players customize their chat appearance • Roleplay Servers: Players choose titles that fit their character • Rank Management: Players hide unwanted default titles • Clean Chat: Minimalist players can hide all titles • SkillTree Control: Show progress without cluttering chat • Emoji Control: Hide emoji titles for cleaner chat • Collectibles: Motivate players to unlock new titles • Multi-Title Servers: Let players display multiple earned titles • Gradient Titles: Beautiful color gradients in player titles TROUBLESHOOTING --------------- Q: UI not opening when typing /title A: Check that player has the 'titleselector.use' permission Q: Titles not showing in chat after selection A: Ensure BetterChat is loaded and properly configured Q: SkillTree toggles not appearing A: SkillTree must be installed for these options to show Q: Some titles not appearing in the UI A: Check the "Ignored groups" config - groups listed there are hidden Q: Player can't select more titles A: They've reached the "Max selectable titles" limit in config Q: Changes not saving A: Check oxide/data folder permissions and console for errors Q: Emoji toggle not working A: Check "Allow toggle emoji titles" is true in config Q: Gradients not rendering A: Ensure BetterChatGradients is installed and working PERFORMANCE ----------- • Lightweight and optimized • Data saved per-player efficiently • UI rendered on-demand only • No performance impact when UI is closed • Safe to use on high-population servers COMPATIBILITY ------------- • Requires BetterChat (mandatory dependency) • Optional SkillTree integration • Optional BetterChatGradients integration - Gradients work natively when selecting titles - No conflicts - TitleSelector applies gradients directly • Works with Oxide and Carbon • No conflicts with other chat plugins • Compatible with permission plugins SUPPORT ------- For support, bug reports, or feature requests, please use the discussion tab or contact the author. VERSION HISTORY --------------- v1.5.0 - Emoji & Gradient Update - New Emoji toggle to hide emoji-only titles - Full BetterChatGradients native support - Extra patterns for complex title formats - Named color support in gradients - UI label changed from "SkillTree:" to "Filters:" v1.4.0 - Initial public release - Full BetterChat integration - SkillTree Level/Prestige toggle support - Pagination for large title collections - Hide All feature with SkillTree independence - Comprehensive API for developers 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 Title Selector! Give your players control over their chat identity! ══════════════════════════════════════════════════$14.99- 5 comments
- 1 review
-
- #title
- #betterchat
- (and 11 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.
