Check report Tugboats v1.0.0
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.
Tugboats.cs
- With Carbon's shims: 1 error
- Without shims: 1 error
Tugboats.cs(844,111): error CS1061: 'IFuelSystem' does not contain a definition for 'GetFuelContainer' and no accessible extension method 'GetFuelContainer' accepting a first argument of type 'IFuelSystem' could be found (are you missing a using directive or an assembly reference?)
No hot-path hooks registered.
Walks every entity on the server: 1 place.
SHA-256 of this file
63affae2691b8a6c278d042fdae6f4bb96c3ec877beac028d34c4a43c4b82007
Hooks it registers 12
Findings 14
Steam IDs and admin 12
| Level | What | Where | Line |
|---|---|---|---|
| note | changes or checks admin status | Tugboats.cs:689 | if (!player.IsAdmin && !player.IsDeveloper && player.IsFlying) |
| note | changes or checks admin status | Tugboats.cs:707 | var wasAdmin = player.IsAdmin; |
| note | changes or checks admin status | Tugboats.cs:710 | player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, true); |
| note | changes or checks admin status | Tugboats.cs:721 | player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, false); |
| note | changes or checks admin status | Tugboats.cs:731 | if (!player.IsAdmin && !player.IsDeveloper && player.IsFlying) |
| note | changes or checks admin status | Tugboats.cs:754 | var wasAdmin = player.IsAdmin; |
| note | changes or checks admin status | Tugboats.cs:757 | player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, true); |
| note | changes or checks admin status | Tugboats.cs:768 | player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, false); |
| note | changes or checks admin status | Tugboats.cs:820 | if (!player.IsAdmin && !player.IsDeveloper && player.IsFlying) |
| note | changes or checks admin status | Tugboats.cs:825 | var wasAdmin = player.IsAdmin; |
| note | changes or checks admin status | Tugboats.cs:828 | player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, true); |
| note | changes or checks admin status | Tugboats.cs:836 | player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, false); |
Config writes 2
| Level | What | Where | Line |
|---|---|---|---|
| note | writes the config file | Tugboats.cs:143 | SaveConfig(); |
| note | writes the config file | Tugboats.cs:772 | SaveConfig(); |
"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.
