diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 6a2149d6ac3..c034db32fce 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -63,6 +63,24 @@
log_admin("[key_name(usr)] spawned a blob with strength [strength].")
new/datum/round_event/blob(strength)
+ else if(href_list["forceevent"])
+ var/datum/round_event_control/E = locate(href_list["forceevent"]) in events.control
+ if(E)
+ var/datum/round_event/event = E.runEvent()
+ if(event.announceWhen>0)
+ event.processing = 0
+ var/prompt = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No", "Cancel")
+ switch(prompt)
+ if("Cancel")
+ event.kill()
+ return
+ if("No")
+ event.announceWhen = -1
+ event.processing = 1
+ message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])", 1)
+ log_admin("[key_name(usr)] has triggered an event. ([E.name])")
+ return
+
else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"])
var/adminckey = href_list["dbsearchadmin"]
var/playerckey = href_list["dbsearchckey"]
diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm
index 59a29a5a3d6..0174bda76b3 100644
--- a/code/modules/events/event_manager.dm
+++ b/code/modules/events/event_manager.dm
@@ -109,23 +109,25 @@ var/datum/controller/event/events
-//allows a client to trigger an event (For Debugging Purposes)
-/client/proc/forceEvent(var/datum/round_event_control/E in events.control)
+//allows a client to trigger an event
+//aka Badmin Central
+/client/proc/forceEvent()
set name = "Trigger Event"
set category = "Fun"
if(!holder ||!check_rights(R_FUN))
return
- if(istype(E))
- var/datum/round_event/event = E.runEvent()
- if(event.announceWhen>0)
- event.processing = 0
- if(alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No") == "No")
- event.announceWhen = -1
- event.processing = 1
- message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])", 1)
- log_admin("[key_name(usr)] has triggered an event. ([E.name])")
+ holder.forceEvent()
+
+/datum/admins/proc/forceEvent()
+ var/dat = ""
+ for(var/datum/round_event_control/E in events.control)
+ dat += "
[E]"
+
+ var/datum/browser/popup = new(usr, "forceevent", "Force Random Event", 300, 750)
+ popup.set_content(dat)
+ popup.open()
/*
diff --git a/code/modules/events/holiday/halloween.dm b/code/modules/events/holiday/halloween.dm
index 88093e1f9ab..ad6a82e04df 100644
--- a/code/modules/events/holiday/halloween.dm
+++ b/code/modules/events/holiday/halloween.dm
@@ -1,5 +1,5 @@
/datum/round_event_control/spooky
- name = "2 SPOOKY!"
+ name = "2 SPOOKY! (Halloween)"
holidayID = "Halloween"
typepath = /datum/round_event/spooky
weight = -1 //forces it to be called, regardless of weight
diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm
index d7021e0e12d..5641bdfab23 100644
--- a/code/modules/events/holiday/xmas.dm
+++ b/code/modules/events/holiday/xmas.dm
@@ -1,5 +1,5 @@
/datum/round_event_control/treevenge
- name = "Treevenge"
+ name = "Treevenge (Christmas)"
holidayID = "Xmas"
typepath = /datum/round_event/treevenge
max_occurrences = 1