MixMods Creator Directory

← MiX Server Pack

Check report MiX Server Pack v0.9.56

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.

FileMixServerPack.zip · 33.2 MB · 56 source files · 74526 lines
StatusChecked, 462 findings
Uploaded2026-09-28 (10 days ago)
Compile checkCompiles on Carbon · compiles without Carbon's compat shims

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.

BagTimer.cs

No hot-path hooks registered.

Walks every entity on the server: 1 place.

FreeBuild.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerSleepEnded459nothing heavy found
OnEntitySpawned660nothing heavy found
CanLootEntity1206nothing heavy found
CanLootEntity1229nothing heavy found
CanLootEntity1232nothing heavy found

Walks every entity on the server: 5 places.

MiniMapRound.cs

No hot-path hooks registered.

MixAdminMove.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerInput287nothing heavy found

MixAngler.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath272nothing heavy found

MixApartmentHome.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnLootEntity2343nothing heavy found
OnEntitySpawned2430server entity scan
CanBuild2468nothing heavy found
OnPlayerAttack3489nothing heavy found

Walks every entity on the server: 8 places.

MixAsk.cs

No hot-path hooks registered.

MixAutoDoor.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityKill142nothing heavy found

MixBoatHelm.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerInput241nothing heavy found

Walks every entity on the server: 1 place.

MixBounty.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath553nothing heavy found

MixBusStops.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityTakeDamage1314nothing heavy found
OnPlayerAttack1328nothing heavy found
OnNpcTarget1333nothing heavy found
CanBeTargeted1339nothing heavy found

Walks every entity on the server: 1 place.

MixCarbonLeakGuard.cs

No hot-path hooks registered.

Walks every entity on the server: 1 place.

MixCommerce.cs

No hot-path hooks registered.

MixCompanionFix.cs

No hot-path hooks registered.

MixCore.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnLootEntity3647nothing heavy found
OnPlayerDeath3653nothing heavy found
OnEntityDeath5596nothing heavy found
OnEntityDeath5618nothing heavy found
OnDispenserGather5635nothing heavy found

MixEntityScale.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityKill327file write
OnLootEntity342nothing heavy found

MixEvents.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityTakeDamage595nothing heavy found
OnEntityTakeDamage597nothing heavy found
OnEntityDeath918nothing heavy found
OnLootEntity940nothing heavy found

Walks every entity on the server: 1 place.

MixExtract.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityTakeDamage212nothing heavy found

MixGovern.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath793nothing heavy found
OnPlayerInput840nothing heavy found
OnEntityTakeDamage1530nothing heavy found

Walks every entity on the server: 1 place.

MixGrid.cs

No hot-path hooks registered.

MixHeadlamp.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnItemAddedToContainer183nothing heavy found
OnItemRemovedFromContainer216nothing heavy found

MixHorde.cs

No hot-path hooks registered.

MixHud.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntitySpawned381nothing heavy found
OnEntitySpawned382nothing heavy found
OnEntitySpawned383nothing heavy found
OnEntitySpawned384nothing heavy found
OnEntitySpawned385nothing heavy found
OnEntityKill386nothing heavy found
OnEntityKill387nothing heavy found
OnEntityKill388nothing heavy found
OnEntityKill389nothing heavy found
OnEntityKill390nothing heavy found

Walks every entity on the server: 2 places.

MixImages.cs

No hot-path hooks registered.

MixInstantBases.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath237nothing heavy found
OnPlayerInput251nothing heavy found

Walks every entity on the server: 1 place.

MixMenuKit.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnLootEntity337nothing heavy found

MixModsConnectUI.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath660nothing heavy found
OnPlayerSleepEnded668nothing heavy found

MixMyMini.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityKill133nothing heavy found

MixNotices.cs

No hot-path hooks registered.

MixPackAssetsShim.cs

No hot-path hooks registered.

MixPlace.cs

No hot-path hooks registered.

MixQuarry.cs

No hot-path hooks registered.

Walks every entity on the server: 1 place.

MixRackKit.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityDeath554nothing heavy found

MixRaidBases.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnTurretTarget781nothing heavy found
CanBeTargeted811nothing heavy found
OnEntityTakeDamage841nothing heavy found
OnLootEntity3229LINQ
OnEntityDeath3247string interpolation
OnEntityKill3537nothing heavy found

Walks every entity on the server: 1 place.

MixSettlers.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityDeath338nothing heavy found
OnEntityKill349nothing heavy found

Repeating timers under one second: 0.25 s.

MixShopfront.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityTakeDamage839nothing heavy found

Walks every entity on the server: 1 place.

MixShowcase.cs

No hot-path hooks registered.

MixSignboard.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityKill400nothing heavy found
OnLootEntity411nothing heavy found

MixSiloRaid.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnTurretTarget278nothing heavy found
CanBeTargeted300nothing heavy found
OnEntityTakeDamage320nothing heavy found

Walks every entity on the server: 1 place.

MixSkillTree.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnDispenserGather195nothing heavy found
OnDispenserBonus200nothing heavy found
OnCollectiblePickup205nothing heavy found
OnEntityDeath221nothing heavy found

MixSkinOwnership.cs

No hot-path hooks registered.

MixSkinsLight.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath658nothing heavy found

Repeating timers under one second: 0.05 s.

Walks every entity on the server: 1 place.

MixSprint.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath265nothing heavy found
OnPlayerInput330nothing heavy found

MixSuitSlots.cs

No hot-path hooks registered.

MixThirdPerson.cs

No hot-path hooks registered.

MixTrophies.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerDeath465nothing heavy found
OnEntityTakeDamage475nothing heavy found
OnEntityTakeDamage477nothing heavy found
OnEntityDeath479nothing heavy found
OnEntityDeath481nothing heavy found
OnEntityDeath525nothing heavy found
OnDispenserGather537nothing heavy found

MixUiFix.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerSleepEnded128nothing heavy found
OnLootEntity134nothing heavy found

MixVote.cs

No hot-path hooks registered.

MixWorld.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityKill190nothing heavy found
OnLootEntity595nothing heavy found
OnPlayerDeath932nothing heavy found

Walks every entity on the server: 1 place.

MixWorldTune.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntitySpawned501nothing heavy found
OnDispenserGather557nothing heavy found
OnDispenserBonus565nothing heavy found
OnCollectiblePickup573nothing heavy found
OnEntityKill600nothing heavy found
OnEntityKill601nothing heavy found

Walks every entity on the server: 2 places.

OSAutoTurrets.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
CanLootEntity1496nothing heavy found
CanMoveItem1515nothing heavy found
CanBuild1932plugin call

RescueSurface.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnPlayerSleepEnded115nothing heavy found
OnEntityTakeDamage127nothing heavy found

Salvo.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnItemAddedToContainer1180nothing heavy found
OnPlayerAttack1310nothing heavy found
OnEntityTakeDamage1374nothing heavy found
OnActiveItemChanged1579nothing heavy found

SimpleFurnaces.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnEntityKill64nothing heavy found
CanMoveItem72nothing heavy found

TimeOfDay.cs

No hot-path hooks registered.

TwinBarrel.cs

Hot-path hooks (these run very often; what each one does inside):

HookLineDoes
OnWeaponFired109nothing heavy found
OnPlayerAttack127nothing heavy found

SHA-256 of this file

96bd76f7b22a7ec29a6ff444aac488dfe87411db58c305999c3cb1da2b6ef79c

Hooks it registers 82

