diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..da0ebbd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.git
+.vs
+bin
+packages
\ No newline at end of file
diff --git a/ChatSystem.cs b/ChatSystem.cs
new file mode 100644
index 0000000..c1dbd99
--- /dev/null
+++ b/ChatSystem.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Text.RegularExpressions;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Reflection;
+using System.Net;
+using Rocket.API;
+using Rocket.Unturned.Chat;
+using Rocket.Unturned.Player;
+using SDG.Unturned;
+using Steamworks;
+using UnityEngine;
+
+namespace NLREnforcer
+{
+ public static class ChatSystem
+ {
+ public static CSteamID GetCSteamID(this string id)
+ {
+ return new CSteamID(ulong.Parse(id));
+ }
+
+ public static void sendMessage(this IRocketPlayer caller, String message)
+ {
+ Regex filter = new Regex(@"<[^>]*>");
+ String formatlessMessage = filter.Replace(message, string.Empty);
+
+ if (caller.DisplayName == "Console")
+ {
+ UnturnedChat.Say(caller, formatlessMessage);
+ }
+ else
+ {
+ ChatManager.serverSendMessage(message, UnityEngine.Color.white, null, UnturnedPlayer.FromCSteamID(caller.Id.GetCSteamID()).SteamPlayer(), EChatMode.SAY, null, true);
+ }
+ }
+
+ public static void sendMessage(this IRocketPlayer caller, String message, String icon)
+ {
+ Regex filter = new Regex(@"<[^>]*>");
+ String formatlessMessage = filter.Replace(message, string.Empty);
+
+ if (caller.DisplayName == "Console")
+ {
+ UnturnedChat.Say(caller, formatlessMessage);
+ }
+ else
+ {
+ ChatManager.serverSendMessage(message, UnityEngine.Color.white, null, UnturnedPlayer.FromCSteamID(caller.Id.GetCSteamID()).SteamPlayer(), EChatMode.SAY, icon, true);
+ }
+ }
+
+ public static void sendGlobalMessage(String message)
+ {
+ ChatManager.serverSendMessage(message, UnityEngine.Color.white, null, null, EChatMode.GLOBAL, null, true);
+ }
+
+ public static void sendGlobalMessage(String message, String icon)
+ {
+ ChatManager.serverSendMessage(message, UnityEngine.Color.white, null, null, EChatMode.GLOBAL, icon, true);
+ }
+ }
+}
diff --git a/Configuration.cs b/Configuration.cs
new file mode 100644
index 0000000..0f8db9e
--- /dev/null
+++ b/Configuration.cs
@@ -0,0 +1,29 @@
+using Rocket.API;
+using Rocket.Core.Assets;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Serialization;
+using Rocket.Unturned.Items;
+using SDG.Unturned;
+
+namespace NLREnforcer
+{
+ public class Configuration : IRocketPluginConfiguration
+ {
+ public int RestrictedRadiusFromDeathPosition;
+ public int ClearDeathAfterSeconds;
+ public bool MessageWhenAttemptToEnterRestrictedZone;
+ public string MessageViolation;
+
+ public void LoadDefaults()
+ {
+ RestrictedRadiusFromDeathPosition = 50;
+ ClearDeathAfterSeconds = 900;
+ MessageWhenAttemptToEnterRestrictedZone = true;
+ MessageViolation = "[ NLREnforcer ] You recently died here, you cannot come closer.";
+ }
+ }
+}
diff --git a/NLREnforcer.csproj b/NLREnforcer.csproj
new file mode 100644
index 0000000..b8e47dd
--- /dev/null
+++ b/NLREnforcer.csproj
@@ -0,0 +1,74 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {9E99BF38-30AF-464A-B33A-97560CCF7D35}
+ Library
+ Properties
+ NLREnforcer
+ NLREnforcer
+ v4.6.1
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\Taser Plugin\polioce\Police\bin\Debug\Assembly-CSharp.dll
+
+
+ ..\..\Taser Plugin\polioce\Police\bin\Debug\com.rlabrecque.steamworks.net.dll
+
+
+ ..\..\Taser Plugin\polioce\Police\bin\Debug\Rocket.API.dll
+
+
+ ..\..\Taser Plugin\polioce\Police\bin\Debug\Rocket.Core.dll
+
+
+ ..\..\Taser Plugin\polioce\Police\bin\Debug\Rocket.Unturned.dll
+
+
+
+
+
+
+
+
+
+
+ ..\..\Taser Plugin\polioce\Police\bin\Debug\UnityEngine.dll
+
+
+ ..\..\Taser Plugin\polioce\Police\bin\Debug\UnityEngine.CoreModule.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NLREnforcer.sln b/NLREnforcer.sln
new file mode 100644
index 0000000..de9c539
--- /dev/null
+++ b/NLREnforcer.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30517.126
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NLREnforcer", "NLREnforcer.csproj", "{9E99BF38-30AF-464A-B33A-97560CCF7D35}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9E99BF38-30AF-464A-B33A-97560CCF7D35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9E99BF38-30AF-464A-B33A-97560CCF7D35}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9E99BF38-30AF-464A-B33A-97560CCF7D35}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9E99BF38-30AF-464A-B33A-97560CCF7D35}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {A93E9265-0A70-4158-846D-83F7D7BFF3A7}
+ EndGlobalSection
+EndGlobal
diff --git a/Plugin.cs b/Plugin.cs
new file mode 100644
index 0000000..8e0bd46
--- /dev/null
+++ b/Plugin.cs
@@ -0,0 +1,125 @@
+using System;
+using System.Timers;
+using System.Collections.Generic;
+using System.Collections;
+using System.Linq;
+using System.IO;
+using System.Net;
+using System.Xml;
+using System.Xml.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Reflection;
+using System.Globalization;
+using Rocket.API;
+using Rocket.Core;
+using Rocket.Unturned;
+using Rocket.Unturned.Events;
+using Rocket.Unturned.Items;
+using Rocket.Unturned.Player;
+using Rocket.Unturned.Enumerations;
+using Rocket.Unturned.Plugins;
+using Rocket.Core.Logging;
+using Rocket.API.Collections;
+using Rocket.Core.Plugins;
+using SDG.Unturned;
+using Steamworks;
+using SDG;
+using UnityEngine;
+using UnityEngine.Events;
+using UP = Rocket.Unturned.Player.UnturnedPlayer;
+using Rocket.API.Serialisation;
+using Rocket.Unturned.Chat;
+using SDG.Provider;
+using Logger = Rocket.Core.Logging.Logger;
+
+namespace NLREnforcer
+{
+ public class EnforcerPlugin : RocketPlugin
+ {
+ public static EnforcerPlugin Instance;
+ public string Creator = "XXFOGS";
+ public string PluginName = "NLREnforcer";
+ public string Version = "1.0.0";
+
+ public static IDictionary DeathDictionary = new Dictionary();
+ public static IDictionary LastPosDictionary = new Dictionary();
+
+ protected override void Load()
+ {
+ Instance = this;
+
+ Logger.Log($"{PluginName} by {Creator} has been loaded! Version: {Version}");
+ UnturnedPlayerEvents.OnPlayerUpdatePosition += onPositionUpdate;
+ UnturnedPlayerEvents.OnPlayerDeath += onPlayerDeath;
+ UnturnedPlayerEvents.OnPlayerRevive += onPlayerRespawn;
+
+ }
+
+ protected override void Unload()
+ {
+ Logger.Log($"{PluginName} has been unloaded");
+ UnturnedPlayerEvents.OnPlayerUpdatePosition -= onPositionUpdate;
+ UnturnedPlayerEvents.OnPlayerDeath -= onPlayerDeath;
+ UnturnedPlayerEvents.OnPlayerRevive -= onPlayerRespawn;
+ }
+
+ void FixedUpdate()
+ {
+ foreach (var death in DeathDictionary.ToList())
+ {
+ if ((DateTimeOffset.Now.ToUnixTimeSeconds() - death.Value.DeathTime) > Configuration.Instance.ClearDeathAfterSeconds)
+ {
+ DeathDictionary.Remove(death.Key);
+ }
+ }
+ }
+
+ private void onPositionUpdate(UnturnedPlayer player, Vector3 newPos)
+ {
+ if (!DeathDictionary.ContainsKey(player.CSteamID)) return;
+
+ if (Vector3.Distance(DeathDictionary[player.CSteamID].DeathPosition, newPos) < Configuration.Instance.RestrictedRadiusFromDeathPosition || (player.IsInVehicle && (Vector3.Distance(DeathDictionary[player.CSteamID].DeathPosition, newPos) < (Configuration.Instance.RestrictedRadiusFromDeathPosition + 5))))
+ {
+ if (player.IsInVehicle) VehicleManager.forceRemovePlayer(player.CSteamID);
+ player.Teleport(LastPosDictionary[player.CSteamID], (player.Rotation > 180) ? player.Rotation - 180 : player.Rotation + 180);
+ if (Configuration.Instance.MessageWhenAttemptToEnterRestrictedZone) player.sendMessage(Configuration.Instance.MessageViolation);
+ }
+
+ LastPosDictionary[player.CSteamID] = newPos;
+ }
+
+ private void onPlayerDeath(UnturnedPlayer player, EDeathCause cause, ELimb lim, CSteamID murderer)
+ {
+ if (player.HasPermission("nlrenforcer.bypass")) return;
+
+ if (DeathDictionary.ContainsKey(player.CSteamID)) DeathDictionary.Remove(player.CSteamID);
+
+ DeathDictionary.Add(player.CSteamID, new PlayerDeath(player.CSteamID, player.Position, DateTimeOffset.Now.ToUnixTimeSeconds()));
+ }
+
+ private void onPlayerRespawn(UnturnedPlayer player, Vector3 position, byte angle)
+ {
+ if (!DeathDictionary.ContainsKey(player.CSteamID)) return;
+
+ if (Vector3.Distance(DeathDictionary[player.CSteamID].DeathPosition, position) < Configuration.Instance.RestrictedRadiusFromDeathPosition) DeathDictionary.Remove(player.CSteamID);
+ }
+
+ }
+
+ public class PlayerDeath
+ {
+ public CSteamID SteamID { get; set; }
+ public Vector3 DeathPosition { get; set; }
+ public long DeathTime { get; set; }
+
+ public PlayerDeath(CSteamID steamid, Vector3 deathpos, long deathtime)
+ {
+ SteamID = steamid;
+ DeathPosition = deathpos;
+ DeathTime = deathtime;
+ }
+ }
+ }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..2259c85
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Gaming")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Gaming")]
+[assembly: AssemblyCopyright("Copyright © 2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9e99bf38-30af-464a-b33a-97560ccf7d35")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..aaa5076
--- /dev/null
+++ b/README.md
@@ -0,0 +1,23 @@
+**Description:**
+
+Custom NLR rule enforcement plugin preventing players from entering zone they got killed in
+
+**Features:**
+
+- Prevents players from entering zone in which they got killed in
+- Ability to change radius of the kill zone
+- Ability to change NLR clear time
+- Ability to customize entry attempt message
+- Ability to turn off message sending on kill zone entry
+
+**Permissions:**
+
+- nlrenforcer.bypass - Permission to bypass restriction on zone entry
+
+**Configuration:**
+
+1. Plugin must be added to the server
+2. According to ones preference all fields can be changed
+3. Done
+
+Feel free to download this plugin and edit it as you please.
\ No newline at end of file
diff --git a/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs b/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
new file mode 100644
index 0000000..3aa5318
--- /dev/null
+++ b/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..27c8551
Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/obj/Debug/Gaming.csproj.CopyComplete b/obj/Debug/Gaming.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/obj/Debug/Gaming.csproj.CoreCompileInputs.cache b/obj/Debug/Gaming.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..5b712b1
--- /dev/null
+++ b/obj/Debug/Gaming.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+b9a5309f338b11cdf4c6e2255e84c880955bfc3c
diff --git a/obj/Debug/Gaming.csproj.FileListAbsolute.txt b/obj/Debug/Gaming.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..7c574c9
--- /dev/null
+++ b/obj/Debug/Gaming.csproj.FileListAbsolute.txt
@@ -0,0 +1,90 @@
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Gaming.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Gaming.pdb
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Assembly-CSharp-firstpass.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Assembly-CSharp.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\com.rlabrecque.steamworks.net.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Rocket.API.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Rocket.Core.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Rocket.Unturned.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.CoreModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.PhysicsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Newtonsoft.Json.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\SDG.HostBans.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\SDG.NetTransport.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\SDG.Glazier.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.TextRenderingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.IMGUIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UI.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Unity.TextMeshPro.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\SDG.NetPak.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\BattlEye.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.AnimationModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.AudioModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.ClothModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.AssetBundleModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.TerrainModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.VehiclesModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\HighlightingSystem.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\AstarPathfindingProject.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.ParticleSystemModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.WindModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.TerrainPhysicsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\StandardAssets.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Unity.Postprocessing.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UnityWebRequestModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\RazerChroma.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\SteelSeriesGameSense.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.JSONSerializeModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEx.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\SystemEx.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.InputLegacyModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.ImageConversionModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.ScreenCaptureModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UnityWebRequestTextureModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.VRModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.DSPGraphModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.AndroidJNIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.AccessibilityModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UnityConnectModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.AIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UnityAnalyticsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.PerformanceReportingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.Physics2DModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.SharedInternalsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.ClusterInputModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.ClusterRendererModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.CrashReportingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.TilemapModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.VFXModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.VideoModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.GridModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.SubsystemsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.LocalizationModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UNETModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UnityWebRequestAssetBundleModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UnityWebRequestAudioModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UnityWebRequestWWWModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.DirectorModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.GameCenterModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.SpriteMaskModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.StreamingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.TextCoreModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.SpriteShapeModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.UIElementsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.ARModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.XRModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\UnityEngine.InputModule.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Pathfinding.JsonFx.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Pathfinding.ClipperLib.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Pathfinding.Ionic.Zip.Reduced.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Pathfinding.Poly2Tri.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Rocket.API.pdb
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Rocket.Core.pdb
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\bin\Debug\Rocket.Unturned.pdb
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\obj\Debug\Gaming.csprojAssemblyReference.cache
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\obj\Debug\Gaming.csproj.CoreCompileInputs.cache
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\obj\Debug\Gaming.csproj.CopyComplete
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\obj\Debug\Gaming.dll
+C:\Users\Olivers\Desktop\CSHARP\Gaming\Gaming\obj\Debug\Gaming.pdb
diff --git a/obj/Debug/Gaming.csprojAssemblyReference.cache b/obj/Debug/Gaming.csprojAssemblyReference.cache
new file mode 100644
index 0000000..c322dd9
Binary files /dev/null and b/obj/Debug/Gaming.csprojAssemblyReference.cache differ
diff --git a/obj/Debug/Gaming.dll b/obj/Debug/Gaming.dll
new file mode 100644
index 0000000..2931d0a
Binary files /dev/null and b/obj/Debug/Gaming.dll differ
diff --git a/obj/Debug/Gaming.pdb b/obj/Debug/Gaming.pdb
new file mode 100644
index 0000000..5ded8d4
Binary files /dev/null and b/obj/Debug/Gaming.pdb differ
diff --git a/obj/Debug/NLREnforcer.csproj.AssemblyReference.cache b/obj/Debug/NLREnforcer.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..2975d5a
Binary files /dev/null and b/obj/Debug/NLREnforcer.csproj.AssemblyReference.cache differ
diff --git a/obj/Debug/NLREnforcer.csproj.CopyComplete b/obj/Debug/NLREnforcer.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/obj/Debug/NLREnforcer.csproj.CoreCompileInputs.cache b/obj/Debug/NLREnforcer.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..4f71336
--- /dev/null
+++ b/obj/Debug/NLREnforcer.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+36f669646c40cffe6e9160de67424feb772dce42
diff --git a/obj/Debug/NLREnforcer.csproj.FileListAbsolute.txt b/obj/Debug/NLREnforcer.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..e84e49f
--- /dev/null
+++ b/obj/Debug/NLREnforcer.csproj.FileListAbsolute.txt
@@ -0,0 +1,89 @@
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\NLREnforcer.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\NLREnforcer.pdb
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Assembly-CSharp.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\com.rlabrecque.steamworks.net.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Rocket.API.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Rocket.Core.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Rocket.Unturned.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.CoreModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.PhysicsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Newtonsoft.Json.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\SDG.HostBans.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\SDG.NetTransport.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\SDG.Glazier.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.TextRenderingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.IMGUIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UI.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Unity.TextMeshPro.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\SDG.NetPak.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\BattlEye.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.AnimationModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.AudioModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.ClothModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.AssetBundleModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.TerrainModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.VehiclesModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\HighlightingSystem.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\AstarPathfindingProject.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.ParticleSystemModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.WindModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.TerrainPhysicsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\StandardAssets.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Unity.Postprocessing.Runtime.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UnityWebRequestModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\RazerChroma.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\SteelSeriesGameSense.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.JSONSerializeModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEx.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\SystemEx.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.InputLegacyModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.ImageConversionModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.ScreenCaptureModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UnityWebRequestTextureModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.DSPGraphModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.AndroidJNIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.AccessibilityModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UnityConnectModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.AIModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UnityAnalyticsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.PerformanceReportingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.Physics2DModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.SharedInternalsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.ClusterInputModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.ClusterRendererModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.CrashReportingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.TilemapModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.VFXModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.VideoModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.VRModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.GridModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.SubsystemsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.LocalizationModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UNETModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UnityWebRequestAssetBundleModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UnityWebRequestAudioModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UnityWebRequestWWWModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.DirectorModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.GameCenterModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.SpriteMaskModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.StreamingModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.TextCoreModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.SpriteShapeModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.UIElementsModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.ARModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.XRModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\UnityEngine.InputModule.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Pathfinding.JsonFx.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Pathfinding.ClipperLib.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Pathfinding.Ionic.Zip.Reduced.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Pathfinding.Poly2Tri.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Rocket.API.pdb
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Rocket.Core.pdb
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\bin\Debug\Rocket.Unturned.pdb
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\obj\Debug\NLREnforcer.csprojAssemblyReference.cache
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\obj\Debug\NLREnforcer.csproj.CoreCompileInputs.cache
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\obj\Debug\NLREnforcer.csproj.CopyComplete
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\obj\Debug\NLREnforcer.dll
+C:\Users\Olivers\Desktop\CSHARP\NLREnforcer\NLREnforcer\obj\Debug\NLREnforcer.pdb
diff --git a/obj/Debug/NLREnforcer.csprojAssemblyReference.cache b/obj/Debug/NLREnforcer.csprojAssemblyReference.cache
new file mode 100644
index 0000000..101d0dc
Binary files /dev/null and b/obj/Debug/NLREnforcer.csprojAssemblyReference.cache differ
diff --git a/obj/Debug/NLREnforcer.dll b/obj/Debug/NLREnforcer.dll
new file mode 100644
index 0000000..6fd4b37
Binary files /dev/null and b/obj/Debug/NLREnforcer.dll differ
diff --git a/obj/Debug/NLREnforcer.pdb b/obj/Debug/NLREnforcer.pdb
new file mode 100644
index 0000000..8e703b1
Binary files /dev/null and b/obj/Debug/NLREnforcer.pdb differ
diff --git a/obj/Debug/Template.csprojAssemblyReference.cache b/obj/Debug/Template.csprojAssemblyReference.cache
new file mode 100644
index 0000000..7d498b1
Binary files /dev/null and b/obj/Debug/Template.csprojAssemblyReference.cache differ