minetest.register_on_dieplayer(function(player)
	local keep = minetest.settings:get_bool("mcl_keepInventory", false)
	if keep == false then
		-- Drop inventory, crafting grid and armor
		local inv = player:get_inventory()
		local pos = player:get_pos()
		local name, player_armor_inv, armor_armor_inv, pos = armor:get_valid_player(player, "[on_dieplayer]")
		-- No item drop if in deep void
		local void, void_deadly = mcl_worlds.is_in_void(pos)
		local lists = {
			{ inv = inv, listname = "main", drop = true },
			{ inv = inv, listname = "craft", drop = true },
			{ inv = player_armor_inv, listname = "armor", drop = true },
			{ inv = armor_armor_inv, listname = "armor", drop = false },
		}
		for l=1,#lists do
			local inv = lists[l].inv
			local listname = lists[l].listname
			local drop = lists[l].drop
			if inv ~= nil then
				for i, stack in ipairs(inv:get_list(listname)) do
					local x = math.random(0, 9)/3
					local z = math.random(0, 9)/3
					pos.x = pos.x + x
					pos.z = pos.z + z
					if not void_deadly and drop then
						local def = minetest.registered_items[stack:get_name()]
						if def and def.on_drop then
							stack = def.on_drop(stack, player, pos)
						end
						minetest.add_item(pos, stack)
					end
					pos.x = pos.x - x
					pos.z = pos.z - z
				end
				inv:set_list(listname, {})
			end
		end
		armor:set_player_armor(player)
		armor:update_inventory(player)
	end
end)