if (game:issingleplayer() or not Engine.InFrontend()) then
	return
end

local SystemLinkJoinMenu = LUI.mp_menus.SystemLinkJoinMenu

game:addlocalizedstring("PLATFORM_SYSTEM_LINK_TITLE", "SERVER LIST")
game:addlocalizedstring("MENU_NUMPLAYERS", "Players")
game:addlocalizedstring("MENU_PING", "Ping")

local offsets = {10, 400, 600, 900, 1075}

local columns = {"@MENU_HOST_NAME", "@MENU_MAP", "@MENU_TYPE1", "@MENU_NUMPLAYERS", "@MENU_PING"}

SystemLinkJoinMenu.AddServerButton = function(menu, controller, index)
	local serverInformation = nil
	local button = menu:AddButton("", SystemLinkJoinMenu.OnJoinGame)

	if index == nil then
		button:makeNotFocusable()
		serverInformation = function(i)
			return Engine.Localize(columns[i])
		end
	else
		button:makeFocusable()
		button.index = index
		serverInformation = function(i)
			return Lobby.GetServerData(controller, index, i - 1)
		end
	end

	for size = 1, #offsets do
		SystemLinkJoinMenu.MakeText(button, offsets[size], serverInformation(size))
	end

	return button
end

function menu_systemlink_join(f19_arg0, f19_arg1)
	local menu = LUI.MenuTemplate.new(f19_arg0, {
		menu_title = "@PLATFORM_SYSTEM_LINK_TITLE",
		menu_width = CoD.DesignGridHelper(28)
	})
	Lobby.BuildServerList(Engine.GetFirstActiveController())
	Lobby.RefreshServerList(Engine.GetFirstActiveController())

	SystemLinkJoinMenu.UpdateGameList(menu)
	menu:registerEventHandler("updateGameList", SystemLinkJoinMenu.UpdateGameList)
	menu:addElement(LUI.UITimer.new(250, "updateGameList"))

	menu:AddHelp({
		name = "add_button_helper_text",
		button_ref = "button_alt1",
		helper_text = Engine.Localize("@MENU_SB_TOOLTIP_BTN_REFRESH"),
		side = "right",
		clickable = true,
		priority = -1000
	}, function(f10_arg0, f10_arg1)
		SystemLinkJoinMenu.RefreshServers(f10_arg0, f10_arg1, menu)
	end)

	menu:AddHelp({
		name = "add_button_helper_text",
		button_ref = "button_action",
		helper_text = Engine.Localize("@MENU_JOIN_GAME1"),
		side = "right",
		clickable = false,
		priority = -1000
	})

	menu:AddBackButton()

	return menu
end

LUI.MenuBuilder.m_types_build["menu_systemlink_join"] = menu_systemlink_join