diff --git a/Robust.Client.Godot/.gitignore b/Robust.Client.Godot/.gitignore
deleted file mode 100644
index 8abdb2d7e..000000000
--- a/Robust.Client.Godot/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.import
-.mono
-/Engine
-/Content
diff --git a/Robust.Client.Godot/Art/background.png b/Robust.Client.Godot/Art/background.png
deleted file mode 100755
index cab3aa7e2..000000000
Binary files a/Robust.Client.Godot/Art/background.png and /dev/null differ
diff --git a/Robust.Client.Godot/Art/background.png.import b/Robust.Client.Godot/Art/background.png.import
deleted file mode 100644
index e55ae5770..000000000
--- a/Robust.Client.Godot/Art/background.png.import
+++ /dev/null
@@ -1,29 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/background.png-a03655cdb9c7980d756b35ecf60c4ef1.stex"
-
-[deps]
-
-source_file="res://Art/background.png"
-dest_files=[ "res://.import/background.png-a03655cdb9c7980d756b35ecf60c4ef1.stex" ]
-
-[params]
-
-compress/mode=0
-compress/lossy_quality=0.7
-compress/hdr_mode=0
-compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/HDR_as_SRGB=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
diff --git a/Robust.Client.Godot/Art/bootsplash.png b/Robust.Client.Godot/Art/bootsplash.png
deleted file mode 100644
index 73c75e4bd..000000000
Binary files a/Robust.Client.Godot/Art/bootsplash.png and /dev/null differ
diff --git a/Robust.Client.Godot/Art/bootsplash.png.import b/Robust.Client.Godot/Art/bootsplash.png.import
deleted file mode 100644
index c106ed7fb..000000000
--- a/Robust.Client.Godot/Art/bootsplash.png.import
+++ /dev/null
@@ -1,29 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path="res://.import/bootsplash.png-edab0c323b941bd4e8220bfb7e423146.stex"
-
-[deps]
-
-source_file="res://Art/bootsplash.png"
-dest_files=[ "res://.import/bootsplash.png-edab0c323b941bd4e8220bfb7e423146.stex" ]
-
-[params]
-
-compress/mode=0
-compress/lossy_quality=0.7
-compress/hdr_mode=0
-compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/HDR_as_SRGB=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
diff --git a/Robust.Client.Godot/Art/copyright.md b/Robust.Client.Godot/Art/copyright.md
deleted file mode 100755
index 5ab2a230b..000000000
--- a/Robust.Client.Godot/Art/copyright.md
+++ /dev/null
@@ -1,3 +0,0 @@
-* `background.png` a modified version from http://imgarcade.com/16-bit-space-background.html
-* `bootsplash.png` is a modified version of the logo on http://spacestation13.com
-* `Animal Silence.otf` is [this font](https://www.dafont.com/animal-silence.font). Somebody asked for permission years ago.
diff --git a/Robust.Client.Godot/ControlWrap.cs b/Robust.Client.Godot/ControlWrap.cs
deleted file mode 100644
index 57ab56e70..000000000
--- a/Robust.Client.Godot/ControlWrap.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using Godot;
-using System;
-
-namespace Robust.Client.GodotGlue
-{
- ///
- /// Wraps a Godot control so we get access to its virtual functions.
- ///
- public class ControlWrap : Godot.Control
- {
- public Func GetMinimumSizeOverride { get; set; }
- public Func HasPointOverride { get; set; }
- public Action DrawOverride { get; set; }
-
- public override Vector2 _GetMinimumSize()
- {
- return GetMinimumSizeOverride?.Invoke() ?? new Vector2();
- }
-
- public override bool HasPoint(Vector2 point)
- {
- return HasPointOverride?.Invoke(point) ?? false;
- }
-
- public override void _Draw()
- {
- DrawOverride?.Invoke();
- }
-
- protected override void Dispose(bool disposing)
- {
- base.Dispose(disposing);
-
- GetMinimumSizeOverride = null;
- HasPointOverride = null;
- DrawOverride = null;
- }
- }
-}
diff --git a/Robust.Client.Godot/MSBuild/SS14.SolutionSpecific.targets b/Robust.Client.Godot/MSBuild/SS14.SolutionSpecific.targets
deleted file mode 100644
index e390f7c7b..000000000
--- a/Robust.Client.Godot/MSBuild/SS14.SolutionSpecific.targets
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
- $(SolutionDir)..\packages\
- Yes
-
-
diff --git a/Robust.Client.Godot/MainScene.tscn b/Robust.Client.Godot/MainScene.tscn
deleted file mode 100644
index 34eada999..000000000
--- a/Robust.Client.Godot/MainScene.tscn
+++ /dev/null
@@ -1,9 +0,0 @@
-[gd_scene load_steps=2 format=2]
-
-[ext_resource path="res://SS14Loader.cs" type="Script" id=1]
-
-[node name="MainScene" type="Node" index="0"]
-
-script = ExtResource( 1 )
-
-
diff --git a/Robust.Client.Godot/Properties/AssemblyInfo.cs b/Robust.Client.Godot/Properties/AssemblyInfo.cs
deleted file mode 100644
index 7d1209de6..000000000
--- a/Robust.Client.Godot/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Reflection;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-
-[assembly: AssemblyTitle("Robust.Client.Godot")]
-[assembly: AssemblyDescription("SS14 Client glue code to connect the main client to Godot.")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-
-[assembly: AssemblyVersion("1.0.*")]
-
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
diff --git a/Robust.Client.Godot/Robust.Client.Godot.csproj b/Robust.Client.Godot/Robust.Client.Godot.csproj
deleted file mode 100644
index 2bb6597ca..000000000
--- a/Robust.Client.Godot/Robust.Client.Godot.csproj
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}
- Library
- .mono\temp\bin\$(Configuration)
- Robust.Client.Godot
- Robust.Client.Godot
- v4.7.1
- .mono\temp\obj
- $(BaseIntermediateOutputPath)\$(Configuration)
- prompt
- 4
- false
- 7.2
-
-
- true
- portable
- false
- DEBUG;
-
-
- portable
- true
-
-
-
- $(ProjectDir)\.mono\assemblies\GodotSharp.dll
- False
-
-
- $(ProjectDir)\..\Dependencies\godot\GodotSharp.dll
- False
-
-
- $(ProjectDir)\.mono\assemblies\GodotSharpEditor.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Robust.Client.Godot/SS14.Client.Godot.sln b/Robust.Client.Godot/SS14.Client.Godot.sln
deleted file mode 100644
index ed1578d9a..000000000
--- a/Robust.Client.Godot/SS14.Client.Godot.sln
+++ /dev/null
@@ -1,19 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Client.Godot", "Robust.Client.Godot.csproj", "{8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- Tools|Any CPU = Tools|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}.Release|Any CPU.Build.0 = Release|Any CPU
- {8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}.Tools|Any CPU.ActiveCfg = Tools|Any CPU
- {8AF31169-49B1-4A12-B8F4-2A0674A9E7CB}.Tools|Any CPU.Build.0 = Tools|Any CPU
- EndGlobalSection
-EndGlobal
diff --git a/Robust.Client.Godot/SS14Loader.cs b/Robust.Client.Godot/SS14Loader.cs
deleted file mode 100644
index d81358468..000000000
--- a/Robust.Client.Godot/SS14Loader.cs
+++ /dev/null
@@ -1,240 +0,0 @@
-using Godot;
-using System;
-using System.Reflection;
-using System.Collections.Generic;
-using Environment = System.Environment;
-
-// NOT Robust.Client.Godot so you can still use Godot.xxx without a using statement.
-namespace Robust.Client.GodotGlue
-{
- ///
- /// AutoLoad Node that starts the rest of the SS14 Client through .
- ///
- public class SS14Loader : Node
- {
- public static SS14Loader Instance { get; private set; }
- public bool ShuttingDown { get; private set; } = false;
- public Assembly SS14Assembly { get; private set; }
- public IReadOnlyList EntryPoints => entryPoints;
- private List entryPoints = new List();
-
- private bool Started = false;
-
- public override void _Ready()
- {
- Instance = this;
- CallDeferred(nameof(AnnounceMain));
- }
-
- public void AnnounceMain()
- {
- if (Started)
- {
- return;
- }
-
- // Hahahah fuck you Mono
- // Mono's incorrectly versioned bullshit copy of SharpZipLib is prioritized over the correct NuGet version.
- // This breaks our shit because they're not compatible.
- // This completely bypasses that.
- // Good fucking riddance.
- // I win.
- // Fucking deal with it.
- var path = Environment.CurrentDirectory;
- Assembly.LoadFile(System.IO.Path.Combine(path, "../bin/Client/ICSharpCode.SharpZipLib.dll"));
-
- Started = true;
- SS14Assembly = Assembly.LoadFrom("../bin/Client/Robust.Client.exe");
- var entryType = typeof(ClientEntryPoint);
- foreach (var type in SS14Assembly.GetTypes())
- {
- if (entryType.IsAssignableFrom(type) && !type.IsAbstract)
- {
- var instance = (ClientEntryPoint) Activator.CreateInstance(type);
- try
- {
- instance.Main(GetTree());
- }
- catch (Exception e)
- {
- GD.Print($"Caught exception inside Main:\n{e}");
- GD.Print("TO PREVENT LOG SPAM MAKING THE FORMER A PAIN TO FIND, THIS IS A FATAL ERROR.");
- GetTree().Quit();
- return;
- }
-
- entryPoints.Add(instance);
- }
- }
- }
-
- public override void _PhysicsProcess(float delta)
- {
- try
- {
- if (!ShuttingDown)
- {
- foreach (var entrypoint in EntryPoints)
- {
- try
- {
- entrypoint.PhysicsProcess(delta);
- }
- catch (Exception e)
- {
- ExceptionCaught(e);
- }
- }
- }
- }
- catch
- {
- GD.Print("Whoops");
- }
- }
-
- public override void _Process(float delta)
- {
- if (!ShuttingDown)
- {
- foreach (var entrypoint in EntryPoints)
- {
- try
- {
- entrypoint.FrameProcess(delta);
- }
- catch (Exception e)
- {
- ExceptionCaught(e);
- }
- }
- }
- }
-
- public override void _UnhandledInput(InputEvent inputEvent)
- {
- if (!ShuttingDown)
- {
- foreach (var entrypoint in EntryPoints)
- {
- try
- {
- entrypoint.Input(inputEvent);
- }
- catch (Exception e)
- {
- ExceptionCaught(e);
- }
- }
- }
- }
-
- public override void _Input(InputEvent inputEvent)
- {
- if (!ShuttingDown)
- {
- foreach (var entrypoint in EntryPoints)
- {
- try
- {
- entrypoint.PreInput(inputEvent);
- }
- catch (Exception e)
- {
- ExceptionCaught(e);
- }
- }
- }
- }
-
- public override void _Notification(int what)
- {
- if (!ShuttingDown)
- {
- switch (what)
- {
- case MainLoop.NotificationWmQuitRequest:
- ShuttingDown = true;
- foreach (var entrypoint in EntryPoints)
- {
- entrypoint.QuitRequest();
- }
-
- break;
- }
- }
- }
-
- public void ExceptionCaught(Exception exception)
- {
- foreach (var entrypoint in EntryPoints)
- {
- entrypoint.HandleException(exception);
- }
- }
- }
-
- ///
- /// Automatically gets created on AutoLoad by .
- ///
- public abstract class ClientEntryPoint
- {
- ///
- /// Called when the entry point gets created.
- ///
- public virtual void Main(SceneTree tree)
- {
- }
-
- ///
- /// Called every rendering frame by Godot.
- ///
- /// Time delta since last process tick.
- public virtual void FrameProcess(float delta)
- {
- }
-
- ///
- /// Called every physics process by Godot.
- /// This should be a fixed update rate.
- ///
- ///
- /// Time delta since the last process tick.
- /// Should be constant if the CPU isn't being tortured.
- ///
- public virtual void PhysicsProcess(float delta)
- {
- }
-
- ///
- /// Called whenever we receive input.
- /// The UI system can still intercept this beforehand.
- ///
- public virtual void Input(InputEvent inputEvent)
- {
- }
-
- ///
- /// Called before all other input events. This is before the UI system.
- ///
- public virtual void PreInput(InputEvent inputEvent)
- {
- }
-
- ///
- /// Called when the OS sends a quit request, such as the user clicking the window's close button.
- ///
- public virtual void QuitRequest()
- {
- }
-
- ///
- /// Invoked whenever an exception was caught going into Godot.
- ///
- /// The exception that was caught.
- public virtual void HandleException(Exception exception)
- {
- GD.Print($"Caught unhandled exception:\n{exception}");
- }
- }
-}
diff --git a/Robust.Client.Godot/SignalSubscriber/BaseGodotSignalSubscriber.cs b/Robust.Client.Godot/SignalSubscriber/BaseGodotSignalSubscriber.cs
deleted file mode 100644
index a4f16dcf1..000000000
--- a/Robust.Client.Godot/SignalSubscriber/BaseGodotSignalSubscriber.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-
-// Godot *really* doesn't like it if you inherit Godot.Object outside the main project.
-// in fact, it hard crashes.
-// So we use these tiny dummies to register signals.
-// It's not clean but do you have a better idea?
-namespace Robust.Client.GodotGlue
-{
- public abstract class BaseGodotSignalSubscriber : Godot.Reference
- {
- public void Connect(Godot.Object obj, string signal)
- {
- obj.Connect(signal, this, "SignalInvoker");
- }
-
- public void Disconnect(Godot.Object obj, string signal)
- {
- obj.Disconnect(signal, this, "SignalInvoker");
- }
-
- protected void HandleException(Exception exception)
- {
- SS14Loader.Instance.ExceptionCaught(exception);
- }
- }
-}
diff --git a/Robust.Client.Godot/SignalSubscriber/GodotSignalSubscriber0.cs b/Robust.Client.Godot/SignalSubscriber/GodotSignalSubscriber0.cs
deleted file mode 100644
index 211e3b897..000000000
--- a/Robust.Client.Godot/SignalSubscriber/GodotSignalSubscriber0.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-
-namespace Robust.Client.GodotGlue
-{
- public class GodotSignalSubscriber0 : BaseGodotSignalSubscriber
- {
- public event Action Signal;
-
- public void SignalInvoker()
- {
- try
- {
- Signal?.Invoke();
- }
- catch (Exception e)
- {
- HandleException(e);
- }
- }
-
- protected override void Dispose(bool disposing)
- {
- base.Dispose(disposing);
-
- if (disposing)
- {
- Signal = null;
- }
- }
- }
-}
diff --git a/Robust.Client.Godot/SignalSubscriber/GodotSignalSubscriber1.cs b/Robust.Client.Godot/SignalSubscriber/GodotSignalSubscriber1.cs
deleted file mode 100644
index ad634c184..000000000
--- a/Robust.Client.Godot/SignalSubscriber/GodotSignalSubscriber1.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-
-namespace Robust.Client.GodotGlue
-{
- public class GodotSignalSubscriber1 : BaseGodotSignalSubscriber
- {
- public event Action