Skip to content

Return of Reckoning

Wiki

RoR Wiki

API:GetServerList

From RoR Wiki

UI Lua API · Pregame functions
Version: WAR 1.4.8

Returns the list of game servers that the login server sent.

servers = GetServerList()

Arguments

None.

Returns

servers
table – Array of server tables, indexed from 1.

Each server table has these fields:

Key Type Meaning
name wstring Server name.
id number Server id. Pass it to SelectServer.
status number –
population number –
maximum number –
language number Language id. The stock UI looks it up in the ServerLanguage string table.
orderPopulationDensity number Order population level. The stock UI combines it with orderPopulationQueue to judge realm imbalance.
destructionPopulationDensity number Destruction population level.
orderPopulationQueue number –
destructionPopulationQueue number –
online boolean true if the server is up.
region string Region key, such as "STR_REGION_NORTHAMERICA". The stock UI uses it as a key into StringTables.ServerLocation.
rulesetOpenRvR boolean –
rulesetRolePlaying boolean –
rulesetCore boolean –
localeDistance number The stock UI sorts by it and treats 0 as a local server.
sameLanguage boolean –
orderBonus number Order bonus value. The stock UI passes it to PregameSetServerRealmBonuses.
destructionBonus number Destruction bonus value.
redirect boolean –
trialServer boolean –
legacy boolean –
retired boolean true for a retired server. SelectServer refuses these.
orderChars boolean true if the account has at least one Order character on this server.
destructionChars boolean true if the account has at least one Destruction character on this server.
characterCount number Number of the account's characters on this server.

Details

  • A new table is built from the client's stored login data on every call.
  • The function returns nothing if the login data is not available.
  • The stock server select window refreshes its list on SystemData.Events.SERVER_LIST_RESPONSE.

Errors

None.

Example

From interfacecore/source/serverselectwindow.lua:

local tempList = GetServerList()
ServerSelectWindow.serverList = {}

for _, data in ipairs(tempList)
do
    -- show the server if it is not a legacy server and not a retired server
    -- or if it is not retired, and is a legacy server, and we are set to showLegacyServers
    -- or if the server is legacy or retired, but we have a character on it
    if( ( not data.legacy and not data.retired) or
        ( not data.retired and data.legacy and ServerSelectWindow.showLegacyServers ) or
        ( data.characterCount ~= 0 )  )
    then
        table.insert(ServerSelectWindow.serverList, data)
    end
end

See also