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;
- }
- }
-}