diff --git a/abms.lua b/abms.lua
index 5ee81b50618826c3d45d762bedc1722cf15b3b6c..d9f82e03dfe4ee20b1c9f1568a562cb7dbc75bfa 100644
--- a/abms.lua
+++ b/abms.lua
@@ -2,12 +2,18 @@
 local fortress = minetest.get_modpath("caverealms").."/schems/DMFort.mts"
 local fountain = minetest.get_modpath("caverealms").."/schems/DMFountain.mts"
 
+local DM_TOP = caverealms.config.dm_top -- -4000 --level at which Dungeon Master Realms start to appear
+
 --place Dungeon Master Statue fountains
 minetest.register_abm({
 	nodenames = {"caverealms:s_fountain"},
 	interval = 1.0,
 	chance = 1,
 	action = function(pos, node, active_object_count, active_object_count_wider)
+		if pos.y > DM_TOP then
+			minetest.remove_node(pos)
+			return
+		end
 		minetest.place_schematic(pos, fountain, "random", {}, true)
 	end,
 })
@@ -18,6 +24,10 @@ minetest.register_abm({
 	interval = 1.0,
 	chance = 1,
 	action = function(pos, node, active_object_count, active_object_count_wider)
+		if pos.y > DM_TOP then
+			minetest.remove_node(pos)
+			return
+		end
 		npos = {x=pos.x,y=pos.y-7,z=pos.z}
 		minetest.place_schematic(npos, fortress, "random", {}, true)
 	end,
diff --git a/textures/fire_basic_flame.png b/textures/fire_basic_flame.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a126e325f3ca5cde22e76b3a89a10187e82d3e1
Binary files /dev/null and b/textures/fire_basic_flame.png differ
diff --git a/textures/fire_basic_flame_animated.png b/textures/fire_basic_flame_animated.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b312e53316dfd96b90148fb00f2e3cc48457c14
Binary files /dev/null and b/textures/fire_basic_flame_animated.png differ