InitLoadedOnActiveItemChangedOnApartmentMasterKeyPurchaseOnAskReplyOnCollectiblePickupOnCooldownOnCorpsePopulateOnDispenserBonusOnDispenserGatherOnDoorClosedOnDoorOpenedOnEntityBuiltOnEntityDeathOnEntityDismountedOnEntityFlagsNetworkUpdateOnEntityGroundMissingOnEntityKillOnEntityMountedOnEntitySavedOnEntitySpawnedOnEntityTakeDamageOnFishCatchOnGroupPermissionGrantedOnGroupPermissionRevokedOnHammerHitOnItemAddedToContainerOnItemCraftFinishedOnItemDeployedOnItemRemovedFromContainerOnItemUseOnLookupResultOnLootEntityOnLootEntityEndOnLootSpawnOnMagazineReloadOnNewSaveOnNpcTargetOnOffOnPlayerAttackOnPlayerChatOnPlayerConnectedOnPlayerDeathOnPlayerDisconnectedOnPlayerInputOnPlayerLootEndOnPlayerRespawnedOnPlayerSleepEndedOnPluginLoadedOnPluginUnloadedOnQuarryGatherOnQuarryToggleOnRackedWeaponLoadOnRackedWeaponMountOnRackedWeaponSwapOnRackedWeaponTakeOnRackedWeaponUnloadOnRocketLaunchedOnScheduleTickOnServerInitializedOnServerSaveOnSkyServerDayOnSkyServerHourOnSwitchToggleOnTeamKickOnTeamLeaveOnTrapTriggerOnTurretTargetOnUserApproveOnUserConnectedOnUserDisconnectedOnUserGroupAddedOnUserGroupRemovedOnUserPermissionGrantedOnUserPermissionRevokedOnVendingShopOpenOnWeaponFiredOnWeaponReloadOnWindowOnWireClearOnWireConnectUnload

Findings 462

Network 29

