Skip to content
This repository was archived by the owner on Jul 8, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
17d2c40
Add PermissionsPolicy and RequireAllPermissions in Door
R2kip Apr 30, 2025
431e389
chore: update base game 14.1 (#527)
BoltonDev May 18, 2025
93c3d6b
Merge branch 'LabAPI' into add-permissions-policy
louis1706 May 19, 2025
4b49840
Merge branch 'dev' into add-permissions-policy
louis1706 May 19, 2025
26321c6
fix: Fix staff message wrong target (#542)
MikeSus1 Jun 8, 2025
c5c886e
fix: fix being observed calling in reverse (#541)
MikeSus1 Jun 8, 2025
6760ae1
fix: CustomKeycard being blank and particle disruptor crashing (#540)
MikeSus1 Jun 8, 2025
5f5600d
fix: Fixes spawningItem transpiler (#539)
MikeSus1 Jun 8, 2025
8e10d6f
14.1.1 TT File Update
louis1706 Jun 12, 2025
4c53c0b
Some fixes
MikeSus1 Jun 12, 2025
2e34c4b
fix: player.MessageTranslated kick players (#545)
GoldenPig1205 Jun 12, 2025
c86ff04
Update workflows
MikeSus1 Jun 12, 2025
d44bedf
fix: KeybindSetting and RoundEnd transpiler (#546)
Someone-193 Jun 12, 2025
d9a0896
Fix DroppedItem Event (#548)
x3rt Jun 13, 2025
0e92e31
Fix door interaction patch
x3rt Jun 13, 2025
37b8bd4
Fix door interaction patch (#551)
MikeSus1 Jun 13, 2025
8e0c98a
fix: Update repository URLs to reflect team name change (#552)
MikeSus1 Jun 13, 2025
06b97af
fix: Update RepoID to reflect new repository identifier
MikeSus1 Jun 13, 2025
6e57175
fix: Update RepoID to reflect new repository identifier (#553)
MikeSus1 Jun 13, 2025
f9f3656
fix: Critical CustomRole api Error & Invalid ragdoll error (#560)
MS-crew Jun 18, 2025
5a55e62
fix: Update spawning logic to use IsFpcRole for role validation (#573)
MikeSus1 Jun 19, 2025
23ae2fd
fix: DoorType.Scp173NewGate is DoorType.Scp049Gate (#569)
GoldenPig1205 Jun 19, 2025
e38d4b6
fix: RemainingDecontaminationTime is wrong (#572)
NaxefirYT Jun 19, 2025
4ee1686
fix: Correct role validation logic in spawning events
MikeSus1 Jun 19, 2025
6650b95
feat: Player hint update 14.1.1 (#549)
GoldenPig1205 Jun 19, 2025
3016997
fix: Correct role validation logic in spawning events (#575)
MikeSus1 Jun 19, 2025
da8b884
Fix custom role ragdoll chechk
MS-crew Jun 19, 2025
3c3ce56
fix: Custom role ragdoll validate correction (#577)
MikeSus1 Jun 20, 2025
463fd1f
Missing ServerRoom Elevator recognised as Unknown
louis1706 Jul 5, 2025
79d5f41
fix: CustomRoles GotRoleHint.Show config (#583)
officialvirtualrain Jul 5, 2025
a3a650d
feat: Add UpgradedInventoryItem and UpgradedPickup on Scp914 (#579)
GoldenPig1205 Jul 5, 2025
24795f4
fix: ChangingLeverStatusEventArgs (#582)
GoldenPig1205 Jul 5, 2025
d80e4de
feat: New Changed Aspect Ratio Event & Player::AspectRatio Property (…
MS-crew Jul 5, 2025
b7df292
feat: Server with more interaction (#535)
GoldenPig1205 Jul 5, 2025
573cc6a
fix: Fix IsWeapon() did not check for jailbird (#584)
GoldenPig1205 Jul 5, 2025
254c27a
feat: Add Exiled.API.Features.Workstation (#568)
GoldenPig1205 Jul 5, 2025
f1d2007
fix: OnEscaping Exiled and LabAPI bug (#580)
MS-crew Jul 5, 2025
1aeeb08
feat: Rework and Fix Custom Role Spawn Logic & Limits (#578)
MS-crew Jul 5, 2025
44afe85
Bump Version
louis1706 Jul 5, 2025
28597de
Fix CustomRole Issue not working when using OnSpawned
louis1706 Jul 5, 2025
3c7ce4d
SpawnReason.CustomRole
louis1706 Jul 5, 2025
eeca9e9
fix up link
louis1706 Jul 6, 2025
e6f1edf
fix: fix bad implementation of a CustomRole Field (#586)
Someone-193 Jul 6, 2025
b896a73
fix: Scale fix (#571)
Bonjemus Jul 7, 2025
6085b42
feat: Add Ragdoll features & readability (#567)
GoldenPig1205 Jul 8, 2025
ba204e5
MissChanged from ExSLMod
louis1706 Jul 8, 2025
7c50606
Merge branch 'dev' of https://github.com/ExMod-Team/EXILED into ExMod…
louis1706 Jul 8, 2025
dfd76ea
9.6.3
louis1706 Jul 8, 2025
154ba8d
fix: release workflow
BoltonDev Jul 13, 2025
cbc5a25
why bruh nw add enum value in the middle
louis1706 Jul 17, 2025
3faecbb
Return LateJoin
louis1706 Jul 31, 2025
151bed1
Partially Revert "fix: Scale fix (#571)"
louis1706 Jul 31, 2025
5a74a1b
feat: Add Model (#595)
MS-crew Jul 31, 2025
4296fa9
feat: New Scp049 Finishing Sense Event (#559)
MS-crew Jul 31, 2025
c782ee2
feat: RemovingTarget event for 096 (#576)
Someone-193 Jul 31, 2025
b3564e1
fix: Escaping Exiled and LabAPI bug different way (#589)
MS-crew Jul 31, 2025
1c2792a
feat: Add ragdoll to died event (#507)
R2kip Jul 31, 2025
0778174
feat: Generic damage handler add new value (#561)
MS-crew Jul 31, 2025
5e50a6e
feat: Add Wave related functions to Respawn (#536)
GoldenPig1205 Jul 31, 2025
7c68ea7
Fix using
louis1706 Jul 31, 2025
baff9c5
feat: All players spawned2 (#597)
MS-crew Jul 31, 2025
f1df1bd
refactor: StoredComponent (#328)
louis1706 Jul 31, 2025
4cf27fe
feat: `[EXILED::Loader]` Allow port-binded plugin loading (#89)
FoxWorn3365 Jul 31, 2025
b94f444
feat: New Player Changed Room events (#557)
MS-crew Jul 31, 2025
eb6ac98
feat: Add priority for event handlers to Exiled Events (#423)
warquys Jul 31, 2025
7ebe899
feat: Item::Inspected Item::Inspecting & Scp939::PlacingMimicPoint (#…
VALERA771 Jul 31, 2025
83450c2
Merge branch 'LabAPI' into add-permissions-policy
louis1706 Jul 31, 2025
f678399
Fix again ChangingKnobSetting
louis1706 Jul 31, 2025
0294463
Merge branch 'ExMod-dev' into pr/523
louis1706 Jul 31, 2025
ea41ca9
Delete .github/workflows/labapi.yml
louis1706 Jul 31, 2025
62ca0e1
revert bad stuff again
louis1706 Jul 31, 2025
8d90fc8
Merge branch 'add-permissions-policy' of https://github.com/R2kip/EXI…
louis1706 Jul 31, 2025
85b8e30
Remove unused using directives in Event.cs
louis1706 Jul 31, 2025
85dc425
feat: Item::Inspected Item::Inspecting & Scp939::PlacingMimicPoint (#…
VALERA771 Jul 31, 2025
3b9b09e
Merge branch 'dev' into add-permissions-policy
louis1706 Jul 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ defaults:
working-directory: ./EXILED

env:
EXILED_REFERENCES_URL: https://exslmod-team.github.io/SL-References/Dev.zip
EXILED_REFERENCES_URL: https://exmod-team.github.io/SL-References/Dev.zip
EXILED_REFERENCES_PATH: ${{ github.workspace }}/EXILED/References
EXILED_DLL_ARCHIVER_URL: https://github.com/ExSLMod-Team/EXILED-DLL-Archiver/releases/latest/download/EXILED-DLL-Archiver.exe
EXILED_DLL_ARCHIVER_URL: https://github.com/ExMod-Team/EXILED-DLL-Archiver/releases/latest/download/EXILED-DLL-Archiver.exe

jobs:

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions:
id-token: write

env:
EXILED_REFERENCES_URL: https://exslmod-team.github.io/SL-References/Master.zip
EXILED_REFERENCES_URL: https://Exmod-team.github.io/SL-References/Master.zip
EXILED_REFERENCES_PATH: ${{ github.workspace }}/EXILED/References

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
Expand Down
74 changes: 0 additions & 74 deletions .github/workflows/labapi.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ defaults:
working-directory: ./EXILED

env:
EXILED_REFERENCES_URL: https://exslmod-team.github.io/SL-References/Master.zip
EXILED_REFERENCES_URL: https://Exmod-team.github.io/SL-References/Master.zip
EXILED_REFERENCES_PATH: ${{ github.workspace }}/EXILED/References

jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push_nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ defaults:
working-directory: ./EXILED

env:
EXILED_REFERENCES_URL: https://exslmod-team.github.io/SL-References/Dev.zip
EXILED_REFERENCES_URL: https://exmod-team.github.io/SL-References/Dev.zip
EXILED_REFERENCES_PATH: ${{ github.workspace }}/EXILED/References

jobs:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ defaults:
working-directory: ./EXILED

env:
EXILED_REFERENCES_URL: https://exslmod-team.github.io/SL-References/Dev.zip
EXILED_REFERENCES_URL: https://Exmod-team.github.io/SL-References/Dev.zip
EXILED_REFERENCES_PATH: ${{ github.workspace }}/EXILED/References
EXILED_DLL_ARCHIVER_URL: https://github.com/ExSLMod-Team/EXILED-DLL-Archiver/releases/latest/download/EXILED-DLL-Archiver.exe
EXILED_DLL_ARCHIVER_URL: https://github.com/ExMod-Team/EXILED-DLL-Archiver/releases/latest/download/EXILED-DLL-Archiver.exe

jobs:
build:
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -376,4 +376,7 @@ _site/
JSON/

# Mac DS_Store
.DS_Store
.DS_Store

# Code Rush
/EXILED/.cr/*
6 changes: 3 additions & 3 deletions EXILED/EXILED.props
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

<PropertyGroup>
<!-- This is the global version and is used for all projects that don't have a version -->
<Version Condition="$(Version) == ''">9.6.0</Version>
<Version Condition="$(Version) == ''">9.6.3</Version>
<!-- Enables public beta warning via the PUBLIC_BETA constant -->
<PublicBeta>false</PublicBeta>

Expand All @@ -25,8 +25,8 @@

<Copyright>Copyright © $(Authors) 2020 - $([System.DateTime]::Now.ToString("yyyy"))</Copyright>
<RepositoryType>Git</RepositoryType>
<RepositoryUrl>https://github.com/ExSLMod-Team/EXILED</RepositoryUrl>
<PackageProjectUrl>https://github.com/ExSLMod-Team/EXILED</PackageProjectUrl>
<RepositoryUrl>https://github.com/Exmod-Team/EXILED</RepositoryUrl>
<PackageProjectUrl>https://github.com/Exmod-Team/EXILED</PackageProjectUrl>
<PackageLicenseExpression>CC-BY-SA-3.0</PackageLicenseExpression>

<DefineConstants Condition="$(PublicBeta) == 'true'">$(DefineConstants);PUBLIC_BETA</DefineConstants>
Expand Down
60 changes: 60 additions & 0 deletions EXILED/Exiled.API/Enums/AspectRatioType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// -----------------------------------------------------------------------
// <copyright file="AspectRatioType.cs" company="ExMod Team">
// Copyright (c) ExMod Team. All rights reserved.
// Licensed under the CC BY-SA 3.0 license.
// </copyright>
// -----------------------------------------------------------------------

namespace Exiled.API.Enums
{
/// <summary>
/// All available screen aspect ratio types.
/// </summary>
public enum AspectRatioType : byte
{
/// <summary>
/// Unknown aspect ratio.
/// </summary>
Unknown,

/// <summary>
/// 1:1 aspect ratio (square screen).
/// </summary>
Ratio1_1,

/// <summary>
/// 3:2 aspect ratio.
/// </summary>
Ratio3_2,

/// <summary>
/// 4:3 aspect ratio (standard definition TVs, older monitors).
/// </summary>
Ratio4_3,

/// <summary>
/// 5:4 aspect ratio (some older computer monitors).
/// </summary>
Ratio5_4,

/// <summary>
/// 16:9 aspect ratio (modern widescreen displays, HDTV).
/// </summary>
Ratio16_9,

/// <summary>
/// 16:10 aspect ratio (common in productivity monitors and laptops).
/// </summary>
Ratio16_10,

/// <summary>
/// 21:9 aspect ratio (ultrawide displays).
/// </summary>
Ratio21_9,

/// <summary>
/// 32:9 aspect ratio (super ultrawide displays).
/// </summary>
Ratio32_9,
}
}
5 changes: 2 additions & 3 deletions EXILED/Exiled.API/Enums/DamageType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ namespace Exiled.API.Enums
/// Identifiers for types of damage.
/// </summary>
/// <seealso cref="Player.Hurt(float, DamageType, string)"/>
/// <seealso cref="Player.Hurt(Player, float, DamageType, Features.DamageHandlers.DamageHandlerBase.CassieAnnouncement)"/>
/// <seealso cref="Player.Hurt(Player, float, DamageType, Features.DamageHandlers.DamageHandlerBase.CassieAnnouncement, string)"/>
/// <seealso cref="Player.Hurt(Player, float, DamageType, Features.DamageHandlers.DamageHandlerBase.CassieAnnouncement, string, bool)"/>
/// <seealso cref="Player.Kill(DamageType, string)"/>
public enum DamageType
{
Expand Down Expand Up @@ -275,4 +274,4 @@ public enum DamageType
/// </summary>
Scp127,
}
}
}
10 changes: 10 additions & 0 deletions EXILED/Exiled.API/Enums/SpawnReason.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,19 @@ public enum SpawnReason : byte // TOTO: Remove this file and use Basegame
/// </summary>
Destroyed,

/// <summary>
/// The player was dead and is respawning in a mini-wave.
/// </summary>
RespawnMiniwave,

/// <summary>
/// The user has been spawn by the usage of an Item.
/// </summary>
ItemUsage,

/// <summary>
/// The user has been spawn by Exiled CustomRole.
/// </summary>
CustomRole,
}
}
6 changes: 3 additions & 3 deletions EXILED/Exiled.API/Extensions/DamageTypeExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,12 @@ public static class DamageTypeExtensions
/// Check if a <see cref="DamageType">damage type</see> is caused by a weapon.
/// </summary>
/// <param name="type">The damage type to be checked.</param>
/// <param name="checkMicro">Indicates whether the MicroHid damage type should be taken into account.</param>
/// <param name="checkNonFirearm">Indicates whether the MicroHid and Jailbird damage type should be taken into account.</param>
/// <returns>Returns whether the <see cref="DamageType"/> is caused by weapon.</returns>
public static bool IsWeapon(this DamageType type, bool checkMicro = true) => type switch
public static bool IsWeapon(this DamageType type, bool checkNonFirearm = true) => type switch
{
DamageType.Crossvec or DamageType.Logicer or DamageType.Revolver or DamageType.Shotgun or DamageType.AK or DamageType.Com15 or DamageType.Com18 or DamageType.E11Sr or DamageType.Fsp9 or DamageType.ParticleDisruptor or DamageType.Com45 or DamageType.Frmg0 or DamageType.A7 => true,
DamageType.MicroHid when checkMicro => true,
DamageType.MicroHid or DamageType.Jailbird when checkNonFirearm => true,
_ => false,
};

Expand Down
56 changes: 56 additions & 0 deletions EXILED/Exiled.API/Extensions/FloatExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// -----------------------------------------------------------------------
// <copyright file="FloatExtensions.cs" company="ExMod Team">
// Copyright (c) ExMod Team. All rights reserved.
// Licensed under the CC BY-SA 3.0 license.
// </copyright>
// -----------------------------------------------------------------------

namespace Exiled.API.Extensions
{
using System;
using System.Collections.Generic;

using Exiled.API.Enums;

/// <summary>
/// A set of extensions for <see cref="float"/>.
/// </summary>
public static class FloatExtensions
{
private static readonly Dictionary<AspectRatioType, float> AspectRatioReferences = new()
{
{ AspectRatioType.Unknown, 0f },
{ AspectRatioType.Ratio1_1, 1f },
{ AspectRatioType.Ratio3_2, 3f / 2f },
{ AspectRatioType.Ratio4_3, 4f / 3f },
{ AspectRatioType.Ratio5_4, 5f / 4f },
{ AspectRatioType.Ratio16_9, 16f / 9f },
{ AspectRatioType.Ratio16_10, 16f / 10f },
{ AspectRatioType.Ratio21_9, 21f / 9f },
{ AspectRatioType.Ratio32_9, 32f / 9f },
};

/// <summary>
/// Gets the closest <see cref="AspectRatioType"/> for a given aspect ratio value.
/// </summary>
/// <param name="ratio">The aspect ratio value to compare.</param>
/// <returns>The closest matching <see cref="AspectRatioType"/>.</returns>
public static AspectRatioType GetAspectRatioLabel(this float ratio)
{
float closestDiff = float.MaxValue;
AspectRatioType closestRatio = AspectRatioType.Unknown;

foreach (KeyValuePair<AspectRatioType, float> kvp in AspectRatioReferences)
{
float diff = Math.Abs(ratio - kvp.Value);
if (diff < closestDiff)
{
closestDiff = diff;
closestRatio = kvp.Key;
}
}

return closestRatio;
}
}
}
4 changes: 2 additions & 2 deletions EXILED/Exiled.API/Extensions/ItemExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ public static class ItemExtensions
/// Check if an <see cref="ItemType">item</see> is a weapon.
/// </summary>
/// <param name="type">The item to be checked.</param>
/// <param name="checkMicro">Indicates whether the MicroHID item should be taken into account.</param>
/// <param name="checkNonFirearm">Indicates whether the MicroHID and Jailbird item should be taken into account.</param>
/// <returns>Returns whether the <see cref="ItemType"/> is a weapon.</returns>
public static bool IsWeapon(this ItemType type, bool checkMicro = true) => type.GetFirearmType() is not FirearmType.None || (checkMicro && type is ItemType.MicroHID);
public static bool IsWeapon(this ItemType type, bool checkNonFirearm = true) => type.GetFirearmType() is not FirearmType.None || (checkNonFirearm && type is ItemType.MicroHID or ItemType.Jailbird);

/// <summary>
/// Check if an <see cref="ItemType">item</see> is an SCP.
Expand Down
5 changes: 3 additions & 2 deletions EXILED/Exiled.API/Extensions/MirrorExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -367,10 +367,11 @@ public static void PlayCassieAnnouncement(this Player player, string words, bool
/// <param name="player">Target to send.</param>
/// <param name="words">The message to be reproduced.</param>
/// <param name="translation">The translation should be show in the subtitles.</param>
/// <param name="customSubtitles">The custom subtitles to show.</param>
/// <param name="makeHold">Same on <see cref="Cassie.MessageTranslated(string, string, bool, bool, bool)"/>'s isHeld.</param>
/// <param name="makeNoise">Same on <see cref="Cassie.MessageTranslated(string, string, bool, bool, bool)"/>'s isNoisy.</param>
/// <param name="isSubtitles">Same on <see cref="Cassie.MessageTranslated(string, string, bool, bool, bool)"/>'s isSubtitles.</param>
public static void MessageTranslated(this Player player, string words, string translation, bool makeHold = false, bool makeNoise = true, bool isSubtitles = true)
public static void MessageTranslated(this Player player, string words, string translation, string customSubtitles, bool makeHold = false, bool makeNoise = true, bool isSubtitles = true)
{
StringBuilder announcement = StringBuilderPool.Pool.Get();

Expand All @@ -386,7 +387,7 @@ public static void MessageTranslated(this Player player, string words, string tr
{
if (controller != null)
{
SendFakeTargetRpc(player, controller.netIdentity, typeof(RespawnEffectsController), nameof(RespawnEffectsController.RpcCassieAnnouncement), message, makeHold, makeNoise, isSubtitles);
SendFakeTargetRpc(player, controller.netIdentity, typeof(RespawnEffectsController), nameof(RespawnEffectsController.RpcCassieAnnouncement), message, makeHold, makeNoise, isSubtitles, customSubtitles);
}
}
}
Expand Down
Loading