diff --git a/.vs/GS13/v16/Browse.VC.db b/.vs/GS13/v16/Browse.VC.db
new file mode 100644
index 00000000..6293875e
Binary files /dev/null and b/.vs/GS13/v16/Browse.VC.db differ
diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json
new file mode 100644
index 00000000..0cf5ea50
--- /dev/null
+++ b/.vs/ProjectSettings.json
@@ -0,0 +1,3 @@
+{
+ "CurrentProjectSetting": "No Configurations"
+}
\ No newline at end of file
diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json
new file mode 100644
index 00000000..6b611411
--- /dev/null
+++ b/.vs/VSWorkspaceState.json
@@ -0,0 +1,6 @@
+{
+ "ExpandedNodes": [
+ ""
+ ],
+ "PreviewInSolutionExplorer": false
+}
\ No newline at end of file
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
new file mode 100644
index 00000000..fa05a017
Binary files /dev/null and b/.vs/slnx.sqlite differ
diff --git a/GS13/GS13.dme b/GS13/GS13.dme
new file mode 100644
index 00000000..34af4462
--- /dev/null
+++ b/GS13/GS13.dme
@@ -0,0 +1,17 @@
+// DM Environment file for GS13.dme.
+// All manual changes should be made outside the BEGIN_ and END_ blocks.
+// New source code should be placed in .dm files: choose File/New --> Code File.
+
+// BEGIN_INTERNALS
+// END_INTERNALS
+
+// BEGIN_FILE_DIR
+#define FILE_DIR .
+// END_FILE_DIR
+
+// BEGIN_PREFERENCES
+// END_PREFERENCES
+
+// BEGIN_INCLUDE
+// END_INCLUDE
+
diff --git a/code/modules/projectiles/guns/misc/fatbeam.dm b/code/modules/projectiles/guns/misc/fatbeam.dm
new file mode 100644
index 00000000..db1a2c8d
--- /dev/null
+++ b/code/modules/projectiles/guns/misc/fatbeam.dm
@@ -0,0 +1,132 @@
+/obj/item/gun/fatbeam
+ name = "Fatbeam Gun"
+ desc = "New invention of GATO's most degenerate engineers."
+ icon = 'icons/obj/fatbeam.dmi'
+ icon_state = "chronogun"
+ item_state = "chronogun"
+ w_class = WEIGHT_CLASS_NORMAL
+
+ var/mob/living/current_target
+ var/last_check = 0
+ var/check_delay = 10 //Check los as often as possible, max resolution is SSobj tick though
+ var/max_range = 8
+ var/active = 0
+ var/datum/beam/current_beam = null
+ var/mounted = 0 //Denotes if this is a handheld or mounted version
+
+ weapon_weight = WEAPON_MEDIUM
+
+/obj/item/gun/fatbeam/Initialize()
+ . = ..()
+ START_PROCESSING(SSobj, src)
+
+/obj/item/gun/fatbeam/Destroy(mob/user)
+ STOP_PROCESSING(SSobj, src)
+ LoseTarget()
+ return ..()
+
+/obj/item/gun/fatbeam/dropped(mob/user)
+ ..()
+ LoseTarget()
+
+/obj/item/gun/fatbeam/equipped(mob/user)
+ ..()
+ LoseTarget()
+
+/obj/item/gun/fatbeam/proc/LoseTarget()
+ if(active)
+ qdel(current_beam)
+ current_beam = null
+ active = 0
+ on_beam_release(current_target)
+ current_target = null
+
+/obj/item/gun/fatbeam/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
+ if(isliving(user))
+ add_fingerprint(user)
+
+ if(current_target)
+ LoseTarget()
+ if(!isliving(target))
+ return
+
+ current_target = target
+ active = TRUE
+ current_beam = new(user,current_target,time=6000,beam_icon_state="fatbeam",btype=/obj/effect/ebeam/medical)
+ INVOKE_ASYNC(current_beam, /datum/beam.proc/Start)
+
+ SSblackbox.record_feedback("tally", "gun_fired", 1, type)
+
+/obj/item/gun/fatbeam/process()
+
+ var/source = loc
+ if(!mounted && !isliving(source))
+ LoseTarget()
+ return
+
+ if(!current_target)
+ LoseTarget()
+ return
+
+ if(world.time <= last_check+check_delay)
+ return
+
+ last_check = world.time
+
+ if(get_dist(source, current_target)>max_range || !los_check(source, current_target))
+ LoseTarget()
+ if(isliving(source))
+ to_chat(source, "You lose control of the beam!")
+ return
+
+ if(current_target)
+ on_beam_tick(current_target)
+
+/obj/item/gun/fatbeam/proc/los_check(atom/movable/user, mob/target)
+ var/turf/user_turf = user.loc
+ if(mounted)
+ user_turf = get_turf(user)
+ else if(!istype(user_turf))
+ return 0
+ var/obj/dummy = new(user_turf)
+ dummy.pass_flags |= PASSTABLE|PASSGLASS|PASSGRILLE //Grille/Glass so it can be used through common windows
+ for(var/turf/turf in getline(user_turf,target))
+ if(mounted && turf == user_turf)
+ continue //Mechs are dense and thus fail the check
+ if(turf.density)
+ qdel(dummy)
+ return 0
+ for(var/atom/movable/AM in turf)
+ if(!AM.CanPass(dummy,turf,1))
+ qdel(dummy)
+ return 0
+ for(var/obj/effect/ebeam/medical/B in turf)// Don't cross the str-beams!
+ if(B.owner.origin != current_beam.origin)
+ explosion(B.loc,0,1,3,4)
+ qdel(dummy)
+ return 0
+ qdel(dummy)
+ return 1
+
+/obj/item/gun/fatbeam/proc/on_beam_hit(var/mob/living/target)
+ return
+
+/obj/item/gun/fatbeam/proc/on_beam_tick(var/mob/living/target)
+ if(target.health != target.maxHealth)
+ new /obj/effect/temp_visual/heal(get_turf(target), "#FFC2F8")
+ target.nutrition += 100
+ return
+
+/obj/item/gun/fatbeam/proc/on_beam_release(var/mob/living/target)
+ return
+
+/obj/effect/ebeam/medical
+ name = "fattening beam"
+
+//////////////////////////////Mech Version///////////////////////////////
+/obj/item/gun/fatbeam/mech
+ mounted = 1
+
+/obj/item/gun/fatbeam/mech/Initialize()
+ . = ..()
+ STOP_PROCESSING(SSobj, src) //Mech mediguns do not process until installed, and are controlled by the holder obj
diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi
index bad913ec..509be330 100644
Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index e8e36dc6..cacfe25b 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/neck.dmi b/icons/mob/neck.dmi
index 96d6d793..6733e688 100644
Binary files a/icons/mob/neck.dmi and b/icons/mob/neck.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 42048eca..1452e389 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index a2e286d7..787c2e72 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi
index a3b4d00d..cf2fd945 100644
Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ
diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi
index 9543c12c..a1a4c748 100644
Binary files a/icons/obj/clothing/cloaks.dmi and b/icons/obj/clothing/cloaks.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index c568ea27..3759a177 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 95d36176..f74bf730 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index b81863b8..e62579c8 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/fatbeam.dmi b/icons/obj/fatbeam.dmi
new file mode 100644
index 00000000..c7105bde
Binary files /dev/null and b/icons/obj/fatbeam.dmi differ
diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi
index 64642b8a..09277581 100644
Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ
diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi
index d0718900..ed56f364 100644
Binary files a/modular_citadel/icons/mob/suit_digi.dmi and b/modular_citadel/icons/mob/suit_digi.dmi differ
diff --git a/strings/dreamstrings.txt b/strings/dreamstrings.txt
index e6cc9b3e..b434eb31 100644
--- a/strings/dreamstrings.txt
+++ b/strings/dreamstrings.txt
@@ -28,7 +28,7 @@ the %ADJECTIVE% brig
%A% %ADJECTIVE% shuttle
%A% %ADJECTIVE% laboratory
Nanotrasen
-Kinaris
+GATO
the Syndicate
the Wizard Federation
%ADJECTIVE% blood
diff --git a/strings/redpill.json b/strings/redpill.json
index 2526d254..2a0d9592 100644
--- a/strings/redpill.json
+++ b/strings/redpill.json
@@ -4,7 +4,7 @@
"Why is it called the emergency shuttle if it arrives every single shift?",
"Where does the Cook get all this meat from?",
"Space wind? How does that even make sense?",
- "Why does Kinaris hire Clowns and Mimes for every single station?",
+ "Why does GATO hire Clowns and Mimes for every single station?",
"Why is the station's air supply connected to the plasma tank?",
"Why are there fire alarms everywhere but no sprinklers?",
"Why is this a plasma research station if we know everything about plasma already?",
@@ -16,7 +16,7 @@
"How come a hole in the floor doesn't suck you out into space?",
"Why is space cold?",
"Why does space circle around on itself?",
- "Kinaris just clones us every shift.",
+ "GATO just clones us every shift.",
"There's no biological difference between lizards and humans.",
"Why is there a floor, but no roof?",
"The universe always ends after we reach CentCom.",
diff --git a/tgstation.dme b/tgstation.dme
index bb90d4ed..4b6791eb 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2622,6 +2622,7 @@
#include "code\modules\projectiles\guns\misc\beam_rifle.dm"
#include "code\modules\projectiles\guns\misc\blastcannon.dm"
#include "code\modules\projectiles\guns\misc\chem_gun.dm"
+#include "code\modules\projectiles\guns\misc\fatbeam.dm"
#include "code\modules\projectiles\guns\misc\grenade_launcher.dm"
#include "code\modules\projectiles\guns\misc\medbeam.dm"
#include "code\modules\projectiles\guns\misc\syringe_gun.dm"
diff --git a/tgui-next/packages/tgui/assets/bg-kinaris.svg b/tgui-next/packages/tgui/assets/bg-kinaris.svg
index 56502e7f..7be1bf30 100644
--- a/tgui-next/packages/tgui/assets/bg-kinaris.svg
+++ b/tgui-next/packages/tgui/assets/bg-kinaris.svg
@@ -1,63 +1,3 @@
-
-
-
-