LevelWhatWhereLine
note URL in source plugins/BagTimer.cs:409 public const string UiKitCdn = "https://mixapps.store/assets/img/mixdev/cui";
note URL in source plugins/BagTimer.cs:410 public const string GuiBtnCdn = "https://mixapps.store/assets/img/mixdev/gui-buttons/default/1x";
note URL in source plugins/MixApartmentHome.cs:8016 public const string UiKitCdn = "https://mixapps.store/assets/img/mixdev/cui";
note URL in source plugins/MixApartmentHome.cs:8017 public const string GuiBtnCdn = "https://mixapps.store/assets/img/mixdev/gui-buttons/default/1x";
note URL in source plugins/MixAsk.cs:30 public string ApiUrl = "https://mixapps.store/api/mixask/ask.php";
note URL in source plugins/MixAsk.cs:64 if (string.IsNullOrWhiteSpace(_config.ApiUrl)) _config.ApiUrl = "https://mixapps.store/api/mixask/ask.php";
note Oxide/Carbon web request plugins/MixAsk.cs:170 webrequest.Enqueue(_config.ApiUrl, body, (code, response) => OnAskReply(userId, question, code, response),
note Oxide/Carbon web request plugins/MixCore.cs:5549 webrequest.Enqueue(url, payload, (code, response) =>
note URL in source plugins/MixEvents.cs:49 public string ApiUrl = "https://mixapps.store/api/mixevents/ingest.php";
note Oxide/Carbon web request plugins/MixEvents.cs:1261 webrequest.Enqueue(_config.ApiUrl, body, (code, response) =>
look outbound network use plugins/MixImages.cs:192 using var www = UnityWebRequest.Get(url);
look outbound network use plugins/MixImages.cs:198 if (www.result != UnityWebRequest.Result.Success)
note URL in source plugins/MixInstantBases.cs:1953 public const string UiKitCdn = "https://mixapps.store/assets/img/mixdev/cui";
note URL in source plugins/MixInstantBases.cs:1954 public const string GuiBtnCdn = "https://mixapps.store/assets/img/mixdev/gui-buttons/default/1x";
note URL in source plugins/MixModsConnectUI.cs:23 private const string CdnBase = "https://mixapps.store";
note URL in source plugins/MixSkinsLight.cs:2183 var url = "https://api.steampowered.com/IPublishedFileService/GetUserFiles/v1/" +
note URL in source plugins/MixSkinsLight.cs:2324 webrequest.Enqueue("https://api.steampowered.com/ISteamRemoteStorage/GetCollectionDetails/v1/", body, (code, response) =>
note URL in source plugins/MixSkinsLight.cs:2370 webrequest.Enqueue("https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/", body, (code, response) =>
note URL in source plugins/MixSkinsLight.cs:2466 var url = "https://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/" +
note URL in source plugins/MixSkinsLight.cs:2505 webrequest.Enqueue("https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/", body, (code, response) =>
note Oxide/Carbon web request plugins/MixSkinsLight.cs:2187 webrequest.Enqueue(url, null, (code, response) =>
note Oxide/Carbon web request plugins/MixSkinsLight.cs:2324 webrequest.Enqueue("https://api.steampowered.com/ISteamRemoteStorage/GetCollectionDetails/v1/", body, (code, response) =>
note Oxide/Carbon web request plugins/MixSkinsLight.cs:2370 webrequest.Enqueue("https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/", body, (code, response) =>
note Oxide/Carbon web request plugins/MixSkinsLight.cs:2468 webrequest.Enqueue(url, null, (code, response) =>
note Oxide/Carbon web request plugins/MixSkinsLight.cs:2505 webrequest.Enqueue("https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/", body, (code, response) =>
note URL in source plugins/MixVote.cs:29 public string ApiUrl = "https://rust-servers.net/api/";
note Oxide/Carbon web request plugins/MixVote.cs:218 webrequest.Enqueue(url, null, (code, body) =>
note Oxide/Carbon web request plugins/MixVote.cs:246 webrequest.Enqueue(url, null, (code, body) =>
note URL in source plugins/OSAutoTurrets.cs:33 private const string BrandCdn = "https://mixapps.store/assets/img/mixdev/brand";

Steam IDs and admin 246

LevelWhatWhereLine
note changes or checks admin status plugins/BagTimer.cs:81 player != null && (player.net?.connection?.authLevel ?? 0) >= 2;
note changes or checks admin status plugins/BagTimer.cs:83 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/BagTimer.cs:95 if (sub == "reset" && IsAdmin(player))
note changes or checks admin status plugins/BagTimer.cs:115 if (!IsAdmin(player)) { CmdStatus(player); return; }
note changes or checks admin status plugins/BagTimer.cs:304 if (!arg.IsAdmin && arg.Connection != null) return;
note changes or checks admin status plugins/BagTimer.cs:328 if (player == null || !IsAdmin(player) || arg.Args == null || arg.Args.Length == 0) return;
note changes or checks admin status plugins/FreeBuild.cs:386 if (arg != null && arg.Connection != null && arg.Connection.authLevel < 2) return null;
note changes or checks admin status plugins/FreeBuild.cs:471 player != null && (player.net?.connection?.authLevel ?? 0) >= 2;
note changes or checks admin status plugins/FreeBuild.cs:1244 if ((player.net?.connection?.authLevel ?? 0) >= 2) return true;
note changes or checks admin status plugins/MixAdminMove.cs:150 if (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 1) return true;
note changes or checks admin status plugins/MixAngler.cs:296 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermUse)
note changes or checks admin status plugins/MixApartmentHome.cs:5700 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixBoatHelm.cs:628 if (player.IsAdmin) return true;
note changes or checks admin status plugins/MixBoatHelm.cs:1462 player != null && (player.IsAdmin
note changes or checks admin status plugins/MixBounty.cs:913 case "clear" when !IsAdmin(player):
note changes or checks admin status plugins/MixBounty.cs:914 case "expire" when !IsAdmin(player):
note changes or checks admin status plugins/MixBounty.cs:956 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixBounty.cs:957 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixBusStops.cs:1560 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, Perm));
note changes or checks admin status plugins/MixCarbonLeakGuard.cs:217 if (arg.Connection?.player is not BasePlayer caller || caller.IsAdmin) return true;
note changes or checks admin status plugins/MixCommerce.cs:2708 player != null && (player.IsAdmin
note changes or checks admin status plugins/MixCommerce.cs:2709 || (player.net?.connection?.authLevel ?? 0) >= 2
note changes or checks admin status plugins/MixCore.cs:112 if (!IsAdmin(player)) { player.ChatMessage("<color=#f87171>MixCore</color>: mixcore.sfxtest is staff only"); return; }
note changes or checks admin status plugins/MixCore.cs:742 if (arg.Connection != null && !IsAdmin(arg.Player())) { arg.ReplyWith("MixCore: mixcore.resetconfig is staff only"); return; }
note changes or checks admin status plugins/MixCore.cs:779 if (arg.Connection != null && !IsAdmin(arg.Player())) { arg.ReplyWith("MixCore: mixpack.reload is staff only"); return; }
note changes or checks admin status plugins/MixCore.cs:900 if (IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:1292 if (!IsAdmin(requestingAdmin))
note changes or checks admin status plugins/MixCore.cs:1312 player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, true);
note changes or checks admin status plugins/MixCore.cs:1313 player.net.connection.authLevel = 2;
note changes or checks admin status plugins/MixCore.cs:2388 if (pluginName == "MixCommerce" && IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:2698 if (!IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:2816 if (!IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:3174 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixCore.cs:3176 var auth = player.net?.connection?.authLevel ?? 0;
note changes or checks admin status plugins/MixCore.cs:3196 if (!IsAdmin(player)) { player.ChatMessage("<color=#f87171>MixPack</color>: debug is staff only"); return; }
note changes or checks admin status plugins/MixCore.cs:3217 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixCore.cs:3218 player.ChatMessage($"<color=#4ade80>UI debug</color>: admin={admin} · mixpack.admin={permission.UserHasPermission(player.UserIDString, PermAdmin)} · IsAdmin={pl
note changes or checks admin status plugins/MixCore.cs:3231 if (!IsAdmin(player)) { player.ChatMessage("<color=#f87171>MixPack</color>: debug is staff only"); return; }
note changes or checks admin status plugins/MixCore.cs:3238 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixCore.cs:3239 player.ChatMessage($"<color=#4ade80>UI debug</color>: {(IsUiDebug(player.userID) ? "ON" : "OFF")} · staff={admin} · perm={permission.UserHasPermission(player.Us
note changes or checks admin status plugins/MixCore.cs:3248 if (!IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:3527 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixCore.cs:3668 "tune" => IsAdmin(player) ? "tune.main" : null,
note changes or checks admin status plugins/MixCore.cs:3674 "world" => IsAdmin(player) ? "world.admin" : "world.guide",
note changes or checks admin status plugins/MixCore.cs:3675 "arena" => IsAdmin(player) ? "arena.admin" : "arena.events",
note changes or checks admin status plugins/MixCore.cs:3691 else if (!IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:3701 else if (!IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:3709 if (mod is "govern" or "tune" && !IsAdmin(player) && !(mod == "govern" && GovernStaff(player)))
note changes or checks admin status plugins/MixCore.cs:3764 public bool API_IsPackStaff(BasePlayer player) => IsAdmin(player);
note changes or checks admin status plugins/MixCore.cs:3858 if (!playerPack && !IsAdmin(player) && !(packKey == "govern" && GovernStaff(player)))
note changes or checks admin status plugins/MixCore.cs:3870 "world" => IsAdmin(player) ? "world.admin" : "world.guide",
note changes or checks admin status plugins/MixCore.cs:3881 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixCore.cs:3884 || (!_noclipElevated.Contains(player.userID) && (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2))
note changes or checks admin status plugins/MixCore.cs:3915 IsAdmin(player) || plugins.Find("MixGovern")?.Call("API_IsStaff", player) is true;
note changes or checks admin status plugins/MixCore.cs:4013 player != null && (IsAdmin(player) || permission.UserHasPermission(player.UserIDString, PermUse));
note changes or checks admin status plugins/MixCore.cs:4028 ("tune", "Tune", IsPluginLoaded("MixWorldTune") && IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:4043 if (_config.ModManager.Enabled && IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:4120 if (!IsAdmin(player))
note changes or checks admin status plugins/MixCore.cs:4170 .Where(t => t.IsEnabled(player) && (!t.AdminOnly || IsAdmin(player)))
note changes or checks admin status plugins/MixCore.cs:4213 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixCore.cs:4290 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixCore.cs:4497 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixCore.cs:5021 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixEntityScale.cs:658 if (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2) return true;
note changes or checks admin status plugins/MixEvents.cs:977 return permission.UserHasPermission(id, PermAdmin) || permission.UserHasPermission(id, "mixpack.admin") || (BasePlayer.FindByID(userId)?.IsAdmin ?? false);
note changes or checks admin status plugins/MixEvents.cs:1276 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixEvents.cs:1277 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixEvents.cs:1296 if (!IsAdmin(player)) { OpenBoard(player, "main"); return; }
note changes or checks admin status plugins/MixExtract.cs:143 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermUse)
note changes or checks admin status plugins/MixExtract.cs:146 private bool IsAdmin(BasePlayer p) =>
note changes or checks admin status plugins/MixExtract.cs:147 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixExtract.cs:236 var admin = IsAdmin(player);
note changes or checks admin status plugins/MixGovern.cs:50 private readonly Dictionary<ulong, (bool hadAdmin, uint authLevel)> _noclipRestore = new();
note changes or checks admin status plugins/MixGovern.cs:1159 return player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2;
note changes or checks admin status plugins/MixGovern.cs:1167 _noclipRestore[player.userID] = (player.IsAdmin, conn.authLevel);
note changes or checks admin status plugins/MixGovern.cs:1170 player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, true);
note changes or checks admin status plugins/MixGovern.cs:1171 conn.authLevel = 2;
note changes or checks admin status plugins/MixGovern.cs:1183 conn.authLevel = restore.authLevel;
note changes or checks admin status plugins/MixGovern.cs:1184 player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, restore.hadAdmin);
note changes or checks admin status plugins/MixGovern.cs:1323 var auth = _noclipRestore.TryGetValue(userId, out var before) ? before.authLevel : target.net.connection.authLevel;
note changes or checks admin status plugins/MixGovern.cs:1326 if (target.IsDeveloper)
note changes or checks admin status plugins/MixGovern.cs:3128 if (_noclipRestore.TryGetValue(player.userID, out var before)) return before.hadAdmin || before.authLevel >= 2;
note changes or checks admin status plugins/MixGovern.cs:3129 return player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2;
note changes or checks admin status plugins/MixGrid.cs:80 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermUse)
note changes or checks admin status plugins/MixGrid.cs:83 private bool IsAdmin(BasePlayer p) =>
note changes or checks admin status plugins/MixGrid.cs:84 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixGrid.cs:98 if (IsAdmin(p) || !_config.OwnerOnly) return true;
note changes or checks admin status plugins/MixHorde.cs:103 private bool IsAdmin(BasePlayer p) =>
note changes or checks admin status plugins/MixHorde.cs:104 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixHorde.cs:170 if (!permission.UserHasPermission(p.UserIDString, PermUse) && !p.IsAdmin) continue;
note changes or checks admin status plugins/MixHorde.cs:201 var admin = server || IsAdmin(player);
note changes or checks admin status plugins/MixHorde.cs:295 if (!IsAdmin(player)) { Msg(player, $"need {PermAdmin}"); return; }
note changes or checks admin status plugins/MixHud.cs:476 p != null && (p.IsAdmin || (p.net?.connection?.authLevel ?? 0) >= 2 || permission.UserHasPermission(p.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixInstantBases.cs:279 if (!_config.Enabled && !IsAdmin(player)) { player.ChatMessage("<color=#f87171>Instant Bases</color>: disabled."); return; }
note changes or checks admin status plugins/MixInstantBases.cs:292 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixInstantBases.cs:296 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixInstantBases.cs:313 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixInstantBases.cs:317 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixInstantBases.cs:321 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixInstantBases.cs:329 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixInstantBases.cs:1715 if (action == "grant" && IsAdmin(player) && parts.Length >= 3
note changes or checks admin status plugins/MixInstantBases.cs:1725 if (action == "select" && IsAdmin(player) && parts.Length >= 2 && ulong.TryParse(parts[1], out var sel))
note changes or checks admin status plugins/MixInstantBases.cs:1732 if (action == "enabled" && IsAdmin(player))
note changes or checks admin status plugins/MixInstantBases.cs:1781 var levelZone = IsAdmin(player) ? "panelTop" : "panel";
note changes or checks admin status plugins/MixInstantBases.cs:1796 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixInstantBases.cs:1844 if (caller != null && !IsAdmin(caller)) return;
note changes or checks admin status plugins/MixInstantBases.cs:1908 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixInstantBases.cs:1912 || player.IsAdmin);
note changes or checks admin status plugins/MixInstantBases.cs:1917 if (IsAdmin(player)) return true;
note changes or checks admin status plugins/MixMenuKit.cs:1759 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermUse));
note changes or checks admin status plugins/MixMenuKit.cs:1764 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermEdit));
note changes or checks admin status plugins/MixModsConnectUI.cs:638 if (player.IsAdmin && !string.IsNullOrWhiteSpace(_config.AdminConnectHint))
note changes or checks admin status plugins/MixNotices.cs:90 if (arg.Connection?.player is BasePlayer caller && !caller.IsAdmin) { arg.ReplyWith("mixnotices.now: admin only"); return; }
note changes or checks admin status plugins/MixPlace.cs:92 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermUse)
note changes or checks admin status plugins/MixPlace.cs:95 private bool IsAdmin(BasePlayer p) =>
note changes or checks admin status plugins/MixPlace.cs:96 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixPlace.cs:122 if (IsAdmin(p) || !_config.OwnerOnly) return true;
note changes or checks admin status plugins/MixQuarry.cs:115 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermUse)
note changes or checks admin status plugins/MixQuarry.cs:118 private bool IsAdmin(BasePlayer p) =>
note changes or checks admin status plugins/MixQuarry.cs:119 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixQuarry.cs:144 if (IsAdmin(p)) return true;
note changes or checks admin status plugins/MixQuarry.cs:246 if (!q.isStatic && !IsAdmin(player))
note changes or checks admin status plugins/MixQuarry.cs:251 if (_data.Claims.TryGetValue(Qid(q), out var existing) && existing.Owner != player.userID && !IsAdmin(player))
note changes or checks admin status plugins/MixRackKit.cs:628 if (!arg.IsAdmin) return;
note changes or checks admin status plugins/MixRackKit.cs:648 if (!arg.IsAdmin) return;
note changes or checks admin status plugins/MixRackKit.cs:655 if (!arg.IsAdmin) return;
note changes or checks admin status plugins/MixRackKit.cs:755 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixRaidBases.cs:948 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixRaidBases.cs:950 ((player.net?.connection?.authLevel ?? 0) >= 2 ||
note changes or checks admin status plugins/MixRaidBases.cs:994 if (player != null && !IsAdmin(player))
note changes or checks admin status plugins/MixRaidBases.cs:1018 if (!IsAdmin(player))
note changes or checks admin status plugins/MixRaidBases.cs:3652 if (player == null || !IsAdmin(player) || arg.Args == null || arg.Args.Length == 0) return;
note changes or checks admin status plugins/MixShopfront.cs:937 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixShopfront.cs:938 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixShopfront.cs:943 if (!IsAdmin(player)) { player.ChatMessage("Shopfront: admin only."); return; }
note changes or checks admin status plugins/MixShopfront.cs:1026 if (arg.Player() != null && !IsAdmin(arg.Player())) { arg.ReplyWith("Shopfront: admin only"); return; }
note changes or checks admin status plugins/MixShopfront.cs:1032 if (arg.Player() != null && !IsAdmin(arg.Player())) { arg.ReplyWith("Shopfront: admin only"); return; }
note changes or checks admin status plugins/MixShopfront.cs:1079 if (arg.Player() != null && !IsAdmin(arg.Player())) { arg.ReplyWith("Shopfront: admin only"); return; }
note changes or checks admin status plugins/MixShowcase.cs:413 if (!arg.IsAdmin) return;
note changes or checks admin status plugins/MixShowcase.cs:424 if (!arg.IsAdmin) return;
note changes or checks admin status plugins/MixSignboard.cs:436 if (!IsAdmin(player))
note changes or checks admin status plugins/MixSignboard.cs:472 if (!IsAdmin(player))
note changes or checks admin status plugins/MixSignboard.cs:1803 if (!IsAdmin(player) || arg.Args == null || arg.Args.Length == 0) return;
note changes or checks admin status plugins/MixSignboard.cs:2001 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixSignboard.cs:2003 || (player.net?.connection?.authLevel ?? 0) >= 2
note changes or checks admin status plugins/MixSiloRaid.cs:408 private bool IsAdmin(BasePlayer player)
note changes or checks admin status plugins/MixSiloRaid.cs:412 return (player.net?.connection?.authLevel ?? 0) >= 2;
note changes or checks admin status plugins/MixSiloRaid.cs:418 if (!IsAdmin(player))
note changes or checks admin status plugins/MixSiloRaid.cs:551 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixSiloRaid.cs:647 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixSiloRaid.cs:1274 if (!IsAdmin(p)) return;
note changes or checks admin status plugins/MixSiloRaid.cs:1327 if (arg.Player() != null && !IsAdmin(arg.Player())) return;
note changes or checks admin status plugins/MixSiloRaid.cs:1339 if (arg.Player() != null && !IsAdmin(arg.Player())) return;
note changes or checks admin status plugins/MixSiloRaid.cs:1348 if (!IsAdmin(p)) return;
note changes or checks admin status plugins/MixSiloRaid.cs:1361 if (arg.Player() != null && !IsAdmin(arg.Player())) return;
note changes or checks admin status plugins/MixSiloRaid.cs:2339 if (!IsAdmin(p)) return;
note changes or checks admin status plugins/MixSiloRaid.cs:2407 if (p == null || !IsAdmin(p)) { Puts("need player"); return; }
note changes or checks admin status plugins/MixSiloRaid.cs:2417 if (!IsAdmin(p)) return;
note changes or checks admin status plugins/MixSiloRaid.cs:2469 if (p != null && IsAdmin(p))
note changes or checks admin status plugins/MixSkinsLight.cs:447 if (arg.Player() != null && !arg.IsAdmin && !HasConsolePerm(arg, PermAdmin)) { SendReply(arg, "mixskinslight.admin required"); return; }
note changes or checks admin status plugins/MixSkinsLight.cs:559 if (_config.BypassOwnershipForAdmins && IsAdmin(player))
note changes or checks admin status plugins/MixSkinsLight.cs:668 || IsAdmin(player));
note changes or checks admin status plugins/MixSkinsLight.cs:670 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixSkinsLight.cs:671 player != null && (player.IsAdmin
note changes or checks admin status plugins/MixSkinsLight.cs:1300 if (IsAdmin(player) && !mismatchedTarget && TryGiveSkinnedItem(player, entry))
note changes or checks admin status plugins/MixSkinsLight.cs:1955 if (!IsAdmin(player))
note changes or checks admin status plugins/MixSkinsLight.cs:2027 if (!arg.IsAdmin && !HasConsolePerm(arg, PermAdmin))
note changes or checks admin status plugins/MixSkinsLight.cs:2040 if (!IsAdmin(player))
note changes or checks admin status plugins/MixSkinsLight.cs:2079 if (!arg.IsAdmin && !HasConsolePerm(arg, PermAdmin))
note changes or checks admin status plugins/MixSkinsLight.cs:2132 if (!IsAdmin(player))
note changes or checks admin status plugins/MixSkinsLight.cs:2240 if (arg.Player() != null && !arg.IsAdmin && !HasConsolePerm(arg, PermAdmin)) { SendReply(arg, "mixskinslight.admin required"); return; }
note changes or checks admin status plugins/MixSkinsLight.cs:2293 if (arg.Player() != null && !arg.IsAdmin && !HasConsolePerm(arg, PermAdmin)) { SendReply(arg, "mixskinslight.admin required"); return; }
note changes or checks admin status plugins/MixSkinsLight.cs:2306 if (pl != null && IsAdmin(pl)) Reply(pl, summary);
note changes or checks admin status plugins/MixSkinsLight.cs:2871 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixSkinsLight.cs:3180 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixSkinsLight.cs:3189 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixSkinsLight.cs:3198 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixSkinsLight.cs:3207 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/MixSkinsLight.cs:3274 if (!arg.IsAdmin && !HasConsolePerm(arg, PermAdmin))
note changes or checks admin status plugins/MixSkinsLight.cs:3293 if (!arg.IsAdmin && !HasConsolePerm(arg, PermAdmin) && !HasConsolePerm(arg, PermUse))
note changes or checks admin status plugins/MixSkinsLight.cs:3332 if (arg.Player() != null && !IsAdmin(arg.Player())) return;
note changes or checks admin status plugins/MixSprint.cs:403 rt.Admin = IsAdmin(player);
note changes or checks admin status plugins/MixSprint.cs:696 if (!_config.Enabled && !IsAdmin(player))
note changes or checks admin status plugins/MixSprint.cs:713 if (!IsAdmin(player))
note changes or checks admin status plugins/MixSprint.cs:778 if (!IsAdmin(player)) return;
note changes or checks admin status plugins/MixSprint.cs:884 if (target != null && !IsAdmin(target))
note changes or checks admin status plugins/MixSprint.cs:956 var adminNote = IsAdmin(player) ? $" · unlimited {(unlimited ? "on" : "off")}" : "";
note changes or checks admin status plugins/MixSprint.cs:1020 if (IsAdmin(player)) DrawAdminRows(c, player, rec, y);
note changes or checks admin status plugins/MixSprint.cs:1096 if (target != null && IsAdmin(target))
note changes or checks admin status plugins/MixSprint.cs:1115 _config.Enabled && player != null && !rec.Revoked && (rec.Granted || HasPerm(player) || IsAdmin(player));
note changes or checks admin status plugins/MixSprint.cs:1117 private bool HasUnlimited(BasePlayer player, PlayerRecord rec) => rec.UnlimitedStamina && IsAdmin(player);
note changes or checks admin status plugins/MixSprint.cs:1128 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixSprint.cs:1130 || (player.net?.connection?.authLevel ?? 0) >= 2
note changes or checks admin status plugins/MixThirdPerson.cs:290 if (!_config.Enabled && !IsAdmin(player))
note changes or checks admin status plugins/MixThirdPerson.cs:335 if (player != null && !IsAdmin(player))
note changes or checks admin status plugins/MixThirdPerson.cs:502 var wasAdmin = player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2;
note changes or checks admin status plugins/MixThirdPerson.cs:508 player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, true);
note changes or checks admin status plugins/MixThirdPerson.cs:522 player.SetPlayerFlag(BasePlayer.PlayerFlags.IsAdmin, false);
note changes or checks admin status plugins/MixThirdPerson.cs:603 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermUse));
note changes or checks admin status plugins/MixThirdPerson.cs:605 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/MixThirdPerson.cs:606 player != null && (player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin));
note changes or checks admin status plugins/MixTrophies.cs:416 p != null && (p.IsAdmin || permission.UserHasPermission(p.UserIDString, PermUse)
note changes or checks admin status plugins/MixTrophies.cs:571 !(player.IsAdmin || permission.UserHasPermission(player.UserIDString, PermAdmin)))
note changes or checks admin status plugins/MixTrophies.cs:941 if (caller != null && !caller.IsAdmin && !permission.UserHasPermission(caller.UserIDString, PermAdmin))
note changes or checks admin status plugins/MixUiFix.cs:164 var notes = RestoreControls(player, blind: player.IsAdmin);
note changes or checks admin status plugins/MixUiFix.cs:179 var notes = RestoreControls(player, blind: player.IsAdmin);
note changes or checks admin status plugins/MixUiFix.cs:190 if (arg.Player() != null && !arg.Player().IsAdmin) { arg.ReplyWith("MixUiFix: mixui.fixall is admin only"); return; }
note changes or checks admin status plugins/MixUiFix.cs:275 if (!quiet && player.IsAdmin) ReleaseGovernState(player, notes);
note changes or checks admin status plugins/MixWorld.cs:282 if (!IsAdmin(player)) { DenyAdmin(player); return; }
note changes or checks admin status plugins/MixWorld.cs:318 if (!IsAdmin(player))
note changes or checks admin status plugins/MixWorld.cs:354 if (!IsAdmin(player)) { DenyAdmin(player); return; }
note changes or checks admin status plugins/MixWorld.cs:362 private bool MayQuicksort(BasePlayer player) => player != null && (permission.UserHasPermission(player.UserIDString, PermUse) || IsAdmin(player));
note changes or checks admin status plugins/MixWorld.cs:365 player != null && (permission.UserHasPermission(player.UserIDString, PermUse) || IsAdmin(player));
note changes or checks admin status plugins/MixWorld.cs:369 private bool IsAdmin(BasePlayer player)
note changes or checks admin status plugins/MixWorld.cs:372 if (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2) return true;
note changes or checks admin status plugins/MixWorld.cs:399 if (IsAdmin(player))
note changes or checks admin status plugins/MixWorld.cs:487 if (IsAdmin(player))
note changes or checks admin status plugins/MixWorld.cs:495 if (!IsAdmin(player)) { DenyAdmin(player); return; }
note changes or checks admin status plugins/MixWorld.cs:529 if (!IsAdmin(player)) { DenyAdmin(player); return; }
note changes or checks admin status plugins/MixWorldTune.cs:1008 if (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2) return true;
note changes or checks admin status plugins/OSAutoTurrets.cs:515 player != null && (player.net?.connection?.authLevel ?? 0) >= 2;
note changes or checks admin status plugins/OSAutoTurrets.cs:517 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/OSAutoTurrets.cs:522 player != null && (IsVanillaAdmin(player) || IsAdmin(player) || GetEffectiveRank(player) == "admin");
note changes or checks admin status plugins/OSAutoTurrets.cs:529 if (IsVanillaAdmin(player) || IsAdmin(player) || IsTurretOwner(player, turret) || turret.IsAuthed(player)) return true;
note changes or checks admin status plugins/OSAutoTurrets.cs:536 && (IsAdmin(player) || (_config.AllowAuthedPickup && turret.IsAuthed(player)));
note changes or checks admin status plugins/OSAutoTurrets.cs:669 if (!IsAdmin(player))
note changes or checks admin status plugins/OSAutoTurrets.cs:767 if (!turret.IsAuthed(player) && !IsAdmin(player))
note changes or checks admin status plugins/OSAutoTurrets.cs:784 if (!IsAdmin(player) && !turret.IsAuthed(player) && turret.OwnerID != player.userID)
note changes or checks admin status plugins/OSAutoTurrets.cs:833 if (IsAdmin(player) || IsVanillaAdmin(player))
note changes or checks admin status plugins/OSAutoTurrets.cs:1361 if (player == null || !IsAdmin(player) || arg.Args == null || arg.Args.Length == 0) return;
note changes or checks admin status plugins/OSAutoTurrets.cs:1500 if (IsVanillaAdmin(player) || IsAdmin(player) || IsTurretOwner(player, turret) || turret.IsAuthed(player))
note changes or checks admin status plugins/OSAutoTurrets.cs:2016 var skipProbe = IsVanillaAdmin(player) || IsAdmin(player);
note changes or checks admin status plugins/RescueSurface.cs:282 player != null && (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 1
note changes or checks admin status plugins/Salvo.cs:736 player != null && (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 2);
note changes or checks admin status plugins/Salvo.cs:952 private bool IsAdmin(BasePlayer player)
note changes or checks admin status plugins/Salvo.cs:1512 if (!IsAdmin(player))
note changes or checks admin status plugins/Salvo.cs:1552 if (!IsAdmin(player) && _data.KitClaims.TryGetValue(player.userID, out var taken) && taken == claim)
note changes or checks admin status plugins/Salvo.cs:1863 if (player == null || !IsAdmin(player)) return;
note changes or checks admin status plugins/TimeOfDay.cs:171 (player.net?.connection?.authLevel ?? 0) >= authLevelThreshold);
note changes or checks admin status plugins/TimeOfDay.cs:177 return player != null ? IsStaff(player, authLevelThreshold) : arg.Connection.authLevel >= authLevelThreshold;
note changes or checks admin status plugins/TwinBarrel.cs:93 player != null && (player.IsAdmin || (player.net?.connection?.authLevel ?? 0) >= 1);
note changes or checks admin status plugins/TwinBarrel.cs:100 private bool IsAdmin(BasePlayer player) =>
note changes or checks admin status plugins/TwinBarrel.cs:148 if (!IsAdmin(player))
note changes or checks admin status plugins/TwinBarrel.cs:150 player.ChatMessage("<color=#4ade80>TwinBarrel</color>: need <color=#f87171>twinbarrel.admin</color> (or authLevel)");
note changes or checks admin status plugins/TwinBarrel.cs:158 if (!IsAdmin(player) && !permission.UserHasPermission(player.UserIDString, PermKit))
note changes or checks admin status plugins/TwinBarrel.cs:222 if (player == null || !IsAdmin(player) || arg.Args == null || arg.Args.Length == 0) return;

Config writes 90

LevelWhatWhereLine
note writes the config file plugins/BagTimer.cs:51 SaveConfig();
note writes the config file plugins/BagTimer.cs:332 if (action == "save") { ClampConfig(); SaveConfig(); player.ChatMessage("<color=#00d4ff>BagTimer</color>: saved."); RefreshPanel(player); return; }
note writes the config file plugins/BagTimer.cs:388 SaveConfig();
note writes the config file plugins/FreeBuild.cs:339 SaveConfig();
note writes the config file plugins/MixAngler.cs:216 SaveConfig();
note writes the config file plugins/MixApartmentHome.cs:319 SaveConfig();
note writes the config file plugins/MixApartmentHome.cs:5421 SaveConfig();
note writes the config file plugins/MixApartmentHome.cs:5430 SaveConfig();
note writes the config file plugins/MixBoatHelm.cs:84 SaveConfig();
note writes the config file plugins/MixCommerce.cs:1612 SaveConfig();
note writes the config file plugins/MixCompanionFix.cs:46 SaveConfig();
note writes the config file plugins/MixCore.cs:749 SaveConfig();
note writes the config file plugins/MixCore.cs:1245 SaveConfig();
note writes the config file plugins/MixEntityScale.cs:247 SaveConfig();
note writes the config file plugins/MixEvents.cs:537 if (changed && !_configBroken) { SaveConfig(); Puts("host spots converted to monument-relative and written to MixEvents.json"); }
note writes the config file plugins/MixEvents.cs:1317 SaveConfig();
note writes the config file plugins/MixEvents.cs:1327 SaveConfig();
note writes the config file plugins/MixEvents.cs:1395 SaveConfig();
note writes the config file plugins/MixEvents.cs:1417 SaveConfig();
note writes the config file plugins/MixExtract.cs:74 SaveConfig();
note writes the config file plugins/MixGovern.cs:1722 SaveConfig();
note writes the config file plugins/MixGovern.cs:3736 if (apply && changed > 0) SaveConfig();
note writes the config file plugins/MixGrid.cs:38 SaveConfig();
note writes the config file plugins/MixHeadlamp.cs:66 SaveConfig();
note writes the config file plugins/MixHorde.cs:60 SaveConfig();
note writes the config file plugins/MixHorde.cs:220 SaveConfig();
note writes the config file plugins/MixHud.cs:1496 else if (changed) SaveConfig();
note writes the config file plugins/MixInstantBases.cs:136 SaveConfig();
note writes the config file plugins/MixInstantBases.cs:384 SaveConfig();
note writes the config file plugins/MixInstantBases.cs:1847 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:246 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:301 private void OnServerSave() => SaveConfig();
note writes the config file plugins/MixMenuKit.cs:306 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:329 if (CanEdit(player)) SaveConfig();
note writes the config file plugins/MixMenuKit.cs:525 if (CanEdit(p)) SaveConfig();
note writes the config file plugins/MixMenuKit.cs:626 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:638 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:674 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:695 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:710 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:722 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:799 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:815 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:837 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:842 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:869 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:882 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:898 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:914 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:928 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:941 SaveConfig();
note writes the config file plugins/MixMenuKit.cs:954 SaveConfig();
note writes the config file plugins/MixPlace.cs:51 SaveConfig();
note writes the config file plugins/MixQuarry.cs:54 SaveConfig();
note writes the config file plugins/MixRackKit.cs:88 SaveConfig();
note writes the config file plugins/MixRackKit.cs:103 SaveConfig();
note writes the config file plugins/MixRaidBases.cs:725 SaveConfig();
note writes the config file plugins/MixRaidBases.cs:1034 SaveConfig();
note writes the config file plugins/MixShowcase.cs:99 SaveConfig();
note writes the config file plugins/MixShowcase.cs:470 SaveConfig();
note writes the config file plugins/MixSignboard.cs:208 SaveConfig();
note writes the config file plugins/MixSiloRaid.cs:200 SaveConfig();
note writes the config file plugins/MixSiloRaid.cs:543 SaveConfig();
note writes the config file plugins/MixSkillTree.cs:83 SaveConfig();
note writes the config file plugins/MixSkillTree.cs:89 SaveConfig();
note writes the config file plugins/MixSkinsLight.cs:177 SaveConfig();
note writes the config file plugins/MixSkinsLight.cs:2120 SaveConfig();
note writes the config file plugins/MixSkinsLight.cs:2252 SaveConfig();
note writes the config file plugins/MixSkinsLight.cs:3287 SaveConfig();
note writes the config file plugins/MixSprint.cs:129 SaveConfig();
note writes the config file plugins/MixSuitSlots.cs:101 SaveConfig();
note writes the config file plugins/MixThirdPerson.cs:85 SaveConfig();
note writes the config file plugins/MixThirdPerson.cs:351 SaveConfig();
note writes the config file plugins/MixThirdPerson.cs:402 SaveConfig();
note writes the config file plugins/MixTrophies.cs:141 SaveConfig();
note writes the config file plugins/MixVote.cs:51 protected override void LoadDefaultConfig() { _config = new VoteConfig(); SaveConfig(); }
note writes the config file plugins/MixWorld.cs:536 SaveConfig();
note writes the config file plugins/OSAutoTurrets.cs:149 SaveConfig();
note writes the config file plugins/OSAutoTurrets.cs:467 SaveConfig();
note writes the config file plugins/OSAutoTurrets.cs:475 SaveConfig();
note writes the config file plugins/OSAutoTurrets.cs:1375 SaveConfig();
note writes the config file plugins/RescueSurface.cs:49 SaveConfig();
note writes the config file plugins/Salvo.cs:536 SaveConfig();
note writes the config file plugins/Salvo.cs:1923 SaveConfig();
note writes the config file plugins/Salvo.cs:1935 SaveConfig();
note writes the config file plugins/Salvo.cs:1944 SaveConfig();
note writes the config file plugins/TimeOfDay.cs:503 SaveConfig();
note writes the config file plugins/TimeOfDay.cs:524 SaveConfig();
note writes the config file plugins/TwinBarrel.cs:47 SaveConfig();
note writes the config file plugins/TwinBarrel.cs:230 SaveConfig();

Game control 76

LevelWhatWhereLine
note runs console commands or stops the server plugins/FreeBuild.cs:412 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "creative.freeplacement", "true");
note runs console commands or stops the server plugins/FreeBuild.cs:414 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "creative.freebuild", "true");
note runs console commands or stops the server plugins/FreeBuild.cs:416 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "creative.unlimitedio", "true");
note runs console commands or stops the server plugins/FreeBuild.cs:418 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "ioentity.infiniteiopower", "true");
note runs console commands or stops the server plugins/FreeBuild.cs:520 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "creative.togglecreativemodeuser",
note runs console commands or stops the server plugins/FreeBuild.cs:525 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "creative.togglecreativemodeuser",
note runs console commands or stops the server plugins/FreeBuild.cs:533 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "creative.togglecreativemodeuser",
note runs console commands or stops the server plugins/FreeBuild.cs:550 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "creative.togglecreativemodeuser",
note repeating timer plugins/FreeBuild.cs:403 timer.Every(30f, ResyncCreativePlayers);
note repeating timer plugins/FreeBuild.cs:404 timer.Every(30f, FlushData);
note repeating timer plugins/MiniMapRound.cs:215 _timer = timer.Every(_config.Refresh, Refresh);
note repeating timer plugins/MixAngler.cs:547 _panelTick[id] = timer.Every(1f, () =>
note Harmony patch plugins/MixApartmentHome.cs:475 #region Bare room on rent (Harmony postfix on ApartmentRoom.StartRentingRoom)
note Harmony patch plugins/MixApartmentHome.cs:479 private Harmony _harmony;
note Harmony patch plugins/MixApartmentHome.cs:495 _harmony = new Harmony(HarmonyId);
note repeating timer plugins/MixApartmentHome.cs:403 timer.Every(roomCacheEvery, () =>
note repeating timer plugins/MixApartmentHome.cs:417 timer.Every(powerEvery, () =>
note repeating timer plugins/MixApartmentHome.cs:436 _leasePollTimer = timer.Every(leaseEvery, PollApartmentLeases);
note repeating timer plugins/MixApartmentHome.cs:439 timer.Every(300f, PruneDeadTrackedEntities);
note runs console commands or stops the server plugins/MixBoatHelm.cs:170 try { ConsoleSystem.Run(ConsoleSystem.Option.Server, $"{name} {text}"); } catch { }
note repeating timer plugins/MixBoatHelm.cs:125 _fuelTimer = timer.Every(Mathf.Clamp(_config.FuelBalanceSeconds, 1f, 15f), BalanceAllActiveBoats);
note repeating timer plugins/MixBoatHelm.cs:126 _refreshTimer = timer.Every(1.25f, RefreshOpenPanels);
note repeating timer plugins/MixBounty.cs:251 timer.Every(300f, ExpireSweep);
note uses the server manager plugins/MixBusStops.cs:292 if (_job != null) ServerMgr.Instance.StopCoroutine(_job);
note uses the server manager plugins/MixBusStops.cs:293 if (_boot != null) ServerMgr.Instance.StopCoroutine(_boot);
note uses the server manager plugins/MixBusStops.cs:294 if (_artJob != null) ServerMgr.Instance.StopCoroutine(_artJob);
note uses the server manager plugins/MixBusStops.cs:316 if (_boot != null) ServerMgr.Instance.StopCoroutine(_boot);
note uses the server manager plugins/MixBusStops.cs:317 _boot = ServerMgr.Instance.StartCoroutine(Boot(force));
note uses the server manager plugins/MixBusStops.cs:689 if (_job != null) ServerMgr.Instance.StopCoroutine(_job);
note uses the server manager plugins/MixBusStops.cs:690 _job = ServerMgr.Instance.StartCoroutine(Work());
note uses the server manager plugins/MixBusStops.cs:2059 _artJob = ServerMgr.Instance.StartCoroutine(StoreArt(files, root));
note repeating timer plugins/MixBusStops.cs:1239 if (_ticker == null || _ticker.Destroyed) _ticker = timer.Every(1f, Tick);
note repeating timer plugins/MixCarbonLeakGuard.cs:69 _sweepTimer = timer.Every(_config.IntervalSeconds, RunSweeps);
note Harmony patch plugins/MixCompanionFix.cs:24 private Harmony _harmony;
note Harmony patch plugins/MixCompanionFix.cs:60 _harmony = new Harmony(HarmonyId);
note runs console commands or stops the server plugins/MixCore.cs:1308 ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), $"ownerid {userId} \"{name}\" \"Owner\"");
note repeating timer plugins/MixCore.cs:808 timer.Every(60f, AccruePlaytimePoints);
note repeating timer plugins/MixCore.cs:2993 _statusHudTimer = timer.Every(interval, RefreshStatusHudForAll);
note repeating timer plugins/MixEvents.cs:318 timer.Every(1f, Tick);
note repeating timer plugins/MixEvents.cs:319 if (_config.AutoStartMinutes > 0) timer.Every(60f, AutoStart);
note repeating timer plugins/MixEvents.cs:320 timer.Every(Mathf.Max(60f, _config.SyncMinutes * 60f), () => Sync("timer"));
note repeating timer plugins/MixExtract.cs:96 _watch = timer.Every(1f, WatchPads);
note repeating timer plugins/MixGovern.cs:677 timer.Every(60f, OnScheduleTick);
note repeating timer plugins/MixGovern.cs:678 timer.Every(120f, PurgeExpiredModeration);
note repeating timer plugins/MixGovern.cs:1087 _godTimer = timer.Every(1f, TopUpGods);
note repeating timer plugins/MixHeadlamp.cs:159 timer.Every(_config.RefreshIntervalSeconds, RefreshHeadlamps);
note repeating timer plugins/MixHorde.cs:79 _tick = timer.Every(15f, Tick);
note uses the server manager plugins/MixHud.cs:631 _queued = ServerMgr.Instance?.connectionQueue?.Queued ?? 0;
note repeating timer plugins/MixHud.cs:345 _drawTimer = timer.Every(_refresh, () => Redraw(false));
note repeating timer plugins/MixHud.cs:653 _tipTimer = _cfg.ShowTips && _cfg.Tips.Count > 1 ? timer.Every(_tipInterval, NextTip) : null;
note uses the server manager plugins/MixImages.cs:181 ServerMgr.Instance.StartCoroutine(DownloadAndStore(url, key, skinId, slot));
note runs console commands or stops the server plugins/MixInstantBases.cs:1851 timer.Once(0.5f, () => ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), $"o.reload {Name}"));
note repeating timer plugins/MixInstantBases.cs:436 session.PreviewTimer = timer.Every(PreviewStepSeconds, () => TickPreview(player.userID));
note repeating timer plugins/MixNotices.cs:66 _ticker = timer.Every(_config.IntervalMinutes * 60f, Tick);
note repeating timer plugins/MixRackKit.cs:221 _refillTimer = timer.Every(secs, RefillAllBound);
note repeating timer plugins/MixRaidBases.cs:755 _watchTimer = timer.Every(30f, WatchEvents);
note repeating timer plugins/MixSettlers.cs:141 timer.Repeat(0.25f, queue.Count, () => RespawnNext(queue));
note repeating timer plugins/MixSettlers.cs:143 timer.Every(GrowSeconds, Grow);
note repeating timer plugins/MixShowcase.cs:154 _refillTimer = timer.Every(secs, RestockAll);
note repeating timer plugins/MixSignboard.cs:601 _restoreTimer = timer.Every(RestoreStepSeconds, RestoreStep);
note repeating timer plugins/MixSignboard.cs:712 _timers[id] = timer.Every(Mathf.Max(MinIntervalSeconds, interval), () =>
note repeating timer plugins/MixSignboard.cs:862 _warmTimer ??= timer.Every(WarmStepSeconds, WarmStep);
note runs console commands or stops the server plugins/MixSiloRaid.cs:264 try { ConsoleSystem.Run(ConsoleSystem.Option.Server, "mixsilo.paste", _config.DefaultTemplate); }
note runs console commands or stops the server plugins/MixSiloRaid.cs:668 try { ConsoleSystem.Run(ConsoleSystem.Option.Server, "server.save"); } catch { /* ok */ }
note runs console commands or stops the server plugins/MixSiloRaid.cs:1712 try { ConsoleSystem.Run(ConsoleSystem.Option.Server, "server.save"); } catch { /* ok */ }
note repeating timer plugins/MixSkillTree.cs:111 _timer = timer.Every(2f, Flush);
note repeating timer plugins/MixSkillTree.cs:112 _saver = timer.Every(60f, SaveIfChanged);
note repeating timer plugins/MixSkinsLight.cs:2008 timer.Repeat(0.05f, list.Count, () =>
note repeating timer plugins/MixSprint.cs:226 timer.Every(TickSeconds, TickAllPlayers);
note repeating timer plugins/MixSprint.cs:227 timer.Every(60f, FlushData);
note repeating timer plugins/MixVote.cs:100 timer.Every(_config.ReminderIntervalMinutes * 60f, () => { foreach (var p in players.Connected) CheckAll(p, false, remind: true); });
note Harmony patch plugins/MixWorldTune.cs:31 private Harmony _harmony;
note Harmony patch plugins/MixWorldTune.cs:98 _harmony = new Harmony(HarmonyId);
note repeating timer plugins/OSAutoTurrets.cs:402 timer.Every(30f, FlushData);
note repeating timer plugins/RescueSurface.cs:63 _sweepTimer = timer.Every(600f, SweepStaleEntries);
note repeating timer plugins/Salvo.cs:882 timer.Every(30f, FlushData);

Files and server config 20

LevelWhatWhereLine
note file system write or delete plugins/MixApartmentHome.cs:2075 Directory.CreateDirectory(dir);
note file system write or delete plugins/MixApartmentHome.cs:2093 File.WriteAllText(path, JsonConvert.SerializeObject(payload, Formatting.Indented));
note file system write or delete plugins/MixApartmentHome.cs:3268 Directory.CreateDirectory(dir);
note file system write or delete plugins/MixApartmentHome.cs:3270 File.WriteAllText(path, JsonConvert.SerializeObject(bp, Formatting.Indented));
note file system write or delete plugins/MixApartmentHome.cs:3285 Directory.CreateDirectory(dir);
note file system write or delete plugins/MixCommerce.cs:1626 Directory.CreateDirectory(dir);
note file system write or delete plugins/MixCommerce.cs:1628 File.Copy(live, dest, true);
note file system write or delete plugins/MixCore.cs:765 Directory.CreateDirectory(dir);
note file system write or delete plugins/MixCore.cs:767 File.Copy(live, dest, true);
note file system write or delete plugins/MixGovern.cs:1736 Directory.CreateDirectory(dir);
note file system write or delete plugins/MixGovern.cs:1738 File.Copy(live, dest, true);
note file system write or delete plugins/MixInstantBases.cs:1861 Directory.CreateDirectory(dir);
note file system write or delete plugins/MixInstantBases.cs:1863 File.Copy(live, dest, true);
note file system write or delete plugins/MixRaidBases.cs:752 Directory.CreateDirectory(_kitsDir);
note file system write or delete plugins/MixSignboard.cs:1344 try { Directory.CreateDirectory(root); } catch (Exception) { }
note file system write or delete plugins/MixSiloRaid.cs:258 Directory.CreateDirectory(_templatesDir);
note file system write or delete plugins/MixSiloRaid.cs:925 File.WriteAllText(path, JsonConvert.SerializeObject(tpl, Formatting.Indented));
note file system write or delete plugins/MixSiloRaid.cs:1692 File.WriteAllText(snapPath, JsonConvert.SerializeObject(tpl, Formatting.Indented));
note file system write or delete plugins/MixSiloRaid.cs:1701 File.WriteAllText(path, JsonConvert.SerializeObject(tpl, Formatting.Indented));
note file system write or delete plugins/MixTrophies.cs:354 File.Move(path, aside);

Processes and native code 1

LevelWhatWhereLine
note reads process information plugins/MixCarbonLeakGuard.cs:126 using var proc = System.Diagnostics.Process.GetCurrentProcess();

"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

VersionKindSizeFindingsStatusUploaded
0.9.59 currentupload47.9 MB478checked2026-10-02 (6 days ago)
0.9.56upload33.2 MB462checked2026-09-28 (10 days ago)
0.9.54.1upload29.2 MB453checked2026-09-26 (12 days ago)
0.9.54upload29.2 MB453checked2026-09-25 (13 days ago)
0.9.53.3upload6.0 MB148checked2026-09-25 (13 days ago)
0.9.53.2upload6.0 MB147checked2026-09-25 (13 days ago)
0.9.53upload6.0 MB146checked2026-09-24 (14 days ago)
0.9.50upload6.0 MB144checked2026-09-23 (15 days ago)
0.9.50upload6.0 MB143checked2026-09-23 (15 days ago)