--[[---------------------------------------------
-------------------------------------------------
--
-- forageDefs
--
-- eris
--
-------------------------------------------------
--]]---------------------------------------------
--old scavenges table (for backwards compatibility)
scavenges = {};
scavenges.plants = {};
scavenges.insects = {};
scavenges.fishbait = {};
scavenges.mushrooms = {};
scavenges.berries = {};
scavenges.forestGoods = {};
scavenges.medicinalPlants = {};
-------------------------------------------------
-------------------------------------------------
local worldSprites = {
	wildPlants = {
		{ "d_plants_1_11" },
		{ "d_plants_1_12" },
		{ "d_plants_1_13" },
		{ "d_plants_1_14" },
		{ "d_plants_1_15" },
	},
	smallTrees = {
		{ "media/textures/Foraging/worldSprites/smallTree_worldSprite.png" },
		{ "media/textures/Foraging/worldSprites/smallTree2_worldSprite.png" },
	},
	berryBushes = {
		{ "f_bushes_1_4", "f_bushes_1_68", "f_bushes_1_84" },
		{ "f_bushes_1_4", "f_bushes_1_68", "f_bushes_1_88" },
	},
	bushes = {
		{ "f_bushes_1_64" },
		{ "f_bushes_1_65" },
		{ "f_bushes_1_66" },
	},
	shrubs = {
		{ "d_plants_1_19" },
		{ "d_plants_1_20" },
		{ "d_plants_1_21" },
		{ "d_plants_1_22" },
		{ "d_plants_1_23" },
		{ "f_bushes_1_68" },
		{ "f_bushes_1_77" },
		{ "f_bushes_1_78" },
	},
	vines = {
		{ "d_plants_1_38" },
		{ "d_plants_1_49" },
		{ "d_plants_1_50" },
	},
};
-------------------------------------------------
-------------------------------------------------
local spriteAffinities = {
	genericPlants = {
		"d_generic_1_17",
		"d_generic_1_18",
		"d_generic_1_19",
		"d_generic_1_47",
		"d_generic_1_48",
		"d_generic_1_49",
		"d_generic_1_50",
		"d_generic_1_51",
		"d_generic_1_52",
		"d_generic_1_53",
		"d_generic_1_54",
		"d_generic_1_55",
		"d_generic_1_80",
		"d_generic_1_81",
		"d_generic_1_82",
		"d_generic_1_83",
		"d_generic_1_84",
		"d_generic_1_85",
		"d_generic_1_86",
		"d_generic_1_87",
		"d_plants_1_0",
		"d_plants_1_1",
		"d_plants_1_2",
		"d_plants_1_3",
		"d_plants_1_4",
		"d_plants_1_5",
		"d_plants_1_6",
		"d_plants_1_7",
		"d_plants_1_8",
		"d_plants_1_9",
		"d_plants_1_10",
		"d_plants_1_11",
		"d_plants_1_12",
		"d_plants_1_13",
		"d_plants_1_14",
		"d_plants_1_15",
		"d_plants_1_16",
		"d_plants_1_17",
		"d_plants_1_18",
		"d_plants_1_19",
		"d_plants_1_20",
		"d_plants_1_21",
		"d_plants_1_22",
		"d_plants_1_23",
		"d_plants_1_24",
		"d_plants_1_25",
		"d_plants_1_26",
		"d_plants_1_27",
		"d_plants_1_28",
		"d_plants_1_29",
		"d_plants_1_30",
		"d_plants_1_31",
		"d_plants_1_32",
		"d_plants_1_33",
		"d_plants_1_34",
		"d_plants_1_35",
		"d_plants_1_36",
		"d_plants_1_37",
		"d_plants_1_38",
		"d_plants_1_39",
		"d_plants_1_40",
		"d_plants_1_41",
		"d_plants_1_42",
		"d_plants_1_43",
		"d_plants_1_44",
		"d_plants_1_45",
		"d_plants_1_46",
		"d_plants_1_47",
		"d_plants_1_48",
		"d_plants_1_49",
		"d_plants_1_50",
		"d_plants_1_51",
		"d_plants_1_52",
		"d_plants_1_53",
		"d_plants_1_54",
		"d_plants_1_55",
		"d_plants_1_56",
		"d_plants_1_57",
		"d_plants_1_58",
		"d_plants_1_59",
		"d_plants_1_60",
		"d_plants_1_61",
		"d_plants_1_62",
		"d_plants_1_63",
	},
	specialPlants = {
		"d_generic_1_17",
		"d_generic_1_18",
		"d_generic_1_19",
		"d_generic_1_47",
		"d_generic_1_48",
		"d_generic_1_49",
		"d_generic_1_50",
		"d_generic_1_51",
		"d_generic_1_52",
		"d_generic_1_53",
		"d_generic_1_54",
		"d_generic_1_55",
		"d_generic_1_80",
		"d_generic_1_81",
		"d_generic_1_82",
		"d_generic_1_83",
		"d_generic_1_84",
		"d_generic_1_85",
		"d_generic_1_86",
		"d_generic_1_87",
	},
	stones = {
		"d_generic_1_13",
		"d_generic_1_22",
		"d_generic_1_23",
		"d_generic_1_24",
		"d_generic_1_25",
		"d_generic_1_40",
		"d_generic_1_41",
		"d_generic_1_42",
		"d_generic_1_43",
		"floors_overlay_street_01_0",
		"floors_overlay_street_01_1",
		"floors_overlay_street_01_2",
		"floors_overlay_street_01_3",
		"floors_overlay_street_01_4",
		"floors_overlay_street_01_5",
		"floors_overlay_street_01_6",
		"floors_overlay_street_01_7",
		"floors_overlay_street_01_8",
		"floors_overlay_street_01_9",
		"floors_overlay_street_01_10",
		"floors_overlay_street_01_11",
		"floors_overlay_street_01_12",
		"floors_overlay_street_01_13",
		"floors_overlay_street_01_14",
		"floors_overlay_street_01_15",
		"floors_overlay_street_01_16",
		"floors_overlay_street_01_17",
		"floors_overlay_street_01_18",
		"floors_overlay_street_01_19",
		"floors_overlay_street_01_20",
		"floors_overlay_street_01_21",
		"floors_overlay_street_01_22",
		"floors_overlay_street_01_23",
		"floors_overlay_street_01_24",
		"floors_overlay_street_01_25",
		"floors_overlay_street_01_26",
		"floors_overlay_street_01_27",
		"floors_overlay_street_01_28",
		"floors_overlay_street_01_29",
		"floors_overlay_street_01_30",
		"floors_overlay_street_01_31",
		"floors_overlay_street_01_32",
		"floors_overlay_street_01_33",
		"floors_overlay_street_01_34",
		"floors_overlay_street_01_35",
		"floors_overlay_street_01_36",
		"floors_overlay_street_01_37",
		"floors_overlay_street_01_38",
		"floors_overlay_street_01_39",
		"floors_overlay_street_01_40",
		"floors_overlay_street_01_41",
		"floors_overlay_street_01_42",
		"floors_overlay_street_01_43",
		"floors_overlay_street_01_44",
		"floors_overlay_street_01_45",
		"floors_overlay_street_01_46",
		"floors_overlay_street_01_47",
		"floors_overlay_street_01_48",
		"floors_overlay_street_01_49",
		"floors_overlay_street_01_50",
		"floors_overlay_street_01_51",
		"floors_overlay_street_01_52",
		"floors_overlay_street_01_53",
		"floors_overlay_street_01_54",
		"floors_overlay_street_01_55",
		"floors_overlay_street_01_56",
		"floors_overlay_street_01_57",
		"floors_overlay_street_01_58",
		"floors_overlay_street_01_59",
		"floors_overlay_street_01_60",
		"floors_overlay_street_01_61",
		"floors_overlay_street_01_62",
		"floors_overlay_street_01_63",
		"blends_streetoverlays_01_0",
		"blends_streetoverlays_01_1",
		"blends_streetoverlays_01_2",
		"blends_streetoverlays_01_3",
		"blends_streetoverlays_01_4",
		"blends_streetoverlays_01_5",
		"blends_streetoverlays_01_6",
		"blends_streetoverlays_01_7",
		"blends_streetoverlays_01_8",
		"blends_streetoverlays_01_9",
		"blends_streetoverlays_01_10",
		"blends_streetoverlays_01_11",
		"blends_streetoverlays_01_12",
		"blends_streetoverlays_01_13",
		"blends_streetoverlays_01_14",
		"blends_streetoverlays_01_15",
		"blends_streetoverlays_01_16",
		"blends_streetoverlays_01_17",
		"blends_streetoverlays_01_18",
		"blends_streetoverlays_01_19",
		"blends_streetoverlays_01_20",
		"blends_streetoverlays_01_21",
		"blends_streetoverlays_01_22",
		"blends_streetoverlays_01_23",
		"blends_streetoverlays_01_24",
		"blends_streetoverlays_01_25",
		"blends_streetoverlays_01_26",
		"blends_streetoverlays_01_27",
		"blends_streetoverlays_01_28",
		"blends_streetoverlays_01_29",
		"blends_streetoverlays_01_30",
		"blends_streetoverlays_01_31",
	},
	firewood = {
		"d_generic_1_8",
		"d_generic_1_9",
		"d_generic_1_10",
		"d_generic_1_11",
		"d_generic_1_12",
		"d_generic_1_14",
		"d_generic_1_15",
		"d_generic_1_31",
		"d_generic_1_44",
		"d_generic_1_45",
	},
	trash = {
		"d_trash_0",
		"d_trash_1",
		"d_trash_2",
		"d_trash_3",
		"d_trash_4",
		"d_trash_5",
		"d_trash_6",
		"d_trash_7",
		"d_trash_8",
		"d_trash_9",
		"d_trash_10",
		"d_trash_11",
		"d_trash_12",
		"d_trash_13",
		"d_trash_14",
		"d_trash_15",
		"d_trash_16",
		"d_trash_17",
		"d_trash_18",
		"d_trash_19",
		"d_trash_20",
		"d_trash_21",
		"d_trash_22",
		"d_trash_23",
		"d_trash_24",
		"d_trash_25",
		"trash_01_0",
		"trash_01_1",
		"trash_01_2",
		"trash_01_3",
		"trash_01_4",
		"trash_01_5",
		"trash_01_6",
		"trash_01_7",
		"trash_01_8",
		"trash_01_9",
		"trash_01_10",
		"trash_01_11",
		"trash_01_12",
		"trash_01_16",
		"trash_01_17",
		"trash_01_18",
		"trash_01_19",
		"trash_01_20",
		"trash_01_21",
		"trash_01_22",
		"trash_01_23",
		"trash_01_24",
		"trash_01_25",
		"trash_01_26",
		"trash_01_27",
		"trash_01_28",
		"trash_01_29",
		"trash_01_30",
		"trash_01_31",
		"trash_01_32",
		"trash_01_33",
		"trash_01_34",
		"trash_01_35",
		"trash_01_36",
		"trash_01_37",
		"trash_01_38",
		"trash_01_39",
		"trash_01_40",
		"trash_01_41",
		"trash_01_42",
		"trash_01_43",
		"trash_01_44",
		"trash_01_45",
		"trash_01_46",
		"trash_01_47",
		"trash_01_48",
		"trash_01_49",
		"trash_01_50",
		"trash_01_51",
		"trash_01_52",
		"trash_01_53",
	},
};
-------------------------------------------------
-------------------------------------------------
local function iterList(_list)
	local list = _list;
	local size = list:size() - 1;
	local i = -1;
	return function()
		i = i + 1;
		if i <= size and not list:isEmpty() then
			return list:get(i), i;
		end;
	end;
end
-------------------------------------------------
-------------------------------------------------
--[[--======== Spawn Functions ========--]]--

local function doPoisonItemSpawn(_character, _inventory, _itemDef, _items)
	if _itemDef.poisonChance and _itemDef.poisonPowerMin and _itemDef.poisonPowerMax then
		if _itemDef.poisonChance > 0 and _itemDef.poisonPowerMax > 0 then
			local perkLevel = forageSystem.getPerkLevel(_character, _itemDef);
			--increase poison chance by up to 30% for level 0
			if ZombRand(100) < _itemDef.poisonChance + ((10 - perkLevel) * 3) then
				for item in iterList(_items) do
					item:setPoisonPower(ZombRand(_itemDef.poisonPowerMin, _itemDef.poisonPowerMax) + 1);
					item:setPoisonDetectionLevel(_itemDef.poisonDetectionLevel or 0);
					item:setUseForPoison(item:getHungChange());
				end;
			end;
		end;
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doRandomAgeSpawn(_character, _inventory, _itemDef, _items)
	-- Randomize the size of the item
	local perkLevel = forageSystem.getPerkLevel(_character, _itemDef);
	for item in iterList(_items) do
		--set random age based on perkLevel and random chance
		local randomAge = 0;
		if (ZombRand(10) + 1) <= perkLevel then
			randomAge = ZombRandFloat(0.0, item:getOffAge() / 2);
		elseif ZombRand(3) <= perkLevel then
			randomAge = ZombRandFloat(0.0, item:getOffAge());
		else
			randomAge = ZombRandFloat(item:getOffAge(), item:getOffAgeMax());
		end;
		item:setAge(randomAge);
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doWildFoodSpawn(_character, _inventory, _itemDef, _items)
	-- Randomize the size of the item
	local perkLevel = forageSystem.getPerkLevel(_character, _itemDef);
	for item in iterList(_items) do
		item:setName(item:getDisplayName() .. " (" .. getText("UI_foraging_WildFood") .. ")");
		--25 to 75 percent size
		local sizeModifier = ((ZombRand(50) + 25) / 100);
		--add up to 50% for perk level
		sizeModifier = sizeModifier + ((ZombRand(perkLevel) + 1) / 5)
		-- Set the item's stats depending on the random size
		if item:getBaseHunger() <= -0.02 then
			item:setBaseHunger(item:getBaseHunger() * sizeModifier);
			item:setHungChange(item:getHungChange() * sizeModifier);
			item:setCarbohydrates(item:getCarbohydrates() * sizeModifier);
			item:setLipids(item:getLipids() * sizeModifier);
			item:setProteins(item:getProteins() * sizeModifier);
			item:setCalories(item:getCalories() * sizeModifier);
			item:setUnhappyChange(item:getUnhappyChange() * sizeModifier);
			--item:multiplyFoodValues(sizeModifier);
			--item:setActualWeight(item:getActualWeight() * sizeModifier);
		end;
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doWildCropSpawn(_character, _inventory, _itemDef, _items)
	local seedTable = {
		["Base.Carrots"] = "farming.CarrotSeed",
		["Base.Broccoli"] = "farming.BroccoliSeed",
		["farming.RedRadish"] = "farming.RedRadishSeed",
		["farming.Strewberrie"] = "farming.StrewberrieSeed",
		["farming.Potato"] = "farming.PotatoSeed",
		["farming.Tomato"] = "farming.TomatoSeed",
		["farming.Cabbage"] = "farming.CabbageSeed",
	};
	--chance to generate a few seeds
	if seedTable[_itemDef.type] then
		local seedChance = 75;
		if ZombRand(100) + 1 <= seedChance then
			local seedAmount = ZombRand(20) + 1;
			local seedItemType = seedTable[_itemDef.type];
			for i = 1, seedAmount do
				_items:add(InventoryItemFactory.CreateItem(seedItemType));
			end;
		end;
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doJunkWeaponSpawn(_character, _inventory, _itemDef, _items)
	for item in iterList(_items) do
		local conditionMax = item:getConditionMax();
		if conditionMax > 0 then
			item:setCondition(ZombRand(conditionMax) + 1); -- Randomize the weapon condition
		end;
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doGenericItemSpawn(_character, _inventory, _itemDef, _items)
	for item in iterList(_items) do
		if item:IsDrainable() then
			item:setUsedDelta(ZombRandFloat(0.0, 1.0)); -- Randomize the item uses remaining
		end;
		local conditionMax = item:getConditionMax();
		if conditionMax > 0 then
			item:setCondition(ZombRand(conditionMax) + 1); -- Randomize the weapon condition
		end;
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doClothingItemSpawn(_character, _inventory, _itemDef, _items)
	for item in iterList(_items) do
		if not item:isCosmetic() then
			item:setWetness(ZombRandFloat(0.0, 100.0));
			item:setBloodLevel(ZombRandFloat(0.0, 100.0));
			item:setDirtyness(ZombRandFloat(0.0, 100.0));
			local conditionMax = item:getConditionMax();
			if conditionMax > 0 then
				item:setCondition(ZombRand(conditionMax) + 1);
			end;
		end;
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doDeadTrapAnimalSpawn(_character, _inventory, _itemDef, _items)
	for item in iterList(_items) do
		--search for trap animal definition
		for _, trapDef in pairs(Animals) do
			if trapDef.item == _itemDef.type then
				-- Randomize the hunger reduction of the animal
				local size = ZombRand(trapDef.minSize, trapDef.maxSize);
				local typicalSize = item:getBaseHunger() * -100;
				local statsModifier = size / typicalSize;
				-- Set the animal's stats depending on the random size
				item:setBaseHunger(item:getBaseHunger() * statsModifier);
				item:setHungChange(item:getHungChange() * statsModifier);
				item:setActualWeight(item:getActualWeight() * statsModifier);
				item:setCarbohydrates(item:getCarbohydrates() * statsModifier);
				item:setLipids(item:getLipids() * statsModifier);
				item:setProteins(item:getProteins() * statsModifier);
				item:setCalories(item:getCalories() * statsModifier);
			end;
		end;
		--dead animals can only be in the range of barely fresh to rotted
		if ZombRand(10) + 1 <= 3 then
			--barely fresh to rotted
			local freshLimit = item:getOffAge() - (item:getOffAge() / 4);
			item:setAge(ZombRandFloat(freshLimit, item:getOffAgeMax()));
		else
			--stale to rotted
			item:setAge(ZombRandFloat(item:getOffAge(), item:getOffAgeMax()));
		end;
	end;
	return _items; --custom spawn scripts must return an arraylist of items (or nil)
end

local function doGlassesCheck(_character, _skillDef, _bonusEffect)
	if _bonusEffect == "visionBonus" then
		local visualAids = {
			["Base.Glasses_Normal"]     = true,
			["Base.Glasses_Reading"]    = true,
		};
		local wornItem = _character:getWornItem("Eyes");
		if wornItem and visualAids[wornItem:getFullType()] then
			return false;
		end;
	end;
	return true;
end

-------------------------------------------------
-------------------------------------------------

--[[--======== forageDefaultDefs ========--
    ---- default values (applied if missing from item definition)
]]--

forageDefaultDefs = {
	--- default values (applied if missing from item definition)
	defaultItemDef = {
		type                    = "Base.MissingItemType",                       --item type including module
		minCount                = 1,                                            --minimum amount of items to pick up
		maxCount                = 1,                                            --maximum amount of items to pick up
		skill                   = 0,                                            --skill level required to see the item
		perks                   = { "PlantScavenging" },                        --perks required - can be multiple perks, skill level will be averaged
		xp                      = 1,                                            --xp reward on pickup - divide by 3 for spotting xp - is awarded to all perks required
		--
		recipes                 = {},                                           --recipes required to see the item
		traits                  = {},                                           --traits required to see the item
		itemTags                = {},                                           --itemTags required to see the item (digPlow etc)
		--
		categories              = { "Junk" },                                   --categories the item is a part of
		rainChance              = 0,                                            --rain chance modifier (percent)
		hasRainedChance         = 0,                                            --after rain chance modifier (percent)
		snowChance              = 0,                                            --snow chance modifier (percent)
		dayChance               = 0,                                            --day chance modifier (percent)
		nightChance             = 0,                                            --night chance modifier (percent)
		--
		zones           = {                                                     --zones where the item can be found
			Forest              = 1,                                            --[zone name] = number of rolls for item in this zone
			DeepForest          = 1,                                            --/!\ it is NOT a percent chance /!\
			Vegitation          = 1,
			FarmLand            = 1,
			Farm                = 1,
			TrailerPark         = 1,
			TownZone            = 1,
			Nav                 = 1,
		},
		--
		months                  = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },    --months when the item can be found
		bonusMonths             = {},                                           --months when the item is more common (must be in months)
		malusMonths             = {},                                           --months when the item is less common (must be in months)
		spawnFuncs              = {},                                           --custom spawn function when item is picked up
		forceOutside            = true,                                         --item must be outside
		isOnWater               = false,                                        --item can be on water
		forceOnWater            = false,                                        --item must be on water
		isMover                 = false,                                        --does nothing, ignored
		canBeAboveFloor         = false,                                        --does nothing, ignored
		doIsoMarkerObject       = false,                                        --create an IsoMarker temp object on square
		doIsoMarkerSprite       = nil,                                          --use a custom sprite/sprites for IsoMarker
		canBeOnTreeSquare       = true,                                         --can occupy the same square as an IsoTree
		--
		poisonChance            = 0,                                            --percent chance the item is poisoned
		poisonPowerMin          = 0,                                            --minimum amount of poison to apply
		poisonPowerMax          = 0,                                            --maximum amount of poison to apply
		poisonDetectionLevel    = 0,                                            --level required to detect the poison
		--
		itemSizeModifier        = 0,                                            --increase or decrease item weight in vision radius checking
		isItemOverrideSize      = false,                                        --use only itemSizeModifier in vision radius checking - not the real item weight
	},
	--- default values (applied if missing from zone definition)
	defaultZoneDef  = {
		name                    = "Unknown",                                    --zone type to attach this definition to - see objects.lua for possible zones
		densityMin              = 1,                                            --zone minimum icon density
		densityMax              = 1,                                            --zone maximum icon density
		refillPercent           = 1,                                            --percent of icons refilled per game day
		abundanceSetting        = "NatureAbundance",                            --sandbox setting used for icon density multiplier - see forageSystem.abundanceSettings
	},
	--- default values (applied if missing from category definition)
	defaultCatDef   = {
		chance                  = 1,                                            --rolls for this category - /!\ it is NOT a percent chance /!\
		name                    = "Unknown",                                    --category name used for forageSystem.catDef key
		typeCategory            = "Other",                                      --fuzzy category name - used for search window tooltip
		identifyCategoryPerk    = "PlantScavenging",                            --perk to identify category
		identifyCategoryLevel   = 0,                                            --perk level to identify category
		categoryHidden          = true,                                         --show exact category name in zone display window
		validFloors             = { "ANY" },                                    --valid floor types for items in this category - ANY is an override to allow all floors
		validFunc               = nil,                                          --can be used to provide your own valid function for floors - see forageSystem.isValidSquare
		--
		rainChance              = 0,                                            --rain chance modifier (percent)
		hasRainedChance         = 0,                                            --after rain chance modifier (percent)
		snowChance              = 0,                                            --snow chance modifier (percent)
		dayChance               = 0,                                            --day chance modifier (percent)
		nightChance             = 0,                                            --night chance modifier (percent)
		zoneChance = {                                                          --zones where the category can be found
			Forest              = 1,                                            --[zone name] = number of rolls for category in this zone
			DeepForest          = 1,                                            --/!\ it is NOT a percent chance /!\
			Vegitation          = 1,
			FarmLand            = 1,
			Farm                = 1,
			TrailerPark         = 1,
			TownZone            = 1,
			Nav                 = 1,
		},
		spriteAffinities        = {},                                           --sprite affinities for this item - see Stones/Twigs category for example
		chanceToMoveIcon        = 0.0,                                          --percent chance to move a nearby icon to the sprite detected
		chanceToCreateIcon      = 0.0,                                          --percent chance to generate a new temporary icon on a sprite affinity if no existing icons can be moved
		focusChanceMin			= 0.0,											--percent chance to change an icon to this category when it is the search focus category - this will be divided by the itemDef skill level
		focusChanceMax			= 0.0,											--percent chance to change an icon to this category when it is the search focus category - this will be divided by the itemDef skill level
	},
	--- default values (applied if missing from occupation/trait definition)
	defaultSkillDef = {
		name                    = "default",
		type                    = "trait",
		visionBonus             = 0,                                            -- bonus vision (squares)
		weatherEffect           = 0,                                            -- weather effect reduction (percent)
		darknessEffect          = 0,                                            -- darkness effect reduction (percent)
		specialisations         = {},                                           -- /!\ base /!\ vision bonus multipliers by category (percent)
		testFuncs               = {},                                           -- test functions for bonus/malus effects
	},
};

forageSkills = {
	parkranger = {
		name                    = "parkranger",
		type                    = "occupation",
		visionBonus             = 2,
		weatherEffect           = 33,
		darknessEffect          = 15,
		specialisations         = {
			["Animals"]             = 10,
			["Berries"]             = 20,
			["Mushrooms"]           = 10,
			["MedicinalPlants"]     = 75,
			["WildPlants"]			= 50,
			["WildHerbs"]			= 50,
			["ForestRarities"]      = 10,
			["Trash"]               = 5,
			["Junk"]                = 5,
		},
	},
	veteran = {
		name                    = "veteran",
		type                    = "occupation",
		visionBonus             = 1.75,
		weatherEffect           = 33,
		darknessEffect          = 15,
		specialisations         = {
			["Animals"]             = 5,
			["Ammunition"]          = 50,
			["MedicinalPlants"]     = 20,
			["WildPlants"]			= 10,
			["WildHerbs"]			= 10,
			["ForestRarities"]      = 5,
		},
	},
	farmer = {
		name                    = "farmer",
		type                    = "occupation",
		visionBonus             = 1.5,
		weatherEffect           = 33,
		darknessEffect          = 10,
		specialisations         = {
			["Animals"]             = 10,
			["Crops"]               = 50,
			["JunkFood"]            = 5,
			["MedicinalPlants"]     = 5,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 15,
			["Fruits"]              = 10,
			["Vegetables"]          = 10,
		},
	},
	lumberjack = {
		name                    = "lumberjack",
		type                    = "occupation",
		visionBonus             = 1.25,
		weatherEffect           = 33,
		darknessEffect          = 15,
		specialisations         = {
			["Firewood"]            = 50,
			["Mushrooms"]           = 20,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
		},
	},
	chef = {
		name                    = "chef",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Animals"]             = 10,
			["Berries"]             = 20,
			["Mushrooms"]           = 50,
			["JunkFood"]            = 15,
			["MedicinalPlants"]     = 15,
			["WildPlants"]			= 10,
			["WildHerbs"]			= 20,
		},
	},
	fisherman = {
		name                    = "fisherman",
		type                    = "occupation",
		visionBonus             = 1.00,
		weatherEffect           = 40,
		darknessEffect          = 10,
		specialisations         = {
			["Insects"]             = 50,
			["FishBait"]            = 50,
		},
	},
	unemployed = {
		name                    = "unemployed",
		type                    = "occupation",
		visionBonus             = 0.50,
		weatherEffect           = 10,
		darknessEffect          = 5,
		specialisations         = {
			["MedicinalPlants"]     = 5,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
			["JunkFood"]            = 10,
			["Trash"]               = 10,
			["Junk"]                = 10,
		},
	},
	burgerflipper = {
		name                    = "burgerflipper",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Animals"]             = 5,
			["Berries"]             = 5,
			["Mushrooms"]           = 15,
			["JunkFood"]            = 30,
			["MedicinalPlants"]     = 5,
		},
	},
	doctor = {
		name                    = "doctor",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Medical"]             = 40,
			["MedicinalPlants"]     = 10,
		},
	},
	nurse = {
		name                    = "nurse",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Medical"]             = 40,
			["MedicinalPlants"]     = 10,
		},
	},
	fitnessInstructor = {
		name                    = "fitnessInstructor",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Medical"]             = 5,
			["JunkFood"]            = 25,
			["MedicinalPlants"]     = 15,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
		},
	},
	repairman = {
		name                    = "repairman",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Trash"]               = 33,
			["Junk"]                = 33,
		},
	},
	mechanics = {
		name                    = "mechanics",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Trash"]               = 33,
			["Junk"]                = 33,
		},
	},
	electrician = {
		name                    = "electrician",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Trash"]               = 20,
			["Junk"]                = 20,
		},
	},
	engineer = {
		name                    = "engineer",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Trash"]               = 10,
			["Junk"]                = 10,
		},
	},
	metalworker = {
		name                    = "metalworker",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Trash"]               = 10,
			["Junk"]                = 10,
		},
	},
	constructionworker = {
		name                    = "constructionworker",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Trash"]               = 10,
			["Junk"]                = 10,
		},
	},
	carpenter = {
		name                    = "carpenter",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Firewood"]            = 30,
			["Junk"]                = 10,
		},
	},
	burglar = {
		name                    = "burglar",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 5,
		darknessEffect          = 15,
		specialisations         = {
			["Trash"]               = 10,
			["Junk"]                = 10,
			["JunkWeapons"]         = 10,
			["Ammunition"]          = 10,
		},
	},
	securityguard = {
		name                    = "securityguard",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 5,
		darknessEffect          = 10,
		specialisations         = {
			["Trash"]               = 10,
			["Junk"]                = 10,
			["JunkWeapons"]         = 10,
			["Ammunition"]          = 10,
		},
	},
	policeofficer = {
		name                    = "policeofficer",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 5,
		darknessEffect          = 10,
		specialisations         = {
			["Trash"]               = 10,
			["Junk"]                = 10,
			["JunkWeapons"]         = 10,
			["Ammunition"]          = 10,
		},
	},
	fireofficer = {
		name                    = "fireofficer",
		type                    = "occupation",
		visionBonus             = 0,
		weatherEffect           = 5,
		darknessEffect          = 10,
		specialisations         = {
			["Firewood"]            = 20,
			["Junk"]                = 10,
		},
	},
	Unlucky = {
		name                    = "Unlucky",
		type                    = "trait",
		visionBonus             = -1.0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["ForestRarities"]      = -5,
			["Medical"]             = -5,
			["Ammunition"]          = -5,
			["JunkWeapons"]         = -5,
		},
	},
	Lucky = {
		name                    = "Lucky",
		type                    = "trait",
		visionBonus             = 1.0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["ForestRarities"]      = 5,
			["Medical"]             = 5,
			["Ammunition"]          = 5,
			["JunkWeapons"]         = 5,
		},
	},
	Formerscout = {
		name                    = "Formerscout",
		type                    = "trait",
		visionBonus             = 0.7,
		weatherEffect           = 13,
		darknessEffect          = 3,
		specialisations         = {
			["MedicinalPlants"]     = 5,
			["Trash"]               = 10,
		},
	},
	Hiker = {
		name                    = "Hiker",
		type                    = "trait",
		visionBonus             = 0.7,
		weatherEffect           = 13,
		darknessEffect          = 3,
		specialisations         = {
			["MedicinalPlants"]     = 3,
			["Berries"]             = 3,
			["Mushrooms"]           = 3,
		},
	},
	Hunter = {
		name                    = "Hunter",
		type                    = "trait",
		visionBonus             = 0.5,
		weatherEffect           = 13,
		darknessEffect          = 5,
		specialisations         = {
			["Animals"]             = 5,
			["Berries"]             = 3,
			["Mushrooms"]           = 3,
			["MedicinalPlants"]     = 3,
		},
	},
	EagleEyed = {
		name                    = "EagleEyed",
		type                    = "trait",
		visionBonus             = 1.0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {},
	},
	Gardener = {
		name                    = "Gardener",
		type                    = "trait",
		visionBonus             = 0.4,
		weatherEffect           = 13,
		darknessEffect          = 0,
		specialisations         = {
			["MedicinalPlants"]     = 3,
			["Crops"]               = 5,
			["Fruits"]              = 5,
			["Vegetables"]          = 5,
		},
	},
	Outdoorsman = {
		name                    = "Outdoorsman",
		type                    = "trait",
		visionBonus             = 0.4,
		weatherEffect           = 13,
		darknessEffect          = 5,
		specialisations         = {
			["Animals"]             = 5,
			["Berries"]             = 5,
			["Mushrooms"]           = 5,
			["MedicinalPlants"]     = 5,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
		},
	},
	Cook = {
		name                    = "Cook",
		type                    = "trait",
		visionBonus             = 0.2,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Animals"]             = 5,
			["Berries"]             = 5,
			["Mushrooms"]           = 5,
			["JunkFood"]            = 5,
			["MedicinalPlants"]     = 3,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
		},
	},
	Cook2 = {
		name                    = "Cook2",
		type                    = "trait",
		visionBonus             = 0.2,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Animals"]             = 5,
			["Berries"]             = 5,
			["Mushrooms"]           = 5,
			["JunkFood"]            = 5,
			["MedicinalPlants"]     = 3,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
		},
	},
	NightVision = {
		name                    = "NightVision",
		type                    = "trait",
		visionBonus             = 0.4,
		weatherEffect           = 0,
		darknessEffect          = 0,  --this gets a "built in" reduction by increasing minimum ambient level ~10%
		specialisations         = {},
	},
	Nutritionist = {
		name                    = "Nutritionist",
		type                    = "trait",
		visionBonus             = 0.2,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["JunkFood"]            = 5,
			["MedicinalPlants"]     = 5,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
		},
	},
	Nutritionist2 = {
		name                    = "Nutritionist2",
		type                    = "trait",
		visionBonus             = 0.2,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["JunkFood"]            = 5,
			["MedicinalPlants"]     = 5,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
		},
	},
	Herbalist = {
		name                    = "Herbalist",
		type                    = "trait",
		visionBonus             = 0.2,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["MedicinalPlants"]     = 15,
			["WildPlants"]			= 5,
			["WildHerbs"]			= 5,
			["Crops"]               = 5,
			["Berries"]             = 5,
			["Mushrooms"]           = 5,
		},
	},
	Agoraphobic = {
		name                    = "Agoraphobic",
		type                    = "trait",
		visionBonus             = -1.5,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {},
	},
	HeartyAppitite = {
		name                    = "HeartyAppitite",
		type                    = "trait",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Animals"]             = 3,
			["Berries"]             = 3,
			["Mushrooms"]           = 3,
			["JunkFood"]            = 3,
		},
	},
	Marksman = {
		name                    = "Marksman",
		type                    = "trait",
		visionBonus             = 0.5,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Ammunition"]          = 3,
		},
	},
	FirstAid = {
		name                    = "FirstAid",
		type                    = "trait",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Medical"]             = 3,
		},
	},
	Fishing = {
		name                    = "Fishing",
		type                    = "trait",
		visionBonus             = 0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {
			["Insects"]             = 5,
			["FishBait"]            = 5,
		},
	},
	ShortSighted = {
		name                    = "ShortSighted",
		type                    = "trait",
		visionBonus             = -2.0,
		weatherEffect           = 0,
		darknessEffect          = 0,
		specialisations         = {},
		testFuncs               = { doGlassesCheck },
	},
};

--[[--======== forageZones ========--
]]--

forageZones = {
	DeepForest = {
		name = "DeepForest",
		densityMin = 8,
		densityMax = 10,
		refillPercent = 7,
		abundanceSetting = "NatureAbundance",
	},
	FarmLand = {
		name = "FarmLand",
		densityMin = 5,
		densityMax = 7.5,
		refillPercent = 5,
		abundanceSetting = "NatureAbundance",
	},
	Farm = {
		name = "Farm",
		densityMin = 5,
		densityMax = 7.5,
		refillPercent = 5,
		abundanceSetting = "NatureAbundance",
	},
	Forest = {
		name = "Forest",
		densityMin = 8,
		densityMax = 10,
		refillPercent = 7,
		abundanceSetting = "NatureAbundance",
	},
	Nav = {
		name = "Nav",
		densityMin = 3,
		densityMax = 5,
		refillPercent = 3,
		abundanceSetting = "OtherLoot",
	},
	TownZone = {
		name = "TownZone",
		densityMin = 3,
		densityMax = 5,
		refillPercent = 3,
		abundanceSetting = "OtherLoot",
	},
	TrailerPark = {
		name = "TrailerPark",
		densityMin = 1.5,
		densityMax = 5,
		refillPercent = 3,
		abundanceSetting = "OtherLoot",
	},
	Vegitation = {
		name = "Vegitation",
		densityMin = 6,
		densityMax = 8,
		refillPercent = 5,
		abundanceSetting = "NatureAbundance",
	},
};

--[[--======== forageCategories ========--
]]--

forageCategories = {
	["Animals"] = {
		name                    = "Animals",
		typeCategory            = "Animals",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 5,
		categoryHidden          = false,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 15,
			Forest          = 15,
			Vegitation      = 25,
			FarmLand        = 20,
			Farm            = 20,
			TrailerPark     = 5,
			TownZone        = 5,
			Nav             = 3,
		},
		spriteAffinities        = spriteAffinities.genericPlants,
		chanceToMoveIcon        = 3.0,
		chanceToCreateIcon      = 0.1,
		focusChanceMin			= 5.0,
		focusChanceMax			= 15.0,
	},
	["DeadAnimals"] = {
		name                    = "DeadAnimals",
		typeCategory            = "Animals",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 5,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 3,
			Forest          = 2,
			Vegitation      = 2,
			FarmLand        = 2,
			Farm            = 2,
			TrailerPark     = 1,
			TownZone        = 1,
			Nav             = 1,
		},
	},
	["Berries"] = {
		name                    = "Berries",
		typeCategory            = "Food",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 3,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		zoneChance              = {
			DeepForest      = 30,
			Forest          = 30,
			Vegitation      = 20,
			FarmLand        = 15,
			Farm            = 15,
			TrailerPark     = 5,
			TownZone        = 5,
			Nav             = 1,
		},
		focusChanceMin			= 20.0,
		focusChanceMax			= 33.3,
	},
	["Fruits"] = {
		name                    = "Fruits",
		typeCategory            = "Food",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 7,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		zoneChance              = {
			Forest          = 15,
			DeepForest      = 15,
			Vegitation      = 15,
			FarmLand        = 25,
			Farm            = 25,
			TrailerPark     = 10,
			TownZone        = 5,
			Nav             = 0,
		},
		spriteAffinities        = spriteAffinities.genericPlants,
		chanceToMoveIcon        = 3.0,
		chanceToCreateIcon      = 0.1,
		focusChanceMin			= 15.0,
		focusChanceMax			= 33.3,
	},
	["Vegetables"] = {
		name                    = "Vegetables",
		typeCategory            = "Food",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 7,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		zoneChance              = {
			DeepForest      = 10,
			Forest          = 10,
			Vegitation      = 15,
			FarmLand        = 15,
			Farm            = 15,
			TrailerPark     = 5,
			TownZone        = 10,
			Nav             = 0,
		},
		spriteAffinities        = spriteAffinities.genericPlants,
		chanceToMoveIcon        = 3.0,
		chanceToCreateIcon      = 0.1,
		focusChanceMin			= 15.0,
		focusChanceMax			= 33.3,
	},
	["Crops"] = {
		name                    = "Crops",
		typeCategory            = "Food",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 5,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		zoneChance              = {
			DeepForest      = 5,
			Forest          = 7,
			Vegitation      = 10,
			FarmLand        = 25,
			Farm            = 25,
			TrailerPark     = 5,
			TownZone        = 5,
			Nav             = 0,
		},
		spriteAffinities        = spriteAffinities.genericPlants,
		chanceToMoveIcon        = 3,
		chanceToCreateIcon      = 0.1,
		focusChanceMin			= 15.0,
		focusChanceMax			= 33.3,
	},
	["Mushrooms"] = {
		name                    = "Mushrooms",
		typeCategory            = "Food",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 3,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		rainChance              = 20,
		hasRainedChance         = 50,
		nightChance             = 20,
		zoneChance              = {
			DeepForest      = 30,
			Forest          = 30,
			Vegitation      = 20,
			FarmLand        = 15,
			Farm            = 15,
			TrailerPark     = 5,
			TownZone        = 5,
			Nav             = 0,
		},
		spriteAffinities        = spriteAffinities.genericPlants,
		chanceToMoveIcon        = 3.0,
		chanceToCreateIcon      = 0.1,
		focusChanceMin			= 20.0,
		focusChanceMax			= 33.3,
	},
	["FishBait"] = {
		name                    = "FishBait",
		typeCategory            = "Animals",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = true,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		rainChance              = 50,
		hasRainedChance         = 50,
		nightChance             = 100,
		zoneChance              = {
			DeepForest      = 10,
			Forest          = 10,
			Vegitation      = 15,
			FarmLand        = 20,
			Farm            = 20,
			TrailerPark     = 5,
			TownZone        = 5,
			Nav             = 1,
		},
		spriteAffinities        = spriteAffinities.specialPlants,
		chanceToMoveIcon        = 3.0,
		chanceToCreateIcon      = 0.1,
	},
	--this is an empty category
	["ForestGoods"] = {
		name                    = "ForestGoods",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 0,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 0,
			Forest          = 0,
			Vegitation      = 0,
			FarmLand        = 0,
			Farm            = 0,
			TrailerPark     = 0,
			TownZone        = 0,
			Nav             = 0,
		},
	},
	["ForestRarities"] = {
		name                    = "ForestRarities",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 8,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 1,
			Forest          = 1,
			Vegitation      = 0,
			FarmLand        = 0,
			Farm            = 0,
			TrailerPark     = 0,
			TownZone        = 0,
			Nav             = 0,
		},
	},
	["Insects"] = {
		name                    = "Insects",
		typeCategory            = "Animals",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = false,
		validFloors             = { "ANY" },
		nightChance             = 100,
		zoneChance              = {
			DeepForest      = 25,
			Forest          = 25,
			Vegitation      = 25,
			FarmLand        = 15,
			Farm            = 15,
			TrailerPark     = 15,
			TownZone        = 15,
			Nav             = 10,
		},
		spriteAffinities        = spriteAffinities.genericPlants,
		chanceToMoveIcon        = 3.0,
		chanceToCreateIcon      = 0.1,
		focusChanceMin			= 15.0,
		focusChanceMax			= 33.3,
	},
	["MedicinalPlants"] = {
		name                    = "MedicinalPlants",
		typeCategory            = "Medicinal",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 6,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		rainChance              = 50,
		hasRainedChance         = 25,
		snowChance              = -50,
		nightChance             = 100,
		zoneChance              = {
			DeepForest      = 30,
			Forest          = 20,
			Vegitation      = 15,
			FarmLand        = 15,
			Farm            = 15,
			TrailerPark     = 0,
			TownZone        = 0,
			Nav             = 0,
		},
		spriteAffinities        = spriteAffinities.specialPlants,
		chanceToMoveIcon        = 1.0,
		chanceToCreateIcon      = 0.5,
		focusChanceMin			= 10.0,
		focusChanceMax			= 20.0,
	},
	["WildPlants"] = {
		name                    = "WildPlants",
		typeCategory            = "Food",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		rainChance              = 50,
		hasRainedChance         = 25,
		snowChance              = -50,
		nightChance             = 50,
		zoneChance              = {
			DeepForest      = 15,
			Forest          = 10,
			Vegitation      = 10,
			FarmLand        = 7.5,
			Farm            = 7.5,
			TrailerPark     = 2.5,
			TownZone        = 2.5,
			Nav             = 0,
		},
		spriteAffinities        = spriteAffinities.specialPlants,
		chanceToMoveIcon        = 1.0,
		chanceToCreateIcon      = 0.0,
		focusChanceMin			= 10.0,
		focusChanceMax			= 20.0,
	},
	["WildHerbs"] = {
		name                    = "WildHerbs",
		typeCategory            = "Food",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = false,
		validFloors             = { "floors_exterior_natural", "blends_natural" },
		rainChance              = 50,
		hasRainedChance         = 25,
		snowChance              = -50,
		nightChance             = 50,
		zoneChance              = {
			DeepForest      = 10,
			Forest          = 7.5,
			Vegitation      = 7.5,
			FarmLand        = 5.0,
			Farm            = 5.0,
			TrailerPark     = 1.5,
			TownZone        = 1.5,
			Nav             = 0,
		},
		spriteAffinities        = spriteAffinities.specialPlants,
		chanceToMoveIcon        = 1.0,
		chanceToCreateIcon      = 1.0,
		focusChanceMin			= 10.0,
		focusChanceMax			= 20.0,
	},
	["Firewood"] = {
		name                    = "Firewood",
		typeCategory            = "Materials",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 0,
		categoryHidden          = false,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 150,
			Forest          = 150,
			Vegitation      = 75,
			FarmLand        = 35,
			Farm            = 35,
			TrailerPark     = 10,
			TownZone        = 10,
			Nav             = 15,
		},
		spriteAffinities        = spriteAffinities.firewood,
		chanceToMoveIcon        = 20.0,
		chanceToCreateIcon      = 10.0,
		focusChanceMin			= 25.0,
		focusChanceMax			= 40.0,
	},
	["Stones"] = {
		name                    = "Stones",
		typeCategory            = "Materials",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 0,
		categoryHidden          = false,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 30,
			Forest          = 30,
			Vegitation      = 30,
			FarmLand        = 30,
			Farm            = 30,
			TrailerPark     = 15,
			TownZone        = 15,
			Nav             = 120,
		},
		spriteAffinities        = spriteAffinities.stones,
		chanceToMoveIcon        = 20.0,
		chanceToCreateIcon      = 10.0,
		focusChanceMin			= 25.0,
		focusChanceMax			= 40.0,
	},
	["Junk"] = {
		name                    = "Junk",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 3,
			Forest          = 3,
			Vegitation      = 3,
			FarmLand        = 3,
			Farm            = 3,
			TrailerPark     = 7,
			TownZone        = 7,
			Nav             = 3,
		},
		spriteAffinities        = spriteAffinities.trash,
		chanceToMoveIcon        = 20.0,
		chanceToCreateIcon      = 10.0,
		focusChanceMin			= 5.0,
		focusChanceMax			= 10.0,
	},
	["JunkFood"] = {
		name                    = "JunkFood",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 1,
			Forest          = 1,
			Vegitation      = 1,
			FarmLand        = 3,
			Farm            = 3,
			TrailerPark     = 5,
			TownZone        = 5,
			Nav             = 1,
		},
	},
	["Clothing"] = {
		name                    = "Clothing",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 1,
			Forest          = 1,
			Vegitation      = 1,
			FarmLand        = 3,
			Farm            = 3,
			TrailerPark     = 7,
			TownZone        = 7,
			Nav             = 1,
		},
	},
	["JunkWeapons"] = {
		name                    = "JunkWeapons",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 1,
			Forest          = 1,
			Vegitation      = 1,
			FarmLand        = 1,
			Farm            = 1,
			TrailerPark     = 3,
			TownZone        = 3,
			Nav             = 3,
		},
	},
	["Ammunition"] = {
		name                    = "Ammunition",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 8,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 1,
			Forest          = 1,
			Vegitation      = 1,
			FarmLand        = 1,
			Farm            = 1,
			TrailerPark     = 2,
			TownZone        = 2,
			Nav             = 1,
		},
	},
	["Medical"] = {
		name                    = "Medical",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 8,
		categoryHidden          = true,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 0,
			Forest          = 0,
			Vegitation      = 1,
			FarmLand        = 0,
			Farm            = 0,
			TrailerPark     = 3,
			TownZone        = 3,
			Nav             = 1,
		},
	},
	["Trash"] = {
		name                    = "Trash",
		typeCategory            = "Other",
		identifyCategoryPerk    = "PlantScavenging",
		identifyCategoryLevel   = 4,
		categoryHidden          = false,
		validFloors             = { "ANY" },
		zoneChance              = {
			DeepForest      = 5,
			Forest          = 5,
			Vegitation      = 10,
			FarmLand        = 5,
			Farm            = 5,
			TrailerPark     = 40,
			TownZone        = 40,
			Nav             = 30,
		},
		spriteAffinities        = spriteAffinities.trash,
		chanceToMoveIcon        = 20.0,
		chanceToCreateIcon      = 10.0,
		focusChanceMin			= 15.0,
		focusChanceMax			= 25.0,
	},
};

--[[--======== forageDefs ========--
]]--

forageDefs = {
	--======== BERRIES ========--
	--(added via generateBerryDefs)
	--======== FRUITS ========--
	Cherry = {
		type = "Base.Cherry",
		minCount = 1,
		maxCount = 4,
		skill = 4,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 5, 6, 7, 8, 9 },
		bonusMonths = { 6, 7, 8 },
		malusMonths = { 5, 9 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Strewberrie = {
		type = "farming.Strewberrie",
		skill = 8,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 4, 5, 6 },
		malusMonths = { 1, 2, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doWildCropSpawn },
		altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildstrawberry_worldSprite.png"),
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Lemon = {
		type = "Base.Lemon",
		minCount = 1,
		maxCount = 3,
		skill = 6,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		bonusMonths = { 1, 2, 12 },
		malusMonths = { 3, 4, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Lime = {
		type = "Base.Lime",
		minCount = 1,
		maxCount = 3,
		skill = 6,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		bonusMonths = { 1, 2, 12 },
		malusMonths = { 3, 4, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Grapefruit = {
		type = "Base.Grapefruit",
		minCount = 1,
		maxCount = 1,
		skill = 8,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		bonusMonths = { 1, 2, 12 },
		malusMonths = { 3, 4, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Peach = {
		type = "Base.Peach",
		minCount = 1,
		maxCount = 2,
		skill = 8,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 4, 5, 6, 7, 8, 9, 10 },
		bonusMonths = { 6, 7, 8 },
		malusMonths = { 4, 5, 9, 10 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Pear = {
		type = "Base.Pear",
		minCount = 1,
		maxCount = 2,
		skill = 8,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 7, 8, 9, 10 },
		bonusMonths = { 8, 9 },
		malusMonths = { 7, 10 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	PepperHabanero = {
		type = "Base.PepperHabanero",
		minCount = 1,
		maxCount = 4,
		skill = 6,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 6, 7, 8, 9, 10 },
		bonusMonths = { 7, 8, 9 },
		malusMonths = { 6, 10 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	PepperJalapeno = {
		type = "Base.PepperJalapeno",
		minCount = 1,
		maxCount = 4,
		skill = 6,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 6, 7, 8, 9, 10 },
		bonusMonths = { 7, 8, 9 },
		malusMonths = { 6, 10 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Pineapple = {
		type = "Base.Pineapple",
		skill = 10,
		xp = 15,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			FarmLand    = 3,
			Farm        = 3,
		},
		months = { 2, 3, 4, 5, 6, 7, 8 },
		bonusMonths = { 4, 5, 6 },
		malusMonths = { 2, 8 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.vines,
	},
	Grapes = {
		type = "Base.Grapes",
		skill = 7,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 6, 7, 8, 9, 10, 11, 12 },
		bonusMonths = { 8, 9, 10 },
		malusMonths = { 6, 12 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.vines,
	},
	Orange = {
		type = "Base.Orange",
		minCount = 1,
		maxCount = 3,
		skill = 5,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 4, 5, 6, 7, 8, 9 },
		malusMonths = { 2, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Apple = {
		type = "Base.Apple",
		minCount = 1,
		maxCount = 3,
		skill = 7,
		xp = 5,
		snowChance = -10,
		categories = { "Fruits" },
		zones = {
			Forest      = 10,
			FarmLand    = 15,
			Farm        = 15,
		},
		months = { 5, 6, 7, 8, 9, 10, 11, 12 },
		bonusMonths = { 7, 8, 9, 10 },
		malusMonths = { 5, 12 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Banana = {
		type = "Base.Banana",
		minCount = 1,
		maxCount = 1,
		skill = 9,
		xp = 15,
		snowChance = -100,
		categories = { "Fruits" },
		zones = {
			Forest      = 1,
			FarmLand    = 3,
			Farm        = 3,
		},
		bonusMonths = { 3, 4, 5, 6, 7, 8, 9, 10 },
		malusMonths = { 1, 2, 11, 12 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Watermelon = {
		type = "Base.Watermelon",
		skill = 10,
		xp = 15,
		snowChance = -20,
		categories = { "Fruits" },
		zones = {
			Forest      = 1,
			FarmLand    = 3,
			Farm        = 3,
		},
		months = { 5, 6, 7, 8, 9, 10, 11, 12 },
		bonusMonths = { 7, 8, 9, 10 },
		malusMonths = { 5, 12 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.vines,
	},
	--======== VEGETABLES ========--
	Onion = {
		type = "Base.Onion",
		skill = 3,
		xp = 5,
		snowChance = -10,
		categories = { "Vegetables" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 5,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 9 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	Lettuce = {
		type = "Base.Lettuce",
		skill = 7,
		xp = 5,
		snowChance = -30,
		categories = { "Vegetables" },
		zones = {
			Vegitation  = 1,
			FarmLand    = 4,
			Farm        = 4,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.vines,
	},
	BellPepper = {
		type = "Base.BellPepper",
		skill = 7,
		xp = 5,
		snowChance = -20,
		categories = { "Vegetables" },
		zones = {
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Avocado = {
		type = "Base.Avocado",
		skill = 8,
		xp = 15,
		snowChance = -50,
		categories = { "Vegetables" },
		zones = {
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Zucchini = {
		type = "Base.Zucchini",
		skill = 8,
		xp = 15,
		snowChance = -30,
		categories = { "Vegetables" },
		zones = {
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.shrubs,
	},
	Corn = {
		type = "Base.Corn",
		skill = 8,
		xp = 15,
		snowChance = -30,
		categories = { "Vegetables" },
		zones = {
			Vegitation  = 1,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = getTexture("media/textures/Foraging/worldSprites/corn_worldSprite.png"),
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Eggplant = {
		type = "Base.Eggplant",
		skill = 8,
		xp = 15,
		snowChance = -50,
		categories = { "Vegetables" },
		zones = {
			FarmLand    = 3,
			Farm        = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.shrubs,
	},
	Leek = {
		type = "Base.Leek",
		skill = 2,
		xp = 15,
		snowChance = -30,
		categories = { "Vegetables" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 9 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	--======== CROPS  ========--
	Carrots = {
		type = "Base.Carrots",
		skill = 2,
		xp = 5,
		snowChance = -30,
		categories = { "Crops" },
		zones = {
			Forest      = 7,
			Vegitation  = 7,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doWildCropSpawn },
		altWorldTexture = { getTexture("media/textures/Foraging/worldSprites/wildcarrot_worldSprite.png") },
	},
	Broccoli = {
		type = "Base.Broccoli",
		skill = 2,
		xp = 5,
		snowChance = -30,
		categories = { "Crops" },
		zones = {
			Forest      = 7,
			Vegitation  = 7,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 6, 7, 8 },
		malusMonths = { 5, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doWildCropSpawn },
		altWorldTexture = worldSprites.shrubs,
	},
	Potato = {
		type = "farming.Potato",
		skill = 2,
		xp = 5,
		snowChance = -30,
		categories = { "Crops" },
		zones = {
			Forest      = 7,
			Vegitation  = 7,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doWildCropSpawn },
		altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildpotato_worldSprite.png"),
	},
	Cabbage = {
		type = "farming.Cabbage",
		skill = 2,
		xp = 5,
		snowChance = -10,
		categories = { "Crops" },
		zones = {
			Forest      = 3,
			Vegitation  = 3,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doWildCropSpawn },
		altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildcabbage_worldSprite.png"),
	},
	Tomato = {
		type = "farming.Tomato",
		skill = 2,
		xp = 5,
		snowChance = -10,
		categories = { "Crops" },
		zones = {
			Forest      = 3,
			Vegitation  = 3,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doWildCropSpawn },
		altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildtomato_worldSprite.png"),
	},
	RedRadish = {
		type = "farming.RedRadish",
		skill = 2,
		xp = 5,
		snowChance = -10,
		categories = { "Crops" },
		zones = {
			Forest      = 3,
			Vegitation  = 3,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doWildCropSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	Daikon = {
		type = "Base.Daikon",
		skill = 5,
		xp = 10,
		snowChance = -10,
		categories = { "Vegetables" },
		zones = {
			Vegitation  = 1,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	Peanuts = {
		type = "Base.Peanuts",
		skill = 7,
		xp = 15,
		snowChance = -30,
		categories = { "Vegetables" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
		},
		months = { 9, 10, 11 },
		bonusMonths = { 10 },
		malusMonths = { 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	Pumpkin = {
		type = "Base.Pumpkin",
		skill = 7,
		xp = 15,
		snowChance = -30,
		categories = { "Vegetables" },
		zones = {
			Forest      = 1,
			DeepForest  = 1,
			Vegitation  = 1,
			FarmLand    = 1,
			Farm        = 1,
		},
		months = { 9, 10, 11 },
		bonusMonths = { 10 },
		malusMonths = { 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	Mango = {
		type = "Base.Mango",
		skill = 7,
		xp = 15,
		snowChance = -30,
		categories = { "Vegetables" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
		},
		months = { 9, 10, 11 },
		bonusMonths = { 10 },
		malusMonths = { 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.smallTrees,
	},
	--======== MUSHROOMS ========--
	--(added via generateMushroomDefs)
	--======== WILD PLANTS ========--
	Violets = {
		type = "Base.Violets",
		minCount = 3,
		maxCount = 6,
		xp = 5,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = { {"d_plants_1_40"}, {"d_plants_1_41"}, {"d_plants_1_44"} },
		doIsoMarkerObject = true,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	SunflowerSeeds = {
		type = "Base.SunflowerSeeds",
		minCount = 3,
		maxCount = 6,
		xp = 5,
		rainChance = -50,
		snowChance = -100,
		nightChance = -100,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = { {"d_plants_1_18", "d_plants_1_26"} },
		doIsoMarkerObject = true,
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	GrapeLeaves = {
		type = "Base.GrapeLeaves",
		minCount = 3,
		maxCount = 6,
		skill = 2,
		xp = 5,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.vines,
	},
	Rosehips = {
		type = "Base.Rosehips",
		minCount = 3,
		maxCount = 6,
		skill = 4,
		xp = 5,
		rainChance = 20,
		snowChance = -100,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, },
		bonusMonths = { 9, 10, 11 },
		malusMonths = { 5, 6 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.shrubs,
	},
	Acorn = {
		type = "Base.Acorn",
		minCount = 3,
		maxCount = 6,
		xp = 5,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Dandelions = {
		type = "Base.Dandelions",
		minCount = 3,
		maxCount = 6,
		xp = 5,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Nettles = {
		type = "Base.Nettles",
		minCount = 3,
		maxCount = 6,
		xp = 5,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	GingerRoot = {
		type = "Base.GingerRoot",
		minCount = 1,
		maxCount = 3,
		xp = 15,
		categories = { "WildPlants" },
		zones = {
			Forest      = 1,
			DeepForest  = 1,
			Vegitation  = 1,
			FarmLand    = 1,
			Farm        = 1,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	Thistle = {
		type = "Base.Thistle",
		minCount = 3,
		maxCount = 6,
		xp = 5,
		categories = { "WildPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 5, 6, 7 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		itemSizeModifier = 1.0,
		isItemOverrideSize = true,
	},
	--======== WILD HERBS ========--
	--(added via generateHerbDefs)
	--======== MEDICINAL PLANTS ========--
	Plantain = {
		type = "Base.Plantain",
		minCount = 2,
		maxCount = 8,
		xp = 15,
		recipes = { "Herbalist" },
		categories = { "MedicinalPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 15,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		altWorldTexture = worldSprites.wildPlants,
	},
	Comfrey = {
		type = "Base.Comfrey",
		minCount = 2,
		maxCount = 8,
		xp = 15,
		recipes = { "Herbalist" },
		categories = { "MedicinalPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 15,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		altWorldTexture = worldSprites.vines,
	},
	WildGarlic = {
		type = "Base.WildGarlic2",--changed to this so it could server as a food item
		minCount = 2,
		maxCount = 8,
		xp = 15,
		recipes = { "Herbalist" },
		categories = { "MedicinalPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 15,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		altWorldTexture = worldSprites.wildPlants,
	},
	CommonMallow = {
		type = "Base.CommonMallow",
		minCount = 2,
		maxCount = 8,
		xp = 15,
		recipes = { "Herbalist" },
		categories = { "MedicinalPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 15,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.vines,
	},
	LemonGrass = {
		type = "Base.LemonGrass",
		minCount = 2,
		maxCount = 8,
		xp = 5,
		categories = { "MedicinalPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 15,
			Vegitation  = 15,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = getTexture("media/textures/Foraging/worldSprites/lemongrass_worldSprite.png"),
	},
	BlackSage = {
		type = "Base.BlackSage",
		minCount = 2,
		maxCount = 8,
		xp = 15,
		recipes = { "Herbalist" },
		categories = { "MedicinalPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 15,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	Ginseng = {
		type = "Base.Ginseng",
		minCount = 2,
		maxCount = 8,
		xp = 15,
		recipes = { "Herbalist" },
		categories = { "MedicinalPlants" },
		zones = {
			Forest      = 10,
			DeepForest  = 15,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
		altWorldTexture = worldSprites.wildPlants,
	},
	--======== ANIMALS ========--
	WildEggs = {
		type = "Base.WildEggs",
		minCount = 1,
		maxCount = 3,
		skill = 8,
		xp = 10,
		rainChance = -20,
		snowChance = -20,
		categories = { "Animals" },
		zones = {
			Forest      = 5,
			DeepForest  = 10,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doRandomAgeSpawn },
	},
	Egg = {
		type = "Base.Egg",
		minCount = 1,
		maxCount = 3,
		skill = 8,
		xp = 10,
		rainChance = -20,
		snowChance = -20,
		categories = { "Animals" },
		zones = {
			Forest      = 5,
			DeepForest  = 10,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doRandomAgeSpawn },
	},
	Worm = {
		type = "Base.Worm",
		minCount = 1,
		maxCount = 2,
		skill = 0,
		xp = 10,
		rainChance = 100,
		snowChance = -100,
		dayChance = -50,
		nightChance = 50,
		--itemTags = { "DigPlow" },
		categories = { "FishBait" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
			TrailerPark = 5,
			TownZone    = 5,
			Nav         = 5,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
	},
	Frog = {
		type = "Base.Frog",
		skill = 7,
		xp = 10,
		rainChance = 100,
		snowChance = -100,
		dayChance = -50,
		nightChance = 50,
		categories = { "Animals" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			Vegitation  = 5,
			FarmLand    = 2,
			Farm        = 2,
			TrailerPark = 0,
			TownZone    = 0,
			Nav         = 0,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
	},
	Slug = {
		type = "Base.Slug",
		skill = 3,
		xp = 10,
		rainChance = 100,
		snowChance = -100,
		dayChance = -50,
		nightChance = 50,
		categories = { "Animals" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			Vegitation  = 5,
			FarmLand    = 2,
			Farm        = 2,
			TrailerPark = 0,
			TownZone    = 0,
			Nav         = 0,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
	},
	Slug2 = {
		type = "Base.Slug2",
		skill = 3,
		xp = 10,
		rainChance = 100,
		snowChance = -100,
		dayChance = -50,
		nightChance = 50,
		categories = { "Animals" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			Vegitation  = 5,
			FarmLand    = 2,
			Farm        = 2,
			TrailerPark = 0,
			TownZone    = 0,
			Nav         = 0,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
	},
	Snail = {
		type = "Base.Snail",
		skill = 3,
		xp = 10,
		rainChance = 100,
		snowChance = -100,
		dayChance = -50,
		nightChance = 50,
		categories = { "Animals" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			Vegitation  = 5,
			FarmLand    = 2,
			Farm        = 2,
			TrailerPark = 0,
			TownZone    = 0,
			Nav         = 0,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
	},
	--======== DEAD ANIMALS ========--
	DeadBird = {
		type = "Base.DeadBird",
		skill = 7,
		xp = 10,
		rainChance = -10,
		snowChance = -10,
		categories = { "DeadAnimals" },
		zones = {
			Forest      = 2,
			DeepForest  = 2,
			Vegitation  = 2,
			FarmLand    = 2,
			Farm        = 2,
			TrailerPark = 2,
			TownZone    = 2,
			Nav         = 2,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doDeadTrapAnimalSpawn },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	DeadSquirrel = {
		type = "Base.DeadSquirrel",
		skill = 8,
		xp = 10,
		rainChance = -10,
		snowChance = -10,
		categories = { "DeadAnimals" },
		zones = {
			Forest      = 2,
			DeepForest  = 2,
			Vegitation  = 2,
			FarmLand    = 1,
			Farm        = 1,
			TrailerPark = 2,
			TownZone    = 2,
			Nav         = 1,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doDeadTrapAnimalSpawn },
	},
	DeadRabbit = {
		type = "Base.DeadRabbit",
		skill = 10,
		xp = 10,
		rainChance = -10,
		snowChance = -10,
		categories = { "DeadAnimals" },
		zones = {
			Forest      = 1,
			DeepForest  = 1,
			Vegitation  = 2,
			FarmLand    = 2,
			Farm        = 2,
			TrailerPark = 0,
			TownZone    = 0,
			Nav         = 1,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doDeadTrapAnimalSpawn },
	},
	DeadRat = {
		type = "Base.DeadRat",
		skill = 5,
		xp = 10,
		rainChance = -10,
		snowChance = -10,
		categories = { "DeadAnimals" },
		zones = {
			Forest      = 2,
			DeepForest  = 2,
			Vegitation  = 2,
			FarmLand    = 5,
			Farm        = 5,
			TrailerPark = 10,
			TownZone    = 10,
			Nav         = 1,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		spawnFuncs = { doDeadTrapAnimalSpawn },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	--======== INSECTS ========--
	Cricket = {
		type = "Base.Cricket",
		skill = 0,
		xp = 5,
		rainChance = 50,
		snowChance = -100,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
			TrailerPark = 10,
			TownZone    = 10,
			Nav         = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Grasshopper = {
		type = "Base.Grasshopper",
		skill = 0,
		xp = 5,
		rainChance = 20,
		snowChance = -100,
		dayChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
			TrailerPark = 10,
			TownZone    = 10,
			Nav         = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		bonusMonths = { 6, 7, 8 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Cockroach = {
		type = "Base.Cockroach",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 10,
			DeepForest  = 10,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
			TrailerPark = 10,
			TownZone    = 10,
			Nav         = 10,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Pillbug = {
		type = "Base.Pillbug",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Centipede = {
		type = "Base.Centipede",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Centipede2 = {
		type = "Base.Centipede2",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Millipede = {
		type = "Base.Millipede",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Millipede2 = {
		type = "Base.Millipede2",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	AmericanLadyCaterpillar = {
		type = "Base.AmericanLadyCaterpillar",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	BandedWoolyBearCaterpillar = {
		type = "Base.BandedWoolyBearCaterpillar",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	MonarchCaterpillar = {
		type = "Base.MonarchCaterpillar",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	SilkMothCaterpillar = {
		type = "Base.SilkMothCaterpillar",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	SwallowtailCaterpillar = {
		type = "Base.SwallowtailCaterpillar",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	Termites = {
		type = "Base.Termites",
		skill = 0,
		xp = 5,
		rainChance = 10,
		snowChance = -20,
		nightChance = 100,
		categories = { "Insects", "FishBait" },
		zones = {
			Forest      = 3,
			DeepForest  = 3,
			Vegitation  = 3,
			FarmLand    = 3,
			Farm        = 3,
			TrailerPark = 3,
			TownZone    = 3,
			Nav         = 3,
		},
		months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
		malusMonths = { 3, 4 },
		forceOutside = false,
		canBeAboveFloor = true,
	},
	--======== FOREST GOODS ========--
	Log = {
		type = "Base.Log",
		skill = 0,
		xp = 5,
		categories = { "Firewood" },
		zones = {
			DeepForest  = 3,
			Forest      = 2,
			Vegitation  = 1,
		},
		bonusMonths = { 9, 10, 11 },
		itemSizeModifier = 5,
		isItemOverrideSize = true,
	},
	TreeBranch = {
		type = "Base.TreeBranch",
		minCount = 1,
		maxCount = 2,
		xp = 2,
		categories = { "Firewood" },
		zones = {
			DeepForest  = 15,
			Forest      = 15,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
			TrailerPark = 5,
			TownZone    = 5,
			Nav         = 5,
		},
		bonusMonths = { 9, 10, 11 },
	},
	Twigs = {
		type = "Base.Twigs",
		minCount = 1,
		maxCount = 3,
		xp = 1,
		categories = { "Firewood" },
		zones = {
			Forest      = 20,
			DeepForest  = 20,
			Vegitation  = 20,
			FarmLand    = 15,
			Farm        = 15,
			TrailerPark = 10,
			TownZone    = 10,
			Nav         = 10,
		},
		bonusMonths = { 9, 10, 11 },
	},
	Pinecone = {
		type = "Base.Pinecone",
		minCount = 1,
		maxCount = 3,
		xp = 1,
		categories = { "Firewood" },
		zones = {
			DeepForest  = 15,
			Forest      = 15,
			Vegitation  = 10,
			FarmLand    = 10,
			Farm        = 10,
			TrailerPark = 5,
			TownZone    = 5,
			Nav         = 5,
		},
		months = { 9, 10, 11, 12 },
	},
	SharpedStone = {
		type = "Base.SharpedStone",
		snowChance = -50,
		xp = 2,
		categories = { "Stones" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
			TrailerPark = 5,
			TownZone    = 5,
			Nav         = 5,
		},
	},
	Stone = {
		type = "Base.Stone",
		snowChance = -50,
		xp = 1,
		categories = { "Stones" },
		zones = {
			Forest      = 5,
			DeepForest  = 5,
			Vegitation  = 5,
			FarmLand    = 5,
			Farm        = 5,
			TrailerPark = 5,
			TownZone    = 5,
			Nav         = 5,
		},
		months = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
	},
	--======== FOREST RARITIES ========--
	CampfireKit = {
		type = "camping.CampfireKit",
		skill = 2,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 10,
		},
	},
	CampingTentKit = {
		type = "camping.CampingTentKit",
		skill = 2,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 10,
		},
	},
	HottieZ = {
		type = "Base.HottieZ",
		skill = 0,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	Tarp = {
		type = "Base.Tarp",
		skill = 2,
		xp = 25,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 5,
		},
	},
	TentPeg = {
		type = "camping.TentPeg",
		minCount = 4,
		maxCount = 6,
		skill = 2,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 10,
		},
	},
	TrapBox = {
		type = "Base.TrapBox",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	TrapCage = {
		type = "Base.TrapCage",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	TrapCrate = {
		type = "Base.TrapCrate",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	TrapMouse = {
		type = "Base.TrapMouse",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	TrapSnare = {
		type = "Base.TrapSnare",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	TrapStick = {
		type = "Base.TrapStick",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	Bag_NormalHikingBag = {
		type = "Base.Bag_NormalHikingBag",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	Bag_BigHikingBag = {
		type = "Base.Bag_BigHikingBag",
		skill = 8,
		xp = 15,
		categories = { "ForestRarities" },
		zones = {
			DeepForest  = 1,
		},
	},
	--======== TRASH ITEMS ========--
	--(added via generateJunkDefs)
	--======== JUNK ITEMS ========--
	--(added via generateJunkDefs)
};
-------------------------------------------------
-------------------------------------------------
local function generateBerryDefs()
	local items = {
		generic = {
			chance = 15,
			months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
			poisonChance = 5,
			poisonPowerMin = 1,
			poisonPowerMax = 10,
			poisonDetectionLevel = 5,
			spawnFuncs = { doPoisonItemSpawn, doWildFoodSpawn, doRandomAgeSpawn },
			items = {
				BerryGeneric5 = "Base.BerryGeneric5",
				BerryGeneric4 = "Base.BerryGeneric4",
				BerryGeneric3 = "Base.BerryGeneric3",
				BerryGeneric2 = "Base.BerryGeneric2",
				BerryGeneric1 = "Base.BerryGeneric1",
				BerryPoisonIvy = "Base.BerryPoisonIvy",
			},
		},
		specific = {
			chance = 10,
			months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
			poisonChance = 0,
			poisonPowerMin = 0,
			poisonPowerMax = 0,
			poisonDetectionLevel = 0,
			spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
			items = {
				BerryBlack = "Base.BerryBlack",
				BerryBlue = "Base.BerryBlue",
			},
		},
		winter = {
			chance = 10,
			months = { 1, 2, 3, 9, 10, 11, 12 },
			poisonChance = 0,
			poisonPowerMin = 0,
			poisonPowerMax = 0,
			poisonDetectionLevel = 0,
			spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
			items = {
				BeautyBerry = "Base.BeautyBerry",
				WinterBerry = "Base.WinterBerry",
			},
		},
		--guaranteed poison berry
		poison = {
			chance = 10,
			months = { 1, 2, 3, 9, 10, 11, 12 },
			poisonChance = 1000, --ensure the chance will not be affected by skill
			poisonPowerMin = 5,
			poisonPowerMax = 10,
			poisonDetectionLevel = 5,
			spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn, doPoisonItemSpawn },
			items = {
				HollyBerry = "Base.HollyBerry",
			},
		},
	};
	for _, spawnTable in pairs(items) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				minCount = 1,
				maxCount = 4,
				xp = 5,
				snowChance = -10,
				categories = { "Berries" },
				zones = {
					Forest      = spawnTable.chance,
					DeepForest  = spawnTable.chance,
					Vegitation  = spawnTable.chance,
					FarmLand    = spawnTable.chance,
					Farm        = spawnTable.chance,
				},
				months = spawnTable.months,
				bonusMonths = { 5, 6, 7 },
				malusMonths = { 3, 4 },
				spawnFuncs = spawnTable.spawnFuncs,
				poisonChance = spawnTable.poisonChance,
				poisonPowerMin = spawnTable.poisonPowerMin,
				poisonPowerMax = spawnTable.poisonPowerMax,
				poisonDetectionLevel = spawnTable.poisonDetectionLevel,
				altWorldTexture = worldSprites.berryBushes,
				doIsoMarkerObject = true,
				itemSizeModifier = 1.0,
			};
		end;
	end;
end

generateBerryDefs();
-------------------------------------------------
-------------------------------------------------
local function generateMushroomDefs()
	local items = {
		generic = {
			chance = 15,
			poisonChance = 10,
			poisonPowerMin = 5,
			poisonPowerMax = 50,
			poisonDetectionLevel = 5,
			spawnFuncs = { doPoisonItemSpawn, doWildFoodSpawn, doRandomAgeSpawn },
			items = {
				MushroomGeneric7 = "Base.MushroomGeneric7",
				MushroomGeneric6 = "Base.MushroomGeneric6",
				MushroomGeneric5 = "Base.MushroomGeneric5",
				MushroomGeneric4 = "Base.MushroomGeneric4",
				MushroomGeneric3 = "Base.MushroomGeneric3",
				MushroomGeneric2 = "Base.MushroomGeneric2",
				MushroomGeneric1 = "Base.MushroomGeneric1",
			},
		},
	};
	for _, spawnTable in pairs(items) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				minCount = 1,
				maxCount = 3,
				xp = 5,
				rainChance = 15,
				categories = { "Mushrooms" },
				zones = {
					Forest      = spawnTable.chance,
					DeepForest  = spawnTable.chance,
					Vegitation  = spawnTable.chance,
					FarmLand    = spawnTable.chance,
					Farm        = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
				bonusMonths = { 8, 9, 10 },
				malusMonths = { 3, 4 },
				spawnFuncs = spawnTable.spawnFuncs,
				poisonChance = spawnTable.poisonChance,
				poisonPowerMin = spawnTable.poisonPowerMin,
				poisonPowerMax = spawnTable.poisonPowerMax,
				poisonDetectionLevel = spawnTable.poisonDetectionLevel,
			};
		end;
	end;
end

generateMushroomDefs();
-------------------------------------------------
-------------------------------------------------
local function generateHerbDefs()
	local items = {
		generic = {
			chance = 1,
			spawnFuncs = { doWildFoodSpawn, doRandomAgeSpawn },
			items = {
				Basil		= "Base.Basil",
				Chives		= "Base.Chives",
				Cilantro	= "Base.Cilantro",
				Oregano		= "Base.Oregano",
				Parsley		= "Base.Parsley",
				Rosemary	= "Base.Rosemary",
				Sage		= "Base.Sage",
				Thyme		= "Base.Thyme",
			},
		},
	};
	for _, spawnTable in pairs(items) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				minCount = 1,
				maxCount = 3,
				xp = 5,
				rainChance = 15,
				categories = { "WildHerbs" },
				zones = {
					Forest      = spawnTable.chance,
					DeepForest  = spawnTable.chance,
					Vegitation  = spawnTable.chance,
					FarmLand    = spawnTable.chance,
					Farm        = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				months = { 3, 4, 5, 6, 7, 8, 9, 10, 11 },
				bonusMonths = { 8, 9, 10 },
				malusMonths = { 3, 4 },
				spawnFuncs = spawnTable.spawnFuncs,
			};
		end;
	end;
end

generateHerbDefs();
-------------------------------------------------
-------------------------------------------------
local function generateAmmoDefs()
	local ammunition = {
		uncommon = {
			chance = 50,
			xp = 5,
			maxCount = 3,
			items = {
				["ShotgunShells"]    = "Base.ShotgunShells",
				["Bullets38"]        = "Base.Bullets38",
				["Bullets9mm"]       = "Base.Bullets9mm",
				["Bullets45"]        = "Base.Bullets45",
				["Bullets44"]        = "Base.Bullets44",
				["223Bullets"]       = "Base.223Bullets",
				["308Bullets"]       = "Base.308Bullets",
				["556Bullets"]       = "Base.556Bullets",
			},
		},
		rare = {
			chance = 5,
			xp = 10,
			maxCount = 2,
			items = {
				["223Clip"]          = "Base.223Clip",
				["308Clip"]          = "Base.308Clip",
				["44Clip"]           = "Base.44Clip",
				["45Clip"]           = "Base.45Clip",
				["556Clip"]          = "Base.556Clip",
				["9mmClip"]          = "Base.9mmClip",
				["M14Clip"]          = "Base.M14Clip",
			},
		},
		legendary = {
			chance = 1,
			xp = 25,
			maxCount = 1,
			items = {
				["223Box"]           = "Base.223Box",
				["308Box"]           = "Base.308Box",
				["Bullets38Box"]     = "Base.Bullets38Box",
				["Bullets44Box"]     = "Base.Bullets44Box",
				["Bullets45Box"]     = "Base.Bullets45Box",
				["Bullets9mmBox"]    = "Base.Bullets9mmBox",
				["ShotgunShellsBox"] = "Base.ShotgunShellsBox",
				["556Box"]           = "Base.556Box",
			},
		},
	};
	for _, spawnTable in pairs(ammunition) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				minCount = 1,
				maxCount = spawnTable.maxCount;
				skill = 4,
				xp = spawnTable.xp,
				categories = { "Ammunition" },
				zones = {
					Vegitation  = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				forceOutside = false,
				canBeAboveFloor = true,
			};
		end;
	end;
end

generateAmmoDefs();
-------------------------------------------------
-------------------------------------------------
local function generateClothingDefs()
	local clothing = {
		common = {
			chance = 5,
			xp = 5,
			items = {
				["Hat_Antlers"] = "Base.Hat_Antlers",
				["Hat_Army"] = "Base.Hat_Army",
				["Hat_BalaclavaFace"] = "Base.Hat_BalaclavaFace",
				["Hat_BalaclavaFull"] = "Base.Hat_BalaclavaFull",
				["Hat_Bandana"] = "Base.Hat_Bandana",
				["Hat_BandanaMask"] = "Base.Hat_BandanaMask",
				["Hat_BandanaMaskTINT"] = "Base.Hat_BandanaMaskTINT",
				["Hat_BandanaTINT"] = "Base.Hat_BandanaTINT",
				["Hat_BandanaTied"] = "Base.Hat_BandanaTied",
				["Hat_BandanaTiedTINT"] = "Base.Hat_BandanaTiedTINT",
				["Hat_BaseballCap"] = "Base.Hat_BaseballCap",
				["Hat_BaseballCapArmy"] = "Base.Hat_BaseballCapArmy",
				["Hat_BaseballCapArmy_Reverse"] = "Base.Hat_BaseballCapArmy_Reverse",
				["Hat_BaseballCapBlue"] = "Base.Hat_BaseballCapBlue",
				["Hat_BaseballCapBlue_Reverse"] = "Base.Hat_BaseballCapBlue_Reverse",
				["Hat_BaseballCapGreen"] = "Base.Hat_BaseballCapGreen",
				["Hat_BaseballCapGreen_Reverse"] = "Base.Hat_BaseballCapGreen_Reverse",
				["Hat_BaseballCapKY"] = "Base.Hat_BaseballCapKY",
				["Hat_BaseballCapKY_Red"] = "Base.Hat_BaseballCapKY_Red",
				["Hat_BaseballCapKY_Reverse"] = "Base.Hat_BaseballCapKY_Reverse",
				["Hat_BaseballCapRed"] = "Base.Hat_BaseballCapRed",
				["Hat_BaseballCapRed_Reverse"] = "Base.Hat_BaseballCapRed_Reverse",
				["Hat_BaseballCap_Reverse"] = "Base.Hat_BaseballCap_Reverse",
				["Hat_BaseballHelmet_KY"] = "Base.Hat_BaseballHelmet_KY",
				["Hat_BaseballHelmet_Rangers"] = "Base.Hat_BaseballHelmet_Rangers",
				["Hat_BaseballHelmet_Z"] = "Base.Hat_BaseballHelmet_Z",
				["Hat_Beany"] = "Base.Hat_Beany",
				["Hat_Beret"] = "Base.Hat_Beret",
				["Hat_BeretArmy"] = "Base.Hat_BeretArmy",
				["Hat_BicycleHelmet"] = "Base.Hat_BicycleHelmet",
				["Hat_BonnieHat"] = "Base.Hat_BonnieHat",
				["Hat_BonnieHat_CamoGreen"] = "Base.Hat_BonnieHat_CamoGreen",
				["Hat_BoxingBlue"] = "Base.Hat_BoxingBlue",
				["Hat_BoxingRed"] = "Base.Hat_BoxingRed",
				["Hat_BucketHat"] = "Base.Hat_BucketHat",
				["Hat_BunnyEarsBlack"] = "Base.Hat_BunnyEarsBlack",
				["Hat_BunnyEarsWhite"] = "Base.Hat_BunnyEarsWhite",
				["Hat_ChefHat"] = "Base.Hat_ChefHat",
				["Hat_Cowboy"] = "Base.Hat_Cowboy",
				["Hat_CrashHelmet"] = "Base.Hat_CrashHelmet",
				["Hat_CrashHelmetFULL"] = "Base.Hat_CrashHelmetFULL",
				["Hat_CrashHelmet_Police"] = "Base.Hat_CrashHelmet_Police",
				["Hat_CrashHelmet_Stars"] = "Base.Hat_CrashHelmet_Stars",
				["Hat_DustMask"] = "Base.Hat_DustMask",
				["Hat_EarMuff_Protectors"] = "Base.Hat_EarMuff_Protectors",
				["Hat_EarMuffs"] = "Base.Hat_EarMuffs",
				["Hat_FastFood"] = "Base.Hat_FastFood",
				["Hat_FastFood_IceCream"] = "Base.Hat_FastFood_IceCream",
				["Hat_FastFood_Spiffo"] = "Base.Hat_FastFood_Spiffo",
				["Hat_Fedora"] = "Base.Hat_Fedora",
				["Hat_Fedora_Delmonte"] = "Base.Hat_Fedora_Delmonte",
				["Hat_Fireman"] = "Base.Hat_Fireman",
				["Hat_FootballHelmet"] = "Base.Hat_FootballHelmet",
				["Hat_FurryEars"] = "Base.Hat_FurryEars",
				["Hat_GasMask"] = "Base.Hat_GasMask",
				["Hat_GoldStar"] = "Base.Hat_GoldStar",
				["Hat_GolfHat"] = "Base.Hat_GolfHat",
				["Hat_GolfHatTINT"] = "Base.Hat_GolfHatTINT",
				["Hat_HardHat"] = "Base.Hat_HardHat",
				["Hat_HardHat_Miner"] = "Base.Hat_HardHat_Miner",
				["Hat_HockeyHelmet"] = "Base.Hat_HockeyHelmet",
				["Hat_HockeyMask"] = "Base.Hat_HockeyMask",
				["Hat_Jay"] = "Base.Hat_Jay",
				["Hat_JockeyHelmet01"] = "Base.Hat_JockeyHelmet01",
				["Hat_JockeyHelmet02"] = "Base.Hat_JockeyHelmet02",
				["Hat_JockeyHelmet03"] = "Base.Hat_JockeyHelmet03",
				["Hat_JockeyHelmet04"] = "Base.Hat_JockeyHelmet04",
				["Hat_JockeyHelmet05"] = "Base.Hat_JockeyHelmet05",
				["Hat_JockeyHelmet06"] = "Base.Hat_JockeyHelmet06",
				["Hat_JokeArrow"] = "Base.Hat_JokeArrow",
				["Hat_JokeKnife"] = "Base.Hat_JokeKnife",
				["Hat_NBCmask"] = "Base.Hat_NBCmask",
				["Hat_NewspaperHat"] = "Base.Hat_NewspaperHat",
				["Hat_PartyHat_Stars"] = "Base.Hat_PartyHat_Stars",
				["Hat_PartyHat_TINT"] = "Base.Hat_PartyHat_TINT",
				["Hat_PeakedCapArmy"] = "Base.Hat_PeakedCapArmy",
				["Hat_Police"] = "Base.Hat_Police",
				["Hat_Police_Grey"] = "Base.Hat_Police_Grey",
				["Hat_Raccoon"] = "Base.Hat_Raccoon",
				["Hat_Ranger"] = "Base.Hat_Ranger",
				["Hat_RidingHelmet"] = "Base.Hat_RidingHelmet",
				["Hat_RiotHelmet"] = "Base.Hat_RiotHelmet",
				["Hat_SPHhelmet"] = "Base.Hat_SPHhelmet",
				["Hat_SantaHat"] = "Base.Hat_SantaHat",
				["Hat_SantaHatGreen"] = "Base.Hat_SantaHatGreen",
				["Hat_ShowerCap"] = "Base.Hat_ShowerCap",
				["Hat_Spiffo"] = "Base.Hat_Spiffo",
				["Hat_SummerHat"] = "Base.Hat_SummerHat",
				["Hat_SurgicalCap_Blue"] = "Base.Hat_SurgicalCap_Blue",
				["Hat_SurgicalCap_Green"] = "Base.Hat_SurgicalCap_Green",
				["Hat_SurgicalMask_Blue"] = "Base.Hat_SurgicalMask_Blue",
				["Hat_SurgicalMask_Green"] = "Base.Hat_SurgicalMask_Green",
				["Hat_Sweatband"] = "Base.Hat_Sweatband",
				["Hat_TinFoilHat"] = "Base.Hat_TinFoilHat",
				["Hat_VisorBlack"] = "Base.Hat_VisorBlack",
				["Hat_VisorRed"] = "Base.Hat_VisorRed",
				["Hat_Visor_WhiteTINT"] = "Base.Hat_Visor_WhiteTINT",
				["Hat_WeddingVeil"] = "Base.Hat_WeddingVeil",
				["Hat_WinterHat"] = "Base.Hat_WinterHat",
				["Hat_WoolyHat"] = "Base.Hat_WoolyHat",
				["WeldingMask"] = "Base.WeldingMask",
			},
		},
		uncommon = {
			chance = 3,
			xp = 5,
			items = {
				["Apron_Black"] = "Base.Apron_Black",
				["Apron_IceCream"] = "Base.Apron_IceCream",
				["Apron_Jay"] = "Base.Apron_Jay",
				["Apron_PileOCrepe"] = "Base.Apron_PileOCrepe",
				["Apron_PizzaWhirled"] = "Base.Apron_PizzaWhirled",
				["Apron_Spiffos"] = "Base.Apron_Spiffos",
				["Apron_White"] = "Base.Apron_White",
				["Apron_WhiteTEXTURE"] = "Base.Apron_WhiteTEXTURE",
				["Bikini_Pattern01"] = "Base.Bikini_Pattern01",
				["Bikini_TINT"] = "Base.Bikini_TINT",
				["Boilersuit"] = "Base.Boilersuit",
				["Boilersuit_BlueRed"] = "Base.Boilersuit_BlueRed",
				["Boilersuit_Flying"] = "Base.Boilersuit_Flying",
				["Boilersuit_Prisoner"] = "Base.Boilersuit_Prisoner",
				["Boilersuit_PrisonerKhaki"] = "Base.Boilersuit_PrisonerKhaki",
				["Boilersuit_Yellow"] = "Base.Boilersuit_Yellow",
				["BoobTube"] = "Base.BoobTube",
				["BoobTubeSmall"] = "Base.BoobTubeSmall",
				["Boxers_Hearts"] = "Base.Boxers_Hearts",
				["Boxers_RedStripes"] = "Base.Boxers_RedStripes",
				["Boxers_Silk_Black"] = "Base.Boxers_Silk_Black",
				["Boxers_Silk_Red"] = "Base.Boxers_Silk_Red",
				["Boxers_White"] = "Base.Boxers_White",
				["Bra_Strapless_AnimalPrint"] = "Base.Bra_Strapless_AnimalPrint",
				["Bra_Strapless_Black"] = "Base.Bra_Strapless_Black",
				["Bra_Strapless_FrillyBlack"] = "Base.Bra_Strapless_FrillyBlack",
				["Bra_Strapless_FrillyPink"] = "Base.Bra_Strapless_FrillyPink",
				["Bra_Strapless_FrillyRed"] = "Base.Bra_Strapless_FrillyRed",
				["Bra_Strapless_RedSpots"] = "Base.Bra_Strapless_RedSpots",
				["Bra_Strapless_White"] = "Base.Bra_Strapless_White",
				["Bra_Straps_AnimalPrint"] = "Base.Bra_Straps_AnimalPrint",
				["Bra_Straps_Black"] = "Base.Bra_Straps_Black",
				["Bra_Straps_FrillyBlack"] = "Base.Bra_Straps_FrillyBlack",
				["Bra_Straps_FrillyPink"] = "Base.Bra_Straps_FrillyPink",
				["Bra_Straps_FrillyRed"] = "Base.Bra_Straps_FrillyRed",
				["Bra_Straps_White"] = "Base.Bra_Straps_White",
				["Briefs_AnimalPrints"] = "Base.Briefs_AnimalPrints",
				["Briefs_SmallTrunks_Black"] = "Base.Briefs_SmallTrunks_Black",
				["Briefs_SmallTrunks_Blue"] = "Base.Briefs_SmallTrunks_Blue",
				["Briefs_SmallTrunks_Red"] = "Base.Briefs_SmallTrunks_Red",
				["Briefs_SmallTrunks_WhiteTINT"] = "Base.Briefs_SmallTrunks_WhiteTINT",
				["Briefs_White"] = "Base.Briefs_White",
				["Corset"] = "Base.Corset",
				["Corset_Black"] = "Base.Corset_Black",
				["Corset_Medical"] = "Base.Corset_Medical",
				["Corset_Red"] = "Base.Corset_Red",
				["DressKnees_Straps"] = "Base.DressKnees_Straps",
				["Dress_Knees"] = "Base.Dress_Knees",
				["Dress_Long"] = "Base.Dress_Long",
				["Dress_Normal"] = "Base.Dress_Normal",
				["Dress_SatinNegligee"] = "Base.Dress_SatinNegligee",
				["Dress_Short"] = "Base.Dress_Short",
				["Dress_SmallBlackStrapless"] = "Base.Dress_SmallBlackStrapless",
				["Dress_SmallBlackStraps"] = "Base.Dress_SmallBlackStraps",
				["Dress_SmallStrapless"] = "Base.Dress_SmallStrapless",
				["Dress_SmallStraps"] = "Base.Dress_SmallStraps",
				["Dress_Straps"] = "Base.Dress_Straps",
				["Dress_long_Straps"] = "Base.Dress_long_Straps",
				["Dungarees"] = "Base.Dungarees",
				["FrillyUnderpants_Black"] = "Base.FrillyUnderpants_Black",
				["FrillyUnderpants_Pink"] = "Base.FrillyUnderpants_Pink",
				["FrillyUnderpants_Red"] = "Base.FrillyUnderpants_Red",
				["Garter"] = "Base.Garter",
				["Ghillie_Top"] = "Base.Ghillie_Top",
				["Ghillie_Trousers"] = "Base.Ghillie_Trousers",
				["Glasses"] = "Base.Glasses",
				["Glasses_Aviators"] = "Base.Glasses_Aviators",
				["Glasses_Eyepatch_Left"] = "Base.Glasses_Eyepatch_Left",
				["Glasses_Eyepatch_Right"] = "Base.Glasses_Eyepatch_Right",
				["Glasses_Normal"] = "Base.Glasses_Normal",
				["Glasses_Reading"] = "Base.Glasses_Reading",
				["Glasses_SafetyGoggles"] = "Base.Glasses_SafetyGoggles",
				["Glasses_Shooting"] = "Base.Glasses_Shooting",
				["Glasses_SkiGoggles"] = "Base.Glasses_SkiGoggles",
				["Glasses_Sun"] = "Base.Glasses_Sun",
				["Glasses_SwimmingGoggles"] = "Base.Glasses_SwimmingGoggles",
				["Gloves_BoxingBlue"] = "Base.Gloves_BoxingBlue",
				["Gloves_BoxingRed"] = "Base.Gloves_BoxingRed",
				["Gloves_FingerlessGloves"] = "Base.Gloves_FingerlessGloves",
				["Gloves_LeatherGloves"] = "Base.Gloves_LeatherGloves",
				["Gloves_LeatherGlovesBlack"] = "Base.Gloves_LeatherGlovesBlack",
				["Gloves_LongWomenGloves"] = "Base.Gloves_LongWomenGloves",
				["Gloves_Surgical"] = "Base.Gloves_Surgical",
				["Gloves_WhiteTINT"] = "Base.Gloves_WhiteTINT",
				["HazmatSuit"] = "Base.HazmatSuit",
				["HoodieDOWN_WhiteTINT"] = "Base.HoodieDOWN_WhiteTINT",
				["HoodieUP_WhiteTINT"] = "Base.HoodieUP_WhiteTINT",
				["HospitalGown"] = "Base.HospitalGown",
				["JacketLong_Doctor"] = "Base.JacketLong_Doctor",
				["JacketLong_Random"] = "Base.JacketLong_Random",
				["JacketLong_Santa"] = "Base.JacketLong_Santa",
				["JacketLong_SantaGreen"] = "Base.JacketLong_SantaGreen",
				["Jacket_ArmyCamoDesert"] = "Base.Jacket_ArmyCamoDesert",
				["Jacket_ArmyCamoGreen"] = "Base.Jacket_ArmyCamoGreen",
				["Jacket_Black"] = "Base.Jacket_Black",
				["Jacket_Chef"] = "Base.Jacket_Chef",
				["Jacket_CoatArmy"] = "Base.Jacket_CoatArmy",
				["Jacket_Fireman"] = "Base.Jacket_Fireman",
				["Jacket_LeatherBarrelDogs"] = "Base.Jacket_LeatherBarrelDogs",
				["Jacket_LeatherIronRodent"] = "Base.Jacket_LeatherIronRodent",
				["Jacket_LeatherWildRacoons"] = "Base.Jacket_LeatherWildRacoons",
				["Jacket_NavyBlue"] = "Base.Jacket_NavyBlue",
				["Jacket_Padded"] = "Base.Jacket_Padded",
				["Jacket_PaddedDOWN"] = "Base.Jacket_PaddedDOWN",
				["Jacket_Police"] = "Base.Jacket_Police",
				["Jacket_Ranger"] = "Base.Jacket_Ranger",
				["Jacket_Shellsuit_Black"] = "Base.Jacket_Shellsuit_Black",
				["Jacket_Shellsuit_Blue"] = "Base.Jacket_Shellsuit_Blue",
				["Jacket_Shellsuit_Green"] = "Base.Jacket_Shellsuit_Green",
				["Jacket_Shellsuit_Pink"] = "Base.Jacket_Shellsuit_Pink",
				["Jacket_Shellsuit_TINT"] = "Base.Jacket_Shellsuit_TINT",
				["Jacket_Shellsuit_Teal"] = "Base.Jacket_Shellsuit_Teal",
				["Jacket_Varsity"] = "Base.Jacket_Varsity",
				["Jacket_WhiteTINT"] = "Base.Jacket_WhiteTINT",
				["Jumper_DiamondPatternTINT"] = "Base.Jumper_DiamondPatternTINT",
				["Jumper_PoloNeck"] = "Base.Jumper_PoloNeck",
				["Jumper_RoundNeck"] = "Base.Jumper_RoundNeck",
				["Jumper_TankTopDiamondTINT"] = "Base.Jumper_TankTopDiamondTINT",
				["Jumper_TankTopTINT"] = "Base.Jumper_TankTopTINT",
				["Jumper_VNeck"] = "Base.Jumper_VNeck",
				["LongCoat_Bathrobe"] = "Base.LongCoat_Bathrobe",
				["LongJohns"] = "Base.LongJohns",
				["LongJohns_Bottoms"] = "Base.LongJohns_Bottoms",
				--["Male_Undies"] = "Base.Male_Undies",
				["PonchoGreen"] = "Base.PonchoGreen",
				["PonchoGreenDOWN"] = "Base.PonchoGreenDOWN",
				["PonchoYellow"] = "Base.PonchoYellow",
				["PonchoYellowDOWN"] = "Base.PonchoYellowDOWN",
				["Scarf_StripeBlackWhite"] = "Base.Scarf_StripeBlackWhite",
				["Scarf_StripeBlueWhite"] = "Base.Scarf_StripeBlueWhite",
				["Scarf_StripeRedWhite"] = "Base.Scarf_StripeRedWhite",
				["Scarf_White"] = "Base.Scarf_White",
				["Shirt_Baseball_KY"] = "Base.Shirt_Baseball_KY",
				["Shirt_Baseball_Rangers"] = "Base.Shirt_Baseball_Rangers",
				["Shirt_Baseball_Z"] = "Base.Shirt_Baseball_Z",
				["Shirt_Bowling_Blue"] = "Base.Shirt_Bowling_Blue",
				["Shirt_Bowling_Brown"] = "Base.Shirt_Bowling_Brown",
				["Shirt_Bowling_Green"] = "Base.Shirt_Bowling_Green",
				["Shirt_Bowling_LimeGreen"] = "Base.Shirt_Bowling_LimeGreen",
				["Shirt_Bowling_Pink"] = "Base.Shirt_Bowling_Pink",
				["Shirt_Bowling_White"] = "Base.Shirt_Bowling_White",
				["Shirt_CamoDesert"] = "Base.Shirt_CamoDesert",
				["Shirt_CamoGreen"] = "Base.Shirt_CamoGreen",
				["Shirt_CamoUrban"] = "Base.Shirt_CamoUrban",
				["Shirt_CropTopNoArmTINT"] = "Base.Shirt_CropTopNoArmTINT",
				["Shirt_CropTopTINT"] = "Base.Shirt_CropTopTINT",
				["Shirt_Denim"] = "Base.Shirt_Denim",
				["Shirt_FormalTINT"] = "Base.Shirt_FormalTINT",
				["Shirt_FormalWhite"] = "Base.Shirt_FormalWhite",
				["Shirt_FormalWhite_ShortSleeve"] = "Base.Shirt_FormalWhite_ShortSleeve",
				["Shirt_FormalWhite_ShortSleeveTINT"] = "Base.Shirt_FormalWhite_ShortSleeveTINT",
				["Shirt_HawaiianRed"] = "Base.Shirt_HawaiianRed",
				["Shirt_HawaiianTINT"] = "Base.Shirt_HawaiianTINT",
				["Shirt_Jockey01"] = "Base.Shirt_Jockey01",
				["Shirt_Jockey02"] = "Base.Shirt_Jockey02",
				["Shirt_Jockey03"] = "Base.Shirt_Jockey03",
				["Shirt_Jockey04"] = "Base.Shirt_Jockey04",
				["Shirt_Jockey05"] = "Base.Shirt_Jockey05",
				["Shirt_Jockey06"] = "Base.Shirt_Jockey06",
				["Shirt_Lumberjack"] = "Base.Shirt_Lumberjack",
				["Shirt_OfficerWhite"] = "Base.Shirt_OfficerWhite",
				["Shirt_PoliceBlue"] = "Base.Shirt_PoliceBlue",
				["Shirt_PoliceGrey"] = "Base.Shirt_PoliceGrey",
				["Shirt_Priest"] = "Base.Shirt_Priest",
				["Shirt_PrisonGuard"] = "Base.Shirt_PrisonGuard",
				["Shirt_Ranger"] = "Base.Shirt_Ranger",
				["Shirt_Scrubs"] = "Base.Shirt_Scrubs",
				["Shirt_Workman"] = "Base.Shirt_Workman",
				["Shoes_ArmyBoots"] = "Base.Shoes_ArmyBoots",
				["Shoes_ArmyBootsDesert"] = "Base.Shoes_ArmyBootsDesert",
				["Shoes_Black"] = "Base.Shoes_Black",
				["Shoes_BlackBoots"] = "Base.Shoes_BlackBoots",
				["Shoes_BlueTrainers"] = "Base.Shoes_BlueTrainers",
				["Shoes_Bowling"] = "Base.Shoes_Bowling",
				["Shoes_Brown"] = "Base.Shoes_Brown",
				["Shoes_Fancy"] = "Base.Shoes_Fancy",
				["Shoes_FlipFlop"] = "Base.Shoes_FlipFlop",
				["Shoes_Random"] = "Base.Shoes_Random",
				["Shoes_RedTrainers"] = "Base.Shoes_RedTrainers",
				["Shoes_RidingBoots"] = "Base.Shoes_RidingBoots",
				["Shoes_Sandals"] = "Base.Shoes_Sandals",
				["Shoes_Slippers"] = "Base.Shoes_Slippers",
				["Shoes_Strapped"] = "Base.Shoes_Strapped",
				["Shoes_TrainerTINT"] = "Base.Shoes_TrainerTINT",
				["Shoes_Wellies"] = "Base.Shoes_Wellies",
				["Shorts_BoxingBlue"] = "Base.Shorts_BoxingBlue",
				["Shorts_BoxingRed"] = "Base.Shorts_BoxingRed",
				["Shorts_CamoGreenLong"] = "Base.Shorts_CamoGreenLong",
				["Shorts_CamoUrbanLong"] = "Base.Shorts_CamoUrbanLong",
				["Shorts_LongDenim"] = "Base.Shorts_LongDenim",
				["Shorts_LongSport"] = "Base.Shorts_LongSport",
				["Shorts_LongSport_Red"] = "Base.Shorts_LongSport_Red",
				["Shorts_ShortDenim"] = "Base.Shorts_ShortDenim",
				["Shorts_ShortFormal"] = "Base.Shorts_ShortFormal",
				["Shorts_ShortSport"] = "Base.Shorts_ShortSport",
				["Skirt_Knees"] = "Base.Skirt_Knees",
				["Skirt_Long"] = "Base.Skirt_Long",
				["Skirt_Mini"] = "Base.Skirt_Mini",
				["Skirt_Normal"] = "Base.Skirt_Normal",
				["Skirt_Short"] = "Base.Skirt_Short",
				["Socks_Ankle"] = "Base.Socks_Ankle",
				["Socks_Long"] = "Base.Socks_Long",
				["StockingsBlack"] = "Base.StockingsBlack",
				["StockingsBlackSemiTrans"] = "Base.StockingsBlackSemiTrans",
				["StockingsBlackTrans"] = "Base.StockingsBlackTrans",
				["StockingsWhite"] = "Base.StockingsWhite",
				["Suit_Jacket"] = "Base.Suit_Jacket",
				["Suit_JacketTINT"] = "Base.Suit_JacketTINT",
				["SwimTrunks_Blue"] = "Base.SwimTrunks_Blue",
				["SwimTrunks_Green"] = "Base.SwimTrunks_Green",
				["SwimTrunks_Red"] = "Base.SwimTrunks_Red",
				["SwimTrunks_Yellow"] = "Base.SwimTrunks_Yellow",
				["Swimsuit_TINT"] = "Base.Swimsuit_TINT",
				["Tie_BowTieFull"] = "Base.Tie_BowTieFull",
				["Tie_BowTieWorn"] = "Base.Tie_BowTieWorn",
				["Tie_Full"] = "Base.Tie_Full",
				["Tie_Worn"] = "Base.Tie_Worn",
				["Tie_Worn_Spiffo"] = "Base.Tie_Worn_Spiffo",
				["TightsBlack"] = "Base.TightsBlack",
				["TightsBlackSemiTrans"] = "Base.TightsBlackSemiTrans",
				["TightsBlackTrans"] = "Base.TightsBlackTrans",
				["TightsFishnets"] = "Base.TightsFishnets",
				["Trousers"] = "Base.Trousers",
				["TrousersMesh_DenimLig"] = "Base.TrousersMesh_DenimLight",
				["TrousersMesh_Leather"] = "Base.TrousersMesh_Leather",
				["Trousers_ArmyService"] = "Base.Trousers_ArmyService",
				["Trousers_Black"] = "Base.Trousers_Black",
				["Trousers_CamoDesert"] = "Base.Trousers_CamoDesert",
				["Trousers_CamoGreen"] = "Base.Trousers_CamoGreen",
				["Trousers_CamoUrban"] = "Base.Trousers_CamoUrban",
				["Trousers_Chef"] = "Base.Trousers_Chef",
				["Trousers_DefaultTEXTURE"] = "Base.Trousers_DefaultTEXTURE",
				["Trousers_DefaultTEXTURE_HUE"] = "Base.Trousers_DefaultTEXTURE_HUE",
				["Trousers_DefaultTEXTURE_TINT"] = "Base.Trousers_DefaultTEXTURE_TINT",
				["Trousers_Denim"] = "Base.Trousers_Denim",
				["Trousers_Fireman"] = "Base.Trousers_Fireman",
				["Trousers_JeanBaggy"] = "Base.Trousers_JeanBaggy",
				["Trousers_LeatherBlack"] = "Base.Trousers_LeatherBlack",
				["Trousers_NavyBlue"] = "Base.Trousers_NavyBlue",
				["Trousers_Padded"] = "Base.Trousers_Padded",
				["Trousers_Police"] = "Base.Trousers_Police",
				["Trousers_PoliceGrey"] = "Base.Trousers_PoliceGrey",
				["Trousers_PrisonGuard"] = "Base.Trousers_PrisonGuard",
				["Trousers_Ranger"] = "Base.Trousers_Ranger",
				["Trousers_Santa"] = "Base.Trousers_Santa",
				["Trousers_SantaGReen"] = "Base.Trousers_SantaGReen",
				["Trousers_Scrubs"] = "Base.Trousers_Scrubs",
				["Trousers_Shellsuit_Black"] = "Base.Trousers_Shellsuit_Black",
				["Trousers_Shellsuit_Blue"] = "Base.Trousers_Shellsuit_Blue",
				["Trousers_Shellsuit_Green"] = "Base.Trousers_Shellsuit_Green",
				["Trousers_Shellsuit_Pink"] = "Base.Trousers_Shellsuit_Pink",
				["Trousers_Shellsuit_TINT"] = "Base.Trousers_Shellsuit_TINT",
				["Trousers_Shellsuit_Teal"] = "Base.Trousers_Shellsuit_Teal",
				["Trousers_Suit"] = "Base.Trousers_Suit",
				["Trousers_SuitTEXTURE"] = "Base.Trousers_SuitTEXTURE",
				["Trousers_SuitWhite"] = "Base.Trousers_SuitWhite",
				["Trousers_WhiteTEXTURE"] = "Base.Trousers_WhiteTEXTURE",
				["Trousers_WhiteTINT"] = "Base.Trousers_WhiteTINT",
				["Tshirt_ArmyGreen"] = "Base.Tshirt_ArmyGreen",
				["Tshirt_BusinessSpiffo"] = "Base.Tshirt_BusinessSpiffo",
				["Tshirt_CamoDesert"] = "Base.Tshirt_CamoDesert",
				["Tshirt_CamoGreen"] = "Base.Tshirt_CamoGreen",
				["Tshirt_CamoUrban"] = "Base.Tshirt_CamoUrban",
				["Tshirt_DefaultDECAL"] = "Base.Tshirt_DefaultDECAL",
				["Tshirt_DefaultDECAL_TINT"] = "Base.Tshirt_DefaultDECAL_TINT",
				["Tshirt_DefaultTEXTURE"] = "Base.Tshirt_DefaultTEXTURE",
				["Tshirt_DefaultTEXTURE_TINT"] = "Base.Tshirt_DefaultTEXTURE_TINT",
				["Tshirt_Fossoil"] = "Base.Tshirt_Fossoil",
				["Tshirt_Gas2Go"] = "Base.Tshirt_Gas2Go",
				["Tshirt_IndieStoneDECAL"] = "Base.Tshirt_IndieStoneDECAL",
				["Tshirt_McCoys"] = "Base.Tshirt_McCoys",
				["Tshirt_PileOCrepe"] = "Base.Tshirt_PileOCrepe",
				["Tshirt_PizzaWhirled"] = "Base.Tshirt_PizzaWhirled",
				["Tshirt_PoliceBlue"] = "Base.Tshirt_PoliceBlue",
				["Tshirt_PoliceGrey"] = "Base.Tshirt_PoliceGrey",
				["Tshirt_PoloStripedTINT"] = "Base.Tshirt_PoloStripedTINT",
				["Tshirt_PoloTINT"] = "Base.Tshirt_PoloTINT",
				["Tshirt_Profession_FiremanBlue"] = "Base.Tshirt_Profession_FiremanBlue",
				["Tshirt_Profession_FiremanRed"] = "Base.Tshirt_Profession_FiremanRed",
				["Tshirt_Profession_FiremanRed02"] = "Base.Tshirt_Profession_FiremanRed02",
				["Tshirt_Profession_FiremanWhite"] = "Base.Tshirt_Profession_FiremanWhite",
				["Tshirt_Profession_PoliceBlue"] = "Base.Tshirt_Profession_PoliceBlue",
				["Tshirt_Profession_PoliceWhite"] = "Base.Tshirt_Profession_PoliceWhite",
				["Tshirt_Profession_RangerBrown"] = "Base.Tshirt_Profession_RangerBrown",
				["Tshirt_Profession_RangerGreen"] = "Base.Tshirt_Profession_RangerGreen",
				["Tshirt_Profession_VeterenGreen"] = "Base.Tshirt_Profession_VeterenGreen",
				["Tshirt_Profession_VeterenRed"] = "Base.Tshirt_Profession_VeterenRed",
				["Tshirt_Ranger"] = "Base.Tshirt_Ranger",
				["Tshirt_Rock"] = "Base.Tshirt_Rock",
				["Tshirt_Scrubs"] = "Base.Tshirt_Scrubs",
				["Tshirt_SpiffoDECAL"] = "Base.Tshirt_SpiffoDECAL",
				["Tshirt_Sport"] = "Base.Tshirt_Sport",
				["Tshirt_SportDECAL"] = "Base.Tshirt_SportDECAL",
				["Tshirt_ThunderGas"] = "Base.Tshirt_ThunderGas",
				["Tshirt_ValleyStation"] = "Base.Tshirt_ValleyStation",
				["Tshirt_WhiteLongSleeve"] = "Base.Tshirt_WhiteLongSleeve",
				["Tshirt_WhiteLongSleeveTINT"] = "Base.Tshirt_WhiteLongSleeveTINT",
				["Tshirt_WhiteTINT"] = "Base.Tshirt_WhiteTINT",
				["Underpants_AnimalPrint"] = "Base.Underpants_AnimalPrint",
				["Underpants_Black"] = "Base.Underpants_Black",
				["Underpants_RedSpots"] = "Base.Underpants_RedSpots",
				["Underpants_White"] = "Base.Underpants_White",
				["Vest_BulletArmy"] = "Base.Vest_BulletArmy",
				["Vest_BulletCivilian"] = "Base.Vest_BulletCivilian",
				["Vest_BulletPolice"] = "Base.Vest_BulletPolice",
				["Vest_DefaultTEXTURE"] = "Base.Vest_DefaultTEXTURE",
				["Vest_DefaultTEXTURE_TINT"] = "Base.Vest_DefaultTEXTURE_TINT",
				["Vest_Foreman"] = "Base.Vest_Foreman",
				["Vest_HighViz"] = "Base.Vest_HighViz",
				["Vest_Hunting_Camo"] = "Base.Vest_Hunting_Camo",
				["Vest_Hunting_CamoGreen"] = "Base.Vest_Hunting_CamoGreen",
				["Vest_Hunting_Grey"] = "Base.Vest_Hunting_Grey",
				["Vest_Hunting_Orange"] = "Base.Vest_Hunting_Orange",
				["Vest_Waistcoat"] = "Base.Vest_Waistcoat",
				["Vest_WaistcoatTINT"] = "Base.Vest_WaistcoatTINT",
				["Vest_Waistcoat_GigaMart"] = "Base.Vest_Waistcoat_GigaMart",
				["WeddingJacket"] = "Base.WeddingJacket",
			},
		},
		rare = {
			chance = 1,
			xp = 5,
			items = {
				["AmmoStrap_Bullets"] = "Base.AmmoStrap_Bullets",
				["AmmoStrap_Shells"] = "Base.AmmoStrap_Shells",
				["Bag_ALICEpack"] = "Base.Bag_ALICEpack",
				["Bag_ALICEpack_Army"] = "Base.Bag_ALICEpack_Army",
				["BellyButton_DangleGold"] = "Base.BellyButton_DangleGold",
				["BellyButton_DangleGoldRuby"] = "Base.BellyButton_DangleGoldRuby",
				["BellyButton_DangleSilver"] = "Base.BellyButton_DangleSilver",
				["BellyButton_DangleSilverDiamond"] = "Base.BellyButton_DangleSilverDiamond",
				["BellyButton_RingGold"] = "Base.BellyButton_RingGold",
				["BellyButton_RingGoldDiamond"] = "Base.BellyButton_RingGoldDiamond",
				["BellyButton_RingGoldRuby"] = "Base.BellyButton_RingGoldRuby",
				["BellyButton_RingSilver"] = "Base.BellyButton_RingSilver",
				["BellyButton_RingSilverAmethyst"] = "Base.BellyButton_RingSilverAmethyst",
				["BellyButton_RingSilverDiamond"] = "Base.BellyButton_RingSilverDiamond",
				["BellyButton_RingSilverRuby"] = "Base.BellyButton_RingSilverRuby",
				["BellyButton_StudGold"] = "Base.BellyButton_StudGold",
				["BellyButton_StudGoldDiamond"] = "Base.BellyButton_StudGoldDiamond",
				["BellyButton_StudSilver"] = "Base.BellyButton_StudSilver",
				["BellyButton_StudSilverDiamond"] = "Base.BellyButton_StudSilverDiamond",
				["Belt2"] = "Base.Belt2",
				["Bracelet_BangleLeftGold"] = "Base.Bracelet_BangleLeftGold",
				["Bracelet_BangleLeftSilver"] = "Base.Bracelet_BangleLeftSilver",
				["Bracelet_BangleRightGold"] = "Base.Bracelet_BangleRightGold",
				["Bracelet_BangleRightSilver"] = "Base.Bracelet_BangleRightSilver",
				["Bracelet_ChainLeftGold"] = "Base.Bracelet_ChainLeftGold",
				["Bracelet_ChainLeftSilver"] = "Base.Bracelet_ChainLeftSilver",
				["Bracelet_ChainRightGold"] = "Base.Bracelet_ChainRightGold",
				["Bracelet_ChainRightSilver"] = "Base.Bracelet_ChainRightSilver",
				["Bracelet_LeftFriendshipTINT"] = "Base.Bracelet_LeftFriendshipTINT",
				["Bracelet_RightFriendshipTINT"] = "Base.Bracelet_RightFriendshipTINT",
				["BunnySuitBlack"] = "Base.BunnySuitBlack",
				["BunnySuitPink"] = "Base.BunnySuitPink",
				["BunnyTail"] = "Base.BunnyTail",
				["Earring_Dangly_Diamond"] = "Base.Earring_Dangly_Diamond",
				["Earring_Dangly_Emerald"] = "Base.Earring_Dangly_Emerald",
				["Earring_Dangly_Pearl"] = "Base.Earring_Dangly_Pearl",
				["Earring_Dangly_Ruby"] = "Base.Earring_Dangly_Ruby",
				["Earring_Dangly_Sapphire"] = "Base.Earring_Dangly_Sapphire",
				["Earring_LoopLrg_Gold"] = "Base.Earring_LoopLrg_Gold",
				["Earring_LoopLrg_Silver"] = "Base.Earring_LoopLrg_Silver",
				["Earring_LoopMed_Gold"] = "Base.Earring_LoopMed_Gold",
				["Earring_LoopMed_Silver"] = "Base.Earring_LoopMed_Silver",
				["Earring_LoopSmall_Gold_Both"] = "Base.Earring_LoopSmall_Gold_Both",
				["Earring_LoopSmall_Gold_Top"] = "Base.Earring_LoopSmall_Gold_Top",
				["Earring_LoopSmall_Silver_Both"] = "Base.Earring_LoopSmall_Silver_Both",
				["Earring_LoopSmall_Silver_Top"] = "Base.Earring_LoopSmall_Silver_Top",
				["Earring_Pearl"] = "Base.Earring_Pearl",
				["Earring_Stone_Emerald"] = "Base.Earring_Stone_Emerald",
				["Earring_Stone_Ruby"] = "Base.Earring_Stone_Ruby",
				["Earring_Stone_Sapphire"] = "Base.Earring_Stone_Sapphire",
				["Earring_Stud_Gold"] = "Base.Earring_Stud_Gold",
				["Earring_Stud_Silver"] = "Base.Earring_Stud_Silver",
				["HolsterDouble"] = "Base.HolsterDouble",
				["HolsterSimple"] = "Base.HolsterSimple",
				["NecklaceLong_Amber"] = "Base.NecklaceLong_Amber",
				["NecklaceLong_Gold"] = "Base.NecklaceLong_Gold",
				["NecklaceLong_GoldDiamond"] = "Base.NecklaceLong_GoldDiamond",
				["NecklaceLong_Silver"] = "Base.NecklaceLong_Silver",
				["NecklaceLong_SilverDiamond"] = "Base.NecklaceLong_SilverDiamond",
				["NecklaceLong_SilverEmerald"] = "Base.NecklaceLong_SilverEmerald",
				["NecklaceLong_SilverSapphire"] = "Base.NecklaceLong_SilverSapphire",
				["Necklace_Choker"] = "Base.Necklace_Choker",
				["Necklace_Choker_Amber"] = "Base.Necklace_Choker_Amber",
				["Necklace_Choker_Diamond"] = "Base.Necklace_Choker_Diamond",
				["Necklace_Choker_Sapphire"] = "Base.Necklace_Choker_Sapphire",
				["Necklace_Crucifix"] = "Base.Necklace_Crucifix",
				["Necklace_DogTag"] = "Base.Necklace_DogTag",
				["Necklace_Gold"] = "Base.Necklace_Gold",
				["Necklace_GoldDiamond"] = "Base.Necklace_GoldDiamond",
				["Necklace_GoldRuby"] = "Base.Necklace_GoldRuby",
				["Necklace_Pearl"] = "Base.Necklace_Pearl",
				["Necklace_Silver"] = "Base.Necklace_Silver",
				["Necklace_SilverCrucifix"] = "Base.Necklace_SilverCrucifix",
				["Necklace_SilverDiamond"] = "Base.Necklace_SilverDiamond",
				["Necklace_SilverSapphire"] = "Base.Necklace_SilverSapphire",
				["Necklace_YingYang"] = "Base.Necklace_YingYang",
				["NoseRing_Gold"] = "Base.NoseRing_Gold",
				["NoseRing_Silver"] = "Base.NoseRing_Silver",
				["NoseStud_Gold"] = "Base.NoseStud_Gold",
				["NoseStud_Silver"] = "Base.NoseStud_Silver",
				["Ring_Left_MiddleFinger_Gold"] = "Base.Ring_Left_MiddleFinger_Gold",
				["Ring_Left_MiddleFinger_GoldDiamond"] = "Base.Ring_Left_MiddleFinger_GoldDiamond",
				["Ring_Left_MiddleFinger_GoldRuby"] = "Base.Ring_Left_MiddleFinger_GoldRuby",
				["Ring_Left_MiddleFinger_Silver"] = "Base.Ring_Left_MiddleFinger_Silver",
				["Ring_Left_MiddleFinger_SilverDiamond"] = "Base.Ring_Left_MiddleFinger_SilverDiamond",
				["Ring_Left_RingFinger_Gold"] = "Base.Ring_Left_RingFinger_Gold",
				["Ring_Left_RingFinger_GoldDiamond"] = "Base.Ring_Left_RingFinger_GoldDiamond",
				["Ring_Left_RingFinger_GoldRuby"] = "Base.Ring_Left_RingFinger_GoldRuby",
				["Ring_Left_RingFinger_Silver"] = "Base.Ring_Left_RingFinger_Silver",
				["Ring_Left_RingFinger_SilverDiamond"] = "Base.Ring_Left_RingFinger_SilverDiamond",
				["Ring_Right_MiddleFinger_Gold"] = "Base.Ring_Right_MiddleFinger_Gold",
				["Ring_Right_MiddleFinger_GoldDiamond"] = "Base.Ring_Right_MiddleFinger_GoldDiamond",
				["Ring_Right_MiddleFinger_GoldRuby"] = "Base.Ring_Right_MiddleFinger_GoldRuby",
				["Ring_Right_MiddleFinger_Silver"] = "Base.Ring_Right_MiddleFinger_Silver",
				["Ring_Right_MiddleFinger_SilverDiamond"] = "Base.Ring_Right_MiddleFinger_SilverDiamond",
				["Ring_Right_RingFinger_Gold"] = "Base.Ring_Right_RingFinger_Gold",
				["Ring_Right_RingFinger_GoldDiamond"] = "Base.Ring_Right_RingFinger_GoldDiamond",
				["Ring_Right_RingFinger_GoldRuby"] = "Base.Ring_Right_RingFinger_GoldRuby",
				["Ring_Right_RingFinger_Silver"] = "Base.Ring_Right_RingFinger_Silver",
				["Ring_Right_RingFinger_SilverDiamond"] = "Base.Ring_Right_RingFinger_SilverDiamond",
				["WeddingDress"] = "Base.WeddingDress",
				["WristWatch_Left_ClassicBlack"] = "Base.WristWatch_Left_ClassicBlack",
				["WristWatch_Left_ClassicBrown"] = "Base.WristWatch_Left_ClassicBrown",
				["WristWatch_Left_ClassicGold"] = "Base.WristWatch_Left_ClassicGold",
				["WristWatch_Left_ClassicMilitary"] = "Base.WristWatch_Left_ClassicMilitary",
				["WristWatch_Left_DigitalBlack"] = "Base.WristWatch_Left_DigitalBlack",
				["WristWatch_Left_DigitalDress"] = "Base.WristWatch_Left_DigitalDress",
				["WristWatch_Left_DigitalRed"] = "Base.WristWatch_Left_DigitalRed",
				["WristWatch_Right_ClassicBlack"] = "Base.WristWatch_Right_ClassicBlack",
				["WristWatch_Right_ClassicBrown"] = "Base.WristWatch_Right_ClassicBrown",
				["WristWatch_Right_ClassicGold"] = "Base.WristWatch_Right_ClassicGold",
				["WristWatch_Right_ClassicMilitary"] = "Base.WristWatch_Right_ClassicMilitary",
				["WristWatch_Right_DigitalBlack"] = "Base.WristWatch_Right_DigitalBlack",
				["WristWatch_Right_DigitalDress"] = "Base.WristWatch_Right_DigitalDress",
				["WristWatch_Right_DigitalRed"] = "Base.WristWatch_Right_DigitalRed",
			},
		},
	};
	for _, spawnTable in pairs(clothing) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				skill = 0,
				xp = spawnTable.xp,
				categories = { "Clothing" },
				zones = {
					Vegitation  = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				spawnFuncs = { doClothingItemSpawn },
				forceOutside = false,
				canBeAboveFloor = true,
				itemSizeModifier = 0.5,
				isItemOverrideSize = true,
			};
		end;
	end;
end

generateClothingDefs();
-------------------------------------------------
-------------------------------------------------
local function generateMedicalDefs()
	local medical = {
		uncommon = {
			chance = 50,
			xp = 5,
			items = {
				["BandageDirty"]            = "Base.BandageDirty",
				["Bandaid"]                 = "Base.Bandaid",
				["CottonBalls"]             = "Base.CottonBalls",
				["RippedSheets"]            = "Base.RippedSheets",
				["RippedSheetsDirty"]       = "Base.RippedSheetsDirty",
				["Thread"]                  = "Base.Thread",
			},
		},
		rare = {
			chance = 5,
			xp = 10,
			items = {
				["AlcoholBandage"]          = "Base.AlcoholBandage",
				["AlcoholWipes"]            = "Base.AlcoholWipes",
				["Pills"]                   = "Base.Pills",
				["PillsAntiDep"]            = "Base.PillsAntiDep",
				["PillsBeta"]               = "Base.PillsBeta",
				["PillsSleepingTablets"]    = "Base.PillsSleepingTablets",
				["PillsVitamins"]           = "Base.PillsVitamins",
				["SutureNeedle"]            = "Base.SutureNeedle",
			},
		},
		legendary = {
			chance = 1,
			xp = 25,
			items = {
				["AlcoholedCottonBalls"]    = "Base.AlcoholedCottonBalls",
				["Antibiotics"]             = "Base.Antibiotics",
				["Disinfectant"]            = "Base.Disinfectant",
				["Splint"]                  = "Base.Splint",
				["SutureNeedleHolder"]      = "Base.SutureNeedleHolder",
				["Tweezers"]                = "Base.Tweezers",
			},
		},
	};
	for _, spawnTable in pairs(medical) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				skill = 0,
				xp = spawnTable.xp,
				categories = { "Medical" },
				zones = {
					Vegitation  = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				spawnFuncs = { doGenericItemSpawn },
				forceOutside = false,
				canBeAboveFloor = true,
				itemSizeModifier = 0.5,
				isItemOverrideSize = true,
			};
		end;
	end;
end

generateMedicalDefs();
-------------------------------------------------
-------------------------------------------------
local function generateJunkDefs()
	local junkWeapons = {
		normal = {
			chance = 50,
			xp = 1,
			items = {
				BluePen                     = "Base.BluePen",
				Pen                         = "Base.Pen",
				Pencil                      = "Base.Pencil",
				RedPen                      = "Base.RedPen",
				SmashedBottle               = "Base.SmashedBottle",
				BreadKnife                  = "Base.BreadKnife",
				ButterKnife                 = "Base.ButterKnife",
				Fork                        = "Base.Fork",
				Scissors                    = "Base.Scissors",
				Spoon                       = "Base.Spoon",
				KitchenKnife                = "Base.KitchenKnife",
			},
		},
		uncommon = {
			chance = 25,
			xp = 2,
			items = {
				BallPeenHammer              = "Base.BallPeenHammer",
				ChairLeg                    = "Base.ChairLeg",
				CraftedFishingRod           = "Base.CraftedFishingRod",
				Drumstick                   = "Base.Drumstick",
				IcePick                     = "Base.IcePick",
				LeadPipe                    = "Base.LeadPipe",
				Pan                         = "Base.Pan",
				Plank                       = "Base.Plank",
				PlankNail                   = "Base.PlankNail",
				Plunger                     = "Base.Plunger",
				Poolcue                     = "Base.Poolcue",
				RollingPin                  = "Base.RollingPin",
				Saucepan                    = "Base.Saucepan",
				Rake                        = "Base.Rake",
				Shovel                      = "Base.Shovel",
				Shovel2                     = "Base.Shovel2",
				SnowShovel                  = "Base.SnowShovel",
			},
		},
		rare = {
			chance = 15,
			xp = 5,
			items = {
				BadmintonRacket             = "Base.BadmintonRacket",
				Broom                       = "Base.Broom",
				FlintKnife                  = "Base.FlintKnife",
				ClosedUmbrellaBlack         = "Base.ClosedUmbrellaBlack",
				ClosedUmbrellaBlue          = "Base.ClosedUmbrellaBlue",
				ClosedUmbrellaRed           = "Base.ClosedUmbrellaRed",
				ClosedUmbrellaWhite         = "Base.ClosedUmbrellaWhite",
				GardenFork                  = "Base.GardenFork",
				GardenHoe                   = "Base.GardenHoe",
				Golfclub                    = "Base.Golfclub",
				GridlePan                   = "Base.GridlePan",
				Hammer                      = "Base.Hammer",
				HuntingKnife                = "Base.HuntingKnife",
				LetterOpener                = "Base.LetterOpener",
				Machete                     = "Base.Machete",
				MeatCleaver                 = "Base.MeatCleaver",
				MetalBar                    = "Base.MetalBar",
				MetalPipe                   = "Base.MetalPipe",
				Nightstick                  = "Base.Nightstick",
				PickAxe                     = "Base.PickAxe",
				PickAxeHandle               = "Base.PickAxeHandle",
				PickAxeHandleSpiked         = "Base.PickAxeHandleSpiked",
				PipeWrench                  = "Base.PipeWrench",
				Screwdriver                 = "Base.Screwdriver",
				Stake                       = "Base.Stake",
				TableLeg                    = "Base.TableLeg",
			},
		},
		epic = {
			chance = 5,
			xp = 10,
			items = {
				BaseballBat                 = "Base.BaseballBat",
				Banjo                       = "Base.Banjo",
				ClubHammer                  = "Base.ClubHammer",
				Crowbar                     = "Base.Crowbar",
				FishingRod                  = "Base.FishingRod",
				HandAxe                     = "Base.HandAxe",
				HandFork                    = "Base.HandFork",
				HandScythe                  = "Base.HandScythe",
				HockeyStick                 = "Base.HockeyStick",
				IceHockeyStick              = "Base.IceHockeyStick",
				TennisRacket                = "Base.TennisRacket",
			},
		},
		legendary = {
			chance = 1,
			xp = 25,
			items = {
				AssaultRifle                = "Base.AssaultRifle",
				AssaultRifle2               = "Base.AssaultRifle2",
				Axe                         = "Base.Axe",
				DoubleBarrelShotgun         = "Base.DoubleBarrelShotgun",
				DoubleBarrelShotgunSawnoff  = "Base.DoubleBarrelShotgunSawnoff",
				HuntingRifle                = "Base.HuntingRifle",
				Katana                      = "Base.Katana",
				Pistol                      = "Base.Pistol",
				Pistol2                     = "Base.Pistol2",
				Pistol3                     = "Base.Pistol3",
				Revolver                    = "Base.Revolver",
				Revolver_Long               = "Base.Revolver_Long",
				Revolver_Short              = "Base.Revolver_Short",
				Shotgun                     = "Base.Shotgun",
				ShotgunSawnoff              = "Base.ShotgunSawnoff",
				VarmintRifle                = "Base.VarmintRifle",
				WoodAxe                     = "Base.WoodAxe",
			},
		},
	};
	for _, spawnTable in pairs(junkWeapons) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				skill = 0,
				xp = spawnTable.xp,
				categories = { "JunkWeapons" },
				zones = {
					DeepForest  = spawnTable.chance,
					Forest      = spawnTable.chance,
					Vegitation  = spawnTable.chance,
					FarmLand    = spawnTable.chance,
					Farm        = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				spawnFuncs = { doJunkWeaponSpawn },
				forceOutside = false,
				canBeAboveFloor = true,
				itemSizeModifier = 0.5,
				isItemOverrideSize = true,
			};
		end;
	end;
	local junkItems = {
		normal = {
			chance = 100,
			xp = 1,
			items = {
				Nails                   = "Base.Nails",
				Screws                  = "Base.Screws",
				ScrapMetal              = "Base.ScrapMetal",
				UnusableWood            = "Base.UnusableWood",
				UnusableMetal           = "Base.UnusableMetal",
				Crayons                 = "Base.Crayons",
				Notebook                = "Base.Notebook",
				Journal                 = "Base.Journal",
				Magazine                = "Base.Magazine",
			},
		},
		common = {
			chance = 50,
			xp = 2,
			items = {
				Book                    = "Base.Book",
				ComicBook               = "Base.ComicBook",
				Paperclip               = "Base.Paperclip",
				PaperclipBox            = "Base.PaperclipBox",
				ScrewsBox               = "Base.ScrewsBox",
				SheetMetal              = "Base.SheetMetal",
				Bowl                    = "Base.Bowl",
				Pot                     = "Base.Pot",
				Hinge                   = "Base.Hinge",
			},
		},
		uncommon = {
			chance = 33,
			xp = 5,
			items = {
				Saw                     = "Base.Saw",
				Tote                    = "Base.Tote",
				EmptySandbag            = "Base.EmptySandbag",
				Purse                   = "Base.Purse",
				Suitcase                = "Base.Suitcase",
				Handbag                 = "Base.Handbag",
				Toolbox                 = "Base.Toolbox",
				FirstAidKit             = "Base.FirstAidKit",
				Lunchbox                = "Base.Lunchbox",
				Lunchbox2               = "Base.Lunchbox2",
				Bag_Satchel             = "Base.Bag_Satchel",
				Cooler                  = "Base.Cooler",
				Cigarettes              = "Base.Cigarettes",
				Lighter                 = "Base.Lighter",
				Matches                 = "Base.Matches",
				BlowTorch               = "Base.BlowTorch",
				Eraser                  = "Base.Eraser",
				FishingNet              = "Base.FishingNet",
				FishingTackle           = "Base.FishingTackle",
				FishingTackle2          = "Base.FishingTackle2",
			},
		},
		unlikely = {
			chance = 20,
			xp = 10,
			items = {
				Bag_GolfBag             = "Base.Bag_GolfBag",
				Bag_Schoolbag           = "Base.Bag_Schoolbag",
				Bag_BowlingBallBag      = "Base.Bag_BowlingBallBag",
				Flightcase              = "Base.Flightcase",
				Guitarcase              = "Base.Guitarcase",
				CookingMag1             = "Base.CookingMag1",
				CookingMag2             = "Base.CookingMag2",
				ElectronicsMag1         = "Base.ElectronicsMag1",
				ElectronicsMag2         = "Base.ElectronicsMag2",
				ElectronicsMag3         = "Base.ElectronicsMag3",
				ElectronicsMag4         = "Base.ElectronicsMag4",
				ElectronicsMag5         = "Base.ElectronicsMag5",
				EngineerMagazine1       = "Base.EngineerMagazine1",
				EngineerMagazine2       = "Base.EngineerMagazine2",
				FarmingMag1             = "Base.FarmingMag1",
				FishingLine             = "Base.FishingLine",
				FishingMag1             = "Base.FishingMag1",
				FishingMag2             = "Base.FishingMag2",
				HuntingMag1             = "Base.HuntingMag1",
				HuntingMag2             = "Base.HuntingMag2",
				HuntingMag3             = "Base.HuntingMag3",
				MarchRidgeMap           = "Base.MarchRidgeMap",
				MetalworkMag1           = "Base.MetalworkMag1",
				MetalworkMag2           = "Base.MetalworkMag2",
				MetalworkMag3           = "Base.MetalworkMag3",
				MetalworkMag4           = "Base.MetalworkMag4",
				MuldraughMap            = "Base.MuldraughMap",
				RiversideMap            = "Base.RiversideMap",
				RosewoodMap             = "Base.RosewoodMap",
				SewingKit               = "Base.SewingKit",
				UmbrellaBlack           = "Base.UmbrellaBlack",
				UmbrellaBlue            = "Base.UmbrellaBlue",
				UmbrellaRed             = "Base.UmbrellaRed",
				UmbrellaWhite           = "Base.UmbrellaWhite",
				WestpointMap            = "Base.WestpointMap",
			},
		},
		rare = {
			chance = 15,
			xp = 20,
			items = {
				PetrolCan               = "Base.PetrolCan",
				PropaneTank             = "Base.PropaneTank",
				Charcoal                = "Base.Charcoal",
			},
		},
		legendary = {
			chance = 1,
			xp = 50,
			items = {
				PipeBomb                = "Base.PipeBomb",
				AmmoStraps              = "Base.AmmoStraps",
				-- Bayonnet                = "Base.Bayonnet",
				ChokeTubeFull           = "Base.ChokeTubeFull",
				ChokeTubeImproved       = "Base.ChokeTubeImproved",
				FiberglassStock         = "Base.FiberglassStock",
				-- GunLight                = "Base.GunLight",
				IronSight               = "Base.IronSight",
				Sling                   = "Base.Sling",
				x2Scope                 = "Base.x2Scope",
				x4Scope                 = "Base.x4Scope",
				x8Scope                 = "Base.x8Scope",
				HerbalistMag            = "Base.HerbalistMag",
			},
		},
	};
	for _, spawnTable in pairs(junkItems) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				skill = 0,
				xp = spawnTable.xp,
				categories = { "Junk" },
				zones = {
					Forest      = spawnTable.chance,
					DeepForest  = spawnTable.chance,
					Vegitation  = spawnTable.chance,
					FarmLand    = spawnTable.chance,
					Farm        = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				spawnFuncs = { doGenericItemSpawn },
				forceOutside = false,
				canBeAboveFloor = true,
				itemSizeModifier = 0.5,
				isItemOverrideSize = true,
			};
		end;
	end;
	--
	local junkFood = {
		BeerBottle         = "Base.BeerBottle",
		BeerCan            = "Base.BeerCan",
		Bleach             = "Base.Bleach",
		CandyPackage       = "Base.CandyPackage",
		Candycane          = "Base.Candycane",
		CannedBellPepper   = "Base.CannedBellPepper",
		CannedBolognese    = "Base.CannedBolognese",
		CannedBroccoli     = "Base.CannedBroccoli",
		CannedCabbage      = "Base.CannedCabbage",
		CannedCarrots      = "Base.CannedCarrots",
		CannedCarrots2     = "Base.CannedCarrots2",
		CannedChili        = "Base.CannedChili",
		CannedCorn         = "Base.CannedCorn",
		CannedCornedBeef   = "Base.CannedCornedBeef",
		CannedEggplant     = "Base.CannedEggplant",
		CannedLeek         = "Base.CannedLeek",
		CannedMushroomSoup = "Base.CannedMushroomSoup",
		CannedPeas         = "Base.CannedPeas",
		CannedPotato       = "Base.CannedPotato",
		CannedPotato2      = "Base.CannedPotato2",
		CannedRedRadish    = "Base.CannedRedRadish",
		CannedSardines     = "Base.CannedSardines",
		CannedTomato       = "Base.CannedTomato",
		CannedTomato2      = "Base.CannedTomato2",
		Cereal             = "Base.Cereal",
		Chocolate          = "Base.Chocolate",
		Coffee2            = "Base.Coffee2",
		Crisps             = "Base.Crisps",
		Crisps2            = "Base.Crisps2",
		Crisps3            = "Base.Crisps3",
		Crisps4            = "Base.Crisps4",
		Cupcake            = "Base.Cupcake",
		Dogfood            = "Base.Dogfood",
		GranolaBar         = "Base.GranolaBar",
		Gum                = "Base.Gum",
		Honey              = "Base.Honey",
		JamFruit           = "Base.JamFruit",
		JamMarmalade       = "Base.JamMarmalade",
		JuiceBox           = "Base.JuiceBox",
		Lollipop           = "Base.Lollipop",
		MintCandy          = "Base.MintCandy",
		Peppermint         = "Base.Peppermint",
		PeanutButter       = "Base.PeanutButter",
		Pop                = "Base.Pop",
		Pop2               = "Base.Pop2",
		Pop3               = "Base.Pop3",
		PopBottle          = "Base.PopBottle",
		Popcorn            = "Base.Popcorn",
		RiceVinegar        = "Base.RiceVinegar",
		Soysauce           = "Base.Soysauce",
		SugarBrown         = "Base.SugarBrown",
		Teabag2            = "Base.Teabag2",
		TinnedSoup         = "Base.TinnedSoup",
		TunaTin            = "Base.TunaTin",
		WaterBottleFull    = "Base.WaterBottleFull",
		WhiskeyFull        = "Base.WhiskeyFull",
		WhiskeyWaterFull   = "Base.WhiskeyWaterFull",
		Wine               = "Base.Wine",
		Wine2              = "Base.Wine2",
	};
	for itemName, itemFullName in pairs(junkFood) do
		forageDefs[itemName] = {
			type = itemFullName,
			xp = 10,
			categories = { "JunkFood" },
			zones = {
				TrailerPark = 1,
				TownZone    = 1,
				Nav         = 1,
			},
			forceOutside = false,
			canBeAboveFloor = true,
		};
	end;
	local trashItems = {
		normal = {
			chance = 100,
			xp = 1,
			items = {
				BeerCanEmpty        = "Base.BeerCanEmpty",
				BeerEmpty           = "Base.BeerEmpty",
				Newspaper           = "Base.Newspaper",
				Pop2Empty           = "Base.Pop2Empty",
				Pop3Empty           = "Base.Pop3Empty",
				PopEmpty            = "Base.PopEmpty",
				SheetPaper2         = "Base.SheetPaper2",
				SmashedBottle       = "Base.SmashedBottle",
				TinCanEmpty         = "Base.TinCanEmpty",
				WaterBottleEmpty    = "Base.WaterBottleEmpty",
				Garbagebag          = "Base.Garbagebag",
				Plasticbag          = "Base.Plasticbag",
			},
		},
		uncommon = {
			chance = 30,
			xp = 3,
			items = {
				Aluminum           = "Base.Aluminum",
				Baseball           = "Base.Baseball",
				Basketball         = "Base.Basketball",
				Bell               = "Base.Bell",
				BleachEmpty        = "Base.BleachEmpty",
				Bricktoys          = "Base.Bricktoys",
				BrokenFishingNet   = "Base.BrokenFishingNet",
				CarvingFork        = "Base.CarvingFork",
				CatToy             = "Base.CatToy",
				Chopsticks         = "Base.Chopsticks",
				Coldpack           = "Base.Coldpack",
				Cologne            = "Base.Cologne",
				Comb               = "Base.Comb",
				Corkscrew          = "Base.Corkscrew",
				DenimStripsDirty   = "Base.DenimStripsDirty",
				DuctTape           = "Base.DuctTape",
				FountainCup        = "Base.FountainCup",
				GlassTumbler       = "Base.GlassTumbler",
				GlassWine          = "Base.GlassWine",
				Glue               = "Base.Glue",
				GrillBrush         = "Base.GrillBrush",
				Hairgel            = "Base.Hairgel",
				LeatherStripsDirty = "Base.LeatherStripsDirty",
				Money              = "Base.Money",
				MuffinTray         = "Base.MuffinTray",
				OvenMitt           = "Base.OvenMitt",
				PaintbucketEmpty   = "Base.PaintbucketEmpty",
				PlasticCup         = "Base.PlasticCup",
				PlasticTray        = "Base.PlasticTray",
				Plate              = "Base.Plate",
				PlateBlue          = "Base.PlateBlue",
				PlateFancy         = "Base.PlateFancy",
				PlateOrange        = "Base.PlateOrange",
				PopBottleEmpty     = "Base.PopBottleEmpty",
				Scotchtape         = "Base.Scotchtape",
				Spatula            = "Base.Spatula",
				Straw              = "Base.Straw",
				Teacup             = "Base.Teacup",
				KitchenTongs	   = "Base.KitchenTongs",
				WeldingRods        = "Base.WeldingRods",
				WhiskeyEmpty       = "Base.WhiskeyEmpty",
				WineEmpty          = "Base.WineEmpty",
				WineEmpty2         = "Base.WineEmpty2",
				WoodGlue           = "Base.Woodglue",
			},
		},
		rare = {
			chance = 15,
			xp = 5,
			items = {
				CreditCard       = "Base.CreditCard",
				Cube             = "Base.Cube",
				Dart             = "Base.Dart",
				Dice             = "Base.Dice",
				DogChew          = "Base.DogChew",
				Doll             = "Base.Doll",
				FertilizerEmpty  = "Base.FertilizerEmpty",
				Football         = "Base.Football",
				Football2        = "Base.Football2",
				GolfBall         = "Base.GolfBall",
				HandTorch        = "Base.HandTorch",
				KatePic          = "Base.KatePic",
				KnittingNeedles  = "Base.KnittingNeedles",
				Leash            = "Base.Leash",
				Lighter          = "Base.Lighter",
				Locket           = "Base.Locket",
				Matches          = "Base.Matches",
				Mirror           = "Base.Mirror",
				Perfume          = "Base.Perfume",
				Pipe             = "Base.Pipe",
				RubberBand       = "Base.RubberBand",
				Rubberducky      = "Base.Rubberducky",
				SoccerBall       = "Base.SoccerBall",
				Sparklers        = "Base.Sparklers",
				TennisBall       = "Base.TennisBall",
				ToiletPaper      = "Base.ToiletPaper",
				Toothbrush       = "Base.Toothbrush",
				Torch            = "Base.Torch",
				ToyBear          = "Base.ToyBear",
				ToyCar           = "Base.ToyCar",
				Tweezers         = "Base.Tweezers",
				Yoyo             = "Base.Yoyo",
				ElectronicsScrap = "Base.ElectronicsScrap",
				Hairspray        = "Base.Hairspray",
				GunPowder        = "Base.GunPowder",
				CameraFilm       = "Base.CameraFilm",
				CameraExpensive  = "Base.CameraExpensive",
				CameraDisposable = "Base.CameraDisposable",
				Camera           = "Base.Camera",
				LeatherStrips    = "Base.LeatherStrips",
				DenimStrips      = "Base.DenimStrips",
			},
		},
		epic = {
			chance = 5,
			xp = 10,
			items = {
				BucketEmpty		= "Base.BucketEmpty",
				Fertilizer		= "Base.Fertilizer",
				GardenSaw		= "Base.GardenSaw",
				Kettle			= "Base.Kettle",
				MortarPestle	= "Base.MortarPestle",
				NailsBox		= "Base.NailsBox",
				Needle			= "Base.Needle",
				RoastingPan		= "Base.RoastingPan",
				Rope			= "Base.Rope",
				Wire			= "Base.Wire",
				MugWhite		= "Base.MugWhite",
				MugRed			= "Base.MugRed",
				Mugl			= "Base.Mugl",
				Spiffo			= "Base.Spiffo",
				BorisBadger		= "Base.BorisBadger",
				JacquesBeaver	= "Base.JacquesBeaver",
				FreddyFox		= "Base.FreddyFox",
				PancakeHedgehog	= "Base.PancakeHedgehog",
				MoleyMole		= "Base.MoleyMole",
				FluffyfootBunny	= "Base.FluffyfootBunny",
				FurbertSquirrel	= "Base.FurbertSquirrel",
			},
		},
		legendary = {
			chance = 1,
			xp = 25,
			items = {
				EmptyJar       = "Base.EmptyJar",
				EmptyPetrolCan = "Base.EmptyPetrolCan",
				JarLid         = "Base.JarLid",
				MugSpiffo      = "Base.MugSpiffo",
				SpiffoBig      = "Base.SpiffoBig",
			},
		},
	};
	for rarity, spawnTable in pairs(trashItems) do
		for itemName, itemFullName in pairs(spawnTable.items) do
			forageDefs[itemName] = {
				type = itemFullName,
				xp = spawnTable.xp,
				categories = { "Trash" },
				zones = {
					Forest      = spawnTable.chance,
					DeepForest  = spawnTable.chance,
					Vegitation  = spawnTable.chance,
					FarmLand    = spawnTable.chance,
					Farm        = spawnTable.chance,
					TrailerPark = spawnTable.chance,
					TownZone    = spawnTable.chance,
					Nav         = spawnTable.chance,
				},
				spawnFuncs = { doGenericItemSpawn },
				forceOutside = false,
				canBeAboveFloor = true,
				itemSizeModifier = 0.5,
				isItemOverrideSize = true,
			};
		end;
	end;
end

generateJunkDefs();
