← Outside Unsafe Base (Iron Routes)
Check report Outside Unsafe Base (Iron Routes) v2.3.5
What an automated read of this exact file found. It is a list of facts about the code, not a safety verdict. Read it, then read the config, then test on a throwaway server.
Compile check
Compiled on the live game box against Rust build 25670169 (game files dated 2026-10-02, Carbon files dated 2026-10-01), 2026-10-02 (6 days ago). "Without shims" means the plugin does not lean on Carbon's compatibility layer for APIs the game has removed, which is the version most likely to keep working after the next Rust update and to run on Oxide.
OutsideUnsafeBase.cs
- With Carbon's shims: compiles
- Without shims: compiles
Hot-path hooks (these run very often; what each one does inside):
| Hook | Line | Does |
|---|---|---|
OnEntityTakeDamage | 661 | nothing heavy found |
OnEntityTakeDamage | 679 | nothing heavy found |
OnEntityTakeDamage | 685 | nothing heavy found |
OnPlayerDeath | 735 | nothing heavy found |
OnEntityDeath | 764 | nothing heavy found |
OnEntityDeath | 772 | nothing heavy found |
OnEntityDeath | 778 | nothing heavy found |
OnEntityDeath | 784 | nothing heavy found |
OnLootEntity | 913 | nothing heavy found |
MixBots.cs
- With Carbon's shims: compiles
- Without shims: compiles
Hot-path hooks (these run very often; what each one does inside):
| Hook | Line | Does |
|---|---|---|
OnEntityDeath | 402 | nothing heavy found |
OnEntityTakeDamage | 433 | nothing heavy found |
OnNpcTarget | 451 | nothing heavy found |
CanBeTargeted | 457 | nothing heavy found |
OnPlayerInput | 4190 | nothing heavy found |
CanNetworkTo | 4213 | nothing heavy found |
SHA-256 of this file
9dd3adcfe2ede382e3c6340321e4d834ee593e19cf83d33a44f3b81fd45d6e0b
Hooks it registers 16
Findings 20
Steam IDs and admin 2
| Level | What | Where | Line |
|---|---|---|---|
| note | changes or checks admin status | OutsideUnsafeBase/OutsideUnsafeBase.cs:2325 | return player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin); |
| note | changes or checks admin status | OutsideUnsafeBase/MixBots.cs:2371 | return player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, Perm)); |
Game control 8
| Level | What | Where | Line |
|---|---|---|---|
| note | repeating timer | OutsideUnsafeBase/OutsideUnsafeBase.cs:482 | _directorTimer = timer.Every(DirectorSeconds(), EvaluateDirector); |
| note | repeating timer | OutsideUnsafeBase/OutsideUnsafeBase.cs:483 | _decayTimer = timer.Every(DecaySeconds(), DecayThreat); |
| note | repeating timer | OutsideUnsafeBase/OutsideUnsafeBase.cs:484 | _operationTimer = timer.Every(OperationSeconds(), UpdateOperations); |
| note | uses the server manager | OutsideUnsafeBase/MixBots.cs:374 | if (_artJob != null && ServerMgr.Instance != null) ServerMgr.Instance.StopCoroutine(_artJob); |
| note | uses the server manager | OutsideUnsafeBase/MixBots.cs:2828 | if (ServerMgr.Instance != null) _artJob = ServerMgr.Instance.StartCoroutine(StoreArt(files)); |
| note | repeating timer | OutsideUnsafeBase/MixBots.cs:339 | _timer = timer.Every(15f, Maintain); |
| note | repeating timer | OutsideUnsafeBase/MixBots.cs:340 | _steer = timer.Every(1f, Steer); |
| note | repeating timer | OutsideUnsafeBase/MixBots.cs:3456 | if (_walkTimer == null) _walkTimer = timer.Every(1f, WalkTick); |
Config writes 8
| Level | What | Where | Line |
|---|---|---|---|
| note | writes the config file | OutsideUnsafeBase/OutsideUnsafeBase.cs:323 | SaveConfig(); |
| note | writes the config file | OutsideUnsafeBase/OutsideUnsafeBase.cs:2616 | SaveConfig(); |
| note | writes the config file | OutsideUnsafeBase/OutsideUnsafeBase.cs:2637 | SaveConfig(); |
| note | writes the config file | OutsideUnsafeBase/OutsideUnsafeBase.cs:2765 | SaveConfig(); |
| note | writes the config file | OutsideUnsafeBase/OutsideUnsafeBase.cs:2867 | SaveConfig(); |
| note | writes the config file | OutsideUnsafeBase/OutsideUnsafeBase.cs:2878 | SaveConfig(); |
| note | writes the config file | OutsideUnsafeBase/MixBots.cs:248 | SaveConfig(); |
| note | writes the config file | OutsideUnsafeBase/MixBots.cs:255 | SaveConfig(); |
Files and server config 2
| Level | What | Where | Line |
|---|---|---|---|
| note | file system write or delete | OutsideUnsafeBase/MixBots.cs:265 | File.Copy(path, copy, true); |
| note | file system write or delete | OutsideUnsafeBase/MixBots.cs:1105 | try { File.Delete(Path.Combine(Interface.Oxide.DataDirectory, old + ".json")); } |
"blocks": the file is not served until a person looks. "look": worth reading the line. "note": common in honest plugins (a URL, a config write); listed so you know it is there.
What was checked
Outbound network use and URLs, Discord webhooks, process and shell use, native imports, dynamic assembly loading and code generation, unsafe blocks, Base64 decoding and long encoded literals, file writes and deletes, server config and RCON references, hardcoded Steam IDs, admin flag changes, Harmony patches, console commands and server stops, repeating timers, config writes, and the hook names registered. The compile check above builds the file on the live game box against the current Rust and Carbon files, publicized the way Carbon does at boot, with Carbon's compat shims and without them. Not checked: whether the logic is correct or kind, or whether the config it ships with points anywhere.
Versions
| Version | Kind | Size | Findings | Status | Uploaded |
|---|---|---|---|---|---|
| 2.3.5 current | upload | 65 KB | 20 | checked | 2026-10-02 (6 days ago) |
| 2.3.5 | upload | 65 KB | 20 | checked | 2026-10-02 (6 days ago) |
| 2.3.4 | upload | 65 KB | 20 | checked | 2026-10-02 (6 days ago) |
| 2.3.4 | upload | 65 KB | 20 | checked | 2026-10-02 (6 days ago) |
