diff --git a/mods/default/functions.lua b/mods/default/functions.lua
index 0137d912..3afaec88 100644
--- a/mods/default/functions.lua
+++ b/mods/default/functions.lua
@@ -88,37 +88,24 @@ end
 -- Lavacooling
 --
 
-default.cool_lava_source = function(pos)
-	minetest.set_node(pos, {name = "default:obsidian"})
-	minetest.sound_play("default_cool_lava",
-		{pos = pos, max_hear_distance = 16, gain = 0.25})
-end
-
-default.cool_lava_flowing = function(pos)
-	minetest.set_node(pos, {name = "default:stone"})
+default.cool_lava = function(pos, node)
+	if node.name == "default:lava_source" then
+		minetest.set_node(pos, {name = "default:obsidian"})
+	else -- Lava flowing
+		minetest.set_node(pos, {name = "default:stone"})
+	end
 	minetest.sound_play("default_cool_lava",
 		{pos = pos, max_hear_distance = 16, gain = 0.25})
 end
 
 minetest.register_abm({
-	nodenames = {"default:lava_flowing"},
+	nodenames = {"default:lava_source", "default:lava_flowing"},
 	neighbors = {"group:water"},
 	interval = 1,
-	chance = 2,
+	chance = 1,
 	catch_up = false,
 	action = function(...)
-		default.cool_lava_flowing(...)
-	end,
-})
-
-minetest.register_abm({
-	nodenames = {"default:lava_source"},
-	neighbors = {"group:water"},
-	interval = 1,
-	chance = 2,
-	catch_up = false,
-	action = function(...)
-		default.cool_lava_source(...)
+		default.cool_lava(...)
 	end,
 })
 
@@ -177,8 +164,8 @@ end
 minetest.register_abm({
 	nodenames = {"default:cactus"},
 	neighbors = {"group:sand"},
-	interval = 50,
-	chance = 20,
+	interval = 12,
+	chance = 83,
 	action = function(...)
 		default.grow_cactus(...)
 	end
@@ -186,9 +173,9 @@ minetest.register_abm({
 
 minetest.register_abm({
 	nodenames = {"default:papyrus"},
-	neighbors = {"default:dirt", "default:dirt_with_grass", "default:sand"},
-	interval = 50,
-	chance = 20,
+	neighbors = {"default:dirt", "default:dirt_with_grass"},
+	interval = 14,
+	chance = 71,
 	action = function(...)
 		default.grow_papyrus(...)
 	end
@@ -358,8 +345,9 @@ minetest.register_abm({
 
 minetest.register_abm({
 	nodenames = {"default:dirt"},
-	interval = 2,
-	chance = 200,
+	neighbors = {"air"},
+	interval = 6,
+	chance = 67,
 	catch_up = false,
 	action = function(pos, node)
 		local above = {x = pos.x, y = pos.y + 1, z = pos.z}
@@ -384,8 +372,8 @@ minetest.register_abm({
 
 minetest.register_abm({
 	nodenames = {"default:dirt_with_grass", "default:dirt_with_dry_grass"},
-	interval = 2,
-	chance = 20,
+	interval = 8,
+	chance = 50,
 	catch_up = false,
 	action = function(pos, node)
 		local above = {x = pos.x, y = pos.y + 1, z = pos.z}
@@ -407,7 +395,7 @@ minetest.register_abm({
 minetest.register_abm({
 	nodenames = {"default:cobble"},
 	neighbors = {"group:water"},
-	interval = 17,
+	interval = 16,
 	chance = 200,
 	catch_up = false,
 	action = function(pos, node)
diff --git a/mods/farming/api.lua b/mods/farming/api.lua
index 7123cbc1..a0c1992f 100644
--- a/mods/farming/api.lua
+++ b/mods/farming/api.lua
@@ -264,8 +264,8 @@ farming.register_plant = function(name, def)
 	minetest.register_abm({
 		nodenames = {"group:" .. pname, "group:seed"},
 		neighbors = {"group:soil"},
-		interval = 90,
-		chance = 2,
+		interval = 9,
+		chance = 20,
 		action = function(pos, node)
 			local plant_height = minetest.get_item_group(node.name, pname)
 
diff --git a/mods/fire/init.lua b/mods/fire/init.lua
index fc55b8dd..a5566628 100644
--- a/mods/fire/init.lua
+++ b/mods/fire/init.lua
@@ -170,7 +170,7 @@ minetest.register_abm({
 	nodenames = {"fire:basic_flame", "fire:permanent_flame"},
 	neighbors = {"group:puts_out_fire"},
 	interval = 3,
-	chance = 2,
+	chance = 1,
 	catch_up = false,
 	action = function(p0, node, _, _)
 		minetest.remove_node(p0)
@@ -189,7 +189,7 @@ if minetest.setting_getbool("disable_fire") then
 	minetest.register_abm({
 		nodenames = {"fire:basic_flame"},
 		interval = 7,
-		chance = 2,
+		chance = 1,
 		catch_up = false,
 		action = function(p0, node, _, _)
 			minetest.remove_node(p0)
diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua
index dd8e031d..dd90f4c9 100644
--- a/mods/flowers/init.lua
+++ b/mods/flowers/init.lua
@@ -76,8 +76,8 @@ end
 minetest.register_abm({
 	nodenames = {"group:flora"},
 	neighbors = {"default:dirt_with_grass", "default:desert_sand"},
-	interval = 50,
-	chance = 25,
+	interval = 13,
+	chance = 96,
 	action = function(pos, node)
 		pos.y = pos.y - 1
 		local under = minetest.get_node(pos)
diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua
index ea2933b6..7688d905 100644
--- a/mods/stairs/init.lua
+++ b/mods/stairs/init.lua
@@ -233,7 +233,7 @@ end
 if replace then
 	minetest.register_abm({
 		nodenames = {"group:slabs_replace"},
-		interval = 8,
+		interval = 16,
 		chance = 1,
 		action = function(pos, node)
 			node.name = minetest.registered_nodes[node.name].replace_name
diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua
index 6a459655..e10ac2fe 100644
--- a/mods/tnt/init.lua
+++ b/mods/tnt/init.lua
@@ -376,7 +376,7 @@ minetest.register_node("tnt:gunpowder_burning", {
 minetest.register_abm({
 	nodenames = {"tnt:tnt", "tnt:gunpowder"},
 	neighbors = {"fire:basic_flame", "default:lava_source", "default:lava_flowing"},
-	interval = 1,
+	interval = 4,
 	chance = 1,
 	action = burn,
 })