diff --git a/mods/vipworld/bushes/depends.txt b/mods/vipworld/bushes/depends.txt
new file mode 100644
index 0000000000000000000000000000000000000000..17c1df498026e43035e8d5d62bb246fa22e01e8a
--- /dev/null
+++ b/mods/vipworld/bushes/depends.txt
@@ -0,0 +1,3 @@
+default
+stonage?
+sumpf?
diff --git a/mods/vipworld/bushes/init.lua b/mods/vipworld/bushes/init.lua
new file mode 100644
index 0000000000000000000000000000000000000000..0079d42f1216dee3444d3e1667615ffef70f9719
--- /dev/null
+++ b/mods/vipworld/bushes/init.lua
@@ -0,0 +1,128 @@
+-- Bushes Mod by Mossmanikin, Evergreen, & Neuromancer
+-- The initial code for this was taken from Mossmanikin's Grasses Mod,
+-- then heavilly modified by Neuromancer for this mod.
+-- Mossmanikin also greatly helped with providing samples for coding.
+-- bush leaf textures are from VannessaE's moretrees mod.
+-- (Leaf texture created by RealBadAngel or VanessaE)
+-- Branch textures created by Neuromancer.
+
+-- support for i18n
+  abstract_bushes = {}
+
+  minetest.register_node("bushes:youngtree2_bottom", {
+	description = "Young Tree 2 (bottom)",
+ drawtype="nodebox",
+ tiles = {"bushes_youngtree2trunk.png"},
+	inventory_image = "bushes_youngtree2trunk_inv.png",
+	wield_image = "bushes_youngtree2trunk_inv.png",
+paramtype = "light",
+	walkable = false,
+	is_ground_content = true,
+node_box = {
+	type = "fixed",
+	fixed = {
+		--{0.375000,-0.500000,-0.500000,0.500000,0.500000,-0.375000}, --NodeBox 1
+		{-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1
+	}
+},
+	groups = {snappy=3,flammable=2},
+	sounds = default.node_sound_leaves_defaults(),
+	drop = 'default:stick'
+})
+
+  local BushBranchCenter			= { {1,1}, {3,2} }
+for i in pairs(BushBranchCenter) do
+	local Num		= BushBranchCenter[i][1]
+	local TexNum	= BushBranchCenter[i][2]
+	minetest.register_node("bushes:bushbranches"..Num, {
+		description = "Bush Branches @1", Num,
+		drawtype = "nodebox",
+		tiles = {
+			"bushes_leaves_"..TexNum..".png",
+			"bushes_branches_center_"..TexNum..".png"
+		},
+		node_box = {
+			type = "fixed",
+			fixed = {
+				{0, -1/2, -1/2, -1/4, 1/2, 1/2},
+				{0, -1/2, -1/2, 1/4, 1/2, 1/2}
+			},
+		},
+		selection_box = {
+			type = "fixed",
+			fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2},
+		},
+		inventory_image = "bushes_branches_center_"..TexNum..".png",
+		paramtype = "light",
+			paramtype2 = "facedir",
+				sunlight_propagates = true,
+		groups = {
+		--	tree=1, -- MM: disabled because some recipes use group:tree for trunks
+			snappy=3,
+			flammable=2,
+			leaves=1
+		},
+		sounds = default.node_sound_leaves_defaults(),
+		drop = 'default:stick 4'
+	})
+end
+
+local BushBranchSide			= { {2,1}, {4,2} }
+for i in pairs(BushBranchSide) do
+	local Num		= BushBranchSide[i][1]
+	local TexNum	= BushBranchSide[i][2]
+	minetest.register_node("bushes:bushbranches"..Num, {
+		description = "Bush Branches @1", Num,
+		drawtype = "nodebox",
+		tiles = {
+--[[top]]	"bushes_leaves_"..TexNum..".png",
+--[[bottom]]"bushes_branches_center_"..TexNum..".png",
+--[[right]]	"bushes_branches_left_"..TexNum..".png",
+--[[left]]	"bushes_branches_right_"..TexNum..".png", -- MM: We could also mirror the previous here,
+--[[back]]	"bushes_branches_center_"..TexNum..".png",--     unless U really want 'em 2 B different
+--[[front]]	"bushes_branches_right_"..TexNum..".png"
+		},
+		node_box = {
+			type = "fixed",
+			fixed = {
+--				{ left	 , bottom  , front, right   , top     , back    }
+				{0.137748,-0.491944, 0.5  ,-0.125000,-0.179444,-0.007790}, --NodeBox 1
+				{0.262748,-0.185995, 0.5  ,-0.237252, 0.126505,-0.260269}, --NodeBox 2
+				{0.500000, 0.125000, 0.5  ,-0.500000, 0.500000,-0.500000}, --NodeBox 3
+			},
+		},
+		selection_box = {
+			type = "fixed",
+			fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2},
+		},
+		inventory_image = "bushes_branches_right_"..TexNum..".png",
+		paramtype = "light",
+			paramtype2 = "facedir",
+				sunlight_propagates = true,
+		groups = {
+		--	tree=1, -- MM: disabled because some recipes use group:tree for trunks
+			snappy=3,
+			flammable=2,
+			leaves=1
+		},
+		sounds = default.node_sound_leaves_defaults(),
+		drop = 'default:stick 3'
+	})
+end
+
+local BushLeafNode			= { {1}, {2}}
+for i in pairs(BushLeafNode) do
+	local Num = BushLeafNode[i][1]
+	minetest.register_node("bushes:BushLeaves"..Num, {
+		description = "Bush Leaves @1", Num,
+		drawtype = "allfaces_optional",
+		tiles = {"bushes_leaves_"..Num..".png"},
+		paramtype = "light",
+		groups = {	-- MM: Should we add leafdecay?
+			snappy=3,
+			flammable=2,
+			attached_node=1
+		},
+		sounds = default.node_sound_leaves_defaults(),
+	})
+end
diff --git a/mods/vipworld/bushes/textures/bushes_branches_center_1.png b/mods/vipworld/bushes/textures/bushes_branches_center_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..bac3ee457bdc20df6f70ef3d4150e84704cd60a6
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_branches_center_1.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_branches_center_2.png b/mods/vipworld/bushes/textures/bushes_branches_center_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c21edf6a69368afc3e5710a19a5012c6e6530bef
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_branches_center_2.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_branches_left_1.png b/mods/vipworld/bushes/textures/bushes_branches_left_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..120f100f043a44627e2c3962806f517e7f2ab2b0
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_branches_left_1.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_branches_left_2.png b/mods/vipworld/bushes/textures/bushes_branches_left_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c17bac34b66b43c5131f80b7ba984fde03d3e67
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_branches_left_2.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_branches_right_1.png b/mods/vipworld/bushes/textures/bushes_branches_right_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..af5de67cee12c651147a1b740e897ee0bc4bc3eb
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_branches_right_1.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_branches_right_2.png b/mods/vipworld/bushes/textures/bushes_branches_right_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fb8332363eaf923b2a4264e46b0e6f3e3438449
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_branches_right_2.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_leaves_1.png b/mods/vipworld/bushes/textures/bushes_leaves_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..594c958353255103ba1f8091e905ea42a210f431
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_leaves_1.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_leaves_2.png b/mods/vipworld/bushes/textures/bushes_leaves_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6de4829367c815615988c4d36808a134cc20e1a
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_leaves_2.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_youngtree2trunk.png b/mods/vipworld/bushes/textures/bushes_youngtree2trunk.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea685e3a91100ba3cdb73d4b4983e701fb216d93
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_youngtree2trunk.png differ
diff --git a/mods/vipworld/bushes/textures/bushes_youngtree2trunk_inv.png b/mods/vipworld/bushes/textures/bushes_youngtree2trunk_inv.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d6728f2c262708145b2d966a55189b2f8811c59
Binary files /dev/null and b/mods/vipworld/bushes/textures/bushes_youngtree2trunk_inv.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BlockBranch1.png b/mods/vipworld/bushes/textures/old & unused/BlockBranch1.png
new file mode 100644
index 0000000000000000000000000000000000000000..28fe91fe0f86cbd903e1114078b27e904ce58498
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BlockBranch1.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BlockBranch1L.png b/mods/vipworld/bushes/textures/old & unused/BlockBranch1L.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d8a8e2cab2cb8b6d4e33fd253d34fb5bb7d1f0a
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BlockBranch1L.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BlockBranch1R.png b/mods/vipworld/bushes/textures/old & unused/BlockBranch1R.png
new file mode 100644
index 0000000000000000000000000000000000000000..514b888b2e30b179e2dd41f801fc02f446060ddb
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BlockBranch1R.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranches1.png b/mods/vipworld/bushes/textures/old & unused/BushBranches1.png
new file mode 100644
index 0000000000000000000000000000000000000000..5bb2b46f3188f4a28842833d4121f8cd7388bf80
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranches1.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranches1sm.png b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm.png
new file mode 100644
index 0000000000000000000000000000000000000000..5574f38fb718dd580664068abd1e1aa70310464b
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranches1sm2.png b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm2.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ffd2f36159e128e45de869c5ab3bd067e435796
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm2.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranches1sm3.png b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm3.png
new file mode 100644
index 0000000000000000000000000000000000000000..5bb9bf5baa043a0edb7c47d170738f88cfb7459d
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm3.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranches1sm4.png b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm4.png
new file mode 100644
index 0000000000000000000000000000000000000000..b204feffcedd2c74ab494e2734fa5943039e3ab9
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranches1sm4.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranchesCenter.png b/mods/vipworld/bushes/textures/old & unused/BushBranchesCenter.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c9b5af17fa23b5af9591aec354873a13a4dc0e9
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranchesCenter.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranchesSide1.png b/mods/vipworld/bushes/textures/old & unused/BushBranchesSide1.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca95dd3cb0c3c2824592b98022de36934c2f2101
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranchesSide1.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/BushBranchesSide2.png b/mods/vipworld/bushes/textures/old & unused/BushBranchesSide2.png
new file mode 100644
index 0000000000000000000000000000000000000000..d62499e8336cf677ac6bf3528a02955713114277
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/BushBranchesSide2.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/blank.png b/mods/vipworld/bushes/textures/old & unused/blank.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed495a8214f2c7f970731929c35a7e4222833259
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/blank.png differ
diff --git a/mods/vipworld/bushes/textures/old & unused/moretrees_pine_leaves3.png b/mods/vipworld/bushes/textures/old & unused/moretrees_pine_leaves3.png
new file mode 100644
index 0000000000000000000000000000000000000000..57d077d0b07f174c9f4438c5222f67fa6ee1a145
Binary files /dev/null and b/mods/vipworld/bushes/textures/old & unused/moretrees_pine_leaves3.png differ
diff --git a/mods/vipworld/bushes_classic/cooking.lua b/mods/vipworld/bushes_classic/cooking.lua
new file mode 100644
index 0000000000000000000000000000000000000000..71cae9155f173798fdb5a2c83ce15ad03afa6766
--- /dev/null
+++ b/mods/vipworld/bushes_classic/cooking.lua
@@ -0,0 +1,102 @@
+-- support for i18n
+
+-- Basket
+
+minetest.register_craft({
+	output = "bushes:basket_empty",
+	recipe = {
+		{ "default:stick", "default:stick", "default:stick" },
+		{ "", "default:stick", "" },
+	},
+})
+
+-- override farming_plus strawberry and add food_ group
+if minetest.get_modpath("farming_plus") then
+
+	minetest.override_item("farming_plus:strawberry_item", {
+		groups = {food_strawberry = 1, food_berry = 1, flammable = 2},
+	})
+end
+
+
+for i, berry in ipairs(bushes_classic.bushes) do
+
+	local groups = {food_berry = 1, flammable = 2}
+
+	if berry ~= "mixed_berry" then
+
+		groups["food_" .. berry] = 1
+
+		-- Berry
+		minetest.register_craftitem(":bushes:"..berry, {
+			description = bushes_classic.bushes_descriptions[i][1],
+			inventory_image = "bushes_"..berry..".png",
+			groups = groups,
+			on_use = minetest.item_eat(1),
+		})
+	end
+
+	-- Raw pie
+	minetest.register_craftitem(":bushes:"..berry.."_pie_raw", {
+		description = bushes_classic.bushes_descriptions[i][2],
+		inventory_image = "bushes_"..berry.."_pie_raw.png",
+		on_use = minetest.item_eat(4),
+	})
+
+	if berry ~= "mixed_berry" then
+
+		minetest.register_craft({
+			output = "bushes:"..berry.."_pie_raw 1",
+			recipe = {
+			{ "group:food_sugar", "farming:flour", "group:food_sugar" },
+			{ "group:food_"..berry, "group:food_"..berry, "group:food_"..berry },
+			},
+		})
+	else
+		minetest.register_craft({
+			output = "bushes:mixed_berry_pie_raw 2",
+			recipe = {
+			{ "group:food_sugar", "farming:flour", "group:food_sugar" },
+			{ "group:food_berry", "group:food_berry", "group:food_berry" },
+			{ "group:food_berry", "group:food_berry", "group:food_berry" },
+			},
+		})
+	end
+
+	-- Cooked pie
+	minetest.register_craftitem(":bushes:"..berry.."_pie_cooked", {
+		description = bushes_classic.bushes_descriptions[i][3],
+		inventory_image = "bushes_"..berry.."_pie_cooked.png",
+		on_use = minetest.item_eat(6),
+	})
+
+	minetest.register_craft({
+		type = "cooking",
+		output = "bushes:"..berry.."_pie_cooked",
+		recipe = "bushes:"..berry.."_pie_raw",
+		cooktime = 30,
+	})
+
+	-- Slice of pie
+	minetest.register_craftitem(":bushes:"..berry.."_pie_slice", {
+		description = bushes_classic.bushes_descriptions[i][4],
+		inventory_image = "bushes_"..berry.."_pie_slice.png",
+		on_use = minetest.item_eat(1),
+	})
+
+	minetest.register_craft({
+		output = "bushes:"..berry.."_pie_slice 6",
+		recipe = {
+		{ "bushes:"..berry.."_pie_cooked" },
+		},
+	})
+
+	-- Basket with pies
+	minetest.register_craft({
+		output = "bushes:basket_"..berry.." 1",
+		recipe = {
+		{ "bushes:"..berry.."_pie_cooked", "bushes:"..berry.."_pie_cooked", "bushes:"..berry.."_pie_cooked" },
+		{ "", "bushes:basket_empty", "" },
+		},
+	})
+end
diff --git a/mods/vipworld/bushes_classic/image_credits.txt b/mods/vipworld/bushes_classic/image_credits.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a4ddc519a4cfd01217f11a6bb45e32c783d14a09
--- /dev/null
+++ b/mods/vipworld/bushes_classic/image_credits.txt
@@ -0,0 +1,5 @@
+strawberry: http://www.clker.com/clipart-4060.html
+blueberry: http://www.clker.com/clipart-cerezafiro12.html
+blackberry:  http://www.clker.com/clipart-blackberry-2.html
+raspberry: http://www.clker.com/clipart-simple-raspberry.html
+gooseberry:  http://www.clker.com/clipart-26281.html
diff --git a/mods/vipworld/bushes_classic/init.lua b/mods/vipworld/bushes_classic/init.lua
new file mode 100644
index 0000000000000000000000000000000000000000..3cbc7191d907ee7a69b866c4291427d1f15dad97
--- /dev/null
+++ b/mods/vipworld/bushes_classic/init.lua
@@ -0,0 +1,31 @@
+-- Bushes classic mod originally by unknown
+-- now maintained by VanessaE
+
+bushes_classic = {}
+
+-- support for i18n
+
+bushes_classic.bushes = {
+  "strawberry",
+	"blackberry",
+	"blueberry",
+	"raspberry",
+	"gooseberry",
+	"mixed_berry"
+}
+
+bushes_classic.bushes_descriptions = {
+	{"Strawberry", "Raw Strawberry pie", "Cooked Strawberry pie", "Slice of Strawberry pie", "Basket with Strawberry pies", "Strawberry Bush"},
+	{"Blackberry", "Raw Blackberry pie", "Cooked Blackberry pie", "Slice of Blackberry pie", "Basket with Blackberry pies", "Blackberry Bush"},
+	{"Blueberry", "Raw Blueberry pie", "Cooked Blueberry pie", "Slice of Blueberry pie", "Basket with Blueberry pies",  "Blueberry Bush"},
+	{"Raspberry", "Raw Raspberry pie", "Cooked Raspberry pie", "Slice of Raspberry pie", "Basket with Raspberry pies", "Raspberry Bush"},
+	{"Gooseberry", "Raw Gooseberry pie", "Cooked Gooseberry pie", "Slice of Gooseberry pie", "Basket with Gooseberry pies", "Gooseberry Bush"},
+	{"Mixed Berry", "Raw Mixed Berry pie", "Cooked Mixed Berry pie", "Slice of Mixed Berry pie", "Basket with Mixed Berry pies", "Currently fruitless Bush"}
+}
+
+local modpath = minetest.get_modpath('bushes_classic')
+dofile(modpath..'/cooking.lua')
+dofile(modpath..'/nodes.lua')
+
+minetest.register_alias("bushes:basket_pies", "bushes:basket_strawberry")
+
diff --git a/mods/vipworld/bushes_classic/models/bushes_basket_empty.obj b/mods/vipworld/bushes_classic/models/bushes_basket_empty.obj
new file mode 100644
index 0000000000000000000000000000000000000000..0179c3184c6fdc6b31e27809f99ab9050a7a4042
--- /dev/null
+++ b/mods/vipworld/bushes_classic/models/bushes_basket_empty.obj
@@ -0,0 +1,46 @@
+# Blender v2.73 (sub 0) OBJ File: 'basket-of-pies.blend'
+# www.blender.org
+o basket_Cube.001
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v -0.500000 0.500000 -0.500000
+v 0.500000 0.500000 -0.500000
+v 0.500000 0.500000 0.500000
+v -0.437500 0.500000 0.437500
+v -0.437500 0.500000 -0.437500
+v 0.437500 0.500000 -0.437500
+v 0.437500 0.500000 0.437500
+v -0.437500 -0.437500 0.437500
+v -0.437500 -0.437500 -0.437500
+v 0.437500 -0.437500 -0.437500
+v 0.437500 -0.437500 0.437500
+vt 0.484848 0.984848
+vt 0.015152 0.984848
+vt 0.015152 0.515152
+vt 0.484848 0.515152
+vt 0.515152 0.984848
+vt 0.515152 0.515152
+vt 0.984848 0.515152
+vt 0.984848 0.984848
+vt 0.954545 0.545455
+vt 0.545455 0.545455
+vt 0.954545 0.954545
+vt 0.545455 0.954545
+s off
+f 5/1 6/2 2/3 1/4
+f 6/1 7/2 3/3 2/4
+f 7/1 8/2 4/3 3/4
+f 8/1 5/2 1/3 4/4
+f 1/5 2/6 3/7 4/8
+f 5/6 8/7 12/9 9/10
+f 8/7 7/8 11/11 12/9
+f 7/8 6/5 10/12 11/11
+f 6/5 5/6 9/10 10/12
+f 9/1 12/2 16/3 13/4
+f 12/1 11/2 15/3 16/4
+f 11/1 10/2 14/3 15/4
+f 10/1 9/2 13/3 14/4
+f 13/10 16/9 15/11 14/12
diff --git a/mods/vipworld/bushes_classic/models/bushes_basket_full.obj b/mods/vipworld/bushes_classic/models/bushes_basket_full.obj
new file mode 100644
index 0000000000000000000000000000000000000000..5a3e1a8148bd5ec7ad622d5576dab3c2f7ea9d8f
--- /dev/null
+++ b/mods/vipworld/bushes_classic/models/bushes_basket_full.obj
@@ -0,0 +1,330 @@
+# Blender v2.73 (sub 0) OBJ File: 'basket-of-pies.blend'
+# www.blender.org
+o pies_Cylinder
+v -0.089468 -0.116804 -0.438000
+v -0.116691 -0.091480 -0.438000
+v 0.024696 0.005921 -0.404659
+v -0.002527 0.031245 -0.404659
+v 0.121480 0.109962 -0.309713
+v 0.094258 0.135286 -0.309713
+v 0.186149 0.179480 -0.167615
+v 0.158927 0.204804 -0.167615
+v 0.208858 0.203891 0.000000
+v 0.181635 0.229215 0.000000
+v 0.186149 0.179480 0.167615
+v 0.158927 0.204804 0.167615
+v 0.121480 0.109962 0.309713
+v 0.094258 0.135286 0.309713
+v 0.024696 0.005921 0.404659
+v -0.002527 0.031245 0.404659
+v -0.089468 -0.116804 0.438000
+v -0.116691 -0.091480 0.438000
+v -0.230856 -0.214204 0.404659
+v -0.327640 -0.318245 0.309713
+v -0.392309 -0.387763 0.167615
+v -0.415018 -0.412175 -0.000000
+v -0.392309 -0.387763 -0.167615
+v -0.327640 -0.318245 -0.309713
+v -0.230856 -0.214204 -0.404659
+v -0.135230 -0.074234 -0.383250
+v -0.035336 0.033150 -0.354077
+v 0.049350 0.124186 -0.270999
+v 0.105936 0.185014 -0.146663
+v 0.125806 0.206374 0.000000
+v 0.105936 0.185014 0.146663
+v 0.049350 0.124186 0.270999
+v -0.035336 0.033150 0.354077
+v -0.135230 -0.074234 0.383250
+v -0.235124 -0.181618 0.354077
+v -0.319810 -0.272654 0.270999
+v -0.376395 -0.333482 0.146663
+v -0.396266 -0.354842 -0.000000
+v -0.376395 -0.333482 -0.146664
+v -0.319810 -0.272654 -0.270999
+v -0.235124 -0.181618 -0.354077
+v 0.071215 -0.085999 -0.438000
+v 0.041377 -0.063816 -0.438000
+v 0.171221 0.048513 -0.404659
+v 0.141384 0.070697 -0.404659
+v 0.256002 0.162547 -0.309713
+v 0.226165 0.184731 -0.309713
+v 0.312652 0.238743 -0.167615
+v 0.282814 0.260926 -0.167615
+v 0.332544 0.265499 0.000000
+v 0.302707 0.287682 0.000000
+v 0.312652 0.238743 0.167615
+v 0.282814 0.260926 0.167615
+v 0.256002 0.162547 0.309713
+v 0.226165 0.184731 0.309713
+v 0.171221 0.048513 0.404659
+v 0.141383 0.070697 0.404659
+v 0.071215 -0.085999 0.438000
+v 0.041377 -0.063816 0.438000
+v -0.058629 -0.198328 0.404659
+v -0.058629 -0.198328 -0.404659
+v 0.021058 -0.048709 -0.383250
+v 0.108564 0.068989 -0.354077
+v 0.182747 0.168769 -0.270999
+v 0.232315 0.235440 -0.146663
+v 0.249721 0.258852 0.000000
+v 0.232315 0.235440 0.146663
+v 0.182747 0.168769 0.270999
+v 0.108564 0.068989 0.354077
+v 0.021058 -0.048709 0.383250
+v -0.066448 -0.166408 0.354077
+v -0.140632 -0.266188 0.270999
+v -0.190200 -0.332858 0.146663
+v -0.207605 -0.356270 -0.000000
+v -0.190199 -0.332858 -0.146664
+v -0.140631 -0.266188 -0.270999
+v -0.066448 -0.166408 -0.354077
+v 0.220377 -0.057101 -0.438000
+v 0.188086 -0.038671 -0.438000
+v 0.303465 0.088470 -0.404659
+v 0.271175 0.106901 -0.404659
+v 0.373905 0.211880 -0.309713
+v 0.341614 0.230311 -0.309713
+v 0.420971 0.294340 -0.167615
+v 0.388680 0.312771 -0.167615
+v 0.437498 0.323296 0.000000
+v 0.405208 0.341727 0.000000
+v 0.420971 0.294340 0.167615
+v 0.388680 0.312771 0.167615
+v 0.373905 0.211880 0.309713
+v 0.341614 0.230311 0.309713
+v 0.303465 0.088470 0.404659
+v 0.271175 0.106901 0.404659
+v 0.220377 -0.057101 0.438000
+v 0.188086 -0.038671 0.438000
+v 0.104997 -0.184242 0.404659
+v 0.104997 -0.184242 -0.404659
+v 0.166096 -0.026119 -0.383250
+v 0.238799 0.101256 -0.354077
+v 0.300433 0.209240 -0.270999
+v 0.341616 0.281392 -0.146663
+v 0.356078 0.306728 0.000000
+v 0.341616 0.281392 0.146664
+v 0.300433 0.209240 0.270999
+v 0.238799 0.101256 0.354077
+v 0.166096 -0.026119 0.383250
+v 0.093393 -0.153495 0.354077
+v 0.031759 -0.261478 0.270999
+v -0.009424 -0.333631 0.146663
+v -0.023885 -0.358967 -0.000000
+v -0.009424 -0.333631 -0.146664
+v 0.031759 -0.261478 -0.270999
+v 0.093394 -0.153495 -0.354077
+vt 0.000000 0.054054
+vt 0.000000 0.000000
+vt 0.062500 0.000000
+vt 0.062500 0.054054
+vt 0.125000 0.000000
+vt 0.125000 0.054054
+vt 0.187500 0.000000
+vt 0.187500 0.054054
+vt 0.250000 0.000000
+vt 0.250000 0.054054
+vt 0.312500 0.000000
+vt 0.312500 0.054054
+vt 0.375000 0.000000
+vt 0.375000 0.054054
+vt 0.437500 0.000000
+vt 0.437500 0.054054
+vt 0.500000 0.000000
+vt 0.500000 0.054054
+vt 0.055610 0.293778
+vt 0.110171 0.184656
+vt 0.123905 0.225763
+vt 0.076165 0.321244
+vt 0.316174 0.801264
+vt 0.253798 0.852938
+vt 0.186282 0.852938
+vt 0.123905 0.801264
+vt 0.076165 0.705782
+vt 0.050327 0.581029
+vt 0.050327 0.445997
+vt 0.186282 0.174088
+vt 0.253798 0.174089
+vt 0.316174 0.225763
+vt 0.363915 0.321245
+vt 0.389752 0.445997
+vt 0.389752 0.581029
+vt 0.363915 0.705782
+vt 0.384468 0.733249
+vt 0.329907 0.842371
+vt 0.055610 0.733249
+vt 0.026082 0.590674
+vt 0.384468 0.293778
+vt 0.413996 0.436353
+vt 0.258619 0.901428
+vt 0.181458 0.901428
+vt 0.181458 0.125599
+vt 0.258619 0.125599
+vt 0.026082 0.436353
+vt 0.413996 0.590674
+vt 0.110171 0.842371
+vt 0.329907 0.184656
+vt 0.076566 0.705251
+vt 0.050729 0.580498
+vt 0.050729 0.445466
+vt 0.076566 0.320713
+vt 0.124307 0.225232
+vt 0.186684 0.173557
+vt 0.254199 0.173557
+vt 0.316576 0.225232
+vt 0.364317 0.320713
+vt 0.390154 0.445466
+vt 0.390154 0.580498
+vt 0.364317 0.705251
+vt 0.316576 0.800732
+vt 0.254199 0.852407
+vt 0.186684 0.852407
+vt 0.124307 0.800732
+vt 0.110573 0.841838
+vt 0.056012 0.732716
+vt 0.330309 0.841838
+vt 0.259022 0.900894
+vt 0.026484 0.590141
+vt 0.026484 0.435819
+vt 0.414398 0.435819
+vt 0.414398 0.590141
+vt 0.181861 0.900894
+vt 0.384870 0.732716
+vt 0.384870 0.293245
+vt 0.389637 0.582094
+vt 0.363799 0.706847
+vt 0.316059 0.802329
+vt 0.253682 0.854003
+vt 0.186166 0.854003
+vt 0.123790 0.802329
+vt 0.076049 0.706847
+vt 0.050212 0.582094
+vt 0.050212 0.447062
+vt 0.076049 0.322309
+vt 0.123790 0.226828
+vt 0.186166 0.175153
+vt 0.253682 0.175153
+vt 0.316058 0.226828
+vt 0.363799 0.322310
+vt 0.389637 0.447062
+vt 0.413881 0.437419
+vt 0.413881 0.591741
+vt 0.258504 0.126666
+vt 0.329792 0.185722
+vt 0.384353 0.734315
+vt 0.329792 0.843437
+vt 0.055495 0.294844
+vt 0.110056 0.185722
+vt 0.384353 0.294844
+vt 0.181343 0.126666
+vt 0.025967 0.437419
+g pies_Cylinder_pie
+s off
+f 1/1 2/2 4/3 3/4
+f 3/4 4/3 6/5 5/6
+f 5/6 6/5 8/7 7/8
+f 7/8 8/7 10/9 9/10
+f 9/10 10/9 12/11 11/12
+f 11/12 12/11 14/13 13/14
+f 13/14 14/13 16/15 15/16
+f 15/16 16/15 18/17 17/18
+f 20/19 19/20 35/21 36/22
+f 27/23 26/24 41/25 40/26 39/27 38/28 37/29 36/22 35/21 34/30 33/31 32/32 31/33 30/34 29/35 28/36
+f 6/37 4/38 27/23 28/36
+f 23/39 22/40 38/28 39/27
+f 12/41 10/42 30/34 31/33
+f 2/43 25/44 41/25 26/24
+f 4/38 2/43 26/24 27/23
+f 18/45 16/46 33/31 34/30
+f 21/47 20/19 36/22 37/29
+f 8/48 6/37 28/36 29/35
+f 24/49 23/39 39/27 40/26
+f 14/50 12/41 31/33 32/32
+f 19/20 18/45 34/30 35/21
+f 22/40 21/47 37/29 38/28
+f 10/42 8/48 29/35 30/34
+f 25/44 24/49 40/26 41/25
+f 16/46 14/50 32/32 33/31
+f 42/1 43/2 45/3 44/4
+f 44/4 45/3 47/5 46/6
+f 46/6 47/5 49/7 48/8
+f 48/8 49/7 51/9 50/10
+f 50/10 51/9 53/11 52/12
+f 52/12 53/11 55/13 54/14
+f 54/14 55/13 57/15 56/16
+f 56/16 57/15 59/17 58/18
+f 63/51 62/52 77/53 76/54 75/55 74/56 73/57 72/58 71/59 70/60 69/61 68/62 67/63 66/64 65/65 64/66
+f 47/67 45/68 63/51 64/66
+f 53/69 51/70 66/64 67/63
+f 43/71 61/72 77/53 62/52
+f 45/68 43/71 62/52 63/51
+f 59/73 57/74 69/61 70/60
+f 49/75 47/67 64/66 65/65
+f 55/76 53/69 67/63 68/62
+f 60/77 59/73 70/60 71/59
+f 51/70 49/75 65/65 66/64
+f 57/74 55/76 68/62 69/61
+f 78/1 79/2 81/3 80/4
+f 80/4 81/3 83/5 82/6
+f 82/6 83/5 85/7 84/8
+f 84/8 85/7 87/9 86/10
+f 86/10 87/9 89/11 88/12
+f 88/12 89/11 91/13 90/14
+f 90/14 91/13 93/15 92/16
+f 92/16 93/15 95/17 94/18
+f 99/78 98/79 113/80 112/81 111/82 110/83 109/84 108/85 107/86 106/87 105/88 104/89 103/90 102/91 101/92 100/93
+f 83/94 81/95 99/78 100/93
+f 89/96 87/97 102/91 103/90
+f 79/98 97/99 113/80 98/79
+f 81/95 79/98 98/79 99/78
+f 95/100 93/101 105/88 106/87
+f 85/102 83/94 100/93 101/92
+f 91/103 89/96 103/90 104/89
+f 96/104 95/100 106/87 107/86
+f 87/97 85/102 101/92 102/91
+f 93/101 91/103 104/89 105/88
+o basket_Cube.001
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v -0.500000 0.500000 -0.500000
+v 0.500000 0.500000 -0.500000
+v 0.500000 0.500000 0.500000
+v -0.437500 0.500000 0.437500
+v -0.437500 0.500000 -0.437500
+v 0.437500 0.500000 -0.437500
+v 0.437500 0.500000 0.437500
+v -0.437500 -0.437500 0.437500
+v -0.437500 -0.437500 -0.437500
+v 0.437500 -0.437500 -0.437500
+v 0.437500 -0.437500 0.437500
+vt 0.484848 0.984848
+vt 0.015152 0.984848
+vt 0.015152 0.515152
+vt 0.484848 0.515152
+vt 0.515152 0.984848
+vt 0.515152 0.515152
+vt 0.984848 0.515152
+vt 0.984848 0.984848
+vt 0.954545 0.545455
+vt 0.545455 0.545455
+vt 0.954545 0.954545
+vt 0.545455 0.954545
+g basket_Cube.001_basket
+s off
+f 118/105 119/106 115/107 114/108
+f 119/105 120/106 116/107 115/108
+f 120/105 121/106 117/107 116/108
+f 121/105 118/106 114/107 117/108
+f 114/109 115/110 116/111 117/112
+f 118/110 121/111 125/113 122/114
+f 121/111 120/112 124/115 125/113
+f 120/112 119/109 123/116 124/115
+f 119/109 118/110 122/114 123/116
+f 122/105 125/106 129/107 126/108
+f 125/105 124/106 128/107 129/108
+f 124/105 123/106 127/107 128/108
+f 123/105 122/106 126/107 127/108
+f 126/114 129/113 128/115 127/116
diff --git a/mods/vipworld/bushes_classic/models/bushes_bush.obj b/mods/vipworld/bushes_classic/models/bushes_bush.obj
new file mode 100644
index 0000000000000000000000000000000000000000..a69bfce4a129c1d47de910e3d7c44b2aea3d35b5
--- /dev/null
+++ b/mods/vipworld/bushes_classic/models/bushes_bush.obj
@@ -0,0 +1,329 @@
+# Blender v2.73 (sub 0) OBJ File: 'bush.blend'
+# www.blender.org
+o nodebox-4
+v 0.467076 -0.122686 -0.190481
+v -0.453590 -0.119789 -0.192145
+v 0.420865 -0.181680 -0.171396
+v -0.429008 -0.188000 -0.182314
+v -0.450977 0.041977 -0.191409
+v -0.271687 -0.294075 -0.114977
+v -0.096925 -0.495759 -0.044091
+v -0.070286 -0.344209 -0.030750
+v -0.163971 -0.173437 -0.403793
+v -0.188139 -0.116431 0.446425
+v 0.069865 0.462329 0.170043
+v -0.175980 -0.180649 0.417932
+v -0.184276 0.039248 0.437271
+v -0.121692 -0.319322 0.290049
+v -0.039557 -0.495759 0.097032
+v -0.029307 -0.346230 0.070496
+v -0.440307 0.205163 -0.203598
+v -0.440281 0.206327 0.191785
+v -0.339366 0.327086 -0.144329
+v -0.267923 0.418413 0.108270
+v -0.264994 0.405691 -0.113216
+v 0.173823 0.186657 0.424935
+v -0.172109 0.470396 -0.073638
+v -0.090743 0.491063 -0.039539
+v -0.173625 0.180559 0.412022
+v 0.108534 0.404586 0.263698
+v -0.137870 0.317286 0.327397
+v 0.149454 0.342906 0.361857
+v -0.115069 0.426252 0.274637
+v 0.116858 -0.311812 0.284557
+v -0.074459 0.465500 0.178311
+v -0.036397 0.486640 0.094150
+v 0.044199 -0.495759 -0.101459
+v 0.034559 -0.377127 -0.079219
+v 0.116886 -0.299764 -0.276145
+v -0.172864 0.462259 0.069984
+v 0.173974 -0.178414 -0.411782
+v 0.191827 0.042411 -0.453422
+v 0.190055 -0.117435 -0.449613
+v -0.136929 0.321997 -0.339476
+v 0.101567 -0.495759 0.039664
+v 0.076778 -0.365788 0.030191
+v 0.292232 -0.320027 0.121743
+v -0.067752 0.451498 -0.167691
+v 0.433751 -0.189348 0.181586
+v 0.457624 0.044950 0.184732
+v 0.473778 -0.128221 0.198329
+v -0.113891 -0.307852 -0.282552
+v 0.081961 0.458662 -0.191580
+v 0.042947 0.491063 -0.093885
+v 0.109202 0.397842 -0.257691
+v 0.145450 0.328672 -0.343352
+v 0.191241 0.038411 0.444768
+v -0.184306 0.045052 -0.456452
+v -0.289997 -0.318897 0.117161
+v 0.182461 0.185982 -0.431178
+v 0.180190 0.469152 0.074510
+v 0.097292 0.491063 0.039804
+v 0.264954 0.412421 0.110505
+v 0.355939 0.336100 0.148277
+v -0.474575 0.042725 0.191924
+v -0.169486 0.185035 -0.418844
+v -0.445009 -0.118527 0.180804
+v 0.427054 0.187979 0.172057
+v 0.350926 0.339079 -0.143384
+v 0.189060 -0.125023 0.462241
+v 0.269270 -0.290650 -0.109472
+v 0.175816 -0.186803 0.429367
+v 0.259570 0.406980 -0.105942
+v -0.103158 0.398344 -0.255462
+v -0.339105 0.330270 0.137302
+v -0.186029 -0.123369 -0.460126
+v -0.418539 -0.180131 0.169838
+v 0.041492 0.491063 0.094145
+v 0.487251 0.041118 -0.191308
+v 0.173059 0.459504 -0.070716
+v 0.460259 0.206607 -0.196213
+v 0.108065 0.487446 -0.045199
+v -0.103423 0.491173 0.040772
+v -0.040665 0.496765 -0.107957
+v -0.070153 -0.343292 0.028053
+v -0.028215 -0.347521 -0.072596
+v 0.028031 -0.329368 0.067986
+v 0.075170 -0.358957 -0.031186
+v -0.037332 -0.495759 -0.099759
+v 0.099867 -0.495759 -0.041867
+v -0.095225 -0.495759 0.037440
+v 0.041974 -0.495759 0.095332
+v 0.001777 0.503796 -0.003546
+v 0.002321 -0.495758 -0.002214
+vt 0.875000 0.281250
+vt 1.000000 0.281250
+vt 1.000000 0.421875
+vt 0.875000 0.421875
+vt 0.375000 0.125000
+vt 0.500000 0.125000
+vt 0.500000 0.234375
+vt 0.375000 0.234375
+vt 0.625000 0.234375
+vt 0.625000 0.281250
+vt 0.500000 0.281250
+vt 0.500000 0.609375
+vt 0.500000 0.656250
+vt 0.375000 0.656250
+vt 0.375000 0.609375
+vt 0.625000 0.421875
+vt 0.500000 0.421875
+vt 0.375000 0.281250
+vt 0.375000 0.421875
+vt 0.125000 0.609375
+vt 0.125000 0.656250
+vt 0.000000 0.656250
+vt 0.000000 0.609375
+vt 0.846670 0.983596
+vt 0.823789 0.862038
+vt 0.861831 0.862038
+vt 0.500000 0.531250
+vt 0.375000 0.531250
+vt 0.234375 0.609375
+vt 0.234375 0.531250
+vt 0.875000 0.234375
+vt 0.750000 0.234375
+vt 0.750000 0.125000
+vt 0.875000 0.125000
+vt 0.125000 0.234375
+vt 0.125000 0.125000
+vt 0.234375 0.125000
+vt 0.234375 0.234375
+vt 0.125000 0.281250
+vt 0.234375 0.281250
+vt 0.234375 0.421875
+vt 0.125000 0.421875
+vt 0.125000 0.703125
+vt 0.000000 0.703125
+vt 0.875000 0.656250
+vt 0.750000 0.656250
+vt 0.750000 0.609375
+vt 0.875000 0.609375
+vt 0.625000 0.656250
+vt 0.625000 0.609375
+vt 0.234375 0.656250
+vt 0.375000 0.703125
+vt 0.234375 0.703125
+vt 0.125000 0.531250
+vt 0.875000 0.531250
+vt 1.000000 0.531250
+vt 1.000000 0.609375
+vt 0.500000 0.703125
+vt 0.000000 0.421875
+vt 0.000000 0.531250
+vt 0.875000 0.703125
+vt 0.750000 0.703125
+vt 0.328125 0.812500
+vt 0.328125 0.875000
+vt 0.265625 0.890625
+vt 0.265625 0.781250
+vt 0.750000 0.531250
+vt 1.000000 0.234375
+vt -0.000000 0.281250
+vt 0.000000 0.234375
+vt 0.375000 0.921875
+vt 0.328125 0.984375
+vt 0.562500 0.812500
+vt 0.500000 0.828125
+vt 0.625000 0.125000
+vt 0.625000 0.531250
+vt 0.970570 0.983596
+vt 0.918853 0.862038
+vt 0.983390 0.862038
+vt 1.000000 0.703125
+vt 1.000000 0.656250
+vt 0.694849 0.983596
+vt 0.653099 0.862038
+vt 0.703461 0.862038
+vt 0.453125 1.000000
+vt 0.437500 0.937500
+vt 0.546875 0.937500
+vt 0.375000 0.765625
+vt 0.625000 0.703125
+vt 0.750000 0.281250
+vt 0.000000 0.125000
+vt 0.781059 0.974219
+vt 0.740272 0.862038
+vt 0.773590 0.862038
+vt 0.823762 0.862067
+vt 0.773656 0.862066
+vt 0.800723 0.801332
+vt 0.750000 0.421875
+vt 1.000000 0.125000
+vt 0.881508 0.980225
+vt 0.923791 0.982865
+vt 0.819499 0.959318
+vt 0.634200 0.973424
+vt 0.659430 0.971277
+vt 0.724959 0.956989
+vt 0.755822 0.968617
+vt 0.125000 0.000000
+vt 0.234375 0.000000
+vt 0.375000 0.000000
+vt 0.500000 0.000000
+vt 0.750000 0.000000
+vt 0.875000 0.000000
+vt 1.000000 0.000000
+vt 0.625000 0.000000
+vt 0.000000 0.000000
+vt 0.618713 0.862038
+vt 0.453125 0.781250
+vt 0.484375 0.890625
+vt 0.406250 0.859375
+vt 0.738525 0.828462
+vt 0.741806 0.778103
+vt 0.777683 0.740596
+vt 0.827789 0.740597
+vt 0.862920 0.774201
+vt 0.859639 0.824560
+s off
+f 63/1 10/2 13/3 61/4
+f 67/5 35/6 37/7 3/8
+f 9/9 72/10 39/11 37/7
+f 52/12 51/13 69/14 65/15
+f 72/10 54/16 38/17 39/11
+f 1/18 39/11 38/17 75/19
+f 28/20 26/21 29/22 27/23
+f 82/24 33/25 85/26
+f 75/19 38/17 56/27 77/28
+f 77/28 65/15 60/29 64/30
+f 73/31 4/32 6/33 55/34
+f 68/35 30/36 43/37 45/38
+f 66/39 47/40 46/41 53/42
+f 11/43 31/44 29/22 26/21
+f 20/45 21/46 19/47 71/48
+f 70/49 40/50 19/47 21/46
+f 59/51 69/14 76/52 57/53
+f 3/8 37/7 39/11 1/18
+f 28/20 22/54 64/30 60/29
+f 71/48 18/55 25/56 27/57
+f 69/14 51/13 49/58 76/52
+f 13/59 53/42 22/54 25/60
+f 36/61 23/62 21/46 20/45
+f 58/63 74/64 11/65 57/66
+f 57/53 11/43 26/21 59/51
+f 19/47 17/67 18/55 71/48
+f 73/31 12/68 10/2 63/1
+f 68/35 66/39 10/69 12/70
+f 74/64 32/71 31/72 11/65
+f 53/42 46/41 64/30 22/54
+f 25/56 18/55 61/4 13/3
+f 49/58 44/73 80/74
+f 45/38 3/8 1/18 47/40
+f 9/9 48/75 6/33 4/32
+f 62/76 40/50 52/12 56/27
+f 81/77 7/78 87/79
+f 31/80 36/61 20/45 29/81
+f 83/82 15/83 88/84
+f 36/85 79/86 23/87
+f 78/88 58/63 57/66
+f 17/67 19/47 40/50 62/76
+f 45/38 47/40 66/39 68/35
+f 51/13 70/49 44/89 49/58
+f 4/32 73/31 63/1 2/90
+f 12/70 14/91 30/36 68/35
+f 84/92 41/93 86/94
+f 33/95 86/96 90/97
+f 70/49 21/46 23/62 44/89
+f 54/16 62/76 56/27 38/17
+f 29/81 20/45 71/48 27/57
+f 37/7 35/6 48/75 9/9
+f 5/98 17/67 62/76 54/16
+f 18/55 17/67 5/98 61/4
+f 10/69 66/39 53/42 13/59
+f 12/68 73/31 55/34 14/99
+f 51/13 52/12 40/50 70/49
+f 27/23 25/60 22/54 28/20
+f 65/15 69/14 59/51 60/29
+f 56/27 52/12 65/15 77/28
+f 46/41 75/19 77/28 64/30
+f 60/29 59/51 26/21 28/20
+f 47/40 1/18 75/19 46/41
+f 2/90 5/98 54/16 72/10
+f 4/32 2/90 72/10 9/9
+f 43/37 67/5 3/8 45/38
+f 2/90 63/1 61/4 5/98
+f 82/100 7/78 8/101
+f 82/24 34/102 33/25
+f 81/103 15/83 16/104
+f 81/77 8/101 7/78
+f 83/82 41/93 42/105
+f 83/82 16/104 15/83
+f 84/92 33/25 34/102
+f 84/92 42/106 41/93
+f 30/36 83/107 42/108 43/37
+f 42/108 84/109 67/5 43/37
+f 67/5 84/109 34/110 35/6
+f 55/34 6/33 8/111 81/112
+f 55/34 81/112 16/113 14/99
+f 34/110 82/114 48/75 35/6
+f 48/75 82/114 8/111 6/33
+f 30/36 14/91 16/115 83/107
+f 7/78 82/100 85/26
+f 15/83 81/103 87/116
+f 41/93 83/82 88/84
+f 33/25 84/92 86/94
+f 80/74 50/117 49/58
+f 23/87 24/118 80/74
+f 80/74 44/73 23/87
+f 79/86 36/85 31/72
+f 79/86 24/118 23/87
+f 31/72 32/71 79/86
+f 78/88 49/58 50/117
+f 78/88 57/66 76/52
+f 76/52 49/58 78/88
+f 24/118 79/86 89/119
+f 79/86 32/71 89/119
+f 32/71 74/64 89/119
+f 74/64 58/63 89/119
+f 58/63 78/88 89/119
+f 78/88 50/117 89/119
+f 50/117 80/74 89/119
+f 80/74 24/118 89/119
+f 86/96 41/120 90/97
+f 41/120 88/121 90/97
+f 88/121 15/122 90/97
+f 15/122 87/123 90/97
+f 87/123 7/124 90/97
+f 7/124 85/125 90/97
+f 85/125 33/95 90/97
diff --git a/mods/vipworld/bushes_classic/nodes.lua b/mods/vipworld/bushes_classic/nodes.lua
new file mode 100644
index 0000000000000000000000000000000000000000..cd60a55f4ff5d28e28943810287905659f90434b
--- /dev/null
+++ b/mods/vipworld/bushes_classic/nodes.lua
@@ -0,0 +1,205 @@
+-- support for i18n
+
+plantlife_bushes = {}
+
+-- TODO: add support for nodebreakers? those dig like mese picks
+plantlife_bushes.after_dig_node = function(pos, oldnode, oldmetadata, digger)
+	if not (digger and pos and oldnode) then
+		return
+	end
+
+	-- find out which bush type we are dealing with
+	local bush_name   = ""
+	local can_harvest = false
+
+	if oldnode.name == "bushes:fruitless_bush" then
+		-- this bush has not grown fruits yet (but will eventually)
+		bush_name = oldmetadata.fields.bush_type
+		-- no fruits to be found, so can_harvest stays false
+	else
+		local name_parts = oldnode.name:split(":")
+		if #name_parts >= 2 and name_parts[2] ~= nil then
+
+			name_parts = name_parts[2]:split("_")
+
+			if #name_parts >= 2 and name_parts[1] ~= nil then
+				bush_name = name_parts[1]
+				-- this bush really carries fruits
+				can_harvest = true
+			end
+		end
+	end
+
+	-- find out which tool the digger was wielding (if any)
+	local toolstack = digger:get_wielded_item()
+	local capabilities = toolstack:get_tool_capabilities()
+
+	-- what the player will get
+	local harvested
+
+	-- failure to find out what the tool can do: destroy the bush and return nothing
+	local groupcaps = capabilities.groupcaps
+	if not groupcaps then
+		return
+
+	-- digging with the hand or something like that
+	elseif groupcaps.snappy then
+
+		-- plant a new bush without fruits
+		minetest.swap_node(pos, {type = "node", name = "bushes:fruitless_bush"})
+		local meta = minetest.get_meta(pos)
+		meta:set_string('bush_type', bush_name)
+
+		-- construct the stack of fruits the player will get
+		-- only bushes that have grown fruits can actually give fruits
+		if can_harvest then
+			local amount = "4"
+			harvested = "bushes:" .. bush_name .. " " .. amount
+		end
+
+	-- something like a shovel
+	elseif groupcaps.crumbly then
+
+		-- with a chance of 1/3, return 2 bushes
+		local amount
+		if math.random(1,3) == 1 then
+			amount = "2"
+		else
+			amount = "1"
+		end
+		-- return the bush itself
+		harvested = "bushes:" .. bush_name .. "_bush "..amount
+
+	-- something like an axe
+	elseif groupcaps.choppy then
+
+		-- the amount of sticks may vary
+		local amount = math.random(4, 20)
+		-- return some sticks
+		harvested = "default:stick " .. amount
+
+	-- nothing known - destroy the plant
+	else
+		return
+	end
+
+	-- give the harvested result to the player
+	if harvested then
+		--minetest.chat_send_player("singleplayer","you would now get "..tostring( harvested ) );
+		local itemstack = ItemStack(harvested)
+		local inventory = digger:get_inventory()
+		if inventory:room_for_item("main", itemstack) then
+			inventory:add_item("main", itemstack)
+		else
+			minetest.item_drop(itemstack, digger, pos)
+		end
+	end
+end
+
+plantlife_bushes.after_place_node = function(pos, placer, itemstack)
+
+	if not (itemstack and pos) then
+		return
+	end
+
+	local name_parts = itemstack:get_name():split(":")
+	if #name_parts < 2 or name_parts[2] == nil then
+		return
+	end
+
+	name_parts = name_parts[2]:split("_")
+
+	if #name_parts < 2 or name_parts[1] == nil then
+		return
+	end
+
+	minetest.swap_node(pos, {name = "bushes:fruitless_bush"})
+	local meta = minetest.get_meta(pos)
+	meta:set_string("bush_type", name_parts[1])
+end
+
+-- regrow berries (uses a base abm instead of biome_lib because of the use of metadata).
+
+minetest.register_abm({
+	nodenames = {"bushes:fruitless_bush"},
+	neighbors = {"group:soil", "group:potting_soil"},
+	interval = 500,
+	chance = 5,
+	action = function(pos, node, active_object_count, active_object_count_wider)
+
+		local meta = minetest.get_meta(pos)
+		local bush_name = meta:get_string("bush_type")
+
+		if bush_name and bush_name ~= "" then
+			local dirtpos = {x = pos.x, y = pos.y-1, z = pos.z}
+			local dirt = minetest.get_node(dirtpos)
+			local is_soil = minetest.get_item_group(dirt.name, "soil") or minetest.get_item_group(dirt.name, "potting_soil")
+
+			if is_soil and (dirt.name == "farming:soil_wet" or math.random(1,3) == 1) then
+				minetest.swap_node( pos, {name = "bushes:" .. bush_name .. "_bush"})
+			end
+		end
+	end
+})
+
+-- Define the basket and bush nodes
+
+for i, bush_name in ipairs(bushes_classic.bushes) do
+
+	minetest.register_node(":bushes:basket_"..bush_name, {
+		description = bushes_classic.bushes_descriptions[i][5],
+		drawtype = "mesh",
+		mesh = "bushes_basket_full.obj",
+		tiles = {
+			"bushes_basket_pie_"..bush_name..".png",
+			"bushes_basket.png"
+		},
+		paramtype = "light",
+		paramtype2 = "facedir",
+		on_use = minetest.item_eat(18),
+		groups = { dig_immediate = 3 },
+	})
+
+	local texture_top, texture_bottom
+
+	local groups = {snappy = 3, bush = 1, flammable = 2, attached_node=1}
+	if bush_name == "mixed_berry" then
+		bush_name = "fruitless";
+		texture_top = "bushes_fruitless_bush_top.png"
+		texture_bottom = "bushes_fruitless_bush_bottom.png"
+		groups.not_in_creative_inventory = 1
+	else
+		texture_top = "bushes_bush_top.png"
+		texture_bottom = "bushes_bush_bottom.png"
+	end
+
+	minetest.register_node(":bushes:" .. bush_name .. "_bush", {
+		description = bushes_classic.bushes_descriptions[i][6],
+		drawtype = "mesh",
+		mesh = "bushes_bush.obj",
+		tiles = {"bushes_bush_"..bush_name..".png"},
+		paramtype = "light",
+		sunlight_propagates = true,
+		walkable = false,
+		groups = groups,
+		sounds = default.node_sound_leaves_defaults(),
+		drop = "",
+		after_dig_node = function( pos, oldnode, oldmetadata, digger )
+			return plantlife_bushes.after_dig_node(pos, oldnode, oldmetadata, digger);
+		end,
+		after_place_node = function( pos, placer, itemstack )
+			return plantlife_bushes.after_place_node(pos, placer, itemstack);
+		end,
+	})
+
+end
+
+minetest.register_node(":bushes:basket_empty", {
+    description = "Basket",
+	drawtype = "mesh",
+	mesh = "bushes_basket_empty.obj",
+	tiles = { "bushes_basket.png" },
+	paramtype = "light",
+	paramtype2 = "facedir",
+    groups = { dig_immediate = 3 },
+})
diff --git a/mods/vipworld/bushes_classic/textures/bushes_basket.png b/mods/vipworld/bushes_classic/textures/bushes_basket.png
new file mode 100644
index 0000000000000000000000000000000000000000..4384fba1c4629a529f7a939593b2745ae6c61839
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_basket.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_basket_pie_blackberry.png b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_blackberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..83ee63c0822e67d08f6308a5b15c93d69263621a
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_blackberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_basket_pie_blueberry.png b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_blueberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f9b2c6bd36cf6f1e2475e1fd40f9618a9918db2
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_blueberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_basket_pie_gooseberry.png b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_gooseberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6bdff4f5a4fbeec6666356a6dacc03203cf9e0f
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_gooseberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_basket_pie_mixed_berry.png b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_mixed_berry.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff271ff9096c92206fd5809893d3f6a5c4ab7d5c
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_mixed_berry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_basket_pie_raspberry.png b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_raspberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..3bfd42ff960314f850cfad91bba071b1a861832c
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_raspberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_basket_pie_strawberry.png b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_strawberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..c27b0b3a3c30f97f7109b021b0046220a29a787c
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_basket_pie_strawberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blackberry.png b/mods/vipworld/bushes_classic/textures/bushes_blackberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..76b742bc27137ad8131ff93d8a7c6dc9f952e980
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blackberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_cooked.png b/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_cooked.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6af5ca8f2d44d30f71633e77b930c464c5add07
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_cooked.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_raw.png b/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_raw.png
new file mode 100644
index 0000000000000000000000000000000000000000..c37f98720c3a612153057882c9c7774f9c24e1d1
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_raw.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_slice.png b/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_slice.png
new file mode 100644
index 0000000000000000000000000000000000000000..90be80e1bb28cfb415b885538a5f4c54f1f3df86
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blackberry_pie_slice.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blueberry.png b/mods/vipworld/bushes_classic/textures/bushes_blueberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..e15047fb63e9109079965e041de3002e592c9f52
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blueberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_cooked.png b/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_cooked.png
new file mode 100644
index 0000000000000000000000000000000000000000..11ce60fafb5ba8b967ecb107deffc57c3cfac1c9
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_cooked.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_raw.png b/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_raw.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e8dd9e757c2001b5d59bec2d3b5d85fe741d451
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_raw.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_slice.png b/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_slice.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb6bf5a67d92fef6cf0012e0dd6cc14ec01f0030
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_blueberry_pie_slice.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_bush_blackberry.png b/mods/vipworld/bushes_classic/textures/bushes_bush_blackberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa76c6163008fc32a22f2fec8e3ca9df7eb6fee8
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_bush_blackberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_bush_blueberry.png b/mods/vipworld/bushes_classic/textures/bushes_bush_blueberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a305ca89110e95a1f645c95566fe278cd33c775
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_bush_blueberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_bush_fruitless.png b/mods/vipworld/bushes_classic/textures/bushes_bush_fruitless.png
new file mode 100644
index 0000000000000000000000000000000000000000..ffa2e0a772b1e4e069143ba88d6b62a5b77b2d95
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_bush_fruitless.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_bush_gooseberry.png b/mods/vipworld/bushes_classic/textures/bushes_bush_gooseberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..52eca60f688d12cc30814dc1885da911b604bd24
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_bush_gooseberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_bush_raspberry.png b/mods/vipworld/bushes_classic/textures/bushes_bush_raspberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..01809defaa54551dc18f5d246f882e8924c5b954
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_bush_raspberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_bush_strawberry.png b/mods/vipworld/bushes_classic/textures/bushes_bush_strawberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5060e2f431830109b5389d7f44ee20c1aeda2a3
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_bush_strawberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_gooseberry.png b/mods/vipworld/bushes_classic/textures/bushes_gooseberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..e712cad9890aee7c146580005fdbddd4504814d4
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_gooseberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_cooked.png b/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_cooked.png
new file mode 100644
index 0000000000000000000000000000000000000000..caa4e926312bd622c9a0615f67dd37ffc28bcf0d
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_cooked.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_raw.png b/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_raw.png
new file mode 100644
index 0000000000000000000000000000000000000000..baf5af78207943072d327e0255f8d75247d6d489
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_raw.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_slice.png b/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_slice.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cf2844e53183658fb80544052246d5696712c45
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_gooseberry_pie_slice.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png b/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png
new file mode 100644
index 0000000000000000000000000000000000000000..351a26978a50dfe89fa098e198f88107e2c5583e
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_raw.png b/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_raw.png
new file mode 100644
index 0000000000000000000000000000000000000000..648698916490de941921740df2071eacfd68deb0
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_raw.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_slice.png b/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_slice.png
new file mode 100644
index 0000000000000000000000000000000000000000..8844c3d7018d1cb647c53455926b48e792abc7c2
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_mixed_berry_pie_slice.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_raspberry.png b/mods/vipworld/bushes_classic/textures/bushes_raspberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..034fd48471f3cec9d3f615a01260df03a01ba764
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_raspberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_cooked.png b/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_cooked.png
new file mode 100644
index 0000000000000000000000000000000000000000..afeb7d8777690fa58cb121a316e14d524160397d
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_cooked.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_raw.png b/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_raw.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb76a1d880e044979674596fcbad65a85e12a99a
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_raw.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_slice.png b/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_slice.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0944882377f7ea3181b2897783a1b3bd03bcc1e
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_raspberry_pie_slice.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_strawberry.png b/mods/vipworld/bushes_classic/textures/bushes_strawberry.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6a74b63a79124769f52a66d5c55fac3a6904e94
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_strawberry.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_cooked.png b/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_cooked.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d034ea1a0bc319ff449655da71fb1abeffcbf21
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_cooked.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_raw.png b/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_raw.png
new file mode 100644
index 0000000000000000000000000000000000000000..932c07355d8317c3af50a5cfe5ded366545564a0
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_raw.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_slice.png b/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_slice.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8d1d36c7dfb39b131f58bc73d24d5df7ae2f35d
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_strawberry_pie_slice.png differ
diff --git a/mods/vipworld/bushes_classic/textures/bushes_sugar.png b/mods/vipworld/bushes_classic/textures/bushes_sugar.png
new file mode 100644
index 0000000000000000000000000000000000000000..726196b4510750c2b4f0075028e4de6a4fb61097
Binary files /dev/null and b/mods/vipworld/bushes_classic/textures/bushes_sugar.png differ
diff --git a/mods/vipworld/darkage/README.md b/mods/vipworld/darkage/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..59fc033dad0c3965ddf0019969973c6a18507dc0
--- /dev/null
+++ b/mods/vipworld/darkage/README.md
@@ -0,0 +1,417 @@
+# DarkAge Mod for Minetest
+Original mod by Master Gollum 
+Modified by addi. 
+
+Contains code from CragiDavi and HybridDog
+
+## Introduction:
+  This mod adds a few new blocks that allows to create new buildings in a
+  pre industrial landscape. Of course, feel free to use them in any other 
+  construction :P
+
+  It also provides more layers of stones. I tried not to turn mining in
+  a rainbow, so don't expect to find them easily. There are two kinds of
+  materials, stones, that spawns in layers at different deep and clay
+  like materials (silt and mud) that you will find in water places.
+  Silt and Mud are more easy to find than stone layers, but if you find
+  one it will be a real mine, with all probability with hundreds of blocks.
+
+  I used mainly 4 square recipes to avoid collisions with other MODs, 
+  anyway I have not checked all them, so it is possible that another 
+  person is already using one or more of this combinations.
+
+  I also used Desert Sand and Desert Stone, because they almost are not
+  used in the default version. Probably I will change this recipes in 
+  next releases.
+
+  
+
+## Release Notes
+Version 1.2
+
+* corrected Sounds of Stairs
+* updated to new Moreblocks api
+* added Serpentine Stairs
+
+Version 1.1
+
+* Fix spelling mistakes in README file
+* Bug fix
+* Rename slate_tale to slate_tile
+* Remove unneeded code
+* Add marble tile
+* Remove unneeded code
+* Capitalise a couple of descriptions
+* Add marble tile texture
+* Rename alias.lua to aliases.lua
+
+Version 1.0.1 
+
+ * fixed init.lua which get broken by upload on github
+
+
+Version 1.0 
+
+* compatibility with stairsplus added
+* added new item iron_stick
+* added craft reziep for iron stick
+* changed reziep of iron_bars to avoid conflicts with iron bars mod
+* changed reziep of chain to avoid conflicts with 3d furniture mod
+* changed reziep of darkage:stonebrick to avoid conflicts with moreblocks
+* disabled marble_tile to avoid the message "texture not found"
+* added compatibility with stairsplus (now its moreblocks)
+* added darkage:glass a nice looking glass that must be in this mod 
+* changed the sound_node_leaves_default to wood_default from  box and wooden shelves
+* added craft reziep for darkage:chalk
+* improved the textures of reinforced wood and chalk to save a bit more loadtime on servers
+* added another reziep for darkage straw (this can be crafted now, if farming is installed, with farming:harvested_weed
+
+Version 0.3
+
+* 29 Nodes + 3 Craft Items
+* Furniture and building decoration
+* Stone layers
+
+
+
+Version 0.2
+
+* 13 Nodes
+* Sedimentary stones
+
+
+Version 0.1
+
+* 6 Nodes
+
+PS: This document has been structured as the README.txt of PilzAdam in 
+    his Bed MOD.
+
+### How to install:
+  Unzip the archive an place it in minetest-base-directory/mods/
+  if you have a windows client or a linux run-in-place client. If you 
+  have a linux system-wide installation place it in 
+  ~/.minetest/mods/.
+  If you want to install this mod only in one world create the folder
+  worldmods/ in your worlddirectory. Remember to activate it for your world by pressing the 'configure' button and doubleclick darkage in the right list.
+  For further information or help see:
+   http://wiki.minetest.net/Installing_Mods
+
+## BUILDING NODES
+
+### Adobe: 
+Sand and Clay mixture with Straw to build houses or walls.
+Used from historical times, one of the first bricks 
+invented. I have to improve this texture, it is ugly :P
+
+     CRAFT -> 4
+     [Sand] [Sand]
+     [Clay Lump] [Straw]
+
+
+### Basalt:
+A darken version of the default Stone
+  
+     COOKING
+     [Basalt Cobble]
+
+
+### Basalt Cobble:
+A darken version of the default Cobble.
+  
+     CRAFT -> 4
+     [Cobble] [Cobble]
+     [Coal Lump] [Coal Lump]
+
+
+### Chalk:
+A soft, white and porous sedimentary rock. It becomes
+Chalk Powder when dug. Can't be craft, only found as stratum.
+
+
+### Chalk Powder:
+Pile of chalk from digging Chalk stones. Can
+be used to prepare plaster. See Cobblestone with Plaster.
+
+
+### Cobblestone with Plaster:
+Cobbles where has been applied a
+layer of white plaster.
+When dug it lost the plaster layer!
+
+     CRAFT -> 2
+     [Cobblestone] [Chalk Powder]
+     [Cobblestone] [Chalk Powder]
+
+
+### Dark Dirt: 
+A darken version of the Dirt where the grass doesn't
+grown, perfect for create a path in a forest. I was using
+Gravel, but the noise walking was annoying to me (like
+walking over iron coal with the nude feet :P), for this I
+created this node.
+
+     CRAFT -> 4
+     [Dirt] [Dirt]
+     [Gravel] [Gravel]
+
+
+### Desert Iron Ore:
+I know that others MODs add ores to the 
+Desert Stones, mine also does it, but just Iron, I supposed
+the red color is because of the iron, so it goes with more
+high probability than regular Stones and it doesn't add
+Coal to them. It will not be a lot so you can keep it with
+another MOD that does the same or just comment the lines that
+does it.
+
+
+### Dry Leaves:
+Just a cube of Leaves toasted :P Well I found the
+Leaves are not useful so I thought to turn them into Straw, ok
+it is not the same, but well, why not? Just dry them in a
+Furnace and then put together to create the Straw
+
+     COOKING
+     [Leaves]
+
+
+### Gneiss:
+High grade metamorphic rock formed from Schist, very
+common, and used in construction. It sometimes brakes in
+Gneiss Cobble when being dug.
+
+     COOKING
+     [Schist]
+
+
+### Gneiss Cobble:
+Brick version of the gneiss.
+  
+     From dig gneiss
+
+
+### Mud:
+Mixture of water and some combination of soil, silt, and
+clay. Used for build houses, specially in desert regions.
+It brakes in 4 Mud Lumps when dug.
+
+     CRAFT -> 3
+     [Dirt] [Dirt]
+     [Clay Lump] [Silt Lump]
+
+     CRAFT -> 1
+     [Mud Lump] [Mud Lump]
+     [Mud Lump] [Mud Lump]
+
+
+### Old Red Sandstone:
+A light red sandstone, in fact it's
+sandstone with iron that gives it this color.
+
+     CRAFT -> 4
+     [Sandstone] [Sandstone]
+     [Iron Lump] [Sandstone]
+
+     COOKING
+     [Old Red Sandstone Cobble]
+
+
+### Old Red Sandstone Cobble:
+Cobbles of Old Red Sandstone.
+  
+     CRAFT -> 4
+     [Sandstone Cobble] [Sandstone Cobble]
+     [Iron Lump] [Sandstone Cobble]
+
+
+### Reinforced Cobble:
+Brick with crossed wooden.
+  
+     CRAFT -> 1
+     [Stick] [] [Stick]
+     [] [Cobble] []
+     [Stick] [] [Stick]
+
+
+### Sandstone Cobble:
+Brick version of the Sandstone, good for
+buildings with a pale color.
+	 
+     COOKING
+     [Sandstone]
+
+
+### Schist:
+Medium grade metamorphic rock from Slate.
+  
+     COOKING
+     [Slate]
+
+
+### Silt:
+Granular material of a size somewhere between sand and clay.
+It brakes in 4 Silt Lumps.
+	 
+     CRAFT -> 1
+     [Silt Lump] [Silt Lump]
+     [Silt Lump] [Silt Lump]
+
+
+### Slate:
+Fine-grained, foliated, homogeneous metamorphic rock
+derived from an original shale-type sedimentary rock through
+low-grade regional metamorphism. It is used to build roof.
+	 
+     COOKING
+     [Shale]
+
+     COOKING
+     [Slate Cobble]
+
+ 
+### Slate Cobble:
+Cobble obtained from Slate
+
+     From dig Slate
+
+
+### Slate Tile:
+Nice blue slate tiles for roofs. They has been used
+as building traditional building material in zones where
+slate is easy to find.
+Note: It has stairs and slabs.
+	 
+     CRAFT -> 2
+     [Slate Cobble] [Slate Cobble]
+     [Slate Cobble] [Slate Cobble]
+
+
+### Straw Bale:
+ A decoration item, looks great for a farm or a 
+ country side house.
+	 
+     CRAFT -> 1
+     [Straw] [Straw]
+     [Straw] [Straw]
+ 
+
+### Desert Stone:
+ Just the default block, it can be obtained now
+ from Desert Sand. The idea is that Desert Sand is stonier
+ than regular Sand, so it takes less to create a Desert
+ Stone than a Sandstone.
+	 
+     CRAFT -> 2
+     [Sandstone] [Sandstone]
+     [Sandstone] [Sandstone]
+
+
+##FURNITURE NODES
+Just started so they are few ones
+
+### Box:
+A more smaller container than the Chest, but it requires
+less wood. As cheep as 4 woods and have 16 slots. The craft
+is a little weird but I think it makes sense and avoids
+collision with the recipe of Hardwood of the MOD 
+building_blocks.
+     
+     CRAFT -> 2
+     [Wood] [] [Wood]
+     [] [] []
+     [Wood] [] [Wood]
+
+### Chain:
+Climbable chain.
+  
+     CRAFT -> 2
+     [Steel Ingot]
+     [Steel Ingot]
+     [Steel Ingot]
+
+
+### Iron Bars:
+ Alternative window for the Glass.
+  
+     CRAFT -> 3
+     [Iron Stick] [] [Iron Stick]
+     [Iron Stick] [] [Iron Stick]
+     [Iron Stick] [] [Iron Stick]
+
+
+###Iron Grille:
+ Alternative window for the Glass.
+  
+     CRAFT -> 3
+     []          [Iron Bars]      []
+     [Iron Bars]     []       [Iron Bars]
+     []          [Iron Bars]      []
+
+
+###Wood Bars:
+Alternative window for the Glass.
+  
+     CRAFT -> 3
+     [Stick] [] [Stick]
+     [Stick] [] [Stick]
+     [Stick] [] [Stick]
+
+
+###Wood Frame:
+Alternative window for the Glass.
+  
+     CRAFT -> 1
+     [Stick] [Stick]  [Stick]
+     [Stick] [Glass]  [Stick]
+     [Stick] [Stick]  [Stick]
+
+
+### Medieval Glass:
+A good looking glass, with small tiles
+  
+     CRAFT -> 8
+     [Glass]       [steel_ingot]       [Glass]
+     [steel_ingot] [Glass]       [steel_ingot]
+     [Glass]       [steel_ingot]       [Glass]
+
+     or:
+     CRAFT -> 1
+     [Medieval Glow Glass]
+
+
+### Medieval Glow Glass:
+A good looking glass, with small tiles which are glowing by itself
+  
+     CRAFT -> 8
+     [Medieval Glass]
+     [torch] 
+	 
+	 
+##License:
+Sourcecode: WTFPL (see below)
+Graphics: WTFPL (see below)
+
+#See also:
+http://minetest.net/
+
+---
+
+
+```
+#!
+
+         DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+                    Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. You just DO WHAT THE FUCK YOU WANT TO.
+```
\ No newline at end of file
diff --git a/mods/vipworld/darkage/building.lua b/mods/vipworld/darkage/building.lua
new file mode 100644
index 0000000000000000000000000000000000000000..14ac7ec23b219aaeb4563ac4df1f0bcb536815fd
--- /dev/null
+++ b/mods/vipworld/darkage/building.lua
@@ -0,0 +1,117 @@
+--[[
+	This function registers the nodes and craft rezieps for the reinforce stuff
+	 * name: String which is used in description and as technical name (lower letters)
+	 * craftItem: the Item where the reinforce is crafted out of
+	 * nodedef: Nodedefinition table as used as in minetest.register_node()
+
+	The Nodes are caled
+	<modname>:reinforced_<name>
+	<modname>:reinforced_<name>_slope
+	<modname>:reinforced_<name>_arrow
+	<modname>:reinforced_<name>_bars
+
+	The modname is automatically the mod that currently calls this function. 
+	e.g. if you call darkage.register_reinforce from the mod medieval modname will be medieval
+]]
+function darkage.register_reinforce(name, craftItem, nodedef)
+	assert(type(nodedef.tiles)=="table","ERRROR: nodedef.tiles have to be a table")
+	assert(nodedef.tiles[1], "ERROR: "..dump(nodedef.tiles).." requires at least 1 entry")
+	local modname = minetest.get_current_modname();
+	local tname = string.gsub(name:lower()," ", "_"); -- Technical name
+
+-- Reinforced X
+	local reinforced = table.copy(nodedef);
+	local reinforced_tname = modname..":reinforced_"..tname
+	reinforced.description = "Reinforced "..name
+	for i,tile in ipairs(reinforced.tiles) do
+		reinforced.tiles[i] = tile .."^darkage_reinforce.png"
+	end
+
+	minetest.register_node(reinforced_tname, reinforced)
+
+-- Reinforced Slope
+	local slope = table.copy(nodedef);
+	local slope_tname = modname..":reinforced_"..tname.."_slope"
+	slope.description = "Reinforced "..name.." Slope\nHint: use the screwdriver to rotate."
+	slope.paramtype2 = "facedir";
+	local slope_tile_extend = {"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --top ,down
+			"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --right, left
+			"^darkage_reinforce_left.png" , "^darkage_reinforce_left.png"} -- front, back
+	for i=1,6 do
+		local tile = slope.tiles[i] or nodedef.tiles[1]; -- There have to be at least one tile.
+		slope.tiles[i] = tile ..slope_tile_extend[i]	
+	end
+
+	minetest.register_node(slope_tname, slope)
+
+	-- Alias to convert old nodes
+	minetest.register_alias(modname..":reinforced_"..tname.."_right", slope_tname)
+	minetest.register_alias(modname..":reinforced_"..tname.."_left", slope_tname)
+
+-- Arrow bar
+	local arrow = table.copy(nodedef)
+	local arrow_tname = modname..":reinforced_"..tname.."_arrow"
+	arrow.paramtype2 = "facedir";
+	arrow.description = "Reinforced "..name.." Arrow \nHint: use the screwdriver to rotate."
+	local arrow_tile_extend = {"" , "" , --top ,down
+			"^(darkage_reinforce_arrow.png^[transformR90)" , "^(darkage_reinforce_arrow.png^[transformR270)" , --right, left
+			"^(darkage_reinforce_arrow.png^[transformR180)" , "^darkage_reinforce_arrow.png"} -- front, back
+	for i=1,6 do
+		local tile = arrow.tiles[i] or arrow.tiles[1]; -- There have to be at least one tile.
+		arrow.tiles[i] = tile .. arrow_tile_extend[i]
+	end
+	minetest.register_node(arrow_tname, arrow)
+
+
+-- Reinforced Bars
+	local bars = table.copy(nodedef)
+	local bars_tname = modname..":reinforced_"..tname.."_bars"
+	bars.description = name.." Bars"
+	for i,tile in ipairs(bars.tiles) do
+		bars.tiles[i] = tile .."^darkage_reinforce_bars.png"
+	end
+	minetest.register_node(bars_tname, bars)
+
+end
+
+darkage.register_reinforce("Chalk", "darkage:chalk_powder", {
+	tiles = {"darkage_chalk.png"},
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+darkage.register_reinforce("Wood", "default:wood", {
+	tiles = {"default_wood.png"},
+	groups = {snappy=2, choppy=3, flammable=3},
+	sounds = default.node_sound_wood_defaults()
+})
+
+darkage.register_reinforce("Chalked Bricks", "darkage:chalked_bricks", {
+	tiles = {"darkage_chalked_bricks.png"},
+	groups = {cracky = 2, stone = 1},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:glass", {
+	description = "Medieval Glass",
+	drawtype = "glasslike",
+	tiles = {"darkage_glass.png"},
+	use_texture_alpha=true,
+	paramtype = "light",
+	sunlight_propagates = true,
+	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
+	sounds = default.node_sound_glass_defaults(),
+})
+
+minetest.register_node("darkage:glow_glass", {
+	description = "Medieval Glow Glass",
+	drawtype = "glasslike",
+	tiles = {"darkage_glass.png"},
+	use_texture_alpha=true,
+	paramtype = "light",
+	sunlight_propagates = true,
+	light_source = default.LIGHT_MAX-1,
+	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
+	sounds = default.node_sound_glass_defaults(),
+})
+
diff --git a/mods/vipworld/darkage/depends.txt b/mods/vipworld/darkage/depends.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2e8136531d596677246c714025908b2e53ba7a15
--- /dev/null
+++ b/mods/vipworld/darkage/depends.txt
@@ -0,0 +1,4 @@
+default
+farming?
+moreblocks?
+stairs?
diff --git a/mods/vipworld/darkage/description.txt b/mods/vipworld/darkage/description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..95702452b5e2af9228ca5179985505ebeef9e52d
--- /dev/null
+++ b/mods/vipworld/darkage/description.txt
@@ -0,0 +1,2 @@
+DarkAge adds several new nodes and crafts to create a pre industrial landscape. 
+It also extends the stones and provides new construction materials.
diff --git a/mods/vipworld/darkage/furniture.lua b/mods/vipworld/darkage/furniture.lua
new file mode 100644
index 0000000000000000000000000000000000000000..f4f7b4f3a7e250fba671c2824c47a81ed1b8904d
--- /dev/null
+++ b/mods/vipworld/darkage/furniture.lua
@@ -0,0 +1,289 @@
+minetest.register_node("darkage:chain", {
+	description = "Chain",
+	drawtype = "signlike",
+	tiles = {"darkage_chain.png"},
+	inventory_image = "darkage_chain.png",
+	wield_image = "darkage_chain.png",
+	paramtype = "light",
+	paramtype2 = "wallmounted",
+	is_ground_content = false,
+	walkable = false,
+	climbable = true,
+	selection_box = {
+		type = "wallmounted",
+		--wall_top = = <default>
+		--wall_bottom = = <default>
+		--wall_side = = <default>
+	},
+	groups = {snappy=1,cracky=2,oddly_breakable_by_hand=2},
+	legacy_wallmounted = true
+})
+local box_formspec = [[
+	size[8,9]
+	list[context;main;0,0.3;8,4;]
+	list[current_player;main;0,4.85;8,1;]
+	list[current_player;main;0,6.08;8,3;8]
+	listring[context;main]
+	listring[current_player;main]
+]].. darkage.formbg
+
+
+
+minetest.register_node("darkage:box", {
+	description = "Box",
+	tiles = { "darkage_box_top.png","darkage_box_top.png","darkage_box.png"},
+	groups = { snappy = 3 },
+	sounds = default.node_sound_wood_defaults(),
+	on_construct = function(pos)
+		local meta = minetest.get_meta(pos)
+		meta:set_string("formspec", box_formspec )
+		meta:set_string("infotext", "Box")
+		local inv = meta:get_inventory()
+		inv:set_size("main", 16)
+	end,
+	can_dig = function(pos,player)
+		local meta = minetest.get_meta(pos);
+		local inv = meta:get_inventory()
+		return inv:is_empty("main")
+	end,
+	on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+		minetest.log("action", player:get_player_name()..
+				" moves stuff in box at "..minetest.pos_to_string(pos))
+	end,
+	on_metadata_inventory_put = function(pos, listname, index, stack, player)
+		minetest.log("action", player:get_player_name()..
+				" moves stuff to box at "..minetest.pos_to_string(pos))
+	end,
+	on_metadata_inventory_take = function(pos, listname, index, stack, player)
+		minetest.log("action", player:get_player_name()..
+				" takes stuff from box at "..minetest.pos_to_string(pos))
+	end,
+})
+
+local shelves_formspec = [[
+	size[8,9]
+	list[context;up;0,0;8,2;]
+	list[context;down;0,2.3;8,2;]
+
+	list[current_player;main;0,4.85;8,1;]
+	list[current_player;main;0,6.08;8,3;8]
+	listring[context;up]
+	listring[context;down]
+	listring[current_player;main]
+]].. darkage.formbg
+
+minetest.register_node("darkage:wood_shelves", {
+	description = "Wooden Shelves",
+	tiles = { "darkage_shelves.png","darkage_shelves.png","darkage_shelves.png",
+			  "darkage_shelves.png","darkage_shelves.png","darkage_shelves_front.png"},
+	paramtype2 = "facedir",
+	groups = { snappy = 3 },
+	sounds = default.node_sound_wood_defaults(),
+	on_construct = function(pos)
+		local meta = minetest.get_meta(pos)
+		meta:set_string("formspec", shelves_formspec)
+		meta:set_string("infotext", "Wooden Shelves")
+		local inv = meta:get_inventory()
+		inv:set_size("up", 16)
+		inv:set_size("down", 16)
+	end,
+	can_dig = function(pos,player)
+		local meta = minetest.get_meta(pos);
+		local inv = meta:get_inventory()
+		return inv:is_empty("up") and inv:is_empty("down")
+	end,
+	on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+		minetest.log("action", player:get_player_name()..
+				" moves stuff in shelves at "..minetest.pos_to_string(pos))
+	end,
+	on_metadata_inventory_put = function(pos, listname, index, stack, player)
+		minetest.log("action", player:get_player_name()..
+				" moves stuff to shelves at "..minetest.pos_to_string(pos))
+	end,
+	on_metadata_inventory_take = function(pos, listname, index, stack, player)
+		minetest.log("action", player:get_player_name()..
+				" takes stuff from shelves at "..minetest.pos_to_string(pos))
+	end,
+})
+
+--minetest.register_node("darkage:rosace", {
+--	description = "Rose Window",
+--	tiles = {"darkage_rosace.png"},
+--	is_ground_content = false,
+--	groups = {cracky=3},
+--	sounds = default.node_sound_stone_defaults()
+--})
+
+minetest.register_node("darkage:iron_bars", {
+	description = "Iron Bars",
+	drawtype = "glasslike",
+	tiles = {"darkage_iron_bars.png"},
+	inventory_image = "darkage_iron_bars.png",
+	wield_image = "darkage_iron_bars.png",
+	is_ground_content = false,
+	paramtype = "light",
+	sunlight_propagates = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:lamp", {
+	description = "Lamp",
+	tiles = { "darkage_lamp.png" },
+	paramtype = "light",
+	sunlight_propagates = true,
+	light_source = default.LIGHT_MAX-1,
+	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,flammable=1},
+	sounds = default.node_sound_glass_defaults(),
+})
+
+minetest.register_node("darkage:iron_grille", {
+	description = "Iron Grille",
+	drawtype = "glasslike",
+	tiles = {"darkage_iron_grille.png"},
+	inventory_image = "darkage_iron_grille.png",
+	wield_image = "darkage_iron_grille.png",
+	is_ground_content = false,
+	paramtype = "light",
+	sunlight_propagates = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:wood_bars", {
+	description = "Wooden Bars",
+	drawtype = "glasslike",
+	tiles = {"darkage_wood_bars.png"},
+	inventory_image = "darkage_wood_bars.png",
+	wield_image = "darkage_wood_bars.png",
+	is_ground_content = false,
+	paramtype = "light",
+	sunlight_propagates = true,
+	groups = {snappy=1,choppy=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:wood_grille", {
+	description = "Wooden Grille",
+	drawtype = "glasslike",
+	tiles = {"darkage_wood_grille.png"},
+	inventory_image = "darkage_wood_grille.png",
+	wield_image = "darkage_wood_grille.png",
+	is_ground_content = false,
+	paramtype = "light",
+	sunlight_propagates = true,
+	groups = {snappy=1,choppy=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:wood_frame", {
+	description = "Wooden Frame",
+	drawtype = "glasslike",
+	tiles = {"darkage_wood_frame.png"},
+	inventory_image = "darkage_wood_frame.png",
+	wield_image = "darkage_wood_frame.png",
+	is_ground_content = false,
+	paramtype = "light",
+	sunlight_propagates = true,
+	groups = {snappy=1,choppy=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+---------------
+-- Crafts Item
+---------------
+
+
+----------
+-- Crafts 
+----------
+--[[
+minetest.register_craft({
+	output = "darkage:box",
+	recipe = {
+		{"default:wood", "", "default:wood"},
+		{"",			 "", ""},
+		{"default:wood", "", "default:wood"},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:chain 2",
+	recipe = {
+		{"darkage:iron_stick"},
+		{"darkage:iron_stick"},
+		{"darkage:iron_stick"},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:iron_bars 2",
+	recipe = {
+		{"darkage:iron_stick", "", "darkage:iron_stick"},
+		{"darkage:iron_stick", "", "darkage:iron_stick"},
+		{"darkage:iron_stick", "", "darkage:iron_stick"},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:iron_grille 3",
+	recipe = {
+    {"",					"darkage:iron_bars",	""},
+    {"darkage:iron_bars",	"",						"darkage:iron_bars"},
+    {"",					"darkage:iron_bars",	""},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:lamp",
+	recipe = {
+		{"group:stick",	"",				 "group:stick"},
+		{"",			"default:torch", ""},
+		{"group:stick",	"",				 "group:stick"},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:wood_bars 2",
+	recipe = {
+    {"group:stick", "", "group:stick"},
+    {"group:stick", "", "group:stick"},
+    {"group:stick", "", "group:stick"},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:wood_grille 3",
+	recipe = {
+		{"",					"darkage:wood_bars", ""},
+		{"darkage:wood_bars",	"",					 "darkage:wood_bars"},
+		{"",					"darkage:wood_bars", ""},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:wood_shelves",
+	recipe = {
+		{"darkage:box"},
+		{"darkage:box"},
+	}
+})
+
+minetest.register_craft({
+	output = "darkage:wood_frame",
+	recipe = {
+		{"group:stick",	"",					"group:stick"},
+		{"",			"default:glass",	""},
+		{"group:stick",	"",					"group:stick"},
+	}
+})
+
+
+-- Cookings
+minetest.register_craft({
+	type = "cooking",
+	output = "default:glass",
+	recipe = "darkage:wood_frame",
+})
+
+]]
diff --git a/mods/vipworld/darkage/init.lua b/mods/vipworld/darkage/init.lua
new file mode 100644
index 0000000000000000000000000000000000000000..16c49dbcdffb500edb7d39e9c02e2007fed03917
--- /dev/null
+++ b/mods/vipworld/darkage/init.lua
@@ -0,0 +1,24 @@
+minetest.log("action"," ---- Dark Age Version 1.3 is Loading! ---- ")
+
+darkage = {}; -- Create darkage namespace
+
+darkage.formbg = (default.gui_bg or "")..
+	(default.gui_bg_img or "")..
+	(default.gui_slots or "")
+
+local MODPATH = minetest.get_modpath("darkage")
+
+dofile(MODPATH.."/nodes.lua")
+--dofile(MODPATH.."/mapgen.lua")
+dofile(MODPATH.."/building.lua")
+dofile(MODPATH.."/furniture.lua")
+dofile(MODPATH.."/aliases.lua")
+dofile(MODPATH.."/walls.lua")
+
+dofile(MODPATH.."/stairs_functions.lua")
+dofile(MODPATH.."/stairs.lua")
+
+if minetest.get_modpath("moreblocks") then
+    dofile(minetest.get_modpath("darkage").."/moreblocks.lua")
+end
+
diff --git a/mods/vipworld/darkage/moreblocks.lua b/mods/vipworld/darkage/moreblocks.lua
new file mode 100644
index 0000000000000000000000000000000000000000..4be1408c9e791160d35274ad3af80ee7c7ecd827
--- /dev/null
+++ b/mods/vipworld/darkage/moreblocks.lua
@@ -0,0 +1,171 @@
+    register_stair_slab_panel_micro("slate", "block", "darkage:slate",
+    {cracky=3},
+    {"darkage_slate.png"},
+    "Slate",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("slate_tile", "block", "darkage:slate_tile",
+    {cracky=3},
+    {"darkage_slate_tile.png"},
+    "Slate Tile",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("adobe", "block", "darkage:adobe",
+    {cracky=3},
+    {"darkage_adobe.png"},
+    "Adobe",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("basalt", "block", "darkage:basalt",
+    {cracky=3},
+    {"darkage_basalt.png"},
+    "Basalt",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("basalt_cobble", "block", "darkage:basalt_cobble",
+    {cracky=3},
+    {"darkage_basalt_cobble.png"},
+    "Basalt Cobble",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("chalk", "block", "darkage:chalk",
+    {cracky=3},
+    {"darkage_chalk.png"},
+    "Chalk",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("cobble_with_plaster", "block", "darkage:cobble_with_plaster",
+    {cracky=3},
+    {"darkage_cobble_with_plaster_D.png"},
+    "Cobble With Plaster",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("gneiss", "block", "darkage:gneiss",
+    {cracky=3},
+    {"darkage_gneiss.png"},
+    "Gneiss",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("gneiss_cobble", "block", "darkage:gneiss_cobble",
+    {cracky=3},
+    {"darkage_gneiss_cobble.png"},
+    "Gneiss Cobble",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("schist", "block", "darkage:schist",
+    {cracky=3},
+    {"darkage_schist.png"},
+    "Schist",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("serpentine", "block", "darkage:serpentine",
+    {cracky=3},
+    {"darkage_serpentine.png"},
+    "Serpentine",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("shale", "block", "darkage:shale",
+    {cracky=3},
+    {"darkage_shale.png"},
+    "Shale",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("slate", "block", "darkage:slate",
+    {cracky=3},
+    {"darkage_slate.png"},
+    "Slate",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("slate_cobble", "block", "darkage:slate_cobble",
+    {cracky=3},
+    {"darkage_slate_cobble.png"},
+    "Slate Cobble",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("slate_tale", "block", "darkage:slate_tale",
+    {cracky=3},
+    {"darkage_slate_tale.png"},
+    "Slate Tale",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("stone_brick", "block", "darkage:stone_brick",
+    {cracky=3},
+    {"darkage_stone_brick.png"},
+    "Stone Brick",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("ors", "block", "darkage:ors",
+    {cracky=3},
+    {"darkage_ors.png"},
+    "Old Red Sandstone",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("ors_brick", "block", "darkage:ors_brick",
+    {cracky=3},
+    {"darkage_ors_brick.png"},
+    "Old Red Sandstone Brick",
+    "block",
+    0
+    )
+
+    register_stair_slab_panel_micro("marble", "block", "darkage:marble",
+    {cracky=3},
+    {"darkage_marble.png"},
+    "Marble",
+    "block",
+    0
+    )
+
+    table.insert(circular_saw.known_stairs, "darkage:slate")
+    table.insert(circular_saw.known_stairs, "darkage:slate_tale")
+    table.insert(circular_saw.known_stairs, "darkage:adobe")
+    table.insert(circular_saw.known_stairs, "darkage:basalt")
+    table.insert(circular_saw.known_stairs, "darkage:basalt_cobble")
+    table.insert(circular_saw.known_stairs, "darkage:chalk")
+    table.insert(circular_saw.known_stairs, "darkage:cobble_with_plaster")
+    table.insert(circular_saw.known_stairs, "darkage:gneiss")
+    table.insert(circular_saw.known_stairs, "darkage:gneiss_cobble")
+    table.insert(circular_saw.known_stairs, "darkage:schist")
+    table.insert(circular_saw.known_stairs, "darkage:serpentine")
+    table.insert(circular_saw.known_stairs, "darkage:slate")
+    table.insert(circular_saw.known_stairs, "darkage:slate_cobble")
+    table.insert(circular_saw.known_stairs, "darkage:slate_tale")
+    table.insert(circular_saw.known_stairs, "darkage:stone_brick")
+    table.insert(circular_saw.known_stairs, "darkage:shale")
+    table.insert(circular_saw.known_stairs, "darkage:ors")
+    table.insert(circular_saw.known_stairs, "darkage:ors_brick")
+    table.insert(circular_saw.known_stairs, "darkage:marble")
diff --git a/mods/vipworld/darkage/nodes.lua b/mods/vipworld/darkage/nodes.lua
new file mode 100644
index 0000000000000000000000000000000000000000..be61bd286ecd71a601209bfab67d54c26210d55d
--- /dev/null
+++ b/mods/vipworld/darkage/nodes.lua
@@ -0,0 +1,366 @@
+----------
+-- Nodes
+----------
+
+minetest.register_node("darkage:adobe", {
+	description = "Adobe",
+	tiles = {"darkage_adobe.png"},
+	is_ground_content = true,
+	groups = {crumbly=3},
+	sounds = default.node_sound_sand_defaults(),
+})
+
+minetest.register_node("darkage:basalt", {
+	description = "Basalt",
+	tiles = {"darkage_basalt.png"},
+	is_ground_content = true,
+	drop = 'darkage:basalt_cobble',
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:basalt_cobble", {
+	description = "Basalt Cobble",
+	tiles = {"darkage_basalt_cobble.png"},
+	is_ground_content = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:chalk", {
+	description = "Chalk",
+	tiles = {"darkage_chalk.png"},
+	is_ground_content = true,
+	drop = 'darkage:chalk_powder 4',
+	groups = {crumbly=2,cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:cobble_with_plaster", {
+	description = "Cobblestone with Plaster",
+	tiles = {"darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_D.png)", "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_B.png)", 
+		"darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_C.png)", "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_A.png)", 
+		"default_cobble.png", "darkage_chalk.png"},
+	is_ground_content = false,
+	paramtype2 = "facedir",
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node("darkage:chalked_bricks_with_plaster", {
+	description = "Chalked Bricks with Plaster",
+	tiles = {"darkage_chalk.png", "darkage_chalk.png", "darkage_chalk.png", "darkage_chalk.png", "darkage_chalk.png", "darkage_chalked_bricks.png"},
+	is_ground_content = false,
+	paramtype2 = "facedir",
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults(),
+})
+
+--lbm to convert the old cobble_with_plaster to the new chalked_bricks to keep texture consistent
+minetest.register_lbm({
+	name="darkage:convert_cobble_with_plaster",
+	nodenames= "darkage:cobble_with_plaster",
+	run_at_every_load = false,
+	action = function(pos,node)
+		node.name = "darkage:chalked_bricks_with_plaster"
+		minetest.swap_node(pos, node)
+	end
+})
+
+minetest.register_node("darkage:desert_stone_with_iron", {
+	description = "Desert Iron Ore",
+	tiles = {"default_desert_stone.png^default_mineral_iron.png"},
+	is_ground_content = true,
+	groups = {cracky=3},
+	drop = 'default:iron_lump',
+	sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node("darkage:darkdirt", {
+	description = "Dark Dirt",
+	tiles = {"darkage_darkdirt.png"},
+	is_ground_content = false,
+	groups = {crumbly=2},
+	sounds = default.node_sound_dirt_defaults(),
+})
+
+minetest.register_node("darkage:dry_leaves", {
+	description = "Dry Leaves",
+	tiles = {"darkage_dry_leaves.png"},
+	is_ground_content = false,
+	paramtype = "light",
+	groups = {snappy=3, flammable=2},
+	sounds = default.node_sound_leaves_defaults()
+})
+
+minetest.register_node("darkage:gneiss", {
+	description = "Gneiss",
+	tiles = {"darkage_gneiss.png"},
+	is_ground_content = true,
+	groups = {cracky=3},
+	drop = 'darkage:gneiss_cobble',
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:gneiss_cobble", {
+	description = "Gneiss Cobble",
+	tiles = {"darkage_gneiss_cobble.png"},
+	is_ground_content = false,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:marble", {
+	description = "Marble",
+	tiles = {"darkage_marble.png"},
+	is_ground_content = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:mud", {
+	description = "Mud",
+	tiles = {"darkage_mud_up.png","darkage_mud.png"},
+	is_ground_content = true,
+	groups = {crumbly=3},
+	drop = 'darkage:mud_lump 4',
+	sounds = default.node_sound_dirt_defaults({
+		footstep = "",
+	}),
+})
+
+minetest.register_node("darkage:ors", {
+	description = "Old Red Sandstone",
+	tiles = {"darkage_ors.png"},
+	is_ground_content = true,
+	drop = "darkage:ors_brick",
+	groups = {crumbly=1,cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:ors_brick", {
+	description = "Old Red Sandstone Brick",
+	tiles = {"darkage_ors_brick.png"},
+	is_ground_content = false,
+	groups = {crumbly=1,cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:serpentine", {
+	description = "Serpentine",
+	tiles = {"darkage_serpentine.png"},
+	is_ground_content = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:shale", {
+	description = "Shale",
+	tiles = {"darkage_shale.png","darkage_shale.png","darkage_shale_side.png"},
+	is_ground_content = true,
+	groups = {crumbly=2,cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:schist", {
+	description = "Schist",
+	tiles = {"darkage_schist.png"},
+	is_ground_content = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:silt", {
+	description = "Silt",
+	tiles = {"darkage_silt.png"},
+	is_ground_content = true,
+	groups = {crumbly=3},
+	drop = 'darkage:silt_lump 4',
+	sounds = default.node_sound_dirt_defaults({
+		footstep = "",
+	}),
+})
+
+minetest.register_node("darkage:slate", {
+	description = "Slate",
+	tiles = {"darkage_slate.png","darkage_slate.png","darkage_slate_side.png"},
+	is_ground_content = true,
+	drop = 'darkage:slate_cobble',
+	groups = {cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:slate_cobble", {
+	description = "Slate Cobble",
+	tiles = {"darkage_slate_cobble.png"},
+	is_ground_content = false,
+	groups = {cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:slate_tile", {
+	description = "Slate Tile",
+	tiles = {"darkage_slate_tile.png"},
+	is_ground_content = false,
+	groups = {cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+-- Removed straw, because its in minetst game. Registering alias for compatibility reasons
+minetest.register_alias("darkage:straw", "farming:straw")
+
+minetest.register_node("darkage:stone_brick", {
+	description = "Stone Brick",
+	tiles = {"darkage_stone_brick.png"},
+	is_ground_content = false,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:straw_bale", {
+	description = "Straw Bale",
+	tiles = {"darkage_straw_bale.png"},
+	is_ground_content = false,
+	drop = 'farming:straw 4',
+	groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
+    sounds = default.node_sound_leaves_defaults(),
+})
+
+minetest.register_node("darkage:marble", {
+	description = "Marble",
+	tiles = {"darkage_marble.png"},
+	is_ground_content = true,
+	groups = {cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:marble_tile", {
+	description = "Marble Tile",
+	tiles = {"darkage_marble_tile.png"},
+	is_ground_content = false,
+	groups = {cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+--[[
+	Tuff
+]]
+minetest.register_node("darkage:tuff", {
+	description = "Tuff",
+	tiles = {"darkage_tuff.png"},
+	is_ground_content = true,
+	legacy_mineral = true,
+	groups = {cracky = 3, stone = 1},
+	drop = {
+		max_items = 1,
+		items = {
+			{
+				-- player get tuff node if he is lucky :)
+				items = {'darkage:tuff'},
+				rarity = 3,
+			},
+			{
+				-- player will get rubble with 2/3 chance
+				items = {'darkage:tuff_rubble'},
+			}
+
+		}
+	},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:tuff_bricks", {
+	description = "Tuff Bricks",
+	tiles = {"darkage_tuff_bricks.png"},
+	is_ground_content = false,
+	groups = {cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+-- abm to turn Tuff bricks to old Tuff bricks if water is nearby
+minetest.register_abm({
+	nodenames = {"darkage:tuff_bricks"},
+	neighbors = {"group:water"},
+	interval = 16,
+	chance = 200,
+	catch_up = false,
+	action = function(pos, node)
+		minetest.set_node(pos, {name = "darkage:old_tuff_bricks"})
+	end
+})
+
+minetest.register_node("darkage:tuff_rubble", {
+	description = "Tuff Rubble",
+	tiles = {"darkage_tuff_rubble.png"},
+	groups = {crumbly = 2, falling_node = 1},
+	sounds = default.node_sound_gravel_defaults(),
+})
+--[[
+	Rhyolitic Tuff
+]]
+minetest.register_node("darkage:rhyolitic_tuff", {
+	description = "Rhyolitic Tuff",
+	tiles = {"darkage_rhyolitic_tuff.png"},
+	is_ground_content = true,
+	legacy_mineral = true,
+	groups = {cracky = 3, stone = 1},
+	drop = {
+		max_items = 1,
+		items = {
+			{
+				-- player get tuff node if he is lucky :)
+				items = {'darkage:rhyolitic_tuff'},
+				rarity = 3,
+			},
+			{
+				-- player will get rubble with 2/3 chance
+				items = {'darkage:rhyolitic_tuff_rubble'},
+			}
+
+		}
+	},
+	sounds = default.node_sound_stone_defaults()
+})
+
+
+
+minetest.register_node("darkage:rhyolitic_tuff_bricks", {
+	description = "Rhyolitic Tuff Bricks",
+	tiles = {"darkage_rhyolitic_tuff_bricks.png"},
+	is_ground_content = false,
+	groups = {cracky=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node("darkage:old_tuff_bricks", {
+	description = "Old Tuff Bricks",
+	tiles = {"darkage_old_tuff_bricks.png"},
+	is_ground_content = false,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults()
+})
+
+
+
+
+
+minetest.register_node("darkage:rhyolitic_tuff_rubble", {
+	description = "Rhyolitic Tuff Rubble",
+	tiles = {"darkage_rhyolitic_tuff_rubble.png"},
+	groups = {crumbly = 2, falling_node = 1},
+	sounds = default.node_sound_gravel_defaults(),
+})
+
+
+--[[
+	add a node using the cobble texture that was introduced in minetest 0.4.dev-20120408 and got removed in 0.4.7
+	It has a nice contrast together the stone bricks, so I think it could get usefull.
+]] 
+minetest.register_node("darkage:chalked_bricks", {
+	description = "Chalked Brick",
+	tiles = {"darkage_chalked_bricks.png"},
+	is_ground_content = false,
+	groups = {cracky = 2, stone = 1},
+	sounds = default.node_sound_stone_defaults(),
+})
+
diff --git a/mods/vipworld/darkage/stairs.lua b/mods/vipworld/darkage/stairs.lua
new file mode 100644
index 0000000000000000000000000000000000000000..111d2810557df0b4238929487cd5a84d70b86eaf
--- /dev/null
+++ b/mods/vipworld/darkage/stairs.lua
@@ -0,0 +1,17 @@
+for _,name in ipairs({"basalt_cobble", "slate_tale", "straw", "stone_brick", "ors_cobble", "gneiss_cobble", "slate_cobble"}) do
+	local nodename = "darkage:"..name
+	local tmp = minetest.registered_nodes[nodename]
+	if not tmp then
+		print("[darkage] "..nodename.." not yet defined")
+		return
+	end
+	local desc = tmp.description
+	stairs.register_stair_and_slab("darkage_"..name, nodename,
+		tmp.groups,
+		{"darkage_"..name..".png"},
+		desc.." Stair",
+		desc.." Slab",
+		tmp.sounds
+	)
+end
+--"desert_stone_cobble" "sandstone_cobble"
diff --git a/mods/vipworld/darkage/stairs_functions.lua b/mods/vipworld/darkage/stairs_functions.lua
new file mode 100644
index 0000000000000000000000000000000000000000..c832b70f06a089fc49c2a900b15756de52805d6f
--- /dev/null
+++ b/mods/vipworld/darkage/stairs_functions.lua
@@ -0,0 +1,39 @@
+
+
+if minetest.get_modpath("moreblocks") then
+	function darkage.register_stairs(nodeName)
+        local ndef = assert(minetest.registered_nodes[nodeName], "Error: "..nodeName.." is not registered")
+
+        local mod = "darkage"
+        local node = nodeName:split(":")[2]
+
+        stairsplus:register_all(mod, node, nodeName, ndef)
+    end
+elseif minetest.get_modpath("stairs") then
+	function darkage.register_stairs(nodeName)
+        local ndef = assert(minetest.registered_nodes[nodeName], "Error: "..nodeName.." is not registered")
+
+        local node = nodeName:split(":")[2]
+
+        -- The stairs api does not allow to use the darkage modname, so we have to call the nodes stairs:stair_darkage_
+        -- and creating an alias
+        local subname = "darkage_".. node; 
+        stairs.register_stair_and_slab(subname, nodeName,
+                                       ndef.groups, ndef.tiles, 
+                                       ndef.description.." Stair", ndef.description.." Slab",
+                                       ndef.sounds)
+
+        --stairs.register_stair_and_slab(subname, recipeitem,
+        --                               groups, images, 
+        --                               desc_stair, desc_slab, sounds)
+        minetest.register_alias("darkage:stair_"..node, "stairs:stair_darkage_"..node)
+        minetest.register_alias("darkage:slab_"..node, "stairs:slab_darkage_"..node)
+    end
+else 
+    -- No compatible stairs mod found.
+    minetest.log("error", "[darkage] Darkage requires at least moreblocks or stairs to be installed. Its not possible to register stairs.")
+    function darkage.register_stairs(nodeName)
+        minetest.log("warning", "could not create stair of type "..nodeName .." because no compatible stairs mod is installed.")
+    end
+end
+
diff --git a/mods/vipworld/darkage/textures/darkage_adobe.png b/mods/vipworld/darkage/textures/darkage_adobe.png
new file mode 100644
index 0000000000000000000000000000000000000000..1efccc6f8ed06a70356b834ded07614d7d4e17f9
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_adobe.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_basalt.png b/mods/vipworld/darkage/textures/darkage_basalt.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b55fee5160f523f4f1f518f643c4660affc7784
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_basalt.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_basalt_cobble.png b/mods/vipworld/darkage/textures/darkage_basalt_cobble.png
new file mode 100644
index 0000000000000000000000000000000000000000..605755058c0243a8fa65e682aa186f678b1ac402
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_basalt_cobble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_box.png b/mods/vipworld/darkage/textures/darkage_box.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd9550ebbc3223f86f81ee2d208170fe11ed8791
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_box.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_box_top.png b/mods/vipworld/darkage/textures/darkage_box_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c93d968beaaaea5e7a9c2f1ff7b2e947b224a36
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_box_top.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_chain.png b/mods/vipworld/darkage/textures/darkage_chain.png
new file mode 100644
index 0000000000000000000000000000000000000000..4df06651cee8f7cb9866d7659ae009b5e1878795
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_chain.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_chalk.png b/mods/vipworld/darkage/textures/darkage_chalk.png
new file mode 100644
index 0000000000000000000000000000000000000000..004305ed7db6ff18be55361e592a211d01665b02
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_chalk.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_chalk_powder.png b/mods/vipworld/darkage/textures/darkage_chalk_powder.png
new file mode 100644
index 0000000000000000000000000000000000000000..86ef2578261d25b53b9e96d941dd11da07312dbb
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_chalk_powder.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_chalked_bricks.png b/mods/vipworld/darkage/textures/darkage_chalked_bricks.png
new file mode 100644
index 0000000000000000000000000000000000000000..adc0ff3161f63add32514086cc046b06e5bffa99
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_chalked_bricks.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_cob.png b/mods/vipworld/darkage/textures/darkage_cob.png
new file mode 100644
index 0000000000000000000000000000000000000000..6380763b9f0fa668a28d209e243559a0fc52b73f
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_cob.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_A.png b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_A.png
new file mode 100644
index 0000000000000000000000000000000000000000..f59fd6bf781f10e2267e0286bb314ff14c90bf8c
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_A.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_B.png b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_B.png
new file mode 100644
index 0000000000000000000000000000000000000000..d61f8805ef6ebdae47ed3d597c01bf921286e8f8
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_B.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_C.png b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..87aebd43487ba526e62cdec0a05a990e91b7f0c1
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_C.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_D.png b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_D.png
new file mode 100644
index 0000000000000000000000000000000000000000..363dd1b3a0c3dc200f45a63d8363631df8c65e56
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_cobble_with_plaster_D.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_darkdirt.png b/mods/vipworld/darkage/textures/darkage_darkdirt.png
new file mode 100644
index 0000000000000000000000000000000000000000..54fbfa112d5c422597003251233bbe92a6f17cbe
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_darkdirt.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_desert_stone_cobble.png b/mods/vipworld/darkage/textures/darkage_desert_stone_cobble.png
new file mode 100644
index 0000000000000000000000000000000000000000..e243d8b8efb7dd6de6b931b508ca1f0e6f6bc1e7
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_desert_stone_cobble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_dry_leaves.png b/mods/vipworld/darkage/textures/darkage_dry_leaves.png
new file mode 100644
index 0000000000000000000000000000000000000000..98e91a79c54fc9cce55c68e28565d3bfef1e4d98
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_dry_leaves.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_glass.png b/mods/vipworld/darkage/textures/darkage_glass.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa2c143fb6535d6fc5711a2c34e5558b8404334a
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_glass.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_glow_stone_lamp.png b/mods/vipworld/darkage/textures/darkage_glow_stone_lamp.png
new file mode 100644
index 0000000000000000000000000000000000000000..7df1b97c7d1f21ede86b37a21bb764e08328511f
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_glow_stone_lamp.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_gneiss.png b/mods/vipworld/darkage/textures/darkage_gneiss.png
new file mode 100644
index 0000000000000000000000000000000000000000..26809463cd41d5e8d81ba8d34adedc87863305ed
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_gneiss.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_gneiss_cobble.png b/mods/vipworld/darkage/textures/darkage_gneiss_cobble.png
new file mode 100644
index 0000000000000000000000000000000000000000..2426321aa93c515e67cedc2216e08178ed415d00
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_gneiss_cobble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_iron_bars.png b/mods/vipworld/darkage/textures/darkage_iron_bars.png
new file mode 100644
index 0000000000000000000000000000000000000000..75d5438aae0e4675c0a4a3fb32f3e007c1e5809b
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_iron_bars.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_iron_grille.png b/mods/vipworld/darkage/textures/darkage_iron_grille.png
new file mode 100644
index 0000000000000000000000000000000000000000..f627d6fbb70df977d7c46873bd9e6eee0fcd1fdf
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_iron_grille.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_iron_stick.png b/mods/vipworld/darkage/textures/darkage_iron_stick.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd8388f728d4546e84256c95bf7c04cc73452c6a
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_iron_stick.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_lamp.png b/mods/vipworld/darkage/textures/darkage_lamp.png
new file mode 100644
index 0000000000000000000000000000000000000000..09cb64c8b5db2ab8837faed40dd0ee51cfc69cf0
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_lamp.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_limestone_sand.png b/mods/vipworld/darkage/textures/darkage_limestone_sand.png
new file mode 100644
index 0000000000000000000000000000000000000000..c65b9ba32abe0d9013b16604efffcc8a8f473da5
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_limestone_sand.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_marble.png b/mods/vipworld/darkage/textures/darkage_marble.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd2eef7544fd047207a422931228197dc2bc5733
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_marble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_marble_tile.png b/mods/vipworld/darkage/textures/darkage_marble_tile.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7de2e75a1225d64516e5685e02f5850aad63355
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_marble_tile.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_mineral_iron.png b/mods/vipworld/darkage/textures/darkage_mineral_iron.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8d68f2823c50d58d04e9d647377a89abe1804b3
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_mineral_iron.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_mud.png b/mods/vipworld/darkage/textures/darkage_mud.png
new file mode 100644
index 0000000000000000000000000000000000000000..524f3685ba6d40f6c8087a1b173033d0c1d2ad99
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_mud.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_mud_lump.png b/mods/vipworld/darkage/textures/darkage_mud_lump.png
new file mode 100644
index 0000000000000000000000000000000000000000..da425c231b3eaf29729b34a093612e14dffa323b
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_mud_lump.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_mud_up.png b/mods/vipworld/darkage/textures/darkage_mud_up.png
new file mode 100644
index 0000000000000000000000000000000000000000..c31a23473c9221424924a3dd9bd71fe60d7fcd2f
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_mud_up.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_old_tuff_bricks.png b/mods/vipworld/darkage/textures/darkage_old_tuff_bricks.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cbc994bf8d2999fdeb9636da25e6f3549dd478c
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_old_tuff_bricks.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_ors.png b/mods/vipworld/darkage/textures/darkage_ors.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e65c8ab6a8f7b3ccd1f9356ed87dc248e2bbe23
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_ors.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_ors_brick.png b/mods/vipworld/darkage/textures/darkage_ors_brick.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5701e2039eec77d4f5907e412d87d62d2eda54a
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_ors_brick.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_ors_cobble.png b/mods/vipworld/darkage/textures/darkage_ors_cobble.png
new file mode 100644
index 0000000000000000000000000000000000000000..c42ffdebde1fc1911197c86568cc6c51eea062d3
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_ors_cobble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_plaster_mask_A.png b/mods/vipworld/darkage/textures/darkage_plaster_mask_A.png
new file mode 100644
index 0000000000000000000000000000000000000000..71ab8fed74c8af173dfcde7f7447375bd03425e0
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_plaster_mask_A.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_plaster_mask_B.png b/mods/vipworld/darkage/textures/darkage_plaster_mask_B.png
new file mode 100644
index 0000000000000000000000000000000000000000..d46b628e122c1b77045908499e9d94f5c259dae1
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_plaster_mask_B.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_plaster_mask_C.png b/mods/vipworld/darkage/textures/darkage_plaster_mask_C.png
new file mode 100644
index 0000000000000000000000000000000000000000..feed36d3aed65368bdd2265748c83b0994112f96
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_plaster_mask_C.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_plaster_mask_D.png b/mods/vipworld/darkage/textures/darkage_plaster_mask_D.png
new file mode 100644
index 0000000000000000000000000000000000000000..3131f6a4b297bbb9799a61d52e81e6b9ea2a937a
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_plaster_mask_D.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_reinforce.png b/mods/vipworld/darkage/textures/darkage_reinforce.png
new file mode 100644
index 0000000000000000000000000000000000000000..1175286022a238b2b2ca5482ad2f1192e08bed52
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_reinforce.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_reinforce_arrow.png b/mods/vipworld/darkage/textures/darkage_reinforce_arrow.png
new file mode 100644
index 0000000000000000000000000000000000000000..017954460c172d65532933c80febb8ffaa3b587b
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_reinforce_arrow.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_reinforce_bars.png b/mods/vipworld/darkage/textures/darkage_reinforce_bars.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7eb6bca56bae974dfcfd72d1ced0ad04afc13e0
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_reinforce_bars.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_reinforce_left.png b/mods/vipworld/darkage/textures/darkage_reinforce_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..c026372d07423d03c7ce8a6ac6a7d93d9639a447
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_reinforce_left.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_reinforce_right.png b/mods/vipworld/darkage/textures/darkage_reinforce_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..3604a1b3a35acf24e3dbe3138cbc15d37ffec7c6
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_reinforce_right.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_reinforced_wood_left.png b/mods/vipworld/darkage/textures/darkage_reinforced_wood_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..624407b06f5e1519366c8722e83fdd6f655af822
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_reinforced_wood_left.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_reinforced_wood_right.png b/mods/vipworld/darkage/textures/darkage_reinforced_wood_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..f89d4636649f005c60a026590987365899cc4cd8
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_reinforced_wood_right.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff.png b/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff.png
new file mode 100644
index 0000000000000000000000000000000000000000..88ed8ec5febc31f208266759444e4640b4609c29
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff_bricks.png b/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff_bricks.png
new file mode 100644
index 0000000000000000000000000000000000000000..9abb90779e5c5bc33c402d25073273256eca922a
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff_bricks.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff_rubble.png b/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff_rubble.png
new file mode 100644
index 0000000000000000000000000000000000000000..89139dc4b80833a3c9a94e5ee7433ebbda4dd62d
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_rhyolitic_tuff_rubble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_sandstone_cobble.png b/mods/vipworld/darkage/textures/darkage_sandstone_cobble.png
new file mode 100644
index 0000000000000000000000000000000000000000..50c0e6ac3443ef1862ec2ec45cdc0a4f840adefd
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_sandstone_cobble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_schist.png b/mods/vipworld/darkage/textures/darkage_schist.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f45d99a60a410ad5e6403bfdba1ec316d689d13
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_schist.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_serpentine.png b/mods/vipworld/darkage/textures/darkage_serpentine.png
new file mode 100644
index 0000000000000000000000000000000000000000..c681d836d11123ac5919c44e4087cc1a933c2e6b
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_serpentine.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_shale.png b/mods/vipworld/darkage/textures/darkage_shale.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ebc026ff40ba32fff3b5a0db3086e8d47683fde
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_shale.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_shale_side.png b/mods/vipworld/darkage/textures/darkage_shale_side.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0f7668f4e816d263edbbd6f5bd662e2d1867e0b
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_shale_side.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_shelves.png b/mods/vipworld/darkage/textures/darkage_shelves.png
new file mode 100644
index 0000000000000000000000000000000000000000..57a65c55df923b6da5ac1ea6f8c3ba46df21fe6f
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_shelves.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_shelves_front.png b/mods/vipworld/darkage/textures/darkage_shelves_front.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3f423cbf84c341f25854685fea51d95a18aa296
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_shelves_front.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_silt.png b/mods/vipworld/darkage/textures/darkage_silt.png
new file mode 100644
index 0000000000000000000000000000000000000000..7772d0bc442bf10cb2e0d858cdc8623da4c616eb
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_silt.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_silt_lump.png b/mods/vipworld/darkage/textures/darkage_silt_lump.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2ab34b88f822eb3f20a055ec09685a904ea7e5d
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_silt_lump.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_slate.png b/mods/vipworld/darkage/textures/darkage_slate.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd94dc4e015be3ce422a3a628cac50ed0bd3f9bd
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_slate.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_slate_cobble.png b/mods/vipworld/darkage/textures/darkage_slate_cobble.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4f26c3da9c4a83f28fdcb2f2029be4ad142e4fe
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_slate_cobble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_slate_side.png b/mods/vipworld/darkage/textures/darkage_slate_side.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e1a9ddb613119945328c29b31ddb705758bf1bc
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_slate_side.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_slate_tale.png b/mods/vipworld/darkage/textures/darkage_slate_tale.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9e2a71af3504c43c83b1e8a7de4fa94702ab388
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_slate_tale.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_slate_tile.png b/mods/vipworld/darkage/textures/darkage_slate_tile.png
new file mode 100644
index 0000000000000000000000000000000000000000..42517efdb5661a07dea65d7fe885e8dd7744206e
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_slate_tile.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_stone_brick.png b/mods/vipworld/darkage/textures/darkage_stone_brick.png
new file mode 100644
index 0000000000000000000000000000000000000000..015d54d4b5e6ecef7b5f0cd79c39f53c94b8ae3b
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_stone_brick.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_straw.png b/mods/vipworld/darkage/textures/darkage_straw.png
new file mode 100644
index 0000000000000000000000000000000000000000..6cac161abf90cbd14b90e9e951cb703694991966
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_straw.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_straw_bale.png b/mods/vipworld/darkage/textures/darkage_straw_bale.png
new file mode 100644
index 0000000000000000000000000000000000000000..47119f788d5800069b4ce36e0bdef05bf8046d5e
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_straw_bale.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_tuff.png b/mods/vipworld/darkage/textures/darkage_tuff.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d2b7e11453aa3e898956e8593afe10a9714824a
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_tuff.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_tuff_bricks.png b/mods/vipworld/darkage/textures/darkage_tuff_bricks.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a02fa04adc0940ae0cad7e7a9b58f57a0d7c57b
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_tuff_bricks.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_tuff_rubble.png b/mods/vipworld/darkage/textures/darkage_tuff_rubble.png
new file mode 100644
index 0000000000000000000000000000000000000000..c072a310565862586eabe5906e53f919509eb091
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_tuff_rubble.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_wood_bars.png b/mods/vipworld/darkage/textures/darkage_wood_bars.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0f63d1c1dbd5684a0d33c813ea66d9941043cf3
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_wood_bars.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_wood_frame.png b/mods/vipworld/darkage/textures/darkage_wood_frame.png
new file mode 100644
index 0000000000000000000000000000000000000000..91392da0d219fadc4b066e5c94e0877ecb821f84
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_wood_frame.png differ
diff --git a/mods/vipworld/darkage/textures/darkage_wood_grille.png b/mods/vipworld/darkage/textures/darkage_wood_grille.png
new file mode 100644
index 0000000000000000000000000000000000000000..066e43d2b7f1eac33a9ac380aaa2e2b41ac66b2e
Binary files /dev/null and b/mods/vipworld/darkage/textures/darkage_wood_grille.png differ
diff --git a/mods/vipworld/darkage/walls.lua b/mods/vipworld/darkage/walls.lua
new file mode 100644
index 0000000000000000000000000000000000000000..963637d6e85fd17ab0a4e88e626ceeb60bc94aa7
--- /dev/null
+++ b/mods/vipworld/darkage/walls.lua
@@ -0,0 +1,39 @@
+local node_box = {
+			type = "connected",
+			fixed = {{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}},
+			-- connect_bottom =
+			connect_front = {{-3/16, -1/2, -1/2,  3/16, 3/8, -1/4}},
+			connect_left = {{-1/2, -1/2, -3/16, -1/4, 3/8,  3/16}},
+			connect_back = {{-3/16, -1/2,  1/4,  3/16, 3/8,  1/2}},
+			connect_right = {{ 1/4, -1/2, -3/16,  1/2, 3/8,  3/16}},
+		}
+
+local register_wall = function(base_node)
+
+	local name = base_node .. "_wall"
+	local ndef = minetest.registered_nodes[base_node]
+	local groups = ndef.groups
+	groups["wall"] = 1
+	-- inventory node, and pole-type wall start item
+	minetest.register_node(name, {
+		description = ndef.description .. " Wall",
+		drawtype = "nodebox",
+		node_box = node_box,
+		connects_to = {base_node,"group:wall"},
+		paramtype = "light",
+		is_ground_content = false,
+		tiles = ndef.tiles,
+		walkable = true,
+		groups = groups,
+		sounds = ndef.sounds,
+	})
+
+end
+
+register_wall("darkage:basalt_cobble")
+register_wall("darkage:ors_brick")
+register_wall("darkage:stone_brick")
+register_wall("darkage:slate_cobble")
+register_wall("darkage:tuff_bricks")
+register_wall("darkage:old_tuff_bricks")
+register_wall("darkage:rhyolitic_tuff_bricks")
diff --git a/mods/vipworld/ferns/depends.txt b/mods/vipworld/ferns/depends.txt
new file mode 100644
index 0000000000000000000000000000000000000000..562cf6328dff5b3cab5e5f9bc69c4edd52048302
--- /dev/null
+++ b/mods/vipworld/ferns/depends.txt
@@ -0,0 +1 @@
+default
diff --git a/mods/vipworld/ferns/fern.lua b/mods/vipworld/ferns/fern.lua
new file mode 100644
index 0000000000000000000000000000000000000000..f35756a6db8660d8c294fe488b49e7460ce58560
--- /dev/null
+++ b/mods/vipworld/ferns/fern.lua
@@ -0,0 +1,82 @@
+-----------------------------------------------------------------------------------------------
+-- Ferns - Fern 0.1.0
+-----------------------------------------------------------------------------------------------
+-- by Mossmanikin
+-- Contains code from:		biome_lib
+-- Looked at code from:		default, flowers, painting, trees
+-- Dependencies:			biome_lib
+-- Supports:				dryplants, stoneage, sumpf
+-----------------------------------------------------------------------------------------------
+-- some inspiration from here
+-- https://en.wikipedia.org/wiki/Athyrium_yokoscense
+-- http://www.mygarden.net.au/gardening/athyrium-yokoscense/3900/1
+-----------------------------------------------------------------------------------------------
+
+
+-- support for i18n
+
+-- Maintain backward compatibilty
+-- minetest-0.5: Begin
+local default_ferns = minetest.registered_items["default:fern_1"] or false
+if default_ferns then
+	minetest.register_alias("ferns:fern_03", "default:fern_3")
+	minetest.register_alias("ferns:fern_02", "default:fern_2")
+	minetest.register_alias("ferns:fern_01", "default:fern_1")
+end
+-- minetest-0.5: End
+minetest.register_alias("archaeplantae:fern",		"ferns:fern_03")
+minetest.register_alias("archaeplantae:fern_mid",	"ferns:fern_02")
+minetest.register_alias("archaeplantae:fern_small",	"ferns:fern_01")
+minetest.register_alias("ferns:fern_04",		"ferns:fern_02") -- for placing
+
+local nodenames = {}
+
+local function create_nodes()
+	local images	= { "ferns_fern.png", "ferns_fern_mid.png", "ferns_fern_big.png" }
+	local vscales	= { 1, math.sqrt(8), math.sqrt(11) }
+	local descs		= { "Lady-fern (Athyrium)", nil, nil }
+
+	for i = 1, 3 do
+		local node_on_place = nil
+		if i == 1 then
+			node_on_place = function(itemstack, placer, pointed_thing)
+				-- place a random fern
+				local stack = ItemStack("ferns:fern_0"..math.random(1,4))
+				local ret = minetest.item_place(stack, placer, pointed_thing)
+				return ItemStack("ferns:fern_01 "..itemstack:get_count()-(1-ret:get_count()))	-- TODO FIXME?
+			end
+		end
+		nodenames[i] = "ferns:fern_"..string.format("%02d", i)
+		minetest.register_node(nodenames[i], {
+			description = descs[i] or ("Lady-fern (Athyrium)".." " .. string.format("%02d", i)),
+			inventory_image = "ferns_fern.png",
+			drawtype = "plantlike",
+			visual_scale = vscales[i],
+			paramtype = "light",
+			tiles = { images[i] },
+			walkable = false,
+			buildable_to = true,
+			groups = {snappy=3,flammable=2,attached_node=1,not_in_creative_inventory=1},
+			sounds = default.node_sound_leaves_defaults(),
+			selection_box = {
+				type = "fixed",
+				fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
+			},
+			drop = "ferns:fern_01",
+			on_place = node_on_place
+		})
+	end
+end
+
+-----------------------------------------------------------------------------------------------
+-- Init
+-----------------------------------------------------------------------------------------------
+
+if default_ferns then
+	for i = 1, 3 do
+		nodenames[i] = "ferns:fern_"..string.format("%02d", i)
+	end
+else
+	create_nodes()
+end
+
diff --git a/mods/vipworld/ferns/gianttreefern.lua b/mods/vipworld/ferns/gianttreefern.lua
new file mode 100644
index 0000000000000000000000000000000000000000..f84a544edba28a5a421c53b61d7da39d3355f3ba
--- /dev/null
+++ b/mods/vipworld/ferns/gianttreefern.lua
@@ -0,0 +1,278 @@
+-----------------------------------------------------------------------------------------------
+-- Ferns - Giant Tree Fern 0.1.1
+-----------------------------------------------------------------------------------------------
+-- by Mossmanikin
+-- Contains code from:		biome_lib
+-- Looked at code from:		4seasons, default
+-- Supports:				vines
+-----------------------------------------------------------------------------------------------
+
+
+-- lot of code, lot to load
+
+abstract_ferns.grow_giant_tree_fern = function(pos)
+	local pos_aux = {x = pos.x, y = pos.y + 1, z = pos.z}
+	local name = minetest.get_node(pos_aux).name
+	if name ~= "air" and name ~= "ferns:sapling_giant_tree_fern"
+			and name ~= "default:junglegrass" then
+		return
+	end
+
+	local size = math.random(12,16)	-- min of range must be >= 4
+
+	local leafchecks = {
+		{
+			direction  = 3,
+			positions = {
+				{x = pos.x + 1, y = pos.y + size - 1, z = pos.z    },
+				{x = pos.x + 2, y = pos.y + size    , z = pos.z    },
+				{x = pos.x + 3, y = pos.y + size - 1, z = pos.z    },
+				{x = pos.x + 4, y = pos.y + size - 2, z = pos.z    }
+			}
+		},
+		{
+			direction  = 1,
+			positions = {
+				{x = pos.x - 1, y = pos.y + size - 1, z = pos.z    },
+				{x = pos.x - 2, y = pos.y + size,     z = pos.z    },
+				{x = pos.x - 3, y = pos.y + size - 1, z = pos.z    },
+				{x = pos.x - 4, y = pos.y + size - 2, z = pos.z    }
+			}
+		},
+		{
+			direction  = 2,
+			positions = {
+				{x = pos.x    , y = pos.y + size - 1, z = pos.z + 1},
+				{x = pos.x    , y = pos.y + size    , z = pos.z + 2},
+				{x = pos.x    , y = pos.y + size - 1, z = pos.z + 3},
+				{x = pos.x    , y = pos.y + size - 2, z = pos.z + 4}
+			}
+		},
+		{
+			direction  = 0,
+			positions = {
+				{x = pos.x    , y = pos.y + size - 1, z = pos.z - 1},
+				{x = pos.x    , y = pos.y + size    , z = pos.z - 2},
+				{x = pos.x    , y = pos.y + size - 1, z = pos.z - 3},
+				{x = pos.x    , y = pos.y + size - 2, z = pos.z - 4}
+			}
+		}
+	}
+
+	local brk = false
+	for i = 1, size-3 do
+		pos_aux.y = pos.y + i
+		local name = minetest.get_node(pos_aux).name
+		if not (name == "air" or (i == 1 and name == "ferns:sapling_giant_tree_fern")) then
+			brk = true
+			break
+		end
+		minetest.swap_node({x = pos.x, y = pos.y + i, z = pos.z}, {name="ferns:fern_trunk_big"})
+	end
+	if not brk then
+		minetest.swap_node({x = pos.x, y = pos.y + size-2, z = pos.z}, {name="ferns:fern_trunk_big_top"})
+		minetest.swap_node({x = pos.x, y = pos.y + size-1, z = pos.z}, {name="ferns:tree_fern_leaves_giant"})
+
+		-- all the checking for air below is to prevent some ugly bugs (incomplete trunks of neighbouring trees), it's a bit slower, but worth the result
+
+		-- assert(#leafchecks == 4)
+		for i = 1, 4 do
+			local positions = leafchecks[i].positions
+			local rot = leafchecks[i].direction
+			local endpos = 4	-- If the loop below adds all intermediate leaves then the "terminating" leaf will be at positions[4]
+			-- assert(#positions == 4)
+			-- add leaves so long as the destination nodes are air
+			for j = 1, 3 do
+				if minetest.get_node(positions[j]).name == "air" then
+					minetest.swap_node(positions[j], {name="ferns:tree_fern_leave_big"})
+				else
+					endpos = j
+					break
+				end
+			end
+			-- add the terminating leaf if required and possible
+			if endpos == 4 and minetest.get_node(positions[endpos]).name == "air" then
+				minetest.swap_node(positions[endpos], {name="ferns:tree_fern_leave_big_end", param2=rot})
+			end
+		end
+	end
+end
+
+-----------------------------------------------------------------------------------------------
+-- GIANT TREE FERN LEAVES
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:tree_fern_leaves_giant", {
+	description = "Tree Fern Crown (Dicksonia)",
+	drawtype = "plantlike",
+	visual_scale = math.sqrt(11),
+	wield_scale = {x=0.175, y=0.175, z=0.175},
+	paramtype = "light",
+	tiles = {"ferns_fern_tree_giant.png"},
+	inventory_image = "ferns_fern_tree.png",
+	walkable = false,
+	groups = {
+		snappy=3,
+		flammable=2,
+		attached_node=1,
+		not_in_creative_inventory=1
+	},
+	drop = {
+		max_items = 2,
+		items = {
+			{
+				-- occasionally, drop a second sapling instead of leaves
+				-- (extra saplings can also be obtained by replanting and
+				--  reharvesting leaves)
+				items = {"ferns:sapling_giant_tree_fern"},
+				rarity = 10,
+			},
+			{
+				items = {"ferns:sapling_giant_tree_fern"},
+			},
+			{
+				items = {"ferns:tree_fern_leaves_giant"},
+			}
+		}
+	},
+	sounds = default.node_sound_leaves_defaults(),
+	selection_box = {
+		type = "fixed",
+		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
+	},
+})
+-----------------------------------------------------------------------------------------------
+-- GIANT TREE FERN LEAVE PART
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:tree_fern_leave_big", {
+	description = "Giant Tree Fern Leaves",
+	drawtype = "raillike",
+	paramtype = "light",
+	tiles = {
+		"ferns_tree_fern_leave_big.png",
+	},
+	walkable = false,
+	groups = {
+		snappy=3,
+		flammable=2,
+		attached_node=1,
+		not_in_creative_inventory=1
+	},
+	drop = "",
+	sounds = default.node_sound_leaves_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- GIANT TREE FERN LEAVE END
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:tree_fern_leave_big_end", {
+	description = "Giant Tree Fern Leave End",
+	drawtype = "nodebox",
+	paramtype = "light",
+	paramtype2 = "facedir",
+	tiles = { "ferns_tree_fern_leave_big_end.png" },
+	walkable = false,
+	node_box = {
+		type = "fixed",
+--			    {left, bottom, front, right, top,   back }
+		fixed = {-1/2, -1/2,   1/2, 1/2,   33/64, 1/2},
+	},
+	selection_box = {
+		type = "fixed",
+		fixed = {-1/2, -1/2,   1/2, 1/2,   33/64, 1/2},
+	},
+	groups = {
+		snappy=3,
+		flammable=2,
+		attached_node=1,
+		not_in_creative_inventory=1
+	},
+	drop = "",
+	sounds = default.node_sound_leaves_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- GIANT TREE FERN TRUNK TOP
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:fern_trunk_big_top", {
+	description = "Giant Fern Trunk",
+	drawtype = "nodebox",
+	paramtype = "light",
+	tiles = {
+		"ferns_fern_trunk_big_top.png^ferns_tree_fern_leave_big_cross.png",
+		"ferns_fern_trunk_big_top.png^ferns_tree_fern_leave_big_cross.png",
+		"ferns_fern_trunk_big.png"
+	},
+	node_box = {
+		type = "fixed",
+--			{left, bottom, front, right, top,   back }
+		fixed = {
+			{-1/2,  33/64, -1/2, 1/2, 33/64, 1/2},
+			{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4},
+		}
+	},
+	selection_box = {
+		type = "fixed",
+		fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4},
+	},
+	groups = {
+		tree=1,
+		choppy=2,
+		oddly_breakable_by_hand=2,
+		flammable=3,
+		wood=1,
+		not_in_creative_inventory=1,
+		leafdecay=3 -- to support vines
+	},
+	drop = "ferns:fern_trunk_big",
+	sounds = default.node_sound_wood_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- GIANT TREE FERN TRUNK
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:fern_trunk_big", {
+	description = "Giant Fern Trunk",
+	drawtype = "nodebox",
+	paramtype = "light",
+	tiles = {
+		"ferns_fern_trunk_big_top.png",
+		"ferns_fern_trunk_big_top.png",
+		"ferns_fern_trunk_big.png"
+	},
+	node_box = {
+		type = "fixed",
+		fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4},
+	},
+	selection_box = {
+		type = "fixed",
+		fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4},
+	},
+	groups = {tree=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+	sounds = default.node_sound_wood_defaults(),
+	after_destruct = function(pos,oldnode)
+        local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
+        if node.name == "ferns:fern_trunk_big" or node.name == "ferns:fern_trunk_big_top" then
+            minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z})
+            minetest.add_item(pos,"ferns:fern_trunk_big")
+        end
+    end,
+})
+
+-----------------------------------------------------------------------------------------------
+-- GIANT TREE FERN SAPLING
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:sapling_giant_tree_fern", {
+	description = "Giant Tree Fern Sapling",
+	drawtype = "plantlike",
+	paramtype = "light",
+	tiles = {"ferns_sapling_tree_fern_giant.png"},
+	inventory_image = "ferns_sapling_tree_fern_giant.png",
+	walkable = false,
+	groups = {snappy=3,flammable=2,flora=1,attached_node=1},
+	sounds = default.node_sound_leaves_defaults(),
+	selection_box = {
+		type = "fixed",
+		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
+	},
+})
+
diff --git a/mods/vipworld/ferns/horsetail.lua b/mods/vipworld/ferns/horsetail.lua
new file mode 100644
index 0000000000000000000000000000000000000000..3d6fbf0a695af2ba10268ce8e5ce4fef04eebf02
--- /dev/null
+++ b/mods/vipworld/ferns/horsetail.lua
@@ -0,0 +1,71 @@
+-----------------------------------------------------------------------------------------------
+-- Archae Plantae - Horsetail 0.0.5
+-----------------------------------------------------------------------------------------------
+-- by Mossmanikin
+-- Contains code from:		biome_lib
+-- Looked at code from:		default, flowers, trees
+-- Dependencies:			biome_lib
+-- Supports:				dryplants, stoneage, sumpf
+-----------------------------------------------------------------------------------------------
+
+
+-- support for i18n
+-----------------------------------------------------------------------------------------------
+-- HORSETAIL  (EQUISETUM)
+-----------------------------------------------------------------------------------------------
+
+local node_names = {}
+
+local function create_nodes()
+	local selection_boxes = {
+		{ -0.15, -1/2, -0.15, 0.15, -1/16, 0.15 },
+		{ -0.15, -1/2, -0.15, 0.15, 1/16, 0.15 },
+		{ -0.15, -1/2, -0.15, 0.15, 4/16, 0.15 },
+		{ -0.15, -1/2, -0.15, 0.15, 7/16, 0.15 },
+	}
+
+	for i = 1, 4 do
+		local node_name = "ferns:horsetail_" .. string.format("%02d", i)
+		local node_img = "ferns_horsetail_" .. string.format("%02d", i) .. ".png"
+		local node_desc
+		local node_on_use = nil
+		local node_drop = "ferns:horsetail_04"
+
+		if i == 1 then
+			node_desc = "Young Horsetail (Equisetum)"
+			node_on_use = minetest.item_eat(1) -- young ones edible https://en.wikipedia.org/wiki/Equisetum
+			node_drop = node_name
+		elseif i == 4 then
+			node_desc = "Horsetail (Equisetum)"
+		else
+			node_desc = "Horsetail (Equisetum)".." ".. string.format("%02d", i)
+		end
+
+		node_names[i] = node_name
+
+		minetest.register_node(node_name, {
+			description = node_desc,
+			drawtype = "plantlike",
+			paramtype = "light",
+			tiles = { node_img },
+			inventory_image = node_img,
+			walkable = false,
+			buildable_to = true,
+			groups = {snappy=3,flammable=2,attached_node=1,horsetail=1},
+			sounds = default.node_sound_leaves_defaults(),
+			selection_box = {
+				type = "fixed",
+				fixed = selection_boxes[i],
+			},
+			on_use = node_on_use,
+			drop = node_drop,
+		})
+	end
+end
+
+-----------------------------------------------------------------------------------------------
+-- Init
+-----------------------------------------------------------------------------------------------
+
+create_nodes()
+
diff --git a/mods/vipworld/ferns/init.lua b/mods/vipworld/ferns/init.lua
new file mode 100644
index 0000000000000000000000000000000000000000..d4287c0e286325b595f8291c79a2c06987830535
--- /dev/null
+++ b/mods/vipworld/ferns/init.lua
@@ -0,0 +1,20 @@
+-----------------------------------------------------------------------------------------------
+local title		= "Ferns" -- former "Archae Plantae"
+local version	= "0.2.1"
+local mname		= "ferns" -- former "archaeplantae"
+-----------------------------------------------------------------------------------------------
+-- (by Mossmanikin)
+-----------------------------------------------------------------------------------------------
+
+abstract_ferns = {}
+
+-- support for i18n
+
+	dofile(minetest.get_modpath("ferns").."/fern.lua")
+
+	dofile(minetest.get_modpath("ferns").."/horsetail.lua")
+
+	dofile(minetest.get_modpath("ferns").."/treefern.lua")
+
+	dofile(minetest.get_modpath("ferns").."/gianttreefern.lua")
+
diff --git a/mods/vipworld/ferns/settings.lua b/mods/vipworld/ferns/settings.lua
new file mode 100644
index 0000000000000000000000000000000000000000..0fcdfbb3cf1bf0a2deae238f52c458cff7b415f7
--- /dev/null
+++ b/mods/vipworld/ferns/settings.lua
@@ -0,0 +1,43 @@
+-- In case you don't wanna have errors:
+
+-- Only change what's behind a "=" (or "--").
+-- Don't use caps (behind a "=").
+
+-- If there's a "false" (behind a "=") you can change it to "true" (and the other way around).
+-- Spelling is important.
+-- If "true" or "false" is necessary as setting, everything(!) which is not spelled "true" will be read as if it were "false" (even "1", "True"...)
+
+-- If you wanna comment something (for example to remember the default value), you can do this by putting "--" in front of the comment.
+-- You can put "--" at the end of a line with "=" in it, or at the beginning of an empty/new line (minetest will ignore what's behind it then).
+-- But don't put "--" in front of a line with "=" in it (or else minetest will ignore the setting and you might get an error).
+
+-- If something is still unclear, don't hesitate to post your question @ https://forum.minetest.net/viewtopic.php?id=6921
+
+abstract_ferns.config = {}
+
+-- Which plants should generate/spawn?
+abstract_ferns.config.enable_lady_fern			= true
+abstract_ferns.config.enable_horsetails			= true
+abstract_ferns.config.enable_treefern			= true
+abstract_ferns.config.enable_giant_treefern		= true
+
+-- Where should they generate/spawn? (if they generate/spawn)
+--
+--  Lady-Fern
+abstract_ferns.config.lady_ferns_near_tree = true
+abstract_ferns.config.lady_ferns_near_rock = true
+abstract_ferns.config.lady_ferns_near_ores = true				-- if there's a bunch of ferns there's ores nearby, this one causes a huge fps drop
+abstract_ferns.config.lady_ferns_in_groups = false				-- this one is meant as a replacement of Ferns_near_Ores: ferns tend to generate in groups, less fps drop, no hint for nearby ores
+--
+--	Horsetails
+abstract_ferns.config.enable_horsetails_spawning	= false		-- horsetails will grow in already explored areas, over time, near water or gravel
+abstract_ferns.config.enable_horsetails_on_grass	= true		-- on dirt with grass and swamp (sumpf mod)
+abstract_ferns.config.enable_horsetails_on_stones	= true		-- on gravel, mossy cobble and silex (stoneage mod)
+--
+-- Tree_Fern
+abstract_ferns.config.enable_treeferns_in_jungle	= true
+abstract_ferns.config.enable_treeferns_in_oases		= true		-- for oases and tropical beaches
+--
+-- Giant_Tree_Fern
+abstract_ferns.config.enable_giant_treeferns_in_jungle	= true
+abstract_ferns.config.enable_giant_treeferns_in_oases	= true	-- for oases and tropical beaches
diff --git a/mods/vipworld/ferns/textures/ferns_5.png b/mods/vipworld/ferns/textures/ferns_5.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e4066519e7a860958015db57b388dc33337595f
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_5.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_6.png b/mods/vipworld/ferns/textures/ferns_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..107bbf6ee4d339b8d816d4f5d73b361791116076
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_6.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_7.png b/mods/vipworld/ferns/textures/ferns_7.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1ac1f519f3ae26f0d8f73f14cc7e3efcb91812b
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_7.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_8.png b/mods/vipworld/ferns/textures/ferns_8.png
new file mode 100644
index 0000000000000000000000000000000000000000..db5510ba20d154432adf9bf1baf92ae49d1fe410
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_8.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern.png b/mods/vipworld/ferns/textures/ferns_fern.png
new file mode 100644
index 0000000000000000000000000000000000000000..7884e5a3f2cfdbebafceb65524b5bc9238509118
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_big.png b/mods/vipworld/ferns/textures/ferns_fern_big.png
new file mode 100644
index 0000000000000000000000000000000000000000..42deb95377063e941d0bd203c923543e22c0842e
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_big.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_mid.png b/mods/vipworld/ferns/textures/ferns_fern_mid.png
new file mode 100644
index 0000000000000000000000000000000000000000..32133088ae6712a44899a705e14719b449c0c46f
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_mid.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_tree.png b/mods/vipworld/ferns/textures/ferns_fern_tree.png
new file mode 100644
index 0000000000000000000000000000000000000000..8daeafd8db6bdfb6759b5d5ea351c1c2e9ef5627
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_tree.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_tree_giant.png b/mods/vipworld/ferns/textures/ferns_fern_tree_giant.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e3adb7206e429c4ce753d23b67959ce49769876
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_tree_giant.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_tree_inv.png b/mods/vipworld/ferns/textures/ferns_fern_tree_inv.png
new file mode 100644
index 0000000000000000000000000000000000000000..5417669131b6b515334770b881777fcadb73fde1
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_tree_inv.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_tree_tl.png b/mods/vipworld/ferns/textures/ferns_fern_tree_tl.png
new file mode 100644
index 0000000000000000000000000000000000000000..16b6e3a036856c594996d62875ef000bec3b9b1e
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_tree_tl.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_tree_tr.png b/mods/vipworld/ferns/textures/ferns_fern_tree_tr.png
new file mode 100644
index 0000000000000000000000000000000000000000..768430fcaf38c282f57bd4f403de63c55f5479d2
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_tree_tr.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_trunk.png b/mods/vipworld/ferns/textures/ferns_fern_trunk.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8e1bf6f3dd9440890ed54969af11a6aa87847a4
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_trunk.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_trunk_big.png b/mods/vipworld/ferns/textures/ferns_fern_trunk_big.png
new file mode 100644
index 0000000000000000000000000000000000000000..24ede0aa624a9d8938869146801c811f4652dbc2
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_trunk_big.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_trunk_big_top.png b/mods/vipworld/ferns/textures/ferns_fern_trunk_big_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e3c829eca57b069cf9be55377d7705e2e1431eb
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_trunk_big_top.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fern_trunk_top.png b/mods/vipworld/ferns/textures/ferns_fern_trunk_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b259cc49bf77d466a01adf63aca11cf9ffcd5d6
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fern_trunk_top.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_ferntuber.png b/mods/vipworld/ferns/textures/ferns_ferntuber.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d6785da54cc722d99bd968b57425de0772aeb2b
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_ferntuber.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_ferntuber_roasted.png b/mods/vipworld/ferns/textures/ferns_ferntuber_roasted.png
new file mode 100644
index 0000000000000000000000000000000000000000..f62a88d6a422924424c755095df91d54ed3c6f87
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_ferntuber_roasted.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fiddlehead.png b/mods/vipworld/ferns/textures/ferns_fiddlehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..0925c7805036e72da00653429e91b4a412f0d022
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fiddlehead.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_fiddlehead_roasted.png b/mods/vipworld/ferns/textures/ferns_fiddlehead_roasted.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f4943ce2bca9a38f20e2f35cfa840da983a0416
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_fiddlehead_roasted.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_horsetail_01.png b/mods/vipworld/ferns/textures/ferns_horsetail_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..60d3ca67e2cc7bba17aeb28025c630105c2d1b53
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_horsetail_01.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_horsetail_02.png b/mods/vipworld/ferns/textures/ferns_horsetail_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c7edf731d4b86da4558e5a24553354d5b7d80b7
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_horsetail_02.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_horsetail_03.png b/mods/vipworld/ferns/textures/ferns_horsetail_03.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d28a468edbc4d95a6c55e8416f13f920ff3f5be
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_horsetail_03.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_horsetail_04.png b/mods/vipworld/ferns/textures/ferns_horsetail_04.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8254ed5d9a3a2740b73bebf3d433e781fc70624
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_horsetail_04.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_sapling_tree_fern.png b/mods/vipworld/ferns/textures/ferns_sapling_tree_fern.png
new file mode 100644
index 0000000000000000000000000000000000000000..b459d481bce2f3f24c66748cbfecad7b7ec471f5
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_sapling_tree_fern.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_sapling_tree_fern_giant.png b/mods/vipworld/ferns/textures/ferns_sapling_tree_fern_giant.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5560166adc1642e1c861c64280b930a99fcaeae
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_sapling_tree_fern_giant.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big.png b/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big.png
new file mode 100644
index 0000000000000000000000000000000000000000..09cc001234dd41e5b2d275fe3cadf6772b23dcbc
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big_cross.png b/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big_cross.png
new file mode 100644
index 0000000000000000000000000000000000000000..48f7e2cbf762abbefff83deb72f8f7316806c35c
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big_cross.png differ
diff --git a/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big_end.png b/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big_end.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0064feebbbc85cc8bcf6e92568964d89596f368
Binary files /dev/null and b/mods/vipworld/ferns/textures/ferns_tree_fern_leave_big_end.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/archaeplantae_horsetails.png b/mods/vipworld/ferns/textures/not_in_use/archaeplantae_horsetails.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ba89c15b72e4ca05d74409169238c20303e218c
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/archaeplantae_horsetails.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/big picture 3.png b/mods/vipworld/ferns/textures/not_in_use/big picture 3.png
new file mode 100644
index 0000000000000000000000000000000000000000..de344e63b14cca994a36d3012d4954b31d57335e
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/big picture 3.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/ferns_fern_big_left.png b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_big_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..0fdf5159537dda6f57ca555e9af6dcaffe7225ee
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_big_left.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/ferns_fern_big_right.png b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_big_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..d30def0b04f5499ba15e1758203018649c796266
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_big_right.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/ferns_fern_mid_left.png b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_mid_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..d146df3121e5b817f251ecf33b8875c392723bf1
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_mid_left.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/ferns_fern_mid_right.png b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_mid_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..e10460a3af41a26988d5b9a3e2cc1e99052e77b4
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_mid_right.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/ferns_fern_tree_bl.png b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_tree_bl.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2fdb67ffa4217ca9e85edcb01d74873fb3a40cf
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_tree_bl.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/ferns_fern_tree_br.png b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_tree_br.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb547e82ec3ad0d49b1c25286031562cd82754d5
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_tree_br.png differ
diff --git a/mods/vipworld/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a1267121c81ed0bb28f8745315ea11ddf504c9a
Binary files /dev/null and b/mods/vipworld/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png differ
diff --git a/mods/vipworld/ferns/textures/old/archaeplantae_fern_old4.png b/mods/vipworld/ferns/textures/old/archaeplantae_fern_old4.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3d403c143e2a943409e3d2a9856c26cc4ae58bb
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/archaeplantae_fern_old4.png differ
diff --git a/mods/vipworld/ferns/textures/old/comb.png b/mods/vipworld/ferns/textures/old/comb.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea1e19f5d40d0dab791b24606a82ab00580635cc
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/comb.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_5_old.png b/mods/vipworld/ferns/textures/old/ferns_5_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..56762781a682f9c02b60de4681ca774e4f9c01ed
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_5_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_6_old.png b/mods/vipworld/ferns/textures/old/ferns_6_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..36d6040312ebdcca4a8ede90333c2cf9b147a9e8
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_6_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_7_old.png b/mods/vipworld/ferns/textures/old/ferns_7_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..8aabe61d05c20992b08af51269122653418e717a
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_7_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_fern_big_old.png b/mods/vipworld/ferns/textures/old/ferns_fern_big_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..d17ed11777644dc9cb70ad90c8fef6aa7453b87f
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_fern_big_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_fern_mid_old.png b/mods/vipworld/ferns/textures/old/ferns_fern_mid_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..08513c2e49e4d34823736a33aebc3520a6660b14
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_fern_mid_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_fern_tree_old.png b/mods/vipworld/ferns/textures/old/ferns_fern_tree_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..45996728d7956db1e9fc67036deccc2cd0cffaac
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_fern_tree_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_old2.png b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_old2.png
new file mode 100644
index 0000000000000000000000000000000000000000..a048ee0c4390ec74a039e5e8feae35a5c7f379ad
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_old2.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_top_old.png b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_top_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..d83151f3b91f602dab95c7d12efdedd23f6c51c6
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_top_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_top_old2.png b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_top_old2.png
new file mode 100644
index 0000000000000000000000000000000000000000..244ddfe6db6770244ea6cca82b0352d9a0e6d698
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_big_top_old2.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_fern_trunk_top_old.png b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_top_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..872fdabbbc78288d3d0a2f65b5dfca7d30b38ea9
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_fern_trunk_top_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_horsetail_01_old2.png b/mods/vipworld/ferns/textures/old/ferns_horsetail_01_old2.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d557185b655536e77e40507938e0d3d8642160a
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_horsetail_01_old2.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_horsetail_02_old2.png b/mods/vipworld/ferns/textures/old/ferns_horsetail_02_old2.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0b55630026536099375de7ee88caf6505b4b281
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_horsetail_02_old2.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_horsetail_03_old2.png b/mods/vipworld/ferns/textures/old/ferns_horsetail_03_old2.png
new file mode 100644
index 0000000000000000000000000000000000000000..42cf76e04da26a88fc8b8e03933549ee81999699
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_horsetail_03_old2.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_horsetail_04_old2.png b/mods/vipworld/ferns/textures/old/ferns_horsetail_04_old2.png
new file mode 100644
index 0000000000000000000000000000000000000000..600ebe76452233ddcb96dd4b59c2dc73e52ac7fd
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_horsetail_04_old2.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png b/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..00ec9d897c8672108380129584936e93067f196e
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png b/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce1a87d87537a4bec46ef2d02047c3f00997b137
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png differ
diff --git a/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_old.png b/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..b568383eeeff1150b0688ccebb5b3b0353ed96c5
Binary files /dev/null and b/mods/vipworld/ferns/textures/old/ferns_tree_fern_leave_big_old.png differ
diff --git a/mods/vipworld/ferns/treefern.lua b/mods/vipworld/ferns/treefern.lua
new file mode 100644
index 0000000000000000000000000000000000000000..0ab957a77a35f90edf6f09412ea776a09c8a9df5
--- /dev/null
+++ b/mods/vipworld/ferns/treefern.lua
@@ -0,0 +1,164 @@
+-----------------------------------------------------------------------------------------------
+-- Ferns - Tree Fern 0.1.1
+-----------------------------------------------------------------------------------------------
+-- by Mossmanikin
+-- Contains code from:		biome_lib
+-- Looked at code from:		default	, trees
+-----------------------------------------------------------------------------------------------
+
+
+abstract_ferns.grow_tree_fern = function(pos)
+
+	local pos_aux = {x = pos.x, y = pos.y + 1, z = pos.z}
+	local name = minetest.get_node(pos_aux).name
+	if name ~= "air" and name ~= "ferns:sapling_tree_fern"
+			and name ~= "default:junglegrass" then
+		return
+	end
+
+	local size = math.random(1, 4) + math.random(1, 4)
+	if (size > 5) then
+		size = 10 - size
+	end
+	size = size + 1
+	local crown = ({ "ferns:tree_fern_leaves", "ferns:tree_fern_leaves_02" })[math.random(1, 2)]
+
+	local i = 1
+	local brk = false
+	while (i < size) do
+		pos_aux.y = pos.y + i
+		name = minetest.get_node(pos_aux).name
+		if not (name == "air" or (i == 1 and name == "ferns:sapling_tree_fern")) then
+			brk = true
+			break
+		end
+		minetest.swap_node({x = pos.x, y = pos.y + i, z = pos.z}, { name = "ferns:fern_trunk" })
+		i = i + 1
+	end
+	if not brk then
+		minetest.swap_node({x = pos.x, y = pos.y + i - 1, z = pos.z}, { name = crown })
+	end
+end
+
+-----------------------------------------------------------------------------------------------
+-- TREE FERN LEAVES
+-----------------------------------------------------------------------------------------------
+
+-- TODO: Both of these nodes look the same?
+
+minetest.register_node("ferns:tree_fern_leaves", {
+	description = "Tree Fern Crown (Dicksonia)",
+	drawtype = "plantlike",
+	visual_scale = math.sqrt(8),
+	paramtype = "light",
+	paramtype2 = "facedir",
+	--tiles = {"[combine:32x32:0,0=top_left.png:0,16=bottom_left.png:16,0=top_right.png:16,16=bottom_right.png"},
+	tiles = {"ferns_fern_tree.png"},
+	inventory_image = "ferns_fern_tree_inv.png",
+	walkable = false,
+	groups = {snappy=3,flammable=2,attached_node=1},
+	drop = {
+		max_items = 2,
+		items = {
+			{
+				-- occasionally, drop a second sapling instead of leaves
+				-- (extra saplings can also be obtained by replanting and
+				--  reharvesting leaves)
+				items = {"ferns:sapling_tree_fern"},
+				rarity = 10,
+			},
+			{
+				items = {"ferns:sapling_tree_fern"},
+			},
+			{
+				items = {"ferns:tree_fern_leaves"},
+			}
+		}
+	},
+	sounds = default.node_sound_leaves_defaults(),
+	selection_box = {
+		type = "fixed",
+		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
+	},
+})
+minetest.register_node("ferns:tree_fern_leaves_02", {
+	drawtype = "plantlike",
+	visual_scale = math.sqrt(8),
+	paramtype = "light",
+	tiles = {"ferns_fern_big.png"},
+	walkable = false,
+	groups = {snappy=3,flammable=2,attached_node=1,not_in_creative_inventory=1},
+	drop = {
+		max_items = 2,
+		items = {
+			{
+				-- occasionally, drop a second sapling instead of leaves
+				-- (extra saplings can also be obtained by replanting and
+				--  reharvesting leaves)
+				items = {"ferns:sapling_tree_fern"},
+				rarity = 10,
+			},
+			{
+				items = {"ferns:sapling_tree_fern"},
+			},
+			{
+				items = {"ferns:tree_fern_leaves"},
+			}
+		}
+	},
+	sounds = default.node_sound_leaves_defaults(),
+	selection_box = {
+		type = "fixed",
+		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
+	},
+})
+-----------------------------------------------------------------------------------------------
+-- FERN TRUNK
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:fern_trunk", {
+	description = "Fern Trunk (Dicksonia)",
+	drawtype = "nodebox",
+	paramtype = "light",
+	tiles = {
+		"ferns_fern_trunk_top.png",
+		"ferns_fern_trunk_top.png",
+		"ferns_fern_trunk.png"
+	},
+	node_box = {
+		type = "fixed",
+		fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8},
+	},
+	selection_box = {
+		type = "fixed",
+		fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
+	},
+	groups = {tree=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+	sounds = default.node_sound_wood_defaults(),
+	after_destruct = function(pos,oldnode)
+        local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
+        if node.name == "ferns:fern_trunk" then
+            minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z})
+            minetest.add_item(pos,"ferns:fern_trunk")
+        end
+    end,
+})
+
+-----------------------------------------------------------------------------------------------
+-- TREE FERN SAPLING
+-----------------------------------------------------------------------------------------------
+minetest.register_node("ferns:sapling_tree_fern", {
+	description = "Tree Fern Sapling (Dicksonia)",
+	drawtype = "plantlike",
+	paramtype = "light",
+	paramtype2 = "facedir",
+	tiles = {"ferns_sapling_tree_fern.png"},
+	inventory_image = "ferns_sapling_tree_fern.png",
+	walkable = false,
+	groups = {snappy=3,flammable=2,flora=1,attached_node=1},
+	sounds = default.node_sound_leaves_defaults(),
+	selection_box = {
+		type = "fixed",
+		fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
+	},
+})
+
diff --git a/mods/vipworld/flowers_plus/depends.txt b/mods/vipworld/flowers_plus/depends.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9f9a7ec0fd27c8fb66059fd6ef960394810405d3
--- /dev/null
+++ b/mods/vipworld/flowers_plus/depends.txt
@@ -0,0 +1,2 @@
+farming?
+flowers?
diff --git a/mods/vipworld/flowers_plus/flowers-changelog.txt b/mods/vipworld/flowers_plus/flowers-changelog.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fbe75185cc04b795f7a33e4256d816d363a5f526
--- /dev/null
+++ b/mods/vipworld/flowers_plus/flowers-changelog.txt
@@ -0,0 +1,24 @@
+Changelog
+---------
+
+2012-08-06: Tweaked selection boxes on all nodes.  Tweaked seaweed to use 
+signlike instead of raillike drawtype, (still forced to only spawn flat as 
+usual).  Adjusted light level limits to give it more time to grow.  Created 
+this changelog file using github commit messages as the basis.  Shrunk the 
+geranium flower down a bit to better match the others.
+
+2012-08-03: Tuned out the random-numbers-inside-ABM stuff. Uses the ABM's 
+chance setting instead.  Should be approximately the same as before, but 
+hopefully using a tad less CPU.  Minor tweak to ABM interval/growing delay.
+
+2012-08-01: Added blue geranium to the collection of flowers.
+
+2012-07-31: Disable debug by default.
+
+2012-07-30: many updates over the course of the day - first commit, removed 
+some redundant files, added wield/inventory image entries for each item, to 
+force the game to draw them properly (these shouldn't be needed, must be a 
+bug).  Tweaked spawn code so that the radius check also includes the name of 
+the item being spawned as well as items in group:flower, that way all items can 
+have a radius test, and not just those in group:flower. Fiddled with the spawn 
+rates a bit.
diff --git a/mods/vipworld/flowers_plus/init.lua b/mods/vipworld/flowers_plus/init.lua
new file mode 100644
index 0000000000000000000000000000000000000000..00108e31124fb8b337943b3b7aa6b30dccb6a8e9
--- /dev/null
+++ b/mods/vipworld/flowers_plus/init.lua
@@ -0,0 +1,154 @@
+-- This file supplies a few additional plants and some related crafts
+-- for the plantlife modpack.  Last revision:  2013-04-24
+
+flowers_plus = {}
+
+local SPAWN_DELAY = 1000
+local SPAWN_CHANCE = 200
+local flowers_seed_diff = 329
+local lilies_max_count = 320
+local lilies_rarity = 33
+local seaweed_max_count = 320
+local seaweed_rarity = 33
+local sunflowers_max_count = 10
+local sunflowers_rarity = 25
+
+-- register the various rotations of waterlilies
+
+local lilies_list = {
+	{ nil  , nil	   , 1	},
+	{ "225", "22.5"    , 2	},
+	{ "45" , "45"      , 3	},
+	{ "675", "67.5"    , 4	},
+	{ "s1" , "small_1" , 5	},
+	{ "s2" , "small_2" , 6	},
+	{ "s3" , "small_3" , 7	},
+	{ "s4" , "small_4" , 8	},
+}
+
+for i in ipairs(lilies_list) do
+	local deg1 = ""
+	local deg2 = ""
+	local lily_groups = {snappy = 3,flammable=2,flower=1}
+
+	if lilies_list[i][1] ~= nil then
+		deg1 = "_"..lilies_list[i][1]
+		deg2 = "_"..lilies_list[i][2]
+		lily_groups = { snappy = 3,flammable=2,flower=1, not_in_creative_inventory=1 }
+	end
+
+	minetest.register_node(":flowers:waterlily"..deg1, {
+		description = "Waterlily",
+		drawtype = "nodebox",
+		tiles = {
+			"flowers_waterlily"..deg2..".png",
+			"flowers_waterlily"..deg2..".png^[transformFY"
+		},
+		inventory_image = "flowers_waterlily.png",
+		wield_image  = "flowers_waterlily.png",
+		sunlight_propagates = true,
+		paramtype = "light",
+		paramtype2 = "facedir",
+		walkable = false,
+		groups = lily_groups,
+		sounds = default.node_sound_leaves_defaults(),
+		selection_box = {
+			type = "fixed",
+			fixed = { -0.4, -0.5, -0.4, 0.4, -0.45, 0.4 },
+		},
+		node_box = {
+			type = "fixed",
+			fixed = { -0.5, -0.49, -0.5, 0.5, -0.49, 0.5 },
+		},
+		buildable_to = true,
+		node_placement_prediction = "",
+
+		liquids_pointable = true,
+		drop = "flowers:waterlily",
+		on_place = function(itemstack, placer, pointed_thing)
+			local keys=placer:get_player_control()
+			local pt = pointed_thing
+
+			local place_pos = nil
+			local top_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
+			local under_node = minetest.get_node(pt.under)
+			local above_node = minetest.get_node(pt.above)
+			local top_node   = minetest.get_node(top_pos)
+
+			if biome_lib:get_nodedef_field(under_node.name, "buildable_to") then
+				if under_node.name ~= "default:water_source" then
+					place_pos = pt.under
+				elseif top_node.name ~= "default:water_source"
+				       and biome_lib:get_nodedef_field(top_node.name, "buildable_to") then
+					place_pos = top_pos
+				else
+					return
+				end
+			elseif biome_lib:get_nodedef_field(above_node.name, "buildable_to") then
+				place_pos = pt.above
+			end
+
+			if place_pos and not minetest.is_protected(place_pos, placer:get_player_name()) then
+
+			local nodename = "default:cobble" -- if this block appears, something went....wrong :-)
+
+				if not keys["sneak"] then
+					local node = minetest.get_node(pt.under)
+					local waterlily = math.random(1,8)
+					if waterlily == 1 then
+						nodename = "flowers:waterlily"
+					elseif waterlily == 2 then
+						nodename = "flowers:waterlily_225"
+					elseif waterlily == 3 then
+						nodename = "flowers:waterlily_45"
+					elseif waterlily == 4 then
+						nodename = "flowers:waterlily_675"
+					elseif waterlily == 5 then
+						nodename = "flowers:waterlily_s1"
+					elseif waterlily == 6 then
+						nodename = "flowers:waterlily_s2"
+					elseif waterlily == 7 then
+						nodename = "flowers:waterlily_s3"
+					elseif waterlily == 8 then
+						nodename = "flowers:waterlily_s4"
+					end
+					minetest.swap_node(place_pos, {name = nodename, param2 = math.random(0,3) })
+				else
+					local fdir = minetest.dir_to_facedir(placer:get_look_dir())
+					minetest.swap_node(place_pos, {name = "flowers:waterlily", param2 = fdir})
+				end
+
+				if not biome_lib.expect_infinite_stacks then
+					itemstack:take_item()
+				end
+				return itemstack
+			end
+		end,
+	})
+end
+
+minetest.register_node(":flowers:sunflower", {
+	description = "Sunflower",
+	drawtype = "mesh",
+	paramtype = "light",
+	paramtype2 = "facedir",
+	inventory_image = "flowers_sunflower_inv.png",
+	mesh = "flowers_sunflower.obj",
+	tiles = { "flowers_sunflower.png" },
+	walkable = false,
+	buildable_to = true,
+	is_ground_content = true,
+	groups = { dig_immediate=3, flora=1, flammable=3 },
+	sounds = default.node_sound_leaves_defaults(),
+	selection_box = box,
+	collision_box = box,
+	drop = {
+		max_items = 1,
+		items = {
+			{items = {sunflower_drop}, rarity = 8},
+			{items = {"flowers:sunflower"}},
+		}
+	}
+})
+
+
diff --git a/mods/vipworld/flowers_plus/models/flowers_sunflower.obj b/mods/vipworld/flowers_plus/models/flowers_sunflower.obj
new file mode 100644
index 0000000000000000000000000000000000000000..35beb8db31a814d5c8ca2b0ba051acef52ad43e0
--- /dev/null
+++ b/mods/vipworld/flowers_plus/models/flowers_sunflower.obj
@@ -0,0 +1,73 @@
+# Blender v2.70 (sub 0) OBJ File: 'sunflower.blend'
+# www.blender.org
+mtllib sunflower_sunflower.mtl
+o Cube
+v -0.015625 -0.500000 0.028125
+v -0.015625 -0.500000 -0.028125
+v 0.028125 -0.500000 -0.028125
+v 0.028125 -0.500000 0.028125
+v -0.015625 0.790890 0.028125
+v -0.015625 0.689140 -0.028125
+v 0.028125 0.689140 -0.028125
+v 0.028125 0.790890 0.028125
+v 0.250000 0.533494 -0.125000
+v -0.250000 0.533494 -0.125000
+v 0.250000 0.966506 0.125000
+v -0.250000 0.966506 0.125000
+v 0.267063 0.373606 -0.088749
+v 0.044375 0.303464 -0.141576
+v 0.239202 0.473737 0.108253
+v -0.008452 0.378817 0.108253
+v 0.017721 0.016639 -0.112053
+v -0.231280 0.110242 -0.115181
+v -0.030356 -0.036246 0.146223
+v -0.252831 0.028885 0.088910
+v 0.062500 0.641747 -0.057917
+v -0.106953 0.097386 -0.113617
+v -0.006318 -0.053008 0.024707
+v 0.118968 0.360674 0.006909
+v 0.116101 0.452031 0.108253
+v 0.017962 0.298392 -0.019504
+v 0.145794 0.358736 -0.115163
+v 0.240237 0.375544 0.033323
+v -0.224509 0.021356 -0.032606
+v -0.131273 0.023638 0.117567
+v -0.102951 0.016109 -0.003950
+vt 0.750000 0.875000
+vt 0.625000 0.875000
+vt 0.625000 0.750000
+vt 0.750000 0.750000
+vt 0.750000 1.000000
+vt 0.625000 1.000000
+vt 0.625000 0.500000
+vt 0.500000 0.500000
+vt 0.500000 1.000000
+vt 0.000100 0.500100
+vt 0.499900 0.500100
+vt 0.499900 0.999900
+vt 0.000100 0.999900
+vt 0.250000 0.250000
+vt 0.500000 0.250000
+vt 0.250000 0.500000
+vt 0.000000 0.250000
+vt 0.000000 0.000000
+vt 0.250000 0.000000
+vt 0.000000 0.500000
+vt 0.500000 0.000000
+usemtl Sunflower
+s off
+f 1/1 2/2 3/3 4/4
+f 5/5 8/6 7/2 6/1
+f 1/7 5/8 6/9 2/6
+f 2/7 6/6 7/9 3/8
+f 3/7 7/8 8/9 4/6
+f 5/7 1/8 4/9 8/6
+f 9/10 10/11 12/12 11/13
+f 24/14 26/15 16/8 25/16
+f 31/14 29/17 20/18 30/19
+f 17/8 22/16 31/14 23/15
+f 22/16 18/20 29/17 31/14
+f 27/19 14/21 26/15 24/14
+f 13/18 27/19 24/14 28/17
+f 23/15 31/14 30/19 19/21
+f 28/17 24/14 25/16 15/20
diff --git a/mods/vipworld/flowers_plus/textures/flowers_seaweed.png b/mods/vipworld/flowers_plus/textures/flowers_seaweed.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5bd99c5dc867bdd04db8059d5ecba3065ca3030
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_seaweed.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_seaweedLight.png b/mods/vipworld/flowers_plus/textures/flowers_seaweedLight.png
new file mode 100644
index 0000000000000000000000000000000000000000..7595ebc9d046c760951966981cf8d79c393eae53
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_seaweedLight.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_seaweed_2.png b/mods/vipworld/flowers_plus/textures/flowers_seaweed_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b24730c7229d9551a7214a0d2d072d0f6ce7db4
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_seaweed_2.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_seaweed_3.png b/mods/vipworld/flowers_plus/textures/flowers_seaweed_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9b7f4392488a0d00864e0940508f0c24922fc83
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_seaweed_3.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_seaweed_4.png b/mods/vipworld/flowers_plus/textures/flowers_seaweed_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..887c1839385a4982a0b08605cca5eec126c50016
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_seaweed_4.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_sunflower.png b/mods/vipworld/flowers_plus/textures/flowers_sunflower.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb95cb4b524d8367c86ded7f18462aab14a21468
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_sunflower.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_sunflower_inv.png b/mods/vipworld/flowers_plus/textures/flowers_sunflower_inv.png
new file mode 100644
index 0000000000000000000000000000000000000000..c36ed010334b16ee329287d8e42cabd7cabca4ba
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_sunflower_inv.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b58bb2eae5491170264c2075f01739d7f896de5
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily_22.5.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily_22.5.png
new file mode 100644
index 0000000000000000000000000000000000000000..73647aca1d54c6a6b965b36f5db6b04ae0d14fa6
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily_22.5.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily_45.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily_45.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ca683ed753641eb22ab56823470ac96427888f3
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily_45.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily_67.5.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily_67.5.png
new file mode 100644
index 0000000000000000000000000000000000000000..234da606081230c8ff781327e3e25cbd9f18f1d5
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily_67.5.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_1.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2d88cd8adb39eb5d897df0f78abeee79511d515
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_1.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_2.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d2ba8696ed9b3c3ab46d683c50fd1c6153e5af5
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_2.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_3.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..bfcab906097631c9728b69db2ebb4672d863a292
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_3.png differ
diff --git a/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_4.png b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..8119ea7c2b7ee5326df57aa74cec9fbb054f1eb1
Binary files /dev/null and b/mods/vipworld/flowers_plus/textures/flowers_waterlily_small_4.png differ
diff --git a/mods/vipworld/modpack.txt b/mods/vipworld/modpack.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/mods/vipworld/molehills/depends.txt b/mods/vipworld/molehills/depends.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4ad96d51599fb734101f6229f6c1a8a509bd6255
--- /dev/null
+++ b/mods/vipworld/molehills/depends.txt
@@ -0,0 +1 @@
+default
diff --git a/mods/vipworld/molehills/init.lua b/mods/vipworld/molehills/init.lua
new file mode 100644
index 0000000000000000000000000000000000000000..2d9791cf07e9837c73263ba586e0f349f2798d98
--- /dev/null
+++ b/mods/vipworld/molehills/init.lua
@@ -0,0 +1,43 @@
+-----------------------------------------------------------------------------------------------
+local title		= "Mole Hills"
+local version	= "0.0.3"
+local mname		= "molehills"
+-----------------------------------------------------------------------------------------------
+-- Idea by Sokomine
+-- Code & textures by Mossmanikin
+
+abstract_molehills = {}
+
+-----------------------------------------------------------------------------------------------
+-- NoDe
+-----------------------------------------------------------------------------------------------
+
+local mh_cbox = {
+	type = "fixed",
+	fixed = { -0.5, -0.5, -0.5, 0.5, -0.125, 0.5}
+}
+
+minetest.register_node("molehills:molehill",{
+	drawtype = "mesh",
+	mesh = "molehill_molehill.obj",
+	description = "Mole Hill",
+	inventory_image = "molehills_side.png",
+	tiles = { "molehills_dirt.png" },
+	paramtype = "light",
+	selection_box = mh_cbox,
+	collision_box = mh_cbox,
+	groups = {crumbly=3},
+	sounds = default.node_sound_dirt_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- CRaFTiNG
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- molehills --> dirt
+	output = "default:dirt",
+	recipe = {
+		{"molehills:molehill","molehills:molehill"},
+		{"molehills:molehill","molehills:molehill"},
+	}
+})
+
diff --git a/mods/vipworld/molehills/models/molehill_molehill.obj b/mods/vipworld/molehills/models/molehill_molehill.obj
new file mode 100644
index 0000000000000000000000000000000000000000..5b9c084ef811710150a1444323ce550e23160bd6
--- /dev/null
+++ b/mods/vipworld/molehills/models/molehill_molehill.obj
@@ -0,0 +1,197 @@
+# Blender v2.73 (sub 0) OBJ File: 'anthill.blend'
+# www.blender.org
+o Cylinder_Cylinder.001
+v 0.099056 -0.499969 -0.498228
+v 0.038417 -0.200463 -0.141682
+v 0.255808 -0.499933 -0.402046
+v 0.095605 -0.174690 -0.147239
+v 0.423075 -0.499913 -0.296918
+v 0.102439 -0.169033 -0.075679
+v 0.444026 -0.499843 -0.095234
+v 0.125298 -0.217477 -0.063343
+v 0.468682 -0.499958 0.074790
+v 0.157655 -0.214352 0.001348
+v 0.396548 -0.500000 0.246048
+v 0.133778 -0.189245 0.108513
+v 0.280708 -0.500000 0.383197
+v 0.070517 -0.218946 0.104754
+v 0.089852 -0.499943 0.434316
+v 0.048523 -0.205247 0.128681
+v -0.093309 -0.499902 0.467111
+v -0.039037 -0.211895 0.149030
+v -0.272965 -0.499875 0.396496
+v -0.108297 -0.175918 0.104100
+v -0.388317 -0.499877 0.239075
+v -0.139068 -0.179051 0.073370
+v -0.437531 -0.499999 0.063918
+v -0.141812 -0.255882 0.005117
+v -0.458429 -0.499805 -0.104397
+v -0.189265 -0.217436 -0.065303
+v -0.385597 -0.499914 -0.288584
+v -0.112692 -0.207830 -0.096879
+v -0.248347 -0.499927 -0.384586
+v -0.083136 -0.202256 -0.170048
+v -0.095346 -0.499958 -0.514449
+v -0.023049 -0.216681 -0.204058
+v 0.071880 -0.343843 -0.343933
+v 0.189128 -0.354687 -0.277980
+v 0.311273 -0.378789 -0.248498
+v 0.296760 -0.346318 -0.056661
+v 0.332231 -0.342427 0.044933
+v 0.259921 -0.360316 0.147910
+v 0.213270 -0.362883 0.253745
+v 0.059007 -0.360067 0.351374
+v -0.068448 -0.357957 0.335642
+v -0.164888 -0.343166 0.232553
+v -0.269761 -0.352370 0.140734
+v -0.367168 -0.370891 0.062326
+v -0.294491 -0.324099 -0.079712
+v -0.276314 -0.352585 -0.236032
+v -0.206169 -0.372829 -0.314307
+v -0.065547 -0.371444 -0.355380
+v 0.000709 -0.156135 -0.047193
+vt 0.572002 0.826281
+vt 0.535907 0.620231
+vt 0.597591 0.625892
+vt 0.604963 0.552988
+vt 0.830215 0.729053
+vt 0.629619 0.540419
+vt 0.814561 0.533613
+vt 0.664520 0.474514
+vt 0.638766 0.365335
+vt 0.774826 0.325198
+vt 0.570532 0.369165
+vt 0.724507 0.217375
+vt 0.546808 0.344788
+vt 0.452364 0.324057
+vt 0.420641 0.133939
+vt 0.377660 0.369831
+vt 0.316619 0.238965
+vt 0.344469 0.401138
+vt 0.203502 0.332509
+vt 0.341509 0.470674
+vt 0.290325 0.542416
+vt 0.176827 0.557096
+vt 0.372919 0.574586
+vt 0.196433 0.716353
+vt 0.404798 0.649130
+vt 0.469609 0.683778
+vt 0.272092 0.796098
+vt 0.770390 0.885486
+vt 0.973405 0.572910
+vt 0.591386 0.033412
+vt 0.226599 0.867698
+vt 0.423770 0.837943
+vt 0.601314 0.983475
+vt 0.078559 0.769893
+vt 0.000000 0.582245
+vt 0.098436 0.412390
+vt 0.075624 0.232320
+vt 0.200045 0.071942
+vt 0.558116 0.117912
+vt 0.922195 0.225217
+vt 0.852821 0.430110
+vt 0.698467 0.759089
+vt 0.495235 0.523967
+vt 0.391629 1.000000
+vt 0.022541 0.410768
+vt 0.797247 0.085491
+vt 0.393825 0.000000
+vt 0.950807 0.778383
+vt 1.000000 0.399692
+g Cylinder_Cylinder.001_None
+s 1
+f 33/1 2/2 4/3
+f 4/3 6/4 35/5
+f 35/5 6/4 8/6
+f 36/7 8/6 10/8
+f 10/8 12/9 38/10
+f 12/9 14/11 39/12
+f 39/12 14/11 16/13
+f 16/13 18/14 41/15
+f 18/14 20/16 42/17
+f 20/16 22/18 43/19
+f 43/19 22/18 24/20
+f 24/20 26/21 45/22
+f 26/21 28/23 46/24
+f 46/24 28/23 30/25
+f 32/26 2/2 33/1
+f 47/27 30/25 32/26
+f 3/28 7/29 15/30
+f 29/31 47/27 48/32
+f 48/32 33/1 1/33
+f 27/34 46/24 47/27
+f 25/35 45/22 46/24
+f 44/36 45/22 25/35
+f 21/37 43/19 44/36
+f 42/17 43/19 21/37
+f 41/15 42/17 19/38
+f 15/30 40/39 41/15
+f 39/12 40/39 15/30
+f 11/40 38/10 39/12
+f 37/41 38/10 11/40
+f 7/29 36/7 37/41
+f 35/5 36/7 7/29
+f 3/28 34/42 35/5
+f 33/1 34/42 3/28
+f 4/3 2/2 49/43
+f 2/2 32/26 49/43
+f 32/26 30/25 49/43
+f 30/25 28/23 49/43
+f 28/23 26/21 49/43
+f 26/21 24/20 49/43
+f 24/20 22/18 49/43
+f 22/18 20/16 49/43
+f 20/16 18/14 49/43
+f 18/14 16/13 49/43
+f 16/13 14/11 49/43
+f 14/11 12/9 49/43
+f 12/9 10/8 49/43
+f 10/8 8/6 49/43
+f 8/6 6/4 49/43
+f 6/4 4/3 49/43
+f 34/42 33/1 4/3
+f 34/42 4/3 35/5
+f 36/7 35/5 8/6
+f 37/41 36/7 10/8
+f 37/41 10/8 38/10
+f 38/10 12/9 39/12
+f 40/39 39/12 16/13
+f 40/39 16/13 41/15
+f 41/15 18/14 42/17
+f 42/17 20/16 43/19
+f 44/36 43/19 24/20
+f 44/36 24/20 45/22
+f 45/22 26/21 46/24
+f 47/27 46/24 30/25
+f 48/32 32/26 33/1
+f 48/32 47/27 32/26
+f 29/31 31/44 1/33
+f 23/45 27/34 29/31
+f 27/34 23/45 25/35
+f 15/30 19/38 21/37
+f 11/40 13/46 15/30
+f 15/30 17/47 19/38
+f 3/28 23/45 29/31
+f 29/31 1/33 3/28
+f 3/28 5/48 7/29
+f 7/29 9/49 11/40
+f 23/45 15/30 21/37
+f 15/30 23/45 3/28
+f 15/30 7/29 11/40
+f 31/44 29/31 48/32
+f 31/44 48/32 1/33
+f 29/31 27/34 47/27
+f 27/34 25/35 46/24
+f 23/45 44/36 25/35
+f 23/45 21/37 44/36
+f 19/38 42/17 21/37
+f 17/47 41/15 19/38
+f 17/47 15/30 41/15
+f 13/46 39/12 15/30
+f 13/46 11/40 39/12
+f 9/49 37/41 11/40
+f 9/49 7/29 37/41
+f 5/48 35/5 7/29
+f 5/48 3/28 35/5
+f 1/33 33/1 3/28
diff --git a/mods/vipworld/molehills/molehills_settings.txt b/mods/vipworld/molehills/molehills_settings.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1afc592d131b25130c9a61fcbd3245d10c8bc2fe
--- /dev/null
+++ b/mods/vipworld/molehills/molehills_settings.txt
@@ -0,0 +1,6 @@
+-- Settings for generation of stuff (at map-generation time)
+
+Molehills_Max_Count		= 320 -- absolute maximum number in an area of 80x80x80 nodes
+
+Molehills_Rarity		= 95 -- larger values make molehills more rare (100 means chance of 0 %)
+
diff --git a/mods/vipworld/molehills/textures/molehills_dirt.png b/mods/vipworld/molehills/textures/molehills_dirt.png
new file mode 100644
index 0000000000000000000000000000000000000000..79ffa8557c0c3d157e40331b96b57fb92493bdde
Binary files /dev/null and b/mods/vipworld/molehills/textures/molehills_dirt.png differ
diff --git a/mods/vipworld/molehills/textures/molehills_side.png b/mods/vipworld/molehills/textures/molehills_side.png
new file mode 100644
index 0000000000000000000000000000000000000000..554bbecf883a2bfc2ea045a21537cba629336522
Binary files /dev/null and b/mods/vipworld/molehills/textures/molehills_side.png differ
diff --git a/mods/vipworld/molehills/textures/old & unused/molehill_side.png b/mods/vipworld/molehills/textures/old & unused/molehill_side.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f0f976863c69779401e77857ed46948f869d6ab
Binary files /dev/null and b/mods/vipworld/molehills/textures/old & unused/molehill_side.png differ
diff --git a/mods/vipworld/molehills/textures/old & unused/molehill_top.png b/mods/vipworld/molehills/textures/old & unused/molehill_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..55cc54133e89dbec38ad85f3c9f67e748886a7e3
Binary files /dev/null and b/mods/vipworld/molehills/textures/old & unused/molehill_top.png differ
diff --git a/mods/vipworld/moretrees b/mods/vipworld/moretrees
new file mode 160000
index 0000000000000000000000000000000000000000..d521e34758d4297ac2de9027848fed5e3594f950
--- /dev/null
+++ b/mods/vipworld/moretrees
@@ -0,0 +1 @@
+Subproject commit d521e34758d4297ac2de9027848fed5e3594f950
diff --git a/mods/vipworld/poisonivy/depends.txt b/mods/vipworld/poisonivy/depends.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/mods/vipworld/poisonivy/init.lua b/mods/vipworld/poisonivy/init.lua
new file mode 100644
index 0000000000000000000000000000000000000000..9f2497c809f91a1338881ee4a7cde55ffb2bafbf
--- /dev/null
+++ b/mods/vipworld/poisonivy/init.lua
@@ -0,0 +1,63 @@
+-- This file supplies poison ivy for the plantlife modpack
+-- Last revision:  2013-01-24
+
+local walls_list = {
+	"default:dirt",
+	"default:dirt_with_grass",
+	"default:stone",
+	"default:cobble",
+	"default:mossycobble",
+	"default:brick",
+	"default:tree",
+	"default:jungletree",
+	"default:stone_with_coal",
+	"default:stone_with_iron"
+},
+minetest.register_node('poisonivy:seedling', {
+	description = "Poison ivy (seedling)",
+	drawtype = 'plantlike',
+	waving = 1,
+	tiles = { 'poisonivy_seedling.png' },
+	inventory_image = 'poisonivy_seedling.png',
+	wield_image = 'poisonivy_seedling.png',
+	sunlight_propagates = true,
+	paramtype = 'light',
+	walkable = false,
+	groups = { snappy = 3, poisonivy=1, flora_block=1 },
+	sounds = default.node_sound_leaves_defaults(),
+	buildable_to = true,
+})
+
+minetest.register_node('poisonivy:sproutling', {
+	description = "Poison ivy (sproutling)",
+	drawtype = 'plantlike',
+	waving = 1,
+	tiles = { 'poisonivy_sproutling.png' },
+	inventory_image = 'poisonivy_sproutling.png',
+	wield_image = 'poisonivy_sproutling.png',
+	sunlight_propagates = true,
+	paramtype = 'light',
+	walkable = false,
+	groups = { snappy = 3, poisonivy=1, flora_block=1 },
+	sounds = default.node_sound_leaves_defaults(),
+	buildable_to = true,
+})
+
+minetest.register_node('poisonivy:climbing', {
+	description = "Poison ivy (climbing plant)",
+	drawtype = 'signlike',
+	tiles = { 'poisonivy_climbing.png' },
+	inventory_image = 'poisonivy_climbing.png',
+	wield_image = 'poisonivy_climbing.png',
+	sunlight_propagates = true,
+	paramtype = 'light',
+	paramtype2 = 'wallmounted',
+	walkable = false,
+	groups = { snappy = 3, poisonivy=1, flora_block=1 },
+	sounds = default.node_sound_leaves_defaults(),
+	selection_box = {
+		type = "wallmounted",
+		--wall_side = = <default>
+	},
+	buildable_to = true,
+})
diff --git a/mods/vipworld/poisonivy/locale/pt_BR.txt b/mods/vipworld/poisonivy/locale/pt_BR.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9f61092eff271e26a1fbf89b94bd1cfae9b38ed4
--- /dev/null
+++ b/mods/vipworld/poisonivy/locale/pt_BR.txt
@@ -0,0 +1,5 @@
+Poison ivy (seedling) = Hera venenosa (plantilha)
+Poison ivy (sproutling) = Hera venenosa (brotando)
+Poison ivy (climbing plant) = Hera venenosa (planta trepadeira)
+
+[Poison Ivy] Loaded. =[Poison Ivy] Carregado
diff --git a/mods/vipworld/poisonivy/textures/poisonivy_climbing.png b/mods/vipworld/poisonivy/textures/poisonivy_climbing.png
new file mode 100644
index 0000000000000000000000000000000000000000..f53f7a39faf16eef2a459f6b7db88363bfc93b93
Binary files /dev/null and b/mods/vipworld/poisonivy/textures/poisonivy_climbing.png differ
diff --git a/mods/vipworld/poisonivy/textures/poisonivy_seedling.png b/mods/vipworld/poisonivy/textures/poisonivy_seedling.png
new file mode 100644
index 0000000000000000000000000000000000000000..281fa754dcc556c44da81048e3579c8a86d1ab58
Binary files /dev/null and b/mods/vipworld/poisonivy/textures/poisonivy_seedling.png differ
diff --git a/mods/vipworld/poisonivy/textures/poisonivy_sproutling.png b/mods/vipworld/poisonivy/textures/poisonivy_sproutling.png
new file mode 100644
index 0000000000000000000000000000000000000000..92d2742972c663cd29d8e78bf36f3e902c2fb359
Binary files /dev/null and b/mods/vipworld/poisonivy/textures/poisonivy_sproutling.png differ