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
