.
Auto Spectate v2.0.0
Advanced Admin Monitoring Plugin for Rust (uMod/Oxide)
Author: Lucas Pelissar
Version: 2.0.0
Compatibility: Rust (Latest) + uMod/Oxide
License: Commercial License – All Rights Reserved
Overview
Auto Spectate v2.0.0 is a high-performance administrative monitoring plugin designed for Rust servers.
It provides:
Automatic player spectating
Real-time inventory live view
Advanced inventory logging
Full loot open detection
Optimized architecture for 200+ player servers
Safe memory and timer handling
The plugin is production-ready and built with defensive coding practices.
Installation
Upload AutoSpectateV1.cs to:
/oxide/plugins/
Reload the plugin:
oxide.reload AutoSpectateV1
Grant permissions (see section 4)
Configure via:
/oxide/config/AutoSpectateV1.json
Features Breakdown
Auto Spectate
Automatically rotates between alive players
Configurable interval
Safe spectator enforcement
Prevents orphan timers
Handles disconnects safely
Live Inventory View
Real-time GUI inventory viewer
Updates only when inventory changes
Unique GUI ID generation
Safe UI cleanup on unload/disconnect
Inventory Monitoring
Detects when players open:
Their own inventory
Loot containers (boxes, furnaces, TC, etc.)
Lootable entities
Individual items
Logs:
Item added
Item removed
Timestamped entries
Ring-buffer optimized storage
Performance Optimized
O(1) data structures
No heavy LINQ in hot hooks
Watcher-based system (no global scanning)
Minimal garbage collection impact
Designed for high population servers
Security
Permission-based access
Optional admin bypass control
Audit trail system
Safe null handling
Safe random handling
No GUI duplication
No timer leaks
Commands
CommandDescription
/autospectate [seconds]Enables/disables automatic spectate rotation
/spectinv <player>Opens inventory GUI of a player
/automonitorToggles inventory monitoring
/liveview <player>Starts real-time inventory view
/stopliveStops live view
/invlogs <player>Shows recent inventory logs
/closeinvCloses inventory GUI
Permissions
PermissionAccess
autospectate.useUse auto spectate
autospectate.inventoryOpen inventory GUI
autospectate.monitorMonitor & live view
Grant example:
oxide.grant group admin autospectate.use
oxide.grant group admin autospectate.inventory
oxide.grant group admin autospectate.monitor
Configuration
Located in:
oxide/config/AutoSpectateV1.json
Main configuration sections:
SpectateConfig
DefaultIntervalSeconds
MinIntervalSeconds
MaxIntervalSeconds
KillIfAliveToForceSpectate
RequireAtLeastTwoPlayers
InventoryConfig
LiveViewRefreshSeconds
LiveViewRenderOnlyOnChange
MinGuiRefreshSecondsPerAdmin
MaxLogsPerPlayer
MaxLogsToShow
NotifyLootOpens
LootOpenDebounceSeconds
RequireUniqueNameMatch
LoggingConfig
EnableConsoleLogs
Verbose
EnableAuditTrail
MaxAuditEntries
SecurityConfig
AllowOwnerModeratorBypass
RequirePermissionEvenForAdmin
RequirePermissionForSpectInvEvenIfAdmin
RequirePermissionForMonitorEvenIfAdmin
Performance Notes
No global player scanning in inventory hooks
Watcher-based targeting system
Ring-buffer log system
GUI redraw only when inventory changes
Timers destroyed safely
Cleanup on disconnect and unload
Safe for large population servers (200+ players).
Edge Case Handling
Protected against:
NullReferenceException
ArgumentOutOfRangeException
Orphan timers
GUI ID collisions
Memory leaks
Disconnect-related crashes
Invalid player name matches
Troubleshooting
If GUI does not open:
Verify permission
Verify player is online
Check console for errors
If live view does not update:
Confirm inventory changes are occurring
Verify monitoring permission
If plugin fails to load:
Check Oxide logs
Ensure latest Rust version
License
Commercial License – All Rights Reserved
Redistribution, resale, sharing, or sublicensing is strictly prohibited.
Modification for personal server use is allowed.
Distribution of modified versions is not permitted.
Support
For support, updates, or bug reports, contact the author. (Ctrl - Lucas Pelissar)