diff --git a/__DEFINES/mobs.dm b/__DEFINES/mobs.dm
index ff3bfd89f0d..c0bb3e8a549 100644
--- a/__DEFINES/mobs.dm
+++ b/__DEFINES/mobs.dm
@@ -43,4 +43,4 @@
#define CATBEASTBROWN 1
#define CATBEASTBLACK 2
-#define CONFUSED_MAGIC 1
\ No newline at end of file
+#define CONFUSED_MAGIC 1
diff --git a/__DEFINES/obj_defines.dm b/__DEFINES/obj_defines.dm
index d3b36413c87..5e535d7d23c 100644
--- a/__DEFINES/obj_defines.dm
+++ b/__DEFINES/obj_defines.dm
@@ -36,4 +36,9 @@ var/list/qualityByString = list(
//Glue states
#define GLUE_STATE_NONE 0
#define GLUE_STATE_TEMP 1
-#define GLUE_STATE_PERMA 2
\ No newline at end of file
+#define GLUE_STATE_PERMA 2
+
+// Spawners
+
+#define SPAWN_ON_TURF "turf"
+#define SPAWN_ON_LOC "loc"
diff --git a/code/datums/outfit/civilian.dm b/code/datums/outfit/civilian.dm
index 9fba146126b..2941806fc05 100644
--- a/code/datums/outfit/civilian.dm
+++ b/code/datums/outfit/civilian.dm
@@ -103,10 +103,7 @@
)
items_to_collect = list(
- /obj/item/ammo_casing/shotgun/beanbag = SURVIVAL_BOX,
- /obj/item/ammo_casing/shotgun/beanbag = SURVIVAL_BOX,
- /obj/item/ammo_casing/shotgun/beanbag = SURVIVAL_BOX,
- /obj/item/ammo_casing/shotgun/beanbag = SURVIVAL_BOX,
+ /obj/abstract/spawn_all/bartender = SURVIVAL_BOX,
/obj/item/weapon/reagent_containers/food/drinks/shaker = slot_l_store_str,
)
@@ -123,6 +120,15 @@
return
H.mind.store_memory("Frequencies list:
Service: [SER_FREQ]
")
+/obj/abstract/spawn_all/bartender
+ where_to_spawn = SPAWN_ON_LOC
+ to_spawn = list(
+ /obj/item/ammo_casing/shotgun/beanbag,
+ /obj/item/ammo_casing/shotgun/beanbag,
+ /obj/item/ammo_casing/shotgun/beanbag,
+ /obj/item/ammo_casing/shotgun/beanbag
+ )
+
// -- Chef
/datum/outfit/chef
diff --git a/code/modules/maps/spawners/spawners.dm b/code/modules/maps/spawners/spawners.dm
index a94d39d0e92..cf238122819 100644
--- a/code/modules/maps/spawners/spawners.dm
+++ b/code/modules/maps/spawners/spawners.dm
@@ -1415,11 +1415,17 @@
// Spawn all in the turf
/obj/abstract/spawn_all
var/list/to_spawn = list()
+ var/where_to_spawn = SPAWN_ON_TURF
/obj/abstract/spawn_all/New()
. = ..()
+ var/location
+ if (where_to_spawn == SPAWN_ON_TURF)
+ location = get_turf(src)
+ else
+ location = src.loc
for (var/thing in to_spawn)
- new thing(get_turf(src))
+ new thing(location)
qdel(src)
/obj/abstract/spawn_all/dredd_gear