diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index b6e38961..ce70d501 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -104,7 +104,7 @@
var/health_threshold_dead = -100
var/organ_health_multiplier = 1
- var/organ_regeneration_multiplier = 1
+ var/organ_regeneration_multiplier = 0
var/bones_can_break = 0
var/limbs_can_break = 0
diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm
index 226c4722..5c5a038b 100644
--- a/code/game/machinery/telecomms/traffic_control.dm
+++ b/code/game/machinery/telecomms/traffic_control.dm
@@ -15,7 +15,7 @@
var/list/viewingcode = list()
var/obj/machinery/telecomms/server/SelectedServer
- var/network = "NULL" // the network to probe
+ var/network = "tcommsat" // the network to probe
var/temp = "" // temporary feedback messages
var/storedcode = "" // code stored
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index a28da73f..84aae5bc 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -19,6 +19,12 @@
icon_state = "policehelm"
flags_inv = 0
+/obj/item/clothing/head/helmet/secfcap
+ name = "officer's cap"
+ desc = "A security officer's cap."
+ icon_state = "officercap"
+ flags_inv = 0
+
/obj/item/clothing/head/helmet/riot
name = "riot helmet"
desc = "It's a helmet specifically designed to protect against close range attacks."
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index d0d91efb..36fbc439 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -32,6 +32,11 @@
icon_state = "warden_jacket"
item_state = "armor"
+/obj/item/clothing/suit/armor/vest/warden/jacket
+ name = "Warden's jacket"
+ desc = "An armoured jacket with silver rank pips and livery."
+ icon_state = "formal_warden"
+ item_state = "formal_warden"
/obj/item/clothing/suit/armor/riot
name = "Riot Suit"
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 73bef0cd..4b1d9576 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -58,6 +58,16 @@
item_state = "warden_corporate"
item_color = "warden_corporate"
+/obj/item/clothing/under/rank/security/formal
+ icon_state = "sec_f"
+ item_state = "sec_f"
+ item_color = "sec_f"
+
+/obj/item/clothing/under/rank/warden/formal
+ icon_state = "warden_f"
+ item_state = "warden_f"
+ item_color = "warden_f"
+
/obj/item/clothing/under/tactical
name = "tactical jumpsuit"
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection."
@@ -128,6 +138,11 @@
item_state = "hos_corporate"
item_color = "hos_corporate"
+/obj/item/clothing/under/rank/head_of_security/formal
+ icon_state = "hos_f"
+ item_state = "hos_f"
+ item_color = "hos_f"
+
/obj/item/clothing/head/helmet/HoS
name = "Head of Security Hat"
desc = "The hat of the Head of Security. For showing the officers who's in charge."
@@ -156,6 +171,11 @@
flags_inv = 0
siemens_coefficient = 0.6
+/obj/item/clothing/suit/armor/hos/formal
+ name = "Head of Security's jacket"
+ desc = "An armoured jacket with golden rank pips and livery."
+ icon_state = "formal_hos"
+ item_state = "formal_hos"
/obj/item/clothing/head/helmet/HoS/dermal
name = "Dermal Armour Patch"
diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index 2ef4e08f..47778073 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -71,9 +71,13 @@
return
var/track = null
-
+ var/speaker_name
var/style = "body"
+ if(!language)
+ language = new /datum/language/common
+// if(!speaker)
+
//non-verbal languages are garbled if you can't see the speaker. Yes, this includes if they are inside a closet.
if (language && (language.flags & NONVERBAL))
if (!speaker || (src.sdisabilities & BLIND || src.blinded) || !(speaker in view(src)))
@@ -94,13 +98,13 @@
if(hard_to_hear)
message = stars(message)
-
- var/speaker_name = speaker.name
+ if(speaker)
+ speaker_name = speaker.name
if(vname)
speaker_name = vname
- if(istype(speaker, /mob/living/carbon/human))
+ if(speaker && (istype(speaker, /mob/living/carbon/human)))
var/mob/living/carbon/human/H = speaker
if(H.voice)
speaker_name = H.voice
@@ -114,7 +118,7 @@
var/jobname // the mob's "job"
var/mob/living/carbon/human/impersonating //The crewmember being impersonated, if any.
- if (ishuman(speaker))
+ if (speaker && (ishuman(speaker)))
var/mob/living/carbon/human/H = speaker
if((H.wear_id && istype(H.wear_id,/obj/item/weapon/card/id/syndicate)) && (H.wear_mask && istype(H.wear_mask,/obj/item/clothing/mask/gas/voice)))
diff --git a/data/investigate/gravity.html b/data/investigate/gravity.html
index 359e2093..4daa1c89 100644
--- a/data/investigate/gravity.html
+++ b/data/investigate/gravity.html
@@ -1,6 +1,22 @@
-04:09 [0x20078fb] (92,152,1) || the gravitational generator has regained power.
-04:09 [0x20078fb] (92,152,1) || the gravitational generator is now charging.
-04:10 [0x20078fb] (92,152,1) || the gravitational generator has regained power.
-04:10 [0x20078fb] (92,152,1) || the gravitational generator is now charging.
-04:10 [0x20078fb] (92,152,1) || the gravitational generator has regained power.
-04:10 [0x20078fb] (92,152,1) || the gravitational generator is now charging.
+03:56 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+03:56 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+03:56 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+03:56 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+03:56 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+03:56 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:01 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:01 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:06 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:06 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:11 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:11 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:16 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:16 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:21 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:21 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:26 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:26 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:31 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:31 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
+04:36 [0x20078f6] (92,152,1) || the gravitational generator has regained power.
+04:36 [0x20078f6] (92,152,1) || the gravitational generator is now charging.
diff --git a/html/changelog.html b/html/changelog.html
index 8e0e484e..7fef8823 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,23 @@ should be listed in the changelog upon commit though. Thanks. -->
+