Check report Gathering Basket 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.
GatheringBasket.cs
- With Carbon's shims: 4 errors
- Without shims: 4 errors
GatheringBasket.cs(723,59): error CS1593: Delegate 'Func<BasePlayer, Item, int, bool>' does not take 2 arguments GatheringBasket.cs(725,66): error CS1593: Delegate 'Action<Item, bool, BasePlayer>' does not take 2 arguments GatheringBasket.cs(1112,81): error CS1593: Delegate 'Action<Item, int, BasePlayer>' does not take 2 arguments GatheringBasket.cs(1113,81): error CS1593: Delegate 'Action<Item, int, BasePlayer>' does not take 2 arguments
Hot-path hooks (these run very often; what each one does inside):
| Hook | Line | Does |
|---|---|---|
OnPlayerSleepEnded | 584 | nothing heavy found |
OnPlayerDeath | 595 | nothing heavy found |
CanLootEntity | 1172 | nothing heavy found |
OnLootEntity | 1181 | CUI send |
OnItemRemovedFromContainer | 1233 | nothing heavy found |
OnItemAddedToContainer | 1250 | nothing heavy found |
OnDispenserGather | 1274 | nothing heavy found |
OnDispenserBonus | 1281 | nothing heavy found |
OnEntityKill | 1314 | nothing heavy found |
SHA-256 of this file
84f4b1faff4de3a1280fd52fd4aa6b12ff378a0cd70e46b244a747b36c3173ce
Hooks it registers 21
Findings 8
Steam IDs and admin 6
| Level | What | Where | Line |
|---|---|---|---|
| note | changes or checks admin status | GatheringBasket.cs:420 | if (!IsAdmin(player)) |
| note | changes or checks admin status | GatheringBasket.cs:433 | if (player != null && !IsAdmin(player)) |
| note | changes or checks admin status | GatheringBasket.cs:532 | if (!_config.AllowPlayerReset && !permission.UserHasPermission(player.UserIDString, ResetPermission) && !IsAdmin(player)) |
| note | changes or checks admin status | GatheringBasket.cs:1176 | if (player != null && (container.OwnerID == player.userID || IsAdmin(player))) |
| note | changes or checks admin status | GatheringBasket.cs:1778 | private bool IsAdmin(BasePlayer player) |
| note | changes or checks admin status | GatheringBasket.cs:1780 | return player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, AdminPermission)); |
Game control 1
| Level | What | Where | Line |
|---|---|---|---|
| note | repeating timer | GatheringBasket.cs:288 | _autoSaveTimer = timer.Every(_config.AutoSaveInterval, SaveDirty); |
Config writes 1
| Level | What | Where | Line |
|---|---|---|---|
| note | writes the config file | GatheringBasket.cs:368 | 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.
