diff --git a/code/game/gamemodes/cult/cult_datums.dm b/code/game/gamemodes/cult/cult_datums.dm
index 6122ce2c01f..34ff3efe978 100644
--- a/code/game/gamemodes/cult/cult_datums.dm
+++ b/code/game/gamemodes/cult/cult_datums.dm
@@ -89,6 +89,9 @@
entity_title2 = "The One Who Beckons"
entity_title3 = "The Ferryman of Oblivion"
+ cult_wall_icon_state = "deathcult"
+ cult_floor_icon_state = "carpet-broken"
+
artificer_name = "Boneshaper"
behemoth_name = "Draugr"
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index ecbea9b23fd..e0f3afeed69 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -290,12 +290,27 @@
to_chat(user, "\The [src] flickers out of your hands, too eager to move!")
return
+ var/outer_tele_radius = 0
+ var/inner_tele_radius = 9
+
var/mob/living/carbon/C = user
var/turf/mobloc = get_turf(C)
- var/turf/destination = get_teleport_loc(mobloc,C,9,1,3,1,0,1)
+ var/list/turfs = new/list()
+ for(var/turf/T in range(user, outer_tele_radius))
+ if(T in range(user, inner_tele_radius))
+ continue
+ if(istype(T, /turf/space))
+ continue
+ if(T.x > world.maxx-outer_tele_radius || T.x < outer_tele_radius)
+ continue //putting them at the edge is dumb
+ if(T.y > world.maxy-outer_tele_radius || T.y < outer_tele_radius)
+ continue
- if(destination)
+ turfs += T
+
+ if(turfs.len)
uses--
+ var/turf/destination = pick(turfs)
if(uses <= 0)
icon_state ="shifter_drained"
playsound(mobloc, "sparks", 50, 1)
diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm
index 8292206402b..58bcfe118fa 100644
--- a/code/game/turfs/simulated/floor/plating.dm
+++ b/code/game/turfs/simulated/floor/plating.dm
@@ -135,7 +135,8 @@
/turf/simulated/floor/engine/cult/New()
..()
- icon_state = ticker.mode.cultdat.cult_floor_icon_state
+ if(ticker.mode)//only do this if the round is going..otherwise..fucking asteroid..
+ icon_state = ticker.mode.cultdat.cult_floor_icon_state
/turf/simulated/floor/engine/cult/narsie_act()
return
diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm
index a2eb6581172..9aca6f4918e 100644
--- a/code/game/turfs/simulated/walls_misc.dm
+++ b/code/game/turfs/simulated/walls_misc.dm
@@ -5,12 +5,14 @@
icon_state = "cult"
walltype = "cult"
canSmoothWith = null
+ smooth = SMOOTH_FALSE
/turf/simulated/wall/cult/New()
- new /obj/effect/overlay/temp/cult/turf(src)
- icon_state = ticker.mode.cultdat.cult_wall_icon_state
- walltype = ticker.mode.cultdat.cult_wall_icon_state
..()
+ if(ticker.mode)//game hasn't started offically don't do shit..
+ new /obj/effect/overlay/temp/cult/turf(src)
+ icon_state = ticker.mode.cultdat.cult_wall_icon_state
+ walltype = ticker.mode.cultdat.cult_wall_icon_state
/turf/simulated/wall/cult/artificer
name = "runed stone wall"
diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm
index 795e94f1d61..ee8f6d96c67 100644
--- a/code/modules/power/singularity/narsie.dm
+++ b/code/modules/power/singularity/narsie.dm
@@ -26,7 +26,7 @@
..()
icon_state = ticker.mode.cultdat.entity_icon_state
name = ticker.mode.cultdat.entity_name
- to_chat(world, "NAR-SIE HAS RISEN")
+ to_chat(world, " [name] HAS RISEN")
world << pick(sound('sound/hallucinations/im_here1.ogg'), sound('sound/hallucinations/im_here2.ogg'))
var/area/A = get_area(src)
diff --git a/icons/turf/walls/cult_wall.dmi b/icons/turf/walls/cult_wall.dmi
index 3ab86f21370..052b3f4f8cd 100644
Binary files a/icons/turf/walls/cult_wall.dmi and b/icons/turf/walls/cult_wall.dmi differ