diff --git a/builtin/mainmenu/dlg_config_world.lua b/builtin/mainmenu/dlg_config_world.lua
index 3e5ba16eb..fcedadea8 100644
--- a/builtin/mainmenu/dlg_config_world.lua
+++ b/builtin/mainmenu/dlg_config_world.lua
@@ -49,7 +49,7 @@ local function get_formspec(data)
 		"button[3.25,7;2.5,0.5;btn_config_world_save;" .. fgettext("Save") .. "]" ..
 		"button[5.75,7;2.5,0.5;btn_config_world_cancel;" .. fgettext("Cancel") .. "]"
 
-	if mod and mod.name ~= "" and mod.typ ~= "game_mod" then
+	if mod and mod.name ~= "" and not mod.is_game_content then
 		if mod.is_modpack then
 			local rawlist = data.list:get_raw_list()
 
@@ -97,7 +97,7 @@ end
 local function enable_mod(this, toset)
 	local mod = this.data.list:get_list()[this.data.selected_mod]
 
-	if mod.typ == "game_mod" then
+	if mod.is_game_content then
 		-- game mods can't be enabled or disabled
 	elseif not mod.is_modpack then
 		if toset == nil then
@@ -162,7 +162,7 @@ local function handle_buttons(this, fields)
 		local i,mod
 		for i,mod in ipairs(rawlist) do
 			if not mod.is_modpack and
-					mod.typ ~= "game_mod" then
+					not mod.is_game_content then
 				if modname_valid(mod.name) then
 					worldfile:set("load_mod_"..mod.name, tostring(mod.enabled))
 				else
@@ -198,7 +198,8 @@ local function handle_buttons(this, fields)
 		local list = this.data.list:get_raw_list()
 
 		for i = 1, #list do
-			if list[i].typ ~= "game_mod" and not list[i].is_modpack then
+			if not list[i].is_game_content
+					and not list[i].is_modpack then
 				list[i].enabled = true
 			end
 		end
@@ -210,7 +211,8 @@ local function handle_buttons(this, fields)
 		local list = this.data.list:get_raw_list()
 
 		for i = 1, #list do
-			if list[i].typ ~= "game_mod" and not list[i].is_modpack then
+			if not list[i].is_game_content
+					and not list[i].is_modpack then
 				list[i].enabled = false
 			end
 		end
@@ -252,16 +254,16 @@ function create_configure_world_dlg(worldidx)
 						return true
 					end
 				end,
-				function(element,criteria)
+				function(element, criteria)
 					if criteria.hide_game and
-						element.typ == "game_mod" then
-							return false
+							element.is_game_content then
+						return false
 					end
 
 					if criteria.hide_modpackcontents and
-						element.modpack ~= nil then
-							return false
-						end
+							element.modpack ~= nil then
+						return false
+					end
 					return true
 				end, --filter
 				{ worldpath= dlg.data.worldspec.path,
diff --git a/builtin/mainmenu/modmgr.lua b/builtin/mainmenu/modmgr.lua
index 14d29272e..dee048982 100644
--- a/builtin/mainmenu/modmgr.lua
+++ b/builtin/mainmenu/modmgr.lua
@@ -252,7 +252,7 @@ function modmgr.render_modlist(render_list)
 					break
 				end
 			end
-		elseif v.typ == "game_mod" or v.typ == "game" then
+		elseif v.is_game_content then
 			color = mt_color_blue
 		elseif v.enabled then
 			color = mt_color_green
@@ -417,12 +417,14 @@ function modmgr.preparemodlist(data)
 		-- Add title
 		retval[#retval + 1] = {
 			typ = "game",
+			is_game_content = true,
 			name = fgettext("Subgame Mods")
 		}
 	end
 
 	for i=1,#game_mods,1 do
 		game_mods[i].typ = "game_mod"
+		game_mods[i].is_game_content = true
 		retval[#retval + 1] = game_mods[i]
 	end
 
diff --git a/src/client.cpp b/src/client.cpp
index 6ab4002a5..5f2d2d9d2 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -171,7 +171,7 @@ void Client::initMods()
 		if (!string_allowed(mod.name, MODNAME_ALLOWED_CHARS)) {
 			throw ModError("Error loading mod \"" + mod.name +
 				"\": Mod name does not follow naming conventions: "
-					"Only chararacters [a-z0-9_] are allowed.");
+					"Only characters [a-z0-9_] are allowed.");
 		}
 		std::string script_path = mod.path + DIR_DELIM + "init.lua";
 		infostream << "  [" << padStringRight(mod.name, 12) << "] [\""
diff --git a/src/server.cpp b/src/server.cpp
index 5400dd595..6889451d9 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -283,7 +283,7 @@ Server::Server(
 		if (!string_allowed(mod.name, MODNAME_ALLOWED_CHARS)) {
 			throw ModError("Error loading mod \"" + mod.name +
 				"\": Mod name does not follow naming conventions: "
-				"Only chararacters [a-z0-9_] are allowed.");
+				"Only characters [a-z0-9_] are allowed.");
 		}
 		std::string script_path = mod.path + DIR_DELIM + "init.lua";
 		infostream << "  [" << padStringRight(mod.name, 12) << "] [\""
diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp
index 4d2c87a4d..892c6c55b 100644
--- a/src/serverenvironment.cpp
+++ b/src/serverenvironment.cpp
@@ -141,7 +141,7 @@ void LBMManager::addLBMDef(LoadingBlockModifierDef *lbm_def)
 	if (!string_allowed(lbm_def->name, LBM_NAME_ALLOWED_CHARS)) {
 		throw ModError("Error adding LBM \"" + lbm_def->name +
 			"\": Does not follow naming conventions: "
-				"Only chararacters [a-z0-9_:] are allowed.");
+				"Only characters [a-z0-9_:] are allowed.");
 	}
 
 	m_lbm_defs[lbm_def->name] = lbm_def;