diff --git a/code/WorkInProgress/Sigyn/Department Sec/jobs.dm b/code/WorkInProgress/Sigyn/Department Sec/jobs.dm
index d658c51c..6b25abdc 100644
--- a/code/WorkInProgress/Sigyn/Department Sec/jobs.dm
+++ b/code/WorkInProgress/Sigyn/Department Sec/jobs.dm
@@ -111,16 +111,16 @@ proc/assign_sec_to_department(var/mob/living/carbon/human/H)
/obj/item/clothing/under/rank/security/cargo/New()
var/obj/item/clothing/tie/armband/cargo/A = new /obj/item/clothing/tie/armband/cargo
- hastie = A
+ aband = A
/obj/item/clothing/under/rank/security/engine/New()
var/obj/item/clothing/tie/armband/engine/A = new /obj/item/clothing/tie/armband/engine
- hastie = A
+ aband = A
/obj/item/clothing/under/rank/security/science/New()
var/obj/item/clothing/tie/armband/science/A = new /obj/item/clothing/tie/armband/science
- hastie = A
+ aband = A
/obj/item/clothing/under/rank/security/med/New()
var/obj/item/clothing/tie/armband/medgreen/A = new /obj/item/clothing/tie/armband/medgreen
- hastie = A
\ No newline at end of file
+ aband = A
\ No newline at end of file
diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm
index ed055334..e0dbd4b2 100644
--- a/code/controllers/verbs.dm
+++ b/code/controllers/verbs.dm
@@ -49,7 +49,7 @@
msg_scopes("Admin [key_name_admin(usr)] has restarted the [controller] controller.")
return
-/client/proc/debug_controller(controller in list("Master","Failsafe","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply","Shuttles","Emergency Shuttle","Configuration","pAI", "Cameras", "Transfer Controller", "Gas Data", "Delta Level"))
+/client/proc/debug_controller(controller in list("Master","Failsafe","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply","Shuttles","Emergency Shuttle","Configuration","pAI", "Cameras", "Transfer Controller", "Gas Data", "Delta Level", "NanoUI"))
set category = "Debug"
set name = "Debug Controller"
set desc = "Debug the various periodic loop controllers for the game (be careful!)"
@@ -107,5 +107,9 @@
if("Gas Data")
debug_variables(gas_data)
feedback_add_details("admin_verv","DGasdata")
+ if("NanoUI")
+ debug_variables(nanomanager)
+ feedback_add_details("admin_verv","DNanoUI")
+
message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.")
return
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 164197d5..110a94b7 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -92,7 +92,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else if(istype(W, /obj/item/weapon/lighter/zippo))
var/obj/item/weapon/lighter/zippo/Z = W
if(Z.lit)
- light("With a flick of their wrist, [user] lights their [name] with their [W].")
+ light("With a flick of their wrist, [user] lights [name] with [W].")
else if(istype(W, /obj/item/weapon/lighter))
var/obj/item/weapon/lighter/L = W
@@ -102,7 +102,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else if(istype(W, /obj/item/weapon/match))
var/obj/item/weapon/match/M = W
if(M.lit)
- light("[user] lights their [name] with their [W].")
+ light("[user] lights their [name] with [W].")
else if(istype(W, /obj/item/weapon/melee/energy/sword))
var/obj/item/weapon/melee/energy/sword/S = W
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index cd7e9394..ffc6d8ac 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -50,8 +50,8 @@
log_str += " Last touched by: [src.fingerprintslast][last_touch_info]"
bombers += log_str
- message_admins("C4 Explosion: Last touched by: [src.fingerprintslast][last_touch_info]([user.ckey])(JMP)")
- message_admins("C4 Explosion: Last touched by: [src.fingerprintslast][last_touch_info]([user.ckey])(JMP)")
+ message_admins("C4 Explosion: Last touched by: [src.fingerprintslast][last_touch_info]([user.ckey])(JMP)")
+ message_mods("C4 Explosion: Last touched by: [src.fingerprintslast][last_touch_info]([user.ckey])(JMP)")
explosion(location, -1, -1, 2, 3)
if (istype(target, /turf/simulated/wall)) target:dismantle_wall(1)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index d3ebf9d8..11d00ff2 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -13,6 +13,7 @@
var/health = 100
var/lastbang
var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate
+ var/mob_capacity = 2
//then open it in a populated area to crash clients.
/obj/structure/closet/New()
@@ -80,6 +81,7 @@
return 0
var/itemcount = 0
+ var/mobcount = 0
//Cham Projector Exception
for(var/obj/effect/dummy/chameleon/AD in src.loc)
@@ -103,6 +105,11 @@
if(M.buckled || M.pinned.len)
continue
+ if(istype(M, /mob/living/carbon/human))
+ if(mobcount >= mob_capacity)
+ continue
+ mobcount++
+
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
diff --git a/code/modules/admin/admin_memo.dm b/code/modules/admin/admin_memo.dm
index 133f6d10..84c502ba 100644
--- a/code/modules/admin/admin_memo.dm
+++ b/code/modules/admin/admin_memo.dm
@@ -1,9 +1,10 @@
#define MEMOFILE "data/memo.sav" //where the memos are saved
+#define PLAYERMEMOFILE "data/pmemo.sav" //where the player memos are saved
#define ENABLE_MEMOS 1 //using a define because screw making a config variable for it. This is more efficient and purty.
//switch verb so we don't spam up the verb lists with like, 3 verbs for this feature.
/client/proc/admin_memo(task in list("write","show","delete"))
- set name = "Memo"
+ set name = "Admin Memo"
set category = "Server"
if(!ENABLE_MEMOS) return
if(!check_rights(0)) return
@@ -50,5 +51,62 @@
F.dir.Remove(ckey)
src << "Removed Memo created by [ckey]."
+//switch verb so we don't spam up the verb lists with like, 3 verbs for this feature.
+/client/verb/memo_player()
+ set name = "Player Memo"
+ set category = "OOC"
+ if(!ENABLE_MEMOS) return
+ admin_memo_player_show()
+
+/client/proc/admin_memo_player(task in list("write","show","delete"))
+ set name = "Player Memo"
+ set category = "Server"
+
+ if(!ENABLE_MEMOS) return
+ if(!check_rights(0)) return
+ switch(task)
+ if("write") admin_memo_player_write()
+ if("show") admin_memo_player_show()
+ if("delete") admin_memo_player_delete()
+
+//write a message
+/client/proc/admin_memo_player_write()
+ var/savefile/F = new(PLAYERMEMOFILE)
+ if(F)
+ var/memo = input(src,"Type your memo\n(Leaving it blank will delete your current memo):","Write Memo",null) as null|message
+ switch(memo)
+ if(null)
+ return
+ if("")
+ F.dir.Remove(ckey)
+ src << "Memo removed"
+ return
+ if( findtext(memo,"