diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index ce582670027..4d80d74daae 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -337,7 +337,7 @@ var/datum/subsystem/ticker/ticker
if(Player.stat != DEAD && !isbrain(Player))
num_survivors++
if(station_evacuated) //If the shuttle has already left the station
- if(!Player.onCentcom())
+ if(!Player.onCentcom() && !Player.onSyndieBase())
Player << "You managed to survive, but were marooned on [station_name()]..."
else
num_escapees++
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 2404daaba58..8afadbc4ce8 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -38,6 +38,19 @@
//finally check for centcom itself
return istype(T.loc,/area/centcom)
+/atom/proc/onSyndieBase()
+ var/turf/T = get_turf(src)
+ if(!T)
+ return 0
+
+ if(T.z != ZLEVEL_CENTCOM)//if not, don't bother
+ return 0
+
+ if(istype(T.loc,/area/shuttle/syndicate) || istype(T.loc,/area/syndicate_mothership))
+ return 1
+
+ return 0
+
/atom/proc/throw_impact(atom/hit_atom)
if(istype(hit_atom,/mob/living))
var/mob/living/M = hit_atom
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 9dc8fc0815a..990e9d1bdb5 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -300,7 +300,7 @@
acolytes_survived = 0
for(var/datum/mind/cult_mind in cult)
if (cult_mind.current && cult_mind.current.stat != DEAD)
- if(cult_mind.current.onCentcom())
+ if(cult_mind.current.onCentcom() || cult_mind.current.onSyndieBase())
acolytes_survived++
if(acolytes_survived>=acolytes_needed)
return 0
diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm
index 2d3e4e1c380..cceb0c6a622 100644
--- a/code/game/gamemodes/meteor/meteor.dm
+++ b/code/game/gamemodes/meteor/meteor.dm
@@ -34,6 +34,8 @@
if(player.onCentcom())
text += "
[player.real_name] escaped to the safety of Centcom."
+ else if(player.onSyndieBase())
+ text += "
[player.real_name] escaped to the (relative) safety of Syndicate Space."
else
text += "
[player.real_name] survived but is stranded without any hope of rescue."
diff --git a/code/game/gamemodes/monkey/monkey.dm b/code/game/gamemodes/monkey/monkey.dm
index dfdc1f1f139..18a62827b4f 100644
--- a/code/game/gamemodes/monkey/monkey.dm
+++ b/code/game/gamemodes/monkey/monkey.dm
@@ -89,7 +89,7 @@
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
for(var/mob/living/carbon/monkey/M in living_mob_list)
if (M.HasDisease(D))
- if(M.onCentcom())
+ if(M.onCentcom() || M.onSyndieBase())
escaped_monkeys++
if(escaped_monkeys >= monkeys_to_win)
return 1
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index a720cb47e75..e40d8bc6b3a 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -113,7 +113,7 @@
if(target && target.current)
if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite
return 1
- if(target.current.onCentcom())
+ if(target.current.onCentcom() || target.current.onSyndieBase())
return 0
return 1
@@ -209,7 +209,8 @@
if(/mob/living/silicon/ai, /mob/living/silicon/pai)
continue
if(get_area(player) == A)
- return 0
+ if(!player.mind.special_role && !istype(get_turf(player.mind.current), /turf/simulated/shuttle/floor4))
+ return 0
return 1
@@ -257,7 +258,7 @@
if(istype(location, /turf/simulated/floor/plasteel/shuttle/red)) // Fails traitors if they are in the shuttle brig -- Polymorph
return 0
- if(location.onCentcom())
+ if(location.onCentcom() || location.onSyndieBase())
return 1
return 0
diff --git a/html/changelogs/Incoming5643 - whycantwebefriend.yml b/html/changelogs/Incoming5643 - whycantwebefriend.yml
new file mode 100644
index 00000000000..d6cd2a65311
--- /dev/null
+++ b/html/changelogs/Incoming5643 - whycantwebefriend.yml
@@ -0,0 +1,8 @@
+author: Incoming5643
+
+delete-after: True
+
+changes:
+ - rscadd: "Antagonists with escape alone can now escape with others on the shuttle, so long as they are also antagonists."
+ - rscadd: "Antagonists with escape alone can also win if non-antagonists are on the shuttle provided they are locked in the brig."
+ - rscadd: "Escaping to syndicate space on board the nuke op shuttle is now a valid way to escape the station."