PlayStation 3
The PlayStation 3 is a video game console created by Sony. This PlayStation console proceeded to use the Medius Networking Protocol for their first party studios to integrate into their games.
Contents
- 1 Medius
- 1.1 Medius Games
- 1.2 Medius Components
- 1.2.1 Medius Authentication Server (MAS)
- 1.2.2 Medius Universe Manager (MUM)
- 1.2.3 Medius Lobby Server (MLS)
- 1.2.4 Medius Proxy Server (MPS)
- 1.2.5 Medius Network Address Translation (NAT)
- 1.2.6 Medius Universe Information Server (MUIS)
- 1.2.7 SCE-RT View Online (SVO)
- 1.2.8 Medius Profile Server (MAPS*)
- 1.3 Medius Additional Components
- 1.4 Medius Protocol
- 1.4.1 Medius Packet IDs
- 1.4.1.1 RT MSG Packet IDs
- 1.4.1.2 Reject Reason IDs
- 1.4.1.3 Disconnect Reason IDs
- 1.4.1.4 RT Result IDs
- 1.4.1.5 NetConnectionType IDs
- 1.4.1.6 NetErrorCode IDs
- 1.4.1.7 NetResult IDs
- 1.4.1.8 NetConnectStatus IDs
- 1.4.1.9 FailureReason IDs
- 1.4.1.10 AccessLevel IDs
- 1.4.1.11 Context StatusCode IDs
- 1.4.1.12 Context IsEndOfList IDs
- 1.4.1.13 Transaction Response StatusCode IDs
- 1.4.1.14 ErrorResponse ExceptExtent IDs
- 1.4.2 Medius Messages
- 1.4.1 Medius Packet IDs
Medius
Medius (SCE-RT) continued to get updated past the PS2 era, although its usage was more limited to certain studios, it didn't stop it from evolving. As such, a new subserver was introduced (MAPS), larger RSA Key sizes were used, MUIS had newer packet IDs, and a underlying plugins system was created for Zipper Interactive's branch of Medius.
Medius Games
Medius App IDs
Medius App IDs are what each game uses to identify each other from what game it is for. Here is a list of known PS3 Medius App IDs:
Name | AppID | Region | Version/Notes | Medius Entry Point | DNS/IP | Medius Client Library Version |
---|---|---|---|---|---|---|
Warhawk (Retail Digital) | 20044 | NTSC | v1.5 | MUIS | warhawk.ps3.online.scea.com | v5155 - 3.02.200704101920 |
NBA 07 | 20244 | NTSC | v1.0 | MUIS | nba07.ps3.online.scea.com | |
Resistance: Fall of Man (Retail Disc) | 20174 | NTSC | MUIS | resistance.ps3.online.scea.com | ||
F1 Championship Edition | 20954
20084 |
NTSC
PAL |
1.0/1.10 | MUIS | f12006.ps3.online.scea.com
f12006.ps3.online.scee.com |
3.01.0001 |
Resistance 2: Public Beta (Retail Digital) | 21733
21743 |
PAL | 2008-09-17_11:07:00 | MUIS | resistance2-pubeta.ps3.online.scea.com | 3.03.01.200809171107 |
MAG (Dev3) | 20230 | NTSC | MAPS | Modifiable | ||
MAG Trial (Retail Digital) | 20231 | NTSC | MAPS | mag.ps3.online.scea.com | ||
MAG Public Beta | 22720 | NTSC | v1.3 | MAPS | mag.pubeta.ps3.online.scea.com | |
PlayStation Home (Dev) | 20371 | NTSC | Dev 1.1.0
Eboot 1.83 |
MUIS sp-int
MUIS np |
hubps3.online.scee.com
homeps3.online.scee.com |
1.83 - 3.02.0000.200810102000 |
Calling All Cars (Retail Digital) | 20623
20624 |
NTSC | 1.0 | MUIS* | callingallcars.ps3.online.scea.com | |
Socom: Confrontation Public Beta (Retail) | 21093 (Beta) | NTSC | MUIS | socomconf-pubeta.ps3.online.scea.com | ||
Socom: Confrontation (Retail) | 21094 (Retail/Beta) | NTSC | MUIS | |||
PAIN | 21914 | NTSC | Tries to retrieve eupdateManifestNPUA_2_0.bin, but doesn't exist.
As such no Online mode is available. |
UI Update Server
Medius Update Server |
download-prod.online.scea.com
pain.ps3.online.scea.com | |
Motorstorm | SCEI - 21000
SCEE - 20364 SCEK - 21044 SCEA - 20764 |
NTSC | MUIS | motorstormps3.online.scee.com | ||
Motorstorm Apocalypse | 22500 | NTSC | 1.06 | SVO
MUIS |
motorstorm3ps3.ws.online.scee.com
motorstorm3ps3.online.scee.com |
|
Starhawk (Dev) | 22920 | NTSC | v0.00.360.0 (69268) Lan Release - Telemetry runs on port 10030 | SVO
MUIS Trending URL Alternate MUIS Domains
QA Press Telemetry |
blob117.scea.com (Hardcoded) starhawk.ps3.online.scea.com blob025.scea.com blob126.scea.com blob127.scea.com blob141.scea.com bourbon-qa.ps3.online.scea.com bourbon-press.ps3.online.scea.com starhawk.telemetry.ps3.online.scea.com |
Dev - 3.05.201109161400 |
Starhawk: Online Beta (Retail) | 22930 | NTSC/PAL | BCET70036, version: v0.03.360.0 (85852) | SVO
MUIS |
starhawk.announce.online.scea.com
starhawk.ps3.online.scea.com | |
Killzone 3: Multiplayer Trial (Retail Digital) | 23044 | NTSC | v1.01 | MUIS | killzone3ps3.online.scee.com | |
Killzone 3 (Retail Disc) | 23044 | NTSC | MUIS | killzone3ps3.online.scee.com | ||
Killzone 2 | 21784 | MUIS | killzoneps3.online.scee.com | |||
Wipeout HD (Retail) | 23360 | NTSC | v2.51 | MUIS
SVO |
wipeout2048.muis.online.scee.com
wipeout2048.online.scee.com | |
Socom 4 (Dev1) | 23430 | NTSC | Port is 10571 for this test server. | MAPS | blob022.scea.com | |
Socom 4 (Dev2) | NTSC | Possibly hardcoded IP, this build only is aimed for Singleplayer,
so it is likely the Online portion was cut out for this specific dev build. Even though entry port is 10060 implying SVO, it isn't SVO. SOCOM 4 Version ABdev479248_RELEASE: compiled on Jan 11 2011 at 05:21:56 |
MAPS | CHANGE_ME
Hardcoded Temp IP | ||
Socom 4 (Dev3) | 23430 | NTSC | Starts on port 10371.
SOCOM 4 Version ABprod484696_RELEASE: compiled on Jan 25 2011 at 04:47:12 |
MAPS | blob027.scea.com | |
Socom 4 (Retail Disc) | 23430 | NTSC | SOCOM 4 Version ABprod493473_TRUEGOLD : compiled on Feb 20 2011 at 16:21:07 | MAPS | socom4.ps3.online.scea.com | |
SOCOM 4 U.S. Navy SEALs Multiplayer Beta (Retail) | 23433 | NTSC | 1.02 | MAPS | s4demo.ps3.online.scea.com | |
Buzz: Quiz Player (Retail Digital) | 23624 | NTSC | V1.0 - Built On: Dec 8 2009 @ 15:28:19 Target Release - Unity 3 | MUIS
SVO |
buzzps3.online.scee.com
buzzps3.svo.online.scee.com | |
Buzz: Quiz World (Retail Digital) | NTSC | V1.0 - Built On: Aug 5 2009 @ 18:42:10 Target Release - Unity 3 | MUIS/SVO | buzzps3.online.scee.com | 3.03.200908051600 | |
Twisted Metal Demo (Retail) | 24094 | NTSC | 1.00 | MUIS | twistedmetalxdemo.ps3.online.scea.com | |
Ratchet: Deadlocked HD (Retail) | 20095 | PAL | 1.00 | MAS | ratchetdeadlocked.ps3.online.scee.com | |
Ratchet: Deadlocked HD (Retail) | 24180 | NTSC | 1.00 | MAS | ratchetdeadlocked.ps3.online.scea.com | |
Ratchet & Clank: Up Your Arsenal HD (Retail) | 24000 | NTSC | 1.00 | MAS | ratchetps3.ps3.online.scea.com | |
Hot Shots Golf: Out of Bounds! (Retail) | NTSC | 1.00 | MUIS | 3.02.0000 | ||
White Knight Chronicles (Retail) | NTSC | 1.00 - Contacts HTTP port 10095, Medius unrelated but uses Medius interally. | shirokishius.ps3.online.scea.com |
Medius Components
Medius servers are split into 9 major components with MAPS being Zipper Interactive Only:
Medius Authentication Server (MAS)
First server the client generally hits.
Allows users to login, authenticate and obtain a session token to login to the Medius Lobby Server.
This server generally runs on port 10075
.
Medius Universe Manager (MUM)
Keeps track of lobby rooms, game information, and players.
This server generally runs on port 10076
.
Medius Lobby Server (MLS)
Handles license agreement, announcements, global chat room, clans, create games, and join games.
This server generally runs on port 10077
or sometimes 10078
.
Medius Proxy Server (MPS)
Global chat room, clans, create games, and join games.
This server generally runs on port 10078
.
Distributed Memory Engine Game Server (DME)
The DME Game Server is a "Reliable UDP" server that handles connections between clients on a game's current status.
Traditionally, the DME server runs on port 10073
.
Medius Network Address Translation (NAT)
A UDP server used to give the client their IP Address.
Medius Universe Information Server (MUIS)
Server for providing the client with multiple other Medius stacks (MAS/MLS/MPS/DME).
This server generally runs on port 10071
.
SCE-RT View Online (SVO)
Formerly known as: "Sports View Online", this server ran to send/receive stats of players to web sources, announcements served to the client, or for customary assets by game developers.
Generally runs on port 10060
over HTTP, and port 10061
over HTTPS.
Medius Profile Server (MAPS*)
Customized Medius Branch
Server acts as a "hybrid" between a MUIS*. Handles sending/receiving character list, and News/Eula to the client.
After successful handshake, asks for plugins.
Runs on TCP port 10073
, and UDP port 10072
OR 10074
.
Zipper Interactive games only.
Medius Additional Components
Medius File System
Used to handle incoming/outgoing files between servers.
Medius Plugins
Customized Medius Branch Used to extend the functionality of servers (DME, MAPS, MAS, MLS. MPS, MUM), allowing for more flexibility to tweak the game further than vanilla Medius titles.
Zipper Interactive games only.
Medius Protocol
This will be a detailed breakdown of each start of the server communication, and what each type is in each table, and for. Medius Messages will be broken down by each Request/Receive callback.
Medius Packet IDs
Generalized section for each underlying enum, char, int, uint types in Packet ID tables.
RT MSG Packet IDs
The RT Message Packet ID type is the first byte in each packet that define what type of packet this is. If it's encrypted it will have 0x80
added to the original Packet ID.
ID | Name | Description | |
---|---|---|---|
0x00 | RT_MSG_CLIENT_CONNECT_TCP | Normal client connect request, contains Medius version and Game ID. | |
0x01 | RT_MSG_CLIENT_DISCONNECT | Normal client disconnect. | |
0x02 | RT_MSG_CLIENT_APP_BROADCAST | ||
0x03 | RT_MSG_CLIENT_APP_SINGLE | ||
0x04 | RT_MSG_CLIENT_APP_LIST | ||
0x05 | RT_MSG_CLIENT_ECHO | Heartbeat - 15000 ms/15 Seconds long. | |
0x06 | RT_MSG_SERVER_CONNECT_REJECT | Can send a Reject response (Instead of SERVER_CONNECT_ACCEPT_TCP) with a Reason converted to a Reject Reason ID in the Client | |
0x07 | RT_MSG_SERVER_CONNECT_ACCEPT_TCP | Login Client IP Address: The server sends the client their ip address. This might be used for NAT hole-punching down the line. | |
0x08 | RT_MSG_SERVER_CONNECT_NOTIFY | ||
0x09 | RT_MSG_SERVER_DISCONNECT_NOTIFY | ||
0x0a | RT_MSG_SERVER_APP | Generic data message to client from server. | |
0x0b | RT_MSG_CLIENT_APP_TOSERVER | Generic data message to server from client. | |
0x0c | RT_MSG_UDP_APP | ||
0x0d | RT_MSG_CLIENT_SET_RECV_FLAG | ||
0x0e | RT_MSG_CLIENT_SET_AGG_TIME | ||
0x0f | RT_MSG_CLIENT_FLUSH_ALL | ||
0x10 | RT_MSG_CLIENT_FLUSH_SINGLE | ||
0x11 | RT_MSG_SERVER_FORCED_DISCONNECT | ||
0x12 | RT_MSG_CLIENT_CRYPTKEY_PUBLIC | The client is requesting to start encryption. The contents is an RSA key generated by the PS2, which is encrypted using public-key of the server (512-bit Textbook RSA). The public-key is burned in the games iso. | |
0x13 | RT_MSG_SERVER_CRYPTKEY_PEER | The server is accepting encryption. The contents is a custom RC4 or RCQ "session key" used to encrypt/decrypt messages going forward, this message is encrypted via the RSA key in the client. | |
0x14 | RT_MSG_SERVER_CRYPTKEY_GAME | Game encryption key. | |
0x15 | RT_MSG_CLIENT_CONNECT_TCP_AUX_UDP | ||
0x16 | RT_MSG_CLIENT_CONNECT_AUX_UDP | ||
0x17 | RT_MSG_CLIENT_CONNECT_READY_AUX_UDP | ||
0x18 | RT_MSG_SERVER_INFO_AUX_UDP | ||
0x19 | RT_MSG_SERVER_CONNECT_ACCEPT_AUX_UDP | ||
0x1a | RT_MSG_SERVER_CONNECT_COMPLETE | Connection established with the client. | |
0x1b | RT_MSG_CLIENT_CRYPTKEY_PEER | ||
0x1c | RT_MSG_SERVER_SYSTEM_MESSAGE | ||
0x1d | RT_MSG_SERVER_CHEAT_QUERY | ||
0x1e | RT_MSG_SERVER_MEMORY_POKE | ||
0x1f | RT_MSG_SERVER_ECHO | Send back for the CLIENT_ECHO - Heartbeat: 15000 ms/15 seconds long. | |
0x20 | RT_MSG_CLIENT_DISCONNECT_WITH_REASON | Client disconnects with a Disconnect Reason ID. | |
0x21 | RT_MSG_CLIENT_CONNECT_READY_TCP | ||
0x22 | RT_MSG_SERVER_CONNECT_REQUIRE | ||
0x23 | RT_MSG_CLIENT_CONNECT_READY_REQUIRE | ||
0x24 | RT_MSG_CLIENT_HELLO | ||
0x25 | RT_MSG_SERVER_HELLO | ||
0x26 | RT_MSG_SERVER_STARTUP_INFO_NOTIFY | ||
0x27 | RT_MSG_CLIENT_PEER_QUERY | ||
0x28 | RT_MSG_SERVER_PEER_QUERY_NOTIFY | ||
0x29 | RT_MSG_CLIENT_PEER_QUERY_LIST | ||
0x2a | RT_MSG_SERVER_PEER_QUERY_LIST_NOTIFY | ||
0x2b | RT_MSG_CLIENT_WALLCLOCK_QUERY | ||
0x2c | RT_MSG_CLIENT_WALLCLOCK_QUERY_NOTIFY | ||
0x2d | RT_MSG_CLIENT_TIMEBASE_QUERY | ||
0x2e | RT_MSG_SERVER_TIMEBASE_QUERY_NOTIFY | ||
0x2f | RT_MSG_CLIENT_TOKEN_MESSAGE | ||
0x30 | RT_MSG_SERVER_TOKEN_MESSAGE | ||
0x31 | RT_MSG_CLIENT_SYSTEM_MESSAGE | ||
0x32 | RT_MSG_CLIENT_APP_BROADCAST_QOS | ||
0x33 | RT_MSG_CLIENT_APP_SINGLE_QOS | ||
0x34 | RT_MSG_CLIENT_APP_LIST_QOS | ||
0x35 | RT_MSG_CLIENT_MAX_MSGLEN | ||
0x36 | RT_MSG_SERVER_MAX_MSGLEN | ||
0x3b | RT_MSG_CLIENT_MULTI_APP_TO_SERVER | Used to send multiple 0x0a App_To_Server and/or 0x05 client echos. | |
0x3d | RT_MSG_CLIENT_APP_TO_PLUGIN | Zipper Interactive Games Only | |
0x3e | RT_MSG_SERVER_PLUGIN_TO_APP | Zipper Interactive Games Only |
Reject Reason IDs
RT Message sent from server with RT Packet ID 0x06 can send these possible reasons to the client.
ID | Name | Description |
---|---|---|
0x00 | RT_MSG_CLIENT_REJECT_NONE | Default for Invalid Reason or SERVER_CONNECT_ACCEPT_TCP. |
0x02 | RT_MSG_CLIENT_REJECT_CLIENT_VER | |
0x04 | RT_MSG_CLIENT_REJECT_FULL | |
0x05 | RT_MSG_CLIENT_REJECT_WORLD_ID | |
0x06 | RT_MSG_CLIENT_REJECT_APP_SIGNATURE | |
0x07 | RT_MSG_CLIENT_REJECT_ENCRYPTION | |
0x08 | RT_MSG_CLIENT_ACCESS_KEY | |
0x09 | RT_MSG_CLIENT_REJECT_AUX_UDP_FAILURE |
Disconnect Reason IDs
Messages sent with RT Packet ID 0x20 include a Disconnect with Reason, these are those possible reasons.
ID | Name | Description |
---|---|---|
0x00 | RT_MSG_CLIENT_DISCONNECT_NONE | |
0x01 | RT_MSG_CLIENT_DISCONNECT_NORMAL | Default Disconnect Reason in most cases. |
0x02 | RT_MSG_CLIENT_DISCONNECT_CONNECT_FAIL | |
0x03 | RT_MSG_CLIENT_DISCONNECT_STREAMMEDIA_FAIL | |
0x04 | RT_MSG_CLIENT_DISCONNECT_UPDATE_FAIL | |
0x05 | RT_MSG_CLIENT_DISCONNECT_INACTIVITY | |
0x06 | RT_MSG_CLIENT_DISCONNECT_SHUTDOWN | Can occur when there is no response sent by the server in multiple connect attempts. |
0x07 | RT_MSG_CLIENT_DISCONNECT_LENGTH_MISMATCH | Can occur if the Server response doesn't match what is expected. |
0x08 | MAX_RT_MSG_CLIENT_DISCONNECT_REASON |
RT Result IDs
RT_Results are their own labelled enum, sent generally, this table is hardcoded in the client itself but not easily mapped.
ID | Name | Description |
---|---|---|
0xcf27 - 53031 | RT_SOCKET_ETIMEDOUT | RT_Result Time out, usually from connection interrupts. |
0xcb2e - 52014 | RT_MSG_CLIENT_CONNECTION_LOST | Can occur if the server response isn't what the client is expecting |
NetConnectionType IDs
These NetConnectionTypes are their own labelled enum, sent generally, this table is hardcoded in the client itself.
ID | Name | Description |
---|---|---|
0x0001 | NetConnectionTypeClientServerTCP | Client - Server TCP Communication |
NetErrorCode IDs
These NetErrors are enum ._0 types sent generally, as such a set table is hardcoded in the client itself.
ID | Name | Description |
---|---|---|
0x0000 | NetErrorNone | default value in most cases |
0x0025 | NetErrorUnknown | Returned value from rare instances in update loops. |
0x119f | NetErrorMsgClientBadState | |
0x11a0 | NetErrorMsgClientConnectionLost | Can happen when a Timeout occurs during communication |
0x13a3 | NetErrorETimeout | Client connection timed out, happens usually during connection interrupt. |
0x0db1 | NetErrorCommConnectionClosed | Client closes communication from the server |
NetResult IDs
These NetResult are their own labelled enum, sent as a output in MAPS communication via Plugins in the Client.
ID | Name | Description |
---|---|---|
0x0000000c (12) | kNetProtocolError | Client - Server Protocol Version Check |
Zipper Interactive Only
NetConnectStatus IDs
These ConnectStatus are enum ._1 type.
ID | Name | Description |
---|---|---|
0x0000 | ConnectStatusClosed | |
0x0001 | ConnectStatusOpen | default value in most cases |
0x0003 | ConnectStatusFailed | Can occur from a timeout |
FailureReason IDs
These FailureReasons are enum ._4 type.
ID | Name | Description |
---|---|---|
0x0000 | ConnectFailureReasonNone | default value in most cases |
AccessLevel IDs
These accessLevel IDs are enum ._131 type.
ID | Name | Description |
---|---|---|
0x0000 | MEDIUS_ACCESSLEVEL_DEFAULT | default value |
Context StatusCode IDs
The Context StatusCode type is an enum ._222.
ID | Name | Description |
---|---|---|
0x0000 | MediusSuccess | default value |
0x0xfffffc5d | MediusTransactionTimedOut | Connection timed out |
Context IsEndOfList IDs
The IsEndOfList type is an enum ._212.
ID | Name | Description |
---|---|---|
0x0000 | MEDIUS_FALSE | default value |
0x0001 | MEDIUS_TRUE | When it reaches end of list, or reaches a error of some form. |
Transaction Response StatusCode IDs
The Transaction Response StatusCode type is an enum ._137.
ID | Name | Description |
---|---|---|
0x0000 | MediusSuccess | default value |
ErrorResponse ExceptExtent IDs
The ExceptExtent type is an enum ._129.
ID | Name | ErrorMessage |
---|---|---|
0x0000 | MEDIUS_EXCEPT_ABORT_TRANSACTION | Transaction Timed Out |
Medius Messages
Medius Messages are the underlying layer past RT Messages that is what the game actually sends the server data between client <-> server. This is usually sent after the Server Connection is established.
MUIS RequestUniverseInfo
This Medius Message is usually the first in the MUIS communication, asking for the Universe Information Server. Below this are the parameter tables such as CharacterEncoding and Language.
MessageID
This parameter is a character type with it being 21 bytes long. Incremented by the server to tell the client the flow of each message.
InfoType
This parameter is an unsigned int.
ID | Description |
---|---|
0x0000 | None - default value |
0x03fc |
CharacterEncoding
This parameter is enum ._138 type.
ID | Name | Description |
---|---|---|
0x00 | MediusCharacterEncoding_NoUpdate | No Update - default value |
0x01 | MediusCharacterEncoding_ISO8859_1 | Latin-1 - Archived University Document that details this type of CharacterEncoding |
0x02 | MediusCharacterEncoding_UTF8 |
Language
This parameter is enum ._26 type.
ID | Name | Description |
---|---|---|
0x00 | NetLanguageNone | None - default value |
0x01 | NetLanguageUSEnglish | US Language |
NetLanguageJapanese | Japanese Language | |
NetLanguageKorean | Korean Language | |
NetLanguageItalian | Italian Language | |
NetLanguageSpanish | Spanish Language | |
NetLanguageGerman | German Language | |
NetLanguageGerman | German Language | |
NetLanguageFrench | French Language | |
NetLanguageDutch | Dutch Language | |
NetLanguagePortuguese | Portuguese Language | |
NetLanguageChinese | Chinese Language | |
NetLanguageTaiwanese | Taiwanese Language | |
NetLanguageFinnish | Finnish Language | |
NetLanguageNorwegian | Norwegian Language |
MUIS VariableSVOURLResponse
Sends back only the SVOUrl on the first response to the client.
SVOURL
This parameter is a string type with it being 128 bytes long as UNIVERSE_SVO_URL_MAXLEN constant.
ID | String | Description |
---|---|---|
0x1e | URL | Sends back the SVOUrl for the Universe |
MUIS VariableInformation
This is the second packet the MUIS sends back to the client, handling the type of information the Client is requesting. The InfoFilter determines the rest of the parameters in the response.
VariableInformation
This request/response is what determines the universe information for the client to continue.
ID | String | Description |
---|---|---|
StatusCode | Usually MediusSuccess | |
InfoFilter | Returns the Info parameters for the rest of the response | |
UniverseID | Sends a Universe ID for each unique instance | |
DNS | Determines the MAS DNS to send the client to next usually | |
Port | Sends back the SVOUrl for the Universe | |
UniverseDescription | Sends back a custom server-side only description | |
Status | Tells the Client if the Universe is available or not | |
UserCount | Determines the current amount of users in the Universe | |
MaxUsers | Maximum users allowed in a universe | |
UniverseBilling | Billing acronym name for the service that is used for microtransactions | |
BillingSystemName | Company name that handles the microtransactions | |
ExtraInfo | Used for Patching the Game internally, or for bandwidth probe servers to test client connections over UDP. | |
SVOURL | Sends back the SVOUrl for the Universe | |
EndOfList | Bool used to tell the client the Universe list is done interating over. |