From 2aa74cb89c0448d9144873946e877a27672104b7 Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:57:19 +0100 Subject: [PATCH 1/7] fix: https://git.scpslgame.com/northwood-qa/scpsl-bug-reporting/-/issues/1560 --- EXILED/Exiled.Events/Handlers/Internal/Round.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/EXILED/Exiled.Events/Handlers/Internal/Round.cs b/EXILED/Exiled.Events/Handlers/Internal/Round.cs index cebcffa74..34c557ac1 100644 --- a/EXILED/Exiled.Events/Handlers/Internal/Round.cs +++ b/EXILED/Exiled.Events/Handlers/Internal/Round.cs @@ -15,6 +15,7 @@ namespace Exiled.Events.Handlers.Internal using Exiled.API.Extensions; using Exiled.API.Features; using Exiled.API.Features.Core.UserSettings; + using Exiled.API.Features.Doors; using Exiled.API.Features.Items; using Exiled.API.Features.Pools; using Exiled.API.Features.Roles; @@ -60,6 +61,10 @@ public static void OnWaitingForPlayers() if (Events.Instance.Config.Debug) Patches.Events.Map.Generating.Benchmark(); + + // TODO: Remove when this has been fixed https://git.scpslgame.com/northwood-qa/scpsl-bug-reporting/-/issues/1560 + foreach (Door door in Recontainer.LockedDoors) + door.AllowsScp106 = false; } /// From d938486db635cc57cd9cc2979258a6c43e2524c2 Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Sun, 8 Mar 2026 14:53:13 +0100 Subject: [PATCH 2/7] fix: SpawnProtect --- .../Patches/Fixes/FixSpawnProtect.cs | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs diff --git a/EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs b/EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs new file mode 100644 index 000000000..ebdf283d4 --- /dev/null +++ b/EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs @@ -0,0 +1,57 @@ +// ----------------------------------------------------------------------- +// +// Copyright (c) ExMod Team. All rights reserved. +// Licensed under the CC BY-SA 3.0 license. +// +// ----------------------------------------------------------------------- + +namespace Exiled.Events.Patches.Fixes +{ + using System.Collections.Generic; + + using CustomPlayerEffects; + using Exiled.API.Enums; + using Exiled.API.Extensions; + using Exiled.API.Features.DamageHandlers; + using HarmonyLib; + using PlayerStatsSystem; + + /// + /// Patches the delegate. + /// Fix than SpawnProtect was protecting from litterally everything leading to SoftLock or Strange Gameplay like out of bound. + /// Bug reported to NW (https://git.scpslgame.com/northwood-qa/scpsl-bug-reporting/-/issues/2196). + /// + [HarmonyPatch(typeof(SpawnProtected), nameof(SpawnProtected.GetDamageModifier))] + public class FixSpawnProtect + { +#pragma warning disable SA1313 // Parameter names should begin with lower-case letter +#pragma warning disable SA1401 // Fields should be private + /// + /// . + /// + public static List IgnoredDamageType = new List() + { + // Soft Lock the game + DamageType.Warhead, + + // This shouldn't be protected + DamageType.FriendlyFireDetector, + + // 100% chance of death + DamageType.Decontamination, + DamageType.SeveredEyes, + DamageType.SeveredHands, + }; + + private static void Postfix(float baseDamage, PlayerStatsSystem.DamageHandlerBase handler, HitboxType hitboxType, ref float __result) + { + if (__result > 0) + return; + DamageType damageType = DamageTypeExtensions.GetDamageType(handler); + if (IgnoredDamageType.Contains(damageType)) + __result = 1; + else if (damageType is DamageType.Crushed && baseDamage == StandardDamageHandler.KillValue) + __result = 1; + } + } +} From 14252b96ab85cf1becaa0b169e028c4bb8d5f781 Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Sun, 8 Mar 2026 14:53:31 +0100 Subject: [PATCH 3/7] Fix 1560 --- EXILED/Exiled.Events/Handlers/Internal/Round.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EXILED/Exiled.Events/Handlers/Internal/Round.cs b/EXILED/Exiled.Events/Handlers/Internal/Round.cs index 34c557ac1..c0cd3d983 100644 --- a/EXILED/Exiled.Events/Handlers/Internal/Round.cs +++ b/EXILED/Exiled.Events/Handlers/Internal/Round.cs @@ -63,8 +63,8 @@ public static void OnWaitingForPlayers() Patches.Events.Map.Generating.Benchmark(); // TODO: Remove when this has been fixed https://git.scpslgame.com/northwood-qa/scpsl-bug-reporting/-/issues/1560 - foreach (Door door in Recontainer.LockedDoors) - door.AllowsScp106 = false; + Door door = Door.Get(DoorType.Scp079Armory); + door.AllowsScp106 = false; } /// From 6bd2c041efb49a6fe96c4270f6de930a228c0ac6 Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Sun, 8 Mar 2026 14:53:48 +0100 Subject: [PATCH 4/7] update Using --- EXILED/Exiled.Events/Handlers/Internal/Round.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/EXILED/Exiled.Events/Handlers/Internal/Round.cs b/EXILED/Exiled.Events/Handlers/Internal/Round.cs index c0cd3d983..bec818dec 100644 --- a/EXILED/Exiled.Events/Handlers/Internal/Round.cs +++ b/EXILED/Exiled.Events/Handlers/Internal/Round.cs @@ -7,9 +7,6 @@ namespace Exiled.Events.Handlers.Internal { - using System.Collections.Generic; - using System.Linq; - using CentralAuth; using Exiled.API.Enums; using Exiled.API.Extensions; @@ -24,17 +21,16 @@ namespace Exiled.Events.Handlers.Internal using Exiled.Events.EventArgs.Scp049; using Exiled.Loader; using Exiled.Loader.Features; + using Interactables.Interobjects.DoorUtils; using InventorySystem; using InventorySystem.Items.Firearms.Attachments; using InventorySystem.Items.Firearms.Attachments.Components; using InventorySystem.Items.Usables; - using InventorySystem.Items.Usables.Scp244.Hypothermia; using InventorySystem.Items.Usables.Scp330; using PlayerRoles; - using PlayerRoles.FirstPersonControl; using PlayerRoles.RoleAssign; - using UnityEngine; - using Utils.Networking; + using System.Collections.Generic; + using System.Linq; using Utils.NonAllocLINQ; /// From 8f30f95c494118d2bc9a0b97187f245174a56649 Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:41:08 +0100 Subject: [PATCH 5/7] fix: build error of using --- EXILED/Exiled.Events/Handlers/Internal/Round.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/EXILED/Exiled.Events/Handlers/Internal/Round.cs b/EXILED/Exiled.Events/Handlers/Internal/Round.cs index bec818dec..fa3e433db 100644 --- a/EXILED/Exiled.Events/Handlers/Internal/Round.cs +++ b/EXILED/Exiled.Events/Handlers/Internal/Round.cs @@ -7,6 +7,9 @@ namespace Exiled.Events.Handlers.Internal { + using System.Collections.Generic; + using System.Linq; + using CentralAuth; using Exiled.API.Enums; using Exiled.API.Extensions; @@ -29,8 +32,6 @@ namespace Exiled.Events.Handlers.Internal using InventorySystem.Items.Usables.Scp330; using PlayerRoles; using PlayerRoles.RoleAssign; - using System.Collections.Generic; - using System.Linq; using Utils.NonAllocLINQ; /// From d7192ffe4ca705d8581d62f4bbe5ced739d72b68 Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:16:27 +0100 Subject: [PATCH 6/7] fix: 2816 --- EXILED/Exiled.API/Features/Pickups/JailbirdPickup.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/EXILED/Exiled.API/Features/Pickups/JailbirdPickup.cs b/EXILED/Exiled.API/Features/Pickups/JailbirdPickup.cs index eaaf77cb7..93c18ff7b 100644 --- a/EXILED/Exiled.API/Features/Pickups/JailbirdPickup.cs +++ b/EXILED/Exiled.API/Features/Pickups/JailbirdPickup.cs @@ -109,6 +109,9 @@ internal override void ReadItemInfo(Item item) if (item is Jailbird jailBirditem) { + // TODO: Remove if this is fixed https://git.scpslgame.com/northwood-qa/scpsl-bug-reporting/-/issues/2816 + jailBirditem.Base._deterioration.RecheckUsage(); + MeleeDamage = jailBirditem.MeleeDamage; ChargeDamage = jailBirditem.ChargeDamage; FlashDuration = jailBirditem.FlashDuration; From 3f18b47810166dbcbd1b208aada904d59e4663c6 Mon Sep 17 00:00:00 2001 From: Yamato <66829532+louis1706@users.noreply.github.com> Date: Mon, 9 Mar 2026 15:19:59 +0100 Subject: [PATCH 7/7] Revert "fix: SpawnProtect" This reverts commit d938486db635cc57cd9cc2979258a6c43e2524c2. --- .../Patches/Fixes/FixSpawnProtect.cs | 57 ------------------- 1 file changed, 57 deletions(-) delete mode 100644 EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs diff --git a/EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs b/EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs deleted file mode 100644 index ebdf283d4..000000000 --- a/EXILED/Exiled.Events/Patches/Fixes/FixSpawnProtect.cs +++ /dev/null @@ -1,57 +0,0 @@ -// ----------------------------------------------------------------------- -// -// Copyright (c) ExMod Team. All rights reserved. -// Licensed under the CC BY-SA 3.0 license. -// -// ----------------------------------------------------------------------- - -namespace Exiled.Events.Patches.Fixes -{ - using System.Collections.Generic; - - using CustomPlayerEffects; - using Exiled.API.Enums; - using Exiled.API.Extensions; - using Exiled.API.Features.DamageHandlers; - using HarmonyLib; - using PlayerStatsSystem; - - /// - /// Patches the delegate. - /// Fix than SpawnProtect was protecting from litterally everything leading to SoftLock or Strange Gameplay like out of bound. - /// Bug reported to NW (https://git.scpslgame.com/northwood-qa/scpsl-bug-reporting/-/issues/2196). - /// - [HarmonyPatch(typeof(SpawnProtected), nameof(SpawnProtected.GetDamageModifier))] - public class FixSpawnProtect - { -#pragma warning disable SA1313 // Parameter names should begin with lower-case letter -#pragma warning disable SA1401 // Fields should be private - /// - /// . - /// - public static List IgnoredDamageType = new List() - { - // Soft Lock the game - DamageType.Warhead, - - // This shouldn't be protected - DamageType.FriendlyFireDetector, - - // 100% chance of death - DamageType.Decontamination, - DamageType.SeveredEyes, - DamageType.SeveredHands, - }; - - private static void Postfix(float baseDamage, PlayerStatsSystem.DamageHandlerBase handler, HitboxType hitboxType, ref float __result) - { - if (__result > 0) - return; - DamageType damageType = DamageTypeExtensions.GetDamageType(handler); - if (IgnoredDamageType.Contains(damageType)) - __result = 1; - else if (damageType is DamageType.Crushed && baseDamage == StandardDamageHandler.KillValue) - __result = 1; - } - } -}