How the online functions work

A reference for everyone building on this server: every online function of eFootball PES 2021 (1.01.00, Steam), worked out from the game itself. It covers what each command is for, how the game uses the reply, and what a private server has to send. It continues the technical write-up, which covers the wire format, login and Quick Match. Static analysis of the game binary and our own test logs, 2026-11-05.

In plain words: the game knows 433 server commands. Our server implements 33 and answers 40 more with a plain "OK". This page explains what the rest do, which of them matter, and what our server should change. Every claim has a tag saying how sure we are, and an address in the game's code where it can be checked.
LIVEseen in our real traffic STATICread in the game's code INFERREDreasoned, not read directly UNKNOWNnot worked out yet

What changes for our server

The findings that change server behaviour, most important first. Each one links to its section.

  1. No relay fallback exists today. The game only uses TURN when GET_TURN_SERVER_LIST returns servers; we return none. Run coturn (TURN over TLS), answer the list with credentials and certificate, and forward SEND_TURN_ADDRESS_DATA to the opponent as a WATCH_TURN_ADDRESS_DATA push. The UDP 7600 "game relay" isn't a fallback and can go. Connecting the players → DONE Built, on by default since 2026-11-06 (TURN=0 turns it off): a small TURN server inside our program (TLS 5349, UDP relay 49160–49179 opened with UPnP, RFC 8016 mobility, which the game asks for), a self-signed certificate naming the server's addresses, TURN REST credentials, and byte-exact address forwarding. Traffic between two players' relays is handed over inside the program, so no router loopback is needed. First live run (against coturn): the game accepts our list and certificate and allocates over TLS; it needs mobility, which coturn refused by default (mobility alone is not enough: see the next sentence). coturn's own test client works against our relay with no loss. Tested with the game (2026-11-05): allocation over TLS works, but the game also needs a SOFTWARE "dual route" directive HOST:PORT,<text>,0 (otherwise it restarts every second) and then a second relay leg over DTLS/UDP before it publishes its relay address. Live tests → OPEN
  2. The host's own address is wrong for remote friends. When the server runs in a player's home, that player's reflexive address is their LAN IP, so a friend in another home is told to connect to an unreachable address. Rewrite it to the public IP when the opponent is remote. This alone may explain "Failed to connect with opponent". → DONE Confirmed in our logs (the host's game reported 192.168.1.100); the server now swaps in the address the remote friend uses to reach the server, port unchanged. Not yet tested between two homes.
  3. Deliver peer notices exactly once, in order. pid_list grows by one copy per match; a duplicate START/END notice at the head of the queue blocks the P2P rendezvous for 30 s. Dedupe and exclude the sender. → DONE Confirmed in our logs: [1], [1, 1], [1, 1, 1]… was delivered that many times. The sender is never in its own list.
  4. Push the verdict WATCH_GAMEADDPOINT. Without it, one player stalls 20 s after every match (Quick Match never shows the rating screen anyway, see results). Answer REQ_GAMEADDPOINT and push ratings, win streak and winner; gameend_reason must be NORMAL_END. → DONE Our logs show both games sending REQ, also after aborted matches. The server answers REQ with the verdict when the match reached END (Elo from 1000, K 32, win streak), and sends nothing after an abort, since any other end reason shows OLXH186. It also pushes the verdict to every player at the final whistle (default; PESSERVER_VERDICT_AT_END=0 turns it off). Live: this ends Quick Match, Divisions, Matchday, Tournament and co-op matches cleanly, with no DISCONN_P2P from the slower player.
  5. Live scores never update: goals arrive as CMD_ADD_SCORE; CMD_ADD_GOAL doesn't exist. Dedupe by gtimer (both clients report). → DONE Both games sent the same goal with gtimer 2996; each (gtimer, side) now counts once.
  6. Reconcile both SEND_GAME_RESULT reports (one says NOERR, the other DISCONN_P2P with the same score), and keep SET_PLAYDATA_MATCH (scorers, player ratings), STATS_DATA and the line-ups. →
  7. Pair only players whose CHECK_CHEAT sums match, or they fail with "DATAPACK error" after connecting. JOIN_ONLINE_MODE → ERR_MODE_BLOCKED is a clean version gate. Record SEND_TAMPER_DATA as a cheat flag. → DONE Matchmaking pairs only games with the same param_check_sum, patch and DLC version, and the admin feed says once why two searching players aren't matched. Games that never send the sum pair with anyone. Tamper reports go to the admin feed. No version gate yet (pairing already keeps versions apart).
  8. The game database is decoded (players, teams, rosters, shirt numbers), and the login checksums reproduce exactly from the files: both test clients ran the stock update pack. Delivering live data would change every player's checksum. →
  9. The Live Update channel is mapped: the server can give every player the same data (rosters, form) through the game's own downloader: an HTTP GET of one CPK, checked only by a server-supplied SHA-256. Same data → same checksums → no DATAPACK errors. →
  10. The server can tune the player-to-player link: all connect timeouts and direct/TURN switching thresholds come from JSON the server sends in GET_SERVER_ENV.proto_opt (we send none → defaults; direct connect gives up after 15 s, twice). →
  11. Use the game's own texts: replies like ERR_INVALID_ACCOUNT (ban), ERR_FREE_TO_PLAY_FULL (server full) or ERR_COMMAND_BLOCKED show clear messages instead of a bare code. →
  12. Live tests (2026-11-05/06): our own Live Update works end to end (checksums exactly as predicted, as long as the server keeps listing the update); the relay works end to end once it handles the game's ktc DTLS framing and port changes, and a match can be played over it alone (DONE in the server: turndtls.py, UDP 5350, relay on by default); reconnect survives a ~7 s outage; a whole lobby match and the return to the room work. →
  13. Never push a RELOAD list into a game that already holds entries: it ends the game (uncaught C++ exception in the watch-list merger, confirmed live). RELOAD only as the reply to a new REQWATCHL_* request; pushes are ADD/UPDATE/DEL. →
  14. Send each player's reflexive_addr exactly as that player reported it. The game picks the side that opens the match link by comparing two address strings: its own reported reflexive address and the peer's reflexive_addr the server sent. Only the "lower" side opens; if the server rewrites one side's address so both think they are higher, both wait and the match fails with MXNV_0013 after 10 s (seen live with test addresses). Our reflexive rewrite for the host's LAN (_visible_addr) can do this for friends whose public IP sorts between the host's public and LAN addresses. Put the public IP into host_addr instead, which is never compared (gncx_labels.md). STATIC →
  15. Split large replies into 0x70 / 0x71 / 0x72 fragment frames; the client rejects any frame body over 0x410 bytes. → DONE Both ways, with the layout from the send path 0x1418537d0 (chunks 0x3f3, then 0x3fc; 0x2x for pushes). Tested on every size around the boundaries, not yet against the game, so the admin page still refuses a news message that needs more than one frame.
  16. Never reply ERR_CHEAT to in-match commands, and keep key_size 16 (32 switches the whole game to AES until restart). GET_MATCHID upload:"YES" is safe: it is how match replays are recorded (see spectating). →
  17. CMD_RECONNECT is unimplemented: after a gate drop it needs a session key like SET_CURRENTPLAYER. → DONE A new 16-byte key; the new connection takes over the player's place (unknown pid: ERR_LOGIN_FAILED). Live: after a 7-second server outage mid-match both games reconnected and played on; after 15 seconds they show APLR_0002, and in the menus VNBP_0002 with no reconnect attempt.
  18. Rooms for "play a chosen friend" are specified: blocks, room list and player lists (replies, then UPDATE pushes; never a RELOAD push), ENTRY_GAME, owner start via SET_GAMEMEMBER, room states. → Live: creating a room works (own room in the room list first, player list sent only as the reply, nested psn_user_id blob); with the real game_env echoed into the room list (limitTime NOSET hides a room), a friend sees the room, joins, and both reach team selection (2026-11-06). DONE Built into the server (pesrooms.py) and tested live on the real server code: create, join, ready, start, team selection. →
  19. Online Co-op works, one player per side (mod 0.5.0 + pescoop.py, live 2026-11-06): the game's own co-op never handed the opponent to its P2P layer; the mod adds that step and the server does force_alone matching, one WATCH_COOP_MATCHING push, real teams, game_sycom "P2P" and the SYNC_PROGRESS echo. The P2P layer takes exactly one peer, so 2v2/3v3 with more humans can't run. Spectating is switched on by upload:"YES" and served as AES chunks over HTTP. →
  20. The server can put its own text on screen: an urgent announcement, a news list, and a "maintenance soon" warning. Done: all three tested in the game and on the admin page. →
  21. Tooling: schemas.json misses 1,907 reply fields in 108 commands (extractor bug, fixed in the notes, not yet applied to the server). notes/re/errcode.py's default game path broke when the repo moved. →

↑ Back to contents

Connecting the two players: NAT traversal, TURN relay, game relay

In plain words: the two games try to reach each other directly (UDP hole punching). If that fails, the game can fall back to a standard TURN relay over TLS, but only when the server hands it a TURN server list. Our server currently returns an empty list, so there is no fallback at all, which is why players in different homes can get "Failed to connect with opponent". The "game relay" on UDP 7600 is a different, Konami-only relay mode that Quick Match never uses.

How a match connection is set up

  1. Network test at mode entry: the NTL library ("NTL 1.11.11-Windows64") tests the NAT against the STUN server (UDP 3478) and GateInfo.php, tries UPnP, then reports its addresses with CMD_SEND_IPANDPORT_NTL {host_addr, reflexive_addr, relayed_addr, ntl_nat_type}. LIVE
  2. Pairing: CMD_WATCH_MATCHING member blobs carry each peer's NTL addresses. LIVE
  3. Match session task (OnlineModeTaskMatchSession.cpp, fn 0x1411430b0, state in [task+0x70]): GET_SERVER_ENV → GET_TURN_SERVER_LIST (states 9/0xa) → SetConfig() (state 0xb) → CreateMultiplaySession (state 0x11; also starts ConnectTurnTask and the WATCH_TURN_ADDRESS_DATA watch) → wait for the link (state 0x15) → revision check → connected (0x1a). Errors go to state 0x17. STATIC
  4. Connection strategy (factory 0x1411aa730) depends only on whether the TURN list is empty. The NAT type is not consulted: STATIC
    • empty list (our server today) → P2pFullMesh: NTL hole punching only, no relay;
    • non-empty list → P2pFullMeshWithTurn with P2pTurnIoFailover: direct path plus a TURN path, switching between them. (Debug tunables turn_mode / direct_online_turn_mode default to this.)
  5. When the link doesn't come up in about 30 s, both games report CMD_SET_GAMERELAY_CHECK_RES {error_code ER_MATCHING_RETRY, failed_reason 2}. LIVE The match task retries once after 15 s (cmp rax,0x3a98 at 0x141143ccd). Link results: 1 ok, 2 "Revison check TIMEOUT", 3 "Revision error", 4 "DATAPACK error", 5 "Other user disconnected". STATIC
client A                 our server                          TURN server (coturn)          client B
GET_TURN_SERVER_LIST ──► {turn_server_list, id, pw, cert}
TLS over TCP to tls_port ──────────────────────────────────► Allocate (401 → auth) → relayed address A
SEND_TURN_ADDRESS_DATA{A} ──► push WATCH_TURN_ADDRESS_DATA{A} ────────────────────────────────────► B
WATCH_TURN_ADDRESS_DATA{B} ◄── ◄── SEND_TURN_ADDRESS_DATA{B} ◄──────────────────────────────────── B
CreatePermission / ChannelBind (B) ────────────────────────► relays A ⇄ B ◄────────────── B does the same

CMD_GET_TURN_SERVER_LIST: TURN servers and credentials

The TURN client: Konami "ktc-0.0.0"

CMD_SEND_TURN_ADDRESS_DATA → push CMD_WATCH_TURN_ADDRESS_DATA

CMD_SEND_IPANDPORT_NTL and a likely cause of cross-home failures

CMD_GET_GAMERELAY and the "game relay"

What our server should do

  1. Superseded: our program now has its own relay (on by default), and live tests showed that a plain TURN server isn't enough. The relay must also send the SOFTWARE dual-route directive and serve a DTLS/UDP leg (live tests). The original advice was to run coturn on an internet-reachable address: tls-listening-port=5349; a non-zero but unused listening-port (3478 is our STUN); a self-signed cert whose IP SAN is the advertised address; lt-cred-mech; user=pes:<password>; realm=pes2021; external-ip; a UDP relay port range forwarded on the router. Behind a home router, coturn relaying between its own two allocations needs NAT hairpinning; a VPS avoids that. INFERRED
  2. Reply only when TURN is configured: {result:"NOERR", turn_server_list:[{zone:1, address:"<public IP>", port:3479, tls_port:5349}], id:"pes", pw:"<password>", server_certificate:"<base64 DER>", server_certificate_data_size:<len>}. For time-limited credentials: id = "<expiry>:<pid>", pw = base64(HMAC-SHA1(secret, id)) with coturn use-auth-secret, and an expiry of hours (refreshes happen during a 90-minute match).
  3. Forward SEND_TURN_ADDRESS_DATA to the opponent as a WATCH_TURN_ADDRESS_DATA push, and queue it if the room isn't ready.
  4. Keep game_sycom:"P2P". The UDP 7600 placeholder can go.
  5. Rewrite the host player's reflexive address when the opponent is remote (see above).

Tested live (2026-11-05): REQUESTED-TRANSPORT is UDP; the game asks for mobility; it needs a SOFTWARE directive HOST:PORT,<text>,0 and then a DTLS/UDP second leg before it publishes its address (details). 2026-11-06: with a DTLS leg that handles the ktc framing, the games publish their address (20-byte blob: 00, port big-endian, IPv4 little-endian) and relay ChannelData; the TLS leg is closed once the DTLS allocation exists; the whole session restarts every 21.4 s (open). Still unknown: whether the certificate is verified when none is sent, and whether a dead TURN server breaks the match. Our test showed the match running fine over P2P while TURN failed.

↑ Back to contents

Match flow: setup, in-match reports, end of match

In plain words: after pairing, each game runs a "match session" task. It gets a match id, waits at a sync barrier, reads timeouts, gets the TURN list, then opens the player-to-player link, using two notices relayed by our server as a rendezvous. During the match, both games report every phase, foul and goal. The server only has to answer "OK", and must never answer ERR_CHEAT.

The real sequence of a full match LIVE

WATCH_MATCHING (push) → GET_GAMERELAY (HTTP) → GET_MATCHID → SEND_SYNC_NOTICE "1,"/"2," → WATCH_SYNC_NOTICE
→ GET_SERVER_ENV → GET_TURN_SERVER_LIST (HTTP) → SEND_SYSTEM_NOTICE "START:pid=…;time=…;" (both) → push
→ SEND_SYSTEM_NOTICE "END:pid=…;time=…;" (both) → push → P2P link check (10–25 s)
→ SET_GAMERELAY_CHECK_RES → WATCH_GAMERELAY_CHECK_RES (push) → SEND_MATCHING_RESULT (both)
→ SET_GAMEMEMBER (owner) → CHANGE_GAMEPHASE DATASYNC → SET_GAMEMEMBERENV (owner) → GET_PLAYER_PARAMETERLIST
→ SET_GAMETEAM + GET_MATCHID → TEAMSELECT → MATCHMENU → GAMELOAD → SEND_MATCH_TEAM_INFO → ENTRY → 1ST …
  ADD_FOUL / ADD_SCORE … BREAK1 → 2ND … → SET_GAMEPLAYER_PLAYTIME → CHANGE_GAMEPHASE END
→ SET_PLAYDATA_MATCH (HTTP) → SEND_ABNORMALEND DISCONN_P2P (second to leave) → SEND_STATS_DATA
→ SEND_GAME_RESULT → REQ_GAMEADDPOINT → LEAVE_ROOM

The match session task (OnlineModeTaskMatchSession.cpp, on-screen MXNV_00NN)

Update fn 0x1411430b0, state at task+0x70, result at +0x74 (1 ok, 2 peer gone / revision timeout, 3 multiplay failure, 4 ping out of range, 5 server command error, 6 internal error). Every tick first checks the gate connection; if it's lost, the task fails with MXNV_0002 "DISCONNECT PES SERVER". STATIC

StateWhat it doesError if it fails
1–2GET_MATCHID (skipped in direct/LAN online). A reply error is fatal. Then SEND_SYNC_NOTICE.MXNV_0003 / 0004 / 0023
3–4Sync barrier: waits for one WATCH_SYNC_NOTICE, at most 10 s. A timeout is not an error.MXNV_0024 (reply error)
5–6Only if GET_MATCHID said upload:"YES": START_SEND_GAME_SEQUENCE_DATA (replay upload)MXNV_0005 / 0006
7–8GET_SERVER_ENV. A reply error is fatal.MXNV_0007 / 0008
9–10GET_TURN_SERVER_LIST (see TURN); result ignored here—
11SetConfig(): builds the P2P/TURN configMXNV_0009 "Error SetConfig()"
14–17Multiplay init; one 15 s retry wait; CreateMultiplaySessionMXNV_0010 "Error CreateMultiplaySession"
18–19Wait for the session to reach "connected". Normally no retry.MXNV_0013: session never connected (seen in our failed tests) LIVE
20–21Init online multiplay; P2P revision check (60 s)MXNV_0015 timeout, 0017 DATAPACK error (any revision/data mismatch; status 3 "revision error" is dead code in 1.01), 0018 other user disconnected, 0019 unknown. is_revision_check:"NO" turns the compare off (0x140fff5b3).
22Ping check against the ping limitMXNV_0022 "Ping range over"
23–26Error teardown / finish

Peer notices relayed by the server

All three SEND commands carry {pid_list_num, pid_list[int], data STR}; the pushes carry {data}. The client never checks who sent a notice except through what's inside data. STATIC

CMD_GET_MATCHID and CMD_GET_SERVER_ENV

In-match reports (the "game queue")

Abnormal ends and the match watchdog

CMD_SEND_ABNORMALEND {reason, error_code}. error_code = <last on-screen code>_0x<8 hex>. Reasons (enum 0x1437f3d20): STATIC

0 CHEAT · 1 INJURY · 2 GIVEUP · 3 EXIT · 4 SLOWDOWN · 5 NO_OPERATION · 6 COMPE_TIMELIMIT · 7 CMD_ERR · 8 MODE_ERR · 9 SYNC_FAILED · 10 CONFLICT · 11 LOAD_TIMEOUT · 12 GAMERELAY · 13 BUFFER_OVER · 14 DEGRADE_SC · 15 DISCONN_SC · 16 CMD_SENDFAILED · 17 OUTPLAY_LONG · 18 CMD_LACK · 19 TIME_ERR · 20 NOTRUN · 21 READY_TIMEOUT · 22 DISCONN_NTL · 23 DISCONN_P2P · 24 DEGRADE_P2P · 25 NOERR

Liveness probe and reconnect

Server error table inside the client

The game carries a 765-row table (0x1428a1170) of (command, ERR_* code the server may return, message id). That's the list of error replies Konami's server could send per command, e.g. ERR_ROOMNOTFOUND, ERR_NOTROOMOWNER, ERR_PLAYERISNOTENOUGH, ERR_DATABASE. Every room or lobby handler should pick its errors from it. STATIC

↑ Back to contents

After the match: results, statistics, rating, divisions

In plain words: each game sends its own version of the result, team statistics, line-ups, and a JSON summary with goal scorers and player ratings. The game then waits for the server's verdict (new rating, win streak, winner). We never send it, so one player stalls for 20 s after every match and the rating screen is skipped. Divisions belong to the separate "Online Divisions" mode; the server sets their promotion and demotion thresholds.
CHANGE_GAMEPHASE END (both) → highlights / full-time screens
TaskWatchGame (OnlineModeTaskWatchGame.cpp, 0x141120730) runs through the match:
   watches push CMD_WATCH_GAMEADDPOINT + push CMD_WATCH_CHECK_ALIVE_PLAYER
   on a dropped peer link: wait for the verdict → REQ_GAMEADDPOINT at +10 s → give up at +20 s
OnlineMatchEnd (0x14137e390): SET_PLAYDATA_MATCH (HTTP) → SEND_STATS_DATA → SEND_GAME_RESULT → LEAVE_ROOM
OnlineMatchRatingPre (0x141379220): "normal" → rating screen (menu::RatingChange)   |  "skip"
Online Divisions only (gamemode 24): GET_DIVISION_INFO → division-points screen

The verdict: CMD_REQ_GAMEADDPOINT / push CMD_WATCH_GAMEADDPOINT

What each game reports

Divisions and rankings (Online Divisions mode)

Built and checked in the game (2026-11-07) LIVE

Suggested storage

Tables for: match (ids, teams, final score, winner, end reason, status final/disputed/aborted, play_data JSON); match_report (both clients' GAME_RESULT); match_team_stats (STATS_DATA); match_player (line-up, minutes, rating, goals); player_rating (rating, W/D/L, streak); rating_change (source for the verdict push); division_state, division_rule (promotion/demotion thresholds), division_history. Rankings are just ordered queries over these.

Value sets STATIC: division = "D1" (top) … "D12", or "NONE" (GET_SERVER_ENV max_division "D12"). Ranking sort = RATING, WIN_NUM, MATCH_NUM, WIN_STRAIGHT, WIN_RATE (or absent), order always "ASC", view_num 100. GET_GAMERESULTS request = pid, game_res_type (ALL/RANK/MYCLUB/COOP_ALL/PESLEAGUE/COOP_PESLEAGUE), pesleague_compe_id. gtimer ≈ 50 ticks per real second (950 at kick-off, ~94,000 for a full match); use it only for de-duplication.

Still unknown: whether a verdict push to the client that isn't waiting is used; the units of the STATS counters (all 0 in our 0–0 test matches).

↑ Back to contents

Lobbies and rooms: playing a chosen friend

Where it is: Kick Off → Friendly Match Lobby, the 8th item of a scrolling list just below "Cup" (then Team Play Lobby, then Training). The menu is a hard-coded table in the exe (built by 0x1401c7fb0) with no server or platform filter. Live, with test handlers following this spec, the game reached the Match Room List and created a room. It then quit about 2 s after the room player list, before ENTRY_GAME; the cause is being investigated (live tests).

In plain words: the game's "Online Match Lobby" is fully built into the client. You pick a lobby, then a sub-area ("block"), then create a 1 vs 1 room with an optional password, and your friend joins it from the room list. Once both press Entry, the owner's game starts the match, and from then on it's the same match flow as Quick Match. The server has to keep rooms and push room and player lists. Platform invites and the follow list don't give a usable path to a friend's room; room list + password is the practical way.

Two lobby products STATIC

Three kinds of commands

  1. Plain request/reply (CREATEJOIN_ROOM, ENTRY_GAME, …).
  2. WATCH_* = pure server pushes. The client registers a local watch and never sends a request (no RX of any WATCH_* in our logs). Push with kind 0x60, rqid 0. LIVE STATIC
  3. REQWATCHL_* = request + list subscription. The request carries arguments (room_id) and is answered; later pushes with the same msgid update the list. Safe behaviour: answer and also push. INFERRED (strong)

The list protocol for all REQWATCHL_* STATIC

Merger 0x1411c1340. Every list reply or push has list_key_name, list_type and list_data (an array of msgpack blobs):

Flow: owner A creates, friend B joins (confirmed live 2026-11-06)

both: JOIN_ONLINE_MODE FREE → GET_LOBBYLIST → JOIN_LOBBY → GET_LOBBYINFO → GET_BLOCKLIST → JOIN_BLOCK
      → REQWATCHL_ROOMLIST (request; reply RELOAD = the block's rooms, the only safe RELOAD)
A:    CHECK_STRING {room name} → CREATEJOIN_ROOM {name, match_type OC_FREE, lang, max_players 2, …} → {room_id}
      server → subscribers incl. A: room list ADD (A looks for its own pid in the room list)
A:    SET_GAMEENV {game_env: blob of the 9 settings} → server stores it, echoes it as the room's gameenv,
      pushes room list UPDATE (limitTime NOSET would hide the room from everyone)
A:    REQWATCHL_ROOMPLAYERLIST_NTL {room_id} → reply = the player list (no push before A's ENTRY_GAME)
      then ENTRY_GAME {entry FALSE, side HOME} → room screen
B:    (row selected) REQWATCHL_ROOMPLAYERLIST_NTL {room_id} → reply → "Match Room Details" screen
B:    JOIN_ROOM_NTL {room_id, is_invited NO, password} → {room_owner blob (pid, pname, NTL addresses), room_stat}
      ERR_PASSWDINCORRECT → password prompt · ERR_ROOMNOTFOUND → "no room" dialog
      server → room list UPDATE; player-list UPDATE to A
B:    REQWATCHL_ROOMPLAYERLIST_NTL {room_id} → reply, then ENTRY_GAME {entry FALSE, side AWAY}
A:    SEND_NOTICE ROOM_SHARE_INFO {team id/name/power, chemistry} to both; SET_GAMEMEMBER (nobody entered: ignore)
room: "Start Match" = ENTRY_GAME {entry TRUE, side}
      server → room: WATCH_ENTRY_GAME {entry_count, entrygame[blob{pid, entryNum, gameNum}]} + player-list UPDATE
      owner, when all entered → SET_GAMEMEMBER (empty body)
      server → room: WATCH_DECIDE_GAMEENV {game_env}, WATCH_ROOMSTATE {event StateChanged, state SETENV}
match: GET_MATCHID, SEND_SYNC_NOTICE, GET_SERVER_ENV, P2P START/END, DATASYNC, SET_GAMEMEMBERENV, TEAMSELECT …
after: SET_PLAYDATA_MATCH (HTTP), SEND_STATS_DATA, SEND_GAME_RESULT, REQWATCHL_ROOMLIST, LEAVE_GAME {pid}
      server, when all left → WATCH_ROOMSTATE StateChanged WAITING (both back in the room, rematch possible)
never: a RELOAD push into a game that already holds list entries (uncaught C++ exception, the game exits)

Command reference (Free lobby)

CommandRequestReply / push bodyServer should
GET_BLOCKLIST—count, bklist[blob{name, player_num, max_player_num, block_id}]; empty → "no data"must implement: one block, e.g. "Friendly Rooms"
JOIN_BLOCK / LEAVE_BLOCKblock_id / pidbaretrack block; leaving unsubscribes
GET_LOBBYINFOlobby_idhas_info, title, sentence_info, sentence_introhas_info:"NO", or a server message of the day
REQWATCHL_ROOMLIST—list keyed room_id of rooms: room_id, status, game_phase, name, gameenv{…}, gamer_num, gamer[{pid, is_room_owner, side, enter_no, game_no}], is_passwd, max_players, is_invite_limit, vs_com, owner_pname, owner_lang, room_user_count, is_anyplayers, is_select_gk, auto_start_num, room_number, game_rating_limit, …reply RELOAD; push ADD/UPDATE/DEL to the block's subscribers
CREATEJOIN_ROOMname, match_type (OC_RANKING/OC_FREE/MULTI/MYCLUB_FREE/PESLEAGUE), lang, max_players, is_invite_limit, password, enable_guest, vs_com (PL_VS_PL/PL_VS_COM), use_original_player, is_anyplayers, is_select_gk, auto_start_num, game_rating_limit (NONE/NORMAL/HARD)room_idcreate; push player list to owner; room list ADD
JOIN_ROOM_NTLroom_id, is_invited, passwordroom_owner blob {pid, pname, host_addr, reflexive_addr, relayed_addr, ntl_nat_type}, room_statcheck ERR_ROOMNOTFOUND / ERR_ROOMISFULL / ERR_ROOMSTATNOTMATCH / ERR_PASSWDINCORRECT; the joiner then asks for the player list itself and must get it within 10 s (the reply is enough, live); push an UPDATE to the others
REQWATCHL_ROOMPLAYERLIST_NTLroom_idlist keyed pid: host_addr, reflexive_addr, relayed_addr, ntl_nat_type, pid, room_player_id, room_entry_no, game_entry_no, pname, lang, is_owner, side, is_quality_bad, has_guest, guest_inforeply RELOAD; push on every change; DEL {pid} on leave
ENTRY_GAMEentry TRUE/FALSE, sideentryflag, gameNumthen push WATCH_ENTRY_GAME + player-list UPDATE
SET_GAMEMEMBER—bareowner of a WAITING room with everyone entered → start (DECIDE_GAMEENV, ROOMSTATE SETENV); otherwise bare NOERR as in Quick Match
SET_GAMEENV / push WATCH_DECIDE_GAMEENVcpuLevel (VERYEASY…LEGEND), gametime, injury, ball_type, exGame, pkOnOff, substitution, exSubstitution, limitTime (NOSET/SHORT/MIDDLE/LONG)game_env blob with the same fields (live: the request also carries them only inside its game_env blob)store on the room and echo it as the room-list gameenv (limitTime NOSET hides the room); push DECIDE right before SETENV
push WATCH_ROOMSTATE—event OwnerChanged/AppointOwner/Kicked/StateChanged, owner_pid, state NA/WAITING/SETENV/GAME/RESULT/DISCONWAIT/RESULTWAIT/FORFEITEDGAME/RESULTRETURNWAIT, passwordSETENV on start, WAITING after; AppointOwner (with password) to a new owner, which then re-sends SET_ROOM_OPTION
SET_ROOM_OPTIONpid, name, password, is_anyplayers, auto_start_num, game_rating_limitbareowner only (ERR_NOTROOMOWNER); room list UPDATE
LEAVE_ROOM / LEAVE_GAMEerror_code / pidbareremove member / back to WAITING when all left the game; hand over owner; delete empty rooms
SEND_TEXTCHAT / push WATCH_TEXTCHATchannel (BLOCK/ROOM/TEAM/…/COOP_ROOM), statement, list_flg CHAT_SEND/CHAT_BAN, list_pidchannel, from_pid, name, statementpush to the room (or block) members
REQWATCHL_BLOCK_MATCH_LISTpidlist keyed room_id of running matches (home/away pname, team, score, game_phase)optional; empty RELOAD
SET/GET_PLATFORM_SESSIONpid, data_size, session / pid, room_iddata_size, sessionstore/return; Steam overlay invites probably don't work in our setup

What our server can reuse

The NTL address store, _pname, _send_later, the notice relay, GET_GAMERELAY, SET_GAMERELAY_CHECK_RES, GET_MATCHID and the events code all work as they are, if at match start the server inserts the usual st["rooms"][id] = {owner, members, t}. Only the lobby / block / room-list layer is new (a pesrooms.py). The full per-handler spec is in notes/re/functions/rooms.md.

Still unknown (two-client test): whether REQWATCHL requests really go on the wire; the order of SET_GAMEENV vs CREATEJOIN_ROOM; the commands between SETENV and GAMELOAD (the menu flow is data-driven); whether a Free-lobby client also sends LEAVE_ROOM after a match; whether chat should echo to the sender.

↑ Back to contents

Co-op (2v2, 3v3) and spectating

Live (2026-11-06): what this section predicted from the code was only partly right. In 1.01.00 co-op never connects: it builds its peer list but never hands it to the P2P layer, and that layer takes exactly one peer. With mod 0.5.0 (two hooks that add the missing step) and pescoop.py, an Online Co-op Casual Match with one human per side (CPU teammates) connects and kicks off. Matches with two or three humans on a side can't run. The server must echo each player's own SYNC_PROGRESS notice, answer GET_GAMERELAY with "P2P" and give each side a real team. Details: coop2.md, livetests.md. LIVE

In plain words: co-op reuses the 1v1 match machinery. The game was meant to open one player-to-player session between all 4 or 6 players (every player connects to every other) — but see the live note above. The server's new job is matchmaking: first form each side ("group matching"), then pair two sides ("co-op matching"), using two pushes. Spectating is store-and-forward: the players upload their match while it's played, and viewers download it in encrypted chunks over HTTP.

How co-op works STATIC

[menu]   GET_COOP_MAINMENU_INFO, GET/SET_COOP_QUICKMATCHOPTION, GET_COOP_PROFILE, GET_IS_JOIN_COOP_ROOM, reject lists
[party]  optional co-op room (CREATEJOIN/JOIN/LEAVE_COOP_ROOM, REQWATCHL_COOP_ROOM_MEMBER, …)
TaskCoopMatchingManager (0x141079280):
  1  every human: START_COOP_GROUP_MATCHING → push WATCH_COOP_GROUP_MATCHING FINISH   ("your side is formed")
  4  vs-COM: START_COOP_VSCOM_OPPONENT → push WATCH_COOP_VSCOM_OPPONENT (CPU squad)
  6  group owner only: START_COOP_MATCHING → push WATCH_COOP_MATCHING FINISH to all  ("opponent side found")
  9  TaskCoopSession: GET_GAMERELAY → the same 1v1 TaskMatchSession (match id, notices, TURN, P2P)
     → SET_GAMERELAY_CHECK_RES → WATCH_GAMERELAY_CHECK_RES → SEND_MATCHING_RESULT
 11  TaskCoopStartGame: SET_GAMEMEMBER → SET_GAMEMEMBERENV → team sync → SET_GAMETEAM → GET_MATCHID (must be non-empty)
     → GET_COOP_MATCH_DATA → match as in 1v1
after:   SEND_GAME_RESULT … + SET_COOP_MATCH_DATA, SET_COOP_PLAYER_GRADE, GET_COOP_LEVEL_RESULT, RETURN/LEAVE_COOP_ROOM

The matching commands

Menus, post-match and party rooms

CommandReplySafe server reply
GET_COOP_MAINMENU_INFOis_coop_banned, is_season_end, division, pre_season_rank, …flags "NO", ranks 0
GET/SET_COOP_QUICKMATCHOPTIONis_vscom, force_alone, cpu_level_min/max"NO", "NO", "NORMAL", "NORMAL"; store SET
GET_COOP_PROFILEuser_info{pid, pname} and, beside it, coop_profile_data{coop_level, coop_level_point, follower, coop_manner, online_match, vscom_match, match_data} (checked on the game's parser)level 1, the real courtesy rating, zeros
GET_IS_JOIN_COOP_ROOMis_join_coop_room"NO"
GET_COOP_REJECT_LIST / SET_COOP_REJECTreject_list[{pid, pname}] (entries 0xb0 bytes in the client)stored per player; blocked pairs are never matched
SET_COOP_MATCH_DATA / GET_COOP_MATCH_DATAper-player performance blob {match_stats, grade, match_data_size, match_data}store; return the last one (or size 0)
SET_COOP_PLAYER_GRADEplayers rate team-mates and opponents grade_list[{pid, grade}]NOERR (could feed coop_manner)
GET_COOP_LEVEL_RESULTcoop_level_user_list[{status, user_id, point, before/after_point, before/after_level, …}]one entry per member, unchanged values

Party rooms: CREATEJOIN_COOP_ROOM {basic_settings{room_name, password, is_com_match, coop_level, coop_manner, …}, match_settings{user_team_id, enemy_team_id, cpu_level}, kind}, GET_COOP_ROOMLIST, JOIN/LEAVE/RETURN_COOP_ROOM, GET/SET_COOP_ROOM_OPTION + push WATCH_COOP_ROOM_OPTION {…, room_phase, countdown…}, member list REQWATCHL_COOP_ROOM_MEMBER (same list protocol, key player_index), SET_COOP_MATCH_READY, SET_COOP_ROOM_GUEST, SET_COOP_ROOM_TO_MATCHING {to_match_pid_list} → push WATCH_COOP_ROOM_TO_MATCHING_MEMBER {player_index_list}, REQWATCH_ERROR_COOP_ROOM_TO_MATCHING {is_error, error_kind NOERR|NOT_ENOUGH_PLAYER|INCLUDES_RENTAL|RED_CARD|CONTRACT}, push WATCH_BREAKUP_COOP_ROOM when the owner leaves. The room's members then send START_COOP_GROUP_MATCHING, and the server must put them in one group. STATIC INFERRED

Effort

Spectating

PLAYERS                                      SERVER                               VIEWER
GET_MATCHID → {match_id, upload:"YES"}       decides which matches are recorded
START_SEND_GAME_SEQUENCE_DATA {pid}          opens a recording for the match
every ≤5 s / 16 KB: SEND_GAME_SEQUENCE_DATA  stores the records
  {match_id, game_seq_data[blob{type, fromId,   re-encodes, chunks, [zlib], AES-256-CBC
   channelId, sequenceNumber, data, data_len}]}                       GET <WATCHING_GAME url>/<id>/1.enc, 2.enc …
                                                                   ◄── GET_WATCHING_MATCH_LIST
                                                                   ◄── SEND_WATCHING_RESULT (at the end)

Still unknown: how Konami grouped solo players; which is_owner the session host needs when both groups have owners; whether 6-peer full mesh connects through our setup; the contents of match_data; room_phase values; the minimum vs-COM squad push. (The spectating URL id is the listed match_id, and data is base64: both settled live.)

↑ Back to contents

In plain words: at online login, the game sends two checksums of its player database. If two players' databases differ (edited stats, a different live update), their match fails with "DATAPACK error" after connecting, so the server should only pair players whose checksums match. The game can also show the server's own messages: a pop-up announcement, a news list and a "maintenance soon" warning. Everything else in the menus is safe with a plain "OK".

Order at online login LIVE

SEND_LOG, GET_GAME_TEAM_LIST, GET_MATCH_ANALYZE_ENV, GET_MANNER_WARN, GET_DMM_NOTIFICATION, GET_PRIVATEINFOTITLELIST, GET_DMM_PLAYERINFO, SEND_LOG, JOIN_ONLINE_MODE, CHECK_CHEAT, GET_URGENT_ANNOUNCEMENT (PRE_MAIN), GET_MANNER_WARN, GET_PRIVATEINFOTITLELIST, GET_QUICKMATCHOPTION, (GET_MAINTENANCE_INFO), START_MATCHING. Login errors here carry the tag CCWR (OnlineLoginTaskConnectMenu2.cpp).

CMD_CHECK_CHEAT: checksums of the player database

CMD_JOIN_ONLINE_MODE: a natural version gate

Request online_mode (QUICK…), patch_version "1.01.00", dlc_version, livedata_version, extradata_version. Replying ERR_MODE_BLOCKED blocks entry with its own message (CCWR_0003), which is a clearer failure than a DATAPACK error after connecting. Other errors (including ERR_DIFFERENT_PATCHVERSION / LIVEDATA / DCVERSION) end in the generic login error CCWR216, possibly after the command's own text. STATIC LIVE

CMD_SEND_TAMPER_DATA: the game reports its own tampering

After a Quick Match or a vs-COM match start, the game recomputes param_check_sum. If it differs from the login value (stats changed in memory, e.g. by a trainer), or the squad has "Unregister:" / "Doping:" / "costover" entries, it sends {pid, match_category, data, error_code} (TaskWatchCheat 0x1411263a0). Never seen in our logs. Reply NOERR and record a cheat flag for the admin page. STATIC

Fair-play rating and word filter

Showing our own text in the game

Profile, account and store

CommandWhat it isServer should
GET_GP_ACHIEVEMENTGP balance all_gp, coins pes_point, all_achievement_bit_arraybare NOERR shows 0 GP; only myClub uses them
GET_PLAYER_PARAMETERLISTserver override of player stats (108 values each) for myClub squads, matched by position in the listbare NOERR (an empty list changes nothing)
GET_AVATAR_HTTP / SET_AVATARprofile picture: avatar_data base64, avatar_data_size ≤ 48 KiB, avatar_md5 lowercase hex MD5 of the decoded bytesthe server stores SET_AVATAR (128×128, 3 bytes a pixel: R,G,B,A at 6 bits each, 49152 bytes) and returns it; other players see it, e.g. in matchmaking LIVE
SEND_LOGlive-update log; log is always "NotImplement" in retailNOERR
SET_LANGUAGElang; result ignoredNOERR; store for localized news
LEAVE_ONLINE_MODE, JOIN/LEAVE_OFFLINE_MODEpresence: online_mode / offline_mode ("EXHIBITION"); results ignoredNOERR; could drive a presence status
GET_STORE_PRODUCT_LIST, GET_STORE_TRANSACTION_STATE, *_STEAM_STORE* (HTTP)myClub coin store; Steam microtransactionsempty / no pending transaction; reply an error to START_STEAM_STORE

Live (2026-11-06): different data → GNCX_0006 "Unable to connect." 2 s after the match start (the sums do block the match); is_revision_check:"NO" → team selection reached. GNCX_0006 is the same param/entry compare as MXNV_0017: the multiplay object reports it one tick before the match task would (gncx_labels.md). Live: with the check off, a match with different player stats stayed in sync past minute 15 (identical minimaps), so a mismatch is unfair rather than fatal. Still unknown: whether a no-banner news item shows and how priority sorts; the image format for banners, ads and avatars.

↑ Back to contents

Transport layers: large messages, the AES tier, dlcp, and the player-to-player link

In plain words: the game has three network stacks. (A) The server connection we already speak, which also has an unused AES mode. (B) The encrypted UDP link between the two players. (C) The NAT-traversal messages. Only one thing here needs a server change: messages bigger than about 1 KB have to be split into fragment frames.
(A) Server link (gate / ACCOUNT / MENU, TCP 10000)
    onlinesystem::Client → fox::ncl NclMio (Blowfish tier)  or  NclEnhancedMio (AES-256 tier) → msgpack
(B) Player ↔ player match link (UDP, direct or through TURN)
    onlinesystem::P2pFullMeshSession / CsClientSession / ObserveSession
      → kps::msp (multi-session protocol) → kps::domain::LlDomain + Clltcp (connections)
      → kps::lltcp FastTcp / ScalableTcp (reliability, pacing) → kps::dlcp (key exchange + RC4 records)
      → onlinesystem::NtlNetworkIo / P2pTurnIo* → ntl → UDP socket
(C) NAT traversal (ntl, cobra\NatTraversal\NTL): STUN-format messages with Konami methods/attributes

Frame kinds and fragmentation

KindRoleBody after decryption
0x60whole messageu32 data_len, u32 original_size, u8 zlib, data
0x70first fragmentu32 total_len, u32 chunk_len, u32 original_size, u8 zlib, chunk
0x71middle fragmentu32 chunk_len, chunk
0x72last fragment, then inflate and parseu32 chunk_len, chunk
0x10, 0x20–0x22same four roles, "no crypto" variant; the client never sends them and treats a received 0x10 like 0x60same
0x1060, 0x1070–0x1072same four roles in the AES tier; the kind is not XOR-maskedsame

The "enhanced" AES tier (NclEnhancedMio / NclCryptAes)

kps::dlcp: security of the player-to-player link

NAT traversal messages (ntl)

VDPCHAT and voice chat

VDPCHAT is one of four server types (with GATE, ACCOUNT, MENU). Entries of that type are stored in their own list (+0x4070 of the server list), but nothing reads that list. Voice chat (onlinesystem::VoiceChatImpl, ktVoice codec, TaskVoiceChat in the MOM lobby) appears to ride the match session. Don't advertise VDPCHAT. STATIC INFERRED

Still unknown: the lltcp header (sequence/ack/window), the contents of UHP_* messages, and the match-layer packet format (MatchOnline*.cpp messages inside msp). A hex dump of the first ~64 bytes of each UDP send during matchmaking and kick-off would settle all three.

↑ Back to contents

The big modes: myClub, clans, PES League, Matchday, events

In plain words: these modes are mostly server-side games of their own. The client only shows what the server says: which players you own, their levels and contracts, agents, auctions, competitions, standings. Field names and request formats come from the client below. The rules, card stats, pools and prices were Konami's and aren't in the game, so any revival means designing them again.

Survey level: request and reply fields are extracted for every command (see the catalogue), but the flows below haven't been traced state by state. STATIC fields, INFERRED meaning.

myClub (125 commands)

Clans (17)

Create, search, request to join, accept or reject, expel, settings, members' current online mode, and an HTTP clan ranking with divisions (GET_CLAN_RANKING {division}). Mostly records and lists of player blobs (pid, pname, online ids). Moderate effort; useful as a "friends group" feature.

PES League (17) and events / competitions (12)

DONE Online Tournament is in the server (pestourney.py, live 2026-11-08): friends' 1v1 competitions in the game's own eFootball League screens. A monthly "Friends Cup" runs by itself; hosts can add their own through /admin/api/tourneys (name, dates, team list, match length, outline text). The player enters with a team, presses Start Match (it uses Quick Match matchmaking with matching_type "PES_LEAGUE", and only players of the same competition are paired), and gets 3 points for a win, 1 for a draw. The after-match "Changes in rating" screen shows the points; the 1v1 menu, Rankings (5 pages), Current Match Results, Competition Outline and, after the end, the "Competition Results" notice with the final position all show real data.

Matchday (20)

DONE Matchday is in the server (pesmatchday.py, live 2026-11-06): one standing event, Home and Away sides with four teams each, ordinary 1v1 matches (win 3, draw 1), points per player and per side. Needed: the event map inside compe_info.info_overview, a future end_group_match_date, and the player's own squad (sent with JOIN_MATCHDAY) returned by GET_MATCHDAY_SP_GAMEPLAN, or the match crashes while loading. Only the group stage: the pick-up stage and the watched final are not built (matchday2.md).

2026-11-06 (modes2.md, static): the group stage looks possible with one fake Matchday: JOIN_MATCHDAY_MODE → GET_MATCHDAY_LIST → GET_MATCHDAY_INFO → pick a side and a team → JOIN_MATCHDAY → GET_MATCHDAY_MAINMENU_INFO (progress "GROUP_MATCH") → START_MATCHING matching_type "MATCHDAY". The final (watched by others) needs spectating. Events (COMPEV) have no menu entry of their own: they are reached only from myClub and co-op event rooms.

Two-sided group events: join a side, play "pickup" matches (START_MATCHDAY_PICKUP_MATCHING → push WATCH_MATCHDAY_PICKUP_MATCHING with member host_addr, like Quick Match), collect Matchday points, and a final match between the sides' representatives that others watch (SET_MATCHDAY_START_WATCH_MATCH, GET_MATCHDAY_FINAL_RESULT_INFO {is_exist_watch_match_data}). Needs spectating (see co-op and spectating).

Random Selection, social, fair play

In-match sync messages (14)

TEAM_DATA_SYNC, USER_DATA_SYNC, BL_DATA_SYNC, SYNC_COMMENTARY, SELECT_SIDE, COMPLETE/UPDATE_TEAM_SELECT, CMD_ERR, CMD_LACK, CMD_SENDFAILED, LOST_GUEST, SET_GUEST, REVISION_CHECK have no reply parser. They look like player-to-player multiplay commands carried inside the match session (MultiplayCmdTeamDataSync.cpp), not server commands. INFERRED CMD_RECONNECT is a real server command (see match flow).

↑ Back to contents

Inside the game binary

In plain words: the online code mapped on this page is a small part of the game. The rest (match engine, menus, offline modes, graphics) never matters to the server, because the games run the match themselves. This overview helps find code quickly if a feature ever needs it.

↑ Back to contents

The game database: players, teams, rosters

In plain words: every player and team the game knows is in a set of small files inside the game's archives. They're compressed but not encrypted, and now fully decoded. The proof: recomputing the game's own login checksums from these files gives exactly the values our test clients sent. With this, the server can turn the player and team ids in match results into names, build squads, and tell two players why their data doesn't match.

Where it is STATIC

Player.bin: 312 bytes per player (18,452 in the update pack) STATIC

OffsetField
+0x00 u32associated / legend club (e.g. Totti → Roma). Not the current team, which comes from PlayerAssignment.
+0x04 u32loan parent club (0 = not on loan)
+0x08 u32player id (bits 0–17; Messi = 7511)
+0x0c, +0x10contract-until / loan-until dates as yyyymmdd in bits 0–26; the top 5 bits hold the free-kick motion and the playing style
+0x1bheight − 100
+0x1cnationality (bits 9–17), second nationality (bits 0–8), goal celebration, place kicking
+0x20…+0x43bit fields holding the 108 parameters (value = (u32 >> shift & mask) + add)
+0x44, +0x81, +0xbe, +0xfbnames, 61 bytes each, UTF-8: Japanese name, shirt name, second short name, main name ("L. MESSI")

The 108 parameters (in the order the checksum uses): registered position; 13 position ratings (none / B / A); the 29 abilities (Offensive Awareness, Ball Control, Dribbling, Tight Possession, Low Pass, Lofted Pass, Finishing, Heading, Place Kicking, Curl, Speed, Acceleration, Kicking Power, Jump, Physical Contact, Balance, Stamina, Defensive Awareness, Ball Winning, Aggression, GK Awareness/Catching/Parrying/Reflexes/Reach, weak-foot usage and accuracy, form, injury resistance); height and weight; foot; age; playing style (22 values); 7 COM playing styles; 41 skills; and motion and appearance values. Names come from the game's own UI-order tables (0x142978fd0 abilities, 0x142978f90 positions, 0x142979100 skills, 0x1429790d8 COM styles). The bit map was checked against the game's real unpack code for 150 random players with zero differences. A few names are still uncertain (p43, p48–p50, the motion order). Skill names follow the game's own English labels: 74 = Long Range Drive (PES 2020's "Long Range Curler"), 106 = Long Range Shooting, 99 = Step On Ball Control, 105 = Cross Over Turn, 101 = Rising Shots. STATIC INFERRED

Team.bin and PlayerAssignment.bin STATIC

What the login checksums really are LIVE STATIC

Saves and the option file

Saves live in Documents\KONAMI\eFootball PES 2021 SEASON UPDATE\save\ (types EDIT, SYSTEM, …), except the downloaded Live Update, which is C:\ProgramData\KONAMI\eFootball PES 2021 SEASON UPDATE\save\LIVE00000000 (live test). They're encrypted with an MT19937-based XOR stream (0x14140e0f0), keyed from 64 header bytes at +0x100. Where the master key comes from wasn't traced, and no save files were read. Edit data overrides the database, so an edited option file changes the checksums. STATIC

Using it

notes/re/functions/tools/pesdb.py reads the CPKs directly (update pack first): checksum (both sums, also the live-data variant), player <id>, team <id>, dump out.json. For the server, it gives names for the ids in SET_PLAYDATA_MATCH and line-ups, squads for vs-CPU co-op and a myClub-lite, and a way to name the cause when two players' checksums differ (missing update pack vs edited data).

↑ Back to contents

Live Update: how the game downloads new data

In plain words: at login, the game asks the server whether there's new "Live Update" data. If there is, it downloads one file over plain HTTP, checks it against a SHA-256 hash the server sends, saves it, and loads it on top of its data, the same way it loads the update pack. Our server could use this to give every player on it the same rosters and form, so their data never mismatches. Konami's server did exactly this, and the game expects nothing more.

Three kinds of downloadable data STATIC

All three are ordinary CRI CPK archives, loaded on top of the base data (driver livedata::LiveDataSetFlow, LiveDataSetFlow.cpp, error prefix SGJC, update fn 0x1420ac3f0):

KindReply listSaved asLoad priorityVersion file inside
Live Updatedlcfile_list[0]save slot 0x1b "Live Update"5common/etc/version/version_wu.bin
Variation 0–15variation_file_list[i]slots 0x1c–0x2b5version_vd00…15.bin
Extra Updateextra_file_list[0]file ExtraUpdate.bin6version_xu.bin

The sequence

  1. Data pack gate: the game's update-pack version (version_dp.bin in dt80 = "1.00" | "1.01.00" | "2396" → 100) must not be lower than the server's DLC version, which is GET_SVRVERSION dlc_version (copied to [netmgr+0x68] by 0x1410f08c0). Otherwise ERROR_CODE_DP_VERSION_OLD (SGJC392). Our "1.00" passes. GET_SVRVERSION livedata_version has no reader. STATIC
  2. Ask: CMD_GET_DLC_FILELIST over HTTP to the FLOW URL: file_type=LIVEDATA&region=REGION_ALL&pid=0. Sent at every login and again on entering an online mode, before JOIN_ONLINE_MODE and CHECK_CHEAT. LIVE
  3. Decide: Live Update is new if atoi(dlcfile_list[0].dlc_version) > the version of the Live Update already saved (0 if none). Version strings in the files parse as "a.bb" → a·100+bb, so "1.01" ↔ "101". STATIC
  4. Download: plain WinHTTP GET of the entry's url (https only if the URL says so). It needs status 200, and the body must be exactly size bytes: longer fails, shorter is zero-filled and fails the hash. The limit is 120 s for the whole transfer. STATIC
  5. Check: SHA-256 of the downloaded bytes as 64 lowercase hex characters, compared exactly with hash (mismatch → "wrong hash", SGJC1006). That's the only check: no signature or key. STATIC
  6. Save and load: the raw bytes go into the save slot (save failure → SGJC1102), then get loaded as a CPK at priority 5 (load failure → SGJC1306). Afterwards the edit data (option file) is re-applied on top, so players' own edits stay. A "LiveDataSetDialog" confirms it. STATIC

CMD_GET_DLC_FILELIST reply STATIC

What a Live Update file contains

Effect on matchmaking

CHECK_CHEAT is sent after the Live Update is applied, and with live data active the checksum also includes each player's weekly form. So players with the same Live Update get the same checksums (live: only while the server keeps listing the update; an empty list at mode entry makes the game fall back to its base data), and a player without it (or with an older one) would hit "DATAPACK error" against them. Players report their live-data version in JOIN_ONLINE_MODE livedata_version ("0" today), which the server can compare. There's also an ERR_DIFFERENT_LIVEDATA_VERSION error code, whose on-screen handling is unverified. STATIC LIVE

Publishing our own update (what the game expects)

  1. Build a CPK with common/etc/version/version_wu.bin (e.g. "1.01" | "1.01.00" | a build string) and the changed common/etc/pesdb/*.bin tables. Our tools/pesmod CPK writer produces CPKs the game accepts.
  2. Serve it with HTTP GET at a fixed URL on the server's HTTP port: status 200, exact Content-Length, raw bytes. httpgate.py needs a new route for this.
  3. Reply: {"result":"NOERR", "dlcfile_list_count":1, "dlcfile_list":[{"name":"livedata_101.cpk", "size":<bytes>, "url":"http://<server>:8080/livedata/101.cpk", "hash":"<sha256, lowercase>", "dlc_version":"101"}], "variation_file_list_count":0, "variation_file_list":[], "extra_file_list_count":0, "extra_file_list":[]}. To publish again, raise the version in both the file and the reply.
  4. Compare livedata_version at JOIN_ONLINE_MODE and pair players only when their checksums match.

Tested live: the Live Update slot is saved as C:\ProgramData\KONAMI\eFootball PES 2021 SEASON UPDATE\save\LIVE00000000 (encrypted), and the predicted checksum matched exactly (details). Still unknown: the folder for ExtraUpdate.bin; which tables are re-read after loading; how the client shows ERR_DIFFERENT_LIVEDATA_VERSION; what Variation and Extra files were used for (probably myClub card art and stadium assets).

↑ Back to contents

Tuning the connection: proto_opt, failover, NAT type, NAT test

In plain words: every timeout and threshold of the player-to-player link, including how long the game waits for a connection and when it switches between the direct path and the TURN relay, comes from a JSON text the server sends in GET_SERVER_ENV. We send none, so the game uses its built-in defaults. Konami's real values are lost, but our server can now tune them. The NAT type the game reports is never used by the game itself.

GET_SERVER_ENV.proto_opt: the tuning tree STATIC

Network key (selection)DefaultMeaning
NetworkIoConnectionTimeoutUs15 000 000direct-link connect timeout. Two attempts ≈ the 30 s we see before ER_MATCHING_RETRY
ChangeoverPeerReceiveIdleTimeMsThreshold7500silence on a route before failover
ChangeoverToTurnBufferCriticalConditionTimeMsThreshold10000direct link congested this long → TURN
P2pModeTurnSendEnable / …IntervalMstrue / 5000keep the other route alive
TurnNetworkIoTcpConnectionTimeoutMs / ConnectionTimeoutMs10000 / 10000the TURN TLS-over-TCP connect must finish in 10 s
TurnNetworkIoPingIntervalMs / QuickPingIntervalMs5000 / 1000RTT probing on the TURN route
TcpFallbackEnable / TimeoutMsfalse (true for CS) / 10000TCP fallback of the link
MaxPayloadLength1196max UDP payload (leaves room for TURN overhead)
DscpEnable / Dscptrue / 46packet priority marking (EF)

The other two 15 s timeouts are ProtocolTransmission.ConnectionTimeoutUs and Domain.LinkTimeoutUs (key exchange: Domain.KeyExchangeTimeoutUs 20 s). Lever to test for hard-to-connect pairs: {"P2P":{"Network":{"NetworkIoConnectionTimeoutUs":30000000}}}. Keep proto_opt small so GET_SERVER_ENV stays within one frame. The full key list is in notes/re/functions/nettune.md.

When the game switches between direct and TURN STATIC

P2pTurnIoFailover (only when a TURN list is sent) starts on the direct path. It moves to TURN, while the TURN route is up, when: the direct link isn't connected (reason 1); the direct link has been congested for over 10 s (reason 3); or TURN is receiving but the direct link never received (reason 4) or has been silent for 7.5 s (reason 5). It goes back when the direct link receives within 7.5 s again (reason 6). After a congestion switch it waits 0 s, 10 s, 20 s… (at most 60 s) before going back. The reasons are reported in the post-match stats (TURN_CHANGEOVER_REASON/TIME). The TURN server must keep allocations alive for the whole match.

Possible limit: TURN setup checks that one config list has exactly one entry (0x14122eab1). If that list is the peers, TURN mode would only work 1v1 and co-op with a TURN list would fail with "Error CreateMultiplaySession". Test co-op with TURN before relying on it. UNKNOWN

The NAT type value (ntl_nat_type) STATIC

The NAT test and GateInfo.php

↑ Back to contents

Live test results (2026-11-05 and 11-06)

In plain words: two game copies on one PC against a test copy of our server. The Live Update works end to end, and the game's checksums came out exactly as predicted. The TURN relay is accepted but not yet usable: the game also wants a second relay leg over DTLS/UDP. Reconnect after a short server outage works.

TURN relay LIVE

Live Update LIVE

Reconnect, outages, AFK LIVE

Menus LIVE

The eFootball menu lists Quick Match, Online Divisions, Online Co-op, Matchday and Online Tournament. Kick Off lists Local Match, Local Match [UEFA EURO], Co-op, Random Selection Match, Versus, League and Cup. The list scrolls: after Cup come Friendly Match Lobby (the Free 1v1 room lobby), Team Play Lobby (MOM) and Training. (An earlier version of this page wrongly called the lobbies hidden; the first test stopped scrolling at Cup.)

Friendly Match Lobby, live: JOIN_ONLINE_MODE {online_mode "FREE"} → SEND_IPANDPORT_NTL, GET_SERVER_ENV, CHECK_CHEAT, GET_URGENT_ANNOUNCEMENT, GET_MANNER_WARN, GET_PRIVATEINFOTITLELIST → GET_LOBBYLIST {lobby_type "FREE"} → JOIN_LOBBY → GET_LOBBYINFO → GET_BLOCKLIST. A bare "OK" here gives "Unable to send or receive data."; with one block it continues: JOIN_BLOCK {block_id} → REQWATCHL_ROOMLIST is a real request → the "Match Room List" screen ("Set up Match Room", "Number of rooms"). Creating a room: Room Settings (name, security, password) → General Match Settings (time, injuries, ball, time limit, overtime, PK, substitutions) → CHECK_STRING {room name} → CREATEJOIN_ROOM first, then SET_GAMEENV (game_env = a blob of the 9 settings) → REQWATCHL_ROOMPLAYERLIST_NTL {room_id}. Room creation works when the server follows three rules found by code reading and a live bisection: (1) after CREATEJOIN_ROOM, push the owner's room into the room list (ADD) before the player list, because the game looks for its own pid in the room list; (2) in the player list, pname.psn_user_id is a nested blob {account_id, online_id, is_valid_cache} (an object, as in WATCH_MATCHING, exits the game; an empty list is read as garbage memory); (3) answer REQWATCHL_ROOMPLAYERLIST_NTL only with the reply and push no list before the owner's ENTRY_GAME: our test server also pushed the same list 50 ms later, and that second copy ended the game about 0.2 s later every time (an UPDATE after ENTRY_GAME was harmless). With the reply only, the owner sends ENTRY_GAME {entry FALSE, side HOME} and shows the room screen "[001]Room <name>". A bare NOERR reply without a list gives LEAVE_ROOM {error_code "VZLN_0002"} (creation failed). A second player's Match Room List showed "Number of rooms 0" although our reply listed the room. Code reading found the cause: the list builder (0x14104c730) hides every room whose gameenv.limitTime is NOSET or unknown, and also rooms with is_invite_limit YES or an empty gamer list. Our test server sent NOSET because it never unpacked the game_env blob of SET_GAMEENV (the game had sent MIDDLE). The fix: store that blob, echo it as gameenv, and push a room-list UPDATE after SET_GAMEENV (notes/re/functions/roomlist.md). An empty list as owner_pname.psn_user_id in the room list ends both games (notes/re/functions/livetests.md, roomcrash.md). LIVE

Friendly Match Lobby, whole flow (2026-11-06): with those rules, a friend picks the room and both players reach team selection.

  1. Room list: the second player sees "Number of rooms 1" and the row "[001]Room <owner>" with Owner, Capacity 1/2 (gamer_num/max_players) and an EN tag (owner_lang).
  2. Room details: selecting the row sends REQWATCHL_ROOMPLAYERLIST_NTL {room_id} from a non-member. Our reply gives the details screen: the owner's settings from gameenv (limitTime MIDDLE shows as "Time limit Normal"), Home = owner, Away = "Accepting Participants", Enter.
  3. Join: JOIN_ROOM_NTL {room_id, is_invited "NO", password} → reply {room_owner blob, room_stat} + room-list UPDATE. The joiner then asks for the player list (reply) and sends ENTRY_GAME {entry FALSE, side AWAY}. A player-list UPDATE goes to the owner, who sends SEND_NOTICE ROOM_SHARE_INFO (team id/name/power, chemistry) to both and an empty SET_GAMEMEMBER. Both screens show Home and Away names.
  4. Ready: "Start Match" sends ENTRY_GAME {entry TRUE, side}; after our WATCH_ENTRY_GAME push that side's OK turns green.
  5. Start: when both have entered, the owner sends SET_GAMEMEMBER again. The server pushes WATCH_DECIDE_GAMEENV {game_env} and WATCH_ROOMSTATE {StateChanged, SETENV} to both. The games then run the usual match start: GET_MATCHID, SEND_SYNC_NOTICE, GET_SERVER_ENV, P2P START/END, DATASYNC. The owner sends SET_GAMEMEMBERENV {envlist [blob{pid, side, sideLeader}]} (default reply is enough), then TEAMSELECT. Both games showed team selection. Stopped there; from here it is the same match session as Quick Match.

Player-list UPDATE pushes after a player's ENTRY_GAME, and to the owner when someone joins, were harmless. The test handlers live outside the repo; the production server does not have the lobby yet. LIVE

Second round (2026-11-06 afternoon)

Third round (2026-11-06 evening)

Online Divisions, Team Play Lobby, room counters (2026-11-06 evening)

Full details: notes/re/functions/livetests.md.

↑ Back to contents

What the player sees: error texts and server replies

In plain words: every error reply our server can send already has a matching text in the game, often a clear one: "account suspended", "server busy", "your version is out of date", "the room is full". This section shows how the game picks the text, and which replies give players a friendly message instead of a bare error code. All 764 rows of the game's server-error table are resolved to the English text.

How a text is found STATIC

Replies that give players a clear message STATIC

UseReplyText the player sees
BanCMD_LOGIN → ERR_INVALID_ACCOUNT"…we have suspended your account in line with our policy on violations…"
Server fullCMD_LOGIN → ERR_FREE_TO_PLAY_FULL"Due to excessive traffic on the server, login is currently restricted. Please try reconnecting again later."
MaintenanceCMD_LOGIN → ERR_SERVERNOTREADY"The online service is currently unavailable. The server may be undergoing maintenance…" (includes Konami's website address)
Wrong game versionJOIN_ONLINE_MODE → ERR_DIFFERENT_PATCHVERSION"Your version of the game is out of date. Please update to the latest version and reconnect."
Wrong Live UpdateJOIN_ONLINE_MODE → ERR_DIFFERENT_LIVEDATA_VERSION"Unable to log in while using outdated Live Update data."
Missing data packJOIN_ONLINE_MODE → ERR_DIFFDCVERSION"Data Pack Incompatible. Please reboot and update the software."
Mode closedJOIN_ONLINE_MODE → ERR_MODE_BLOCKED"<mode> is currently unavailable online…" (login error dialog, CCWR_0003)
Feature closedSTART_MATCHING → ERR_COMMAND_BLOCKED"This feature is currently unavailable. Please refer to Online Information for further details."
Edited player dataCHECK_CHEAT → ERR_PARAMCHECK_FAILED"Invalid player data found." (then the login error "Unable to load content data…", CCWR_0014)
Room full / in a match / wrong passwordJOIN_ROOM_NTL → ERR_ROOMISFULL / ERR_ROOMSTATNOTMATCH / ERR_PASSWDINCORRECT"Cannot participate due to full quota." / "Could not enter because a match is currently being played." / "Incorrect password."

↑ Back to contents

Error codes: every place the online code reports one

In plain words: an on-screen code like EYRH763 or GNCX_0003_… points to one line of the game's source code. This table lists all 186 places in the online code that report an error, so a code a player sees can be looked up here.
Code (line form)Code (sub-code form)Source fileLineMeaning
—CommandObjectCmdSendAlive.cpp
LZFP106LZFP_0001CommandObjectCmdSendAlive.cpp106SEND_ALIVE reported a degraded or lost link
SGJC392LiveDataSetFlow.cpp392Live update: data pack version too old
SGJC474SGJC_0003LiveDataSetFlow.cpp474
SGJC573LiveDataSetFlow.cpp573
SGJC729SGJC_0006LiveDataSetFlow.cpp729
SGJC809SGJC_0007LiveDataSetFlow.cpp809
SGJC880SGJC_0008LiveDataSetFlow.cpp880
SGJC963SGJC_0010LiveDataSetFlow.cpp963
SGJC1006SGJC_0012LiveDataSetFlow.cpp1006Live update: downloaded file has the wrong hash
SGJC1102SGJC_0014LiveDataSetFlow.cpp1102
NNAB121MenuOnlineObserverTaskSync.cpp121
NNAB162NNAB_0001MenuOnlineObserverTaskSync.cpp162
NNAB178NNAB_0002MenuOnlineObserverTaskSync.cpp178
NNAB187NNAB_0003MenuOnlineObserverTaskSync.cpp187
NNAB283NNAB_0006MenuOnlineObserverTaskSync.cpp283
MMGC118MMGC_0002MultiplayCmdTeamDataSync.cpp118MMGC_0002: team data sync between the players failed (seen with team id 262143 = no team)
MMGC139MMGC_0003MultiplayCmdTeamDataSync.cpp139
HAJT147HAJT_0001OnlineLoginMenuEulaChangeLog.cpp147
HAJT192HAJT_0007OnlineLoginMenuEulaChangeLog.cpp192
HAJT234HAJT_0011OnlineLoginMenuEulaChangeLog.cpp234
BUMR166BUMR_0001OnlineLoginMenuSelectEulaNation.cpp166
BUMR207BUMR_0002OnlineLoginMenuSelectEulaNation.cpp207
BUMR226BUMR_0003OnlineLoginMenuSelectEulaNation.cpp226
BUMR234BUMR_0004OnlineLoginMenuSelectEulaNation.cpp234
BUMR247BUMR_0005OnlineLoginMenuSelectEulaNation.cpp247
BUMR260BUMR_0006OnlineLoginMenuSelectEulaNation.cpp260
BUMR518BUMR_0007OnlineLoginMenuSelectEulaNation.cpp518
BUMR539BUMR_0008OnlineLoginMenuSelectEulaNation.cpp539
BUMR590BUMR_0009OnlineLoginMenuSelectEulaNation.cpp590
BUMR608BUMR_0010OnlineLoginMenuSelectEulaNation.cpp608
BUMR616BUMR_0011OnlineLoginMenuSelectEulaNation.cpp616
QIMJ166QIMJ_0001OnlineLoginTaskConnectAccount.cpp166
QIMJ205QIMJ_0002OnlineLoginTaskConnectAccount.cpp205
QIMJ531QIMJ_0010OnlineLoginTaskConnectAccount.cpp531Login: CMD_AUTH_STEAM failed
QIMJ766QIMJ_0012OnlineLoginTaskConnectAccount.cpp766
QIMJ796QIMJ_0013OnlineLoginTaskConnectAccount.cpp796
QIMJ854QIMJ_0017OnlineLoginTaskConnectAccount.cpp854Login: CMD_LOGIN (account) failed
QIMJ905QIMJ_0018OnlineLoginTaskConnectAccount.cpp905
QIMJ953QIMJ_0019OnlineLoginTaskConnectAccount.cpp953
QIMJ1001QIMJ_0020OnlineLoginTaskConnectAccount.cpp1001
QULW194QULW_0001OnlineLoginTaskConnectAccount2.cpp194Create player: ERR_NGWORDINPNAME (name rejected by the word filter)
QULW239QULW_0002OnlineLoginTaskConnectAccount2.cpp239
QULW280QULW_0003OnlineLoginTaskConnectAccount2.cpp280
VMEO150VMEO_0001OnlineLoginTaskConnectGate.cpp150
VMEO239VMEO_0002OnlineLoginTaskConnectGate.cpp239
VMEO277VMEO_0003OnlineLoginTaskConnectGate.cpp277
VMEO308VMEO_0005OnlineLoginTaskConnectGate.cpp308
VMEO338VMEO_0007OnlineLoginTaskConnectGate.cpp338
VMEO346VMEO_0008OnlineLoginTaskConnectGate.cpp346
VMEO372VMEO_0009OnlineLoginTaskConnectGate.cpp372Gate: CMD_GET_SVRLIST failed
VMEO425VMEO_0011OnlineLoginTaskConnectGate.cpp425
VMEO480VMEO_0014OnlineLoginTaskConnectGate.cpp480
VMEO534VMEO_0015OnlineLoginTaskConnectGate.cpp534
VMEO548VMEO_0016OnlineLoginTaskConnectGate.cpp548
VMEO574VMEO_0018OnlineLoginTaskConnectGate.cpp574
VMEO627VMEO_0020OnlineLoginTaskConnectGate.cpp627
PCKS285PCKS_0001OnlineLoginTaskConnectMenu.cpp285
PCKS571PCKS_0003OnlineLoginTaskConnectMenu.cpp571
PCKS609PCKS_0005OnlineLoginTaskConnectMenu.cpp609Menu login: CMD_LOGIN (menu) failed
PCKS660PCKS_0006OnlineLoginTaskConnectMenu.cpp660Menu login: CMD_SET_CURRENTPLAYER failed
PCKS740PCKS_0007OnlineLoginTaskConnectMenu.cpp740
PCKS795PCKS_0008OnlineLoginTaskConnectMenu.cpp795
PCKS855PCKS_0009OnlineLoginTaskConnectMenu.cpp855
—OnlineLoginTaskConnectMenu2.cpp
CCWR195CCWR_0002OnlineLoginTaskConnectMenu2.cpp195
CCWR260CCWR_0006OnlineLoginTaskConnectMenu2.cpp260
CCWR332CCWR_0010OnlineLoginTaskConnectMenu2.cpp332
CCWR357CCWR_0011OnlineLoginTaskConnectMenu2.cpp357
CCWR378CCWR_0012OnlineLoginTaskConnectMenu2.cpp378
CCWR434CCWR_0013OnlineLoginTaskConnectMenu2.cpp434
CCWR510CCWR_0017OnlineLoginTaskConnectMenu2.cpp510
—OnlineLoginTaskStart.cpp
FDDN624FDDN_0020OnlineLoginTaskStart.cpp624
GNCX385GNCX_0001OnlineModeMultiplay.cpp385
GNCX474OnlineModeMultiplay.cpp474
GNCX505GNCX_0003OnlineModeMultiplay.cpp505GNCX_0003: the peer link closed (DISCONN_P2P); normal for the second player leaving after a match
GNCX548GNCX_0004OnlineModeMultiplay.cpp548
GNCX552GNCX_0005OnlineModeMultiplay.cpp552
GNCX556GNCX_0006OnlineModeMultiplay.cpp556DATAPACK error: CHECK_CHEAT sums differ between the players (what the player sees; MXNV_0017 is the same check, reported later)
GNCX594GNCX_0007OnlineModeMultiplay.cpp594
GNCX653GNCX_0008OnlineModeMultiplay.cpp653
GNCX659GNCX_0009OnlineModeMultiplay.cpp659
GNCX664GNCX_0010OnlineModeMultiplay.cpp664
GNCX947GNCX_0011OnlineModeMultiplay.cpp947
UQZU600UQZU_0001OnlineModeTaskCoopSession.cpp600
UQZU638UQZU_0003OnlineModeTaskCoopSession.cpp638
UQZU685UQZU_0004OnlineModeTaskCoopSession.cpp685
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
FAMY242FAMY_0001OnlineModeTaskGameQueueProcessor.cpp242The server replied ERR_CHEAT to an in-match command → CHEAT abnormal end
DNRF284DNRF_0001OnlineModeTaskLobbyRoomMain.cpp284
DNRF376DNRF_0002OnlineModeTaskLobbyRoomMain.cpp376
DNRF513DNRF_0003OnlineModeTaskLobbyRoomMain.cpp513
DNRF571DNRF_0004OnlineModeTaskLobbyRoomMain.cpp571Room: SET_ROOM_OPTION returned an error
XLMR596XLMR_0001OnlineModeTaskMOMLobbyRoomMain.cpp596
MXNV134MXNV_0001OnlineModeTaskMatchSession.cpp134Match session: online system missing (internal)
MXNV139MXNV_0002OnlineModeTaskMatchSession.cpp139Lost the connection to the game server during match setup ("DISCONNECT PES SERVER")
MXNV155OnlineModeTaskMatchSession.cpp155Could not create GET_MATCHID
MXNV170MXNV_0004OnlineModeTaskMatchSession.cpp170GET_MATCHID returned an error
MXNV195MXNV_0023OnlineModeTaskMatchSession.cpp195SEND_SYNC_NOTICE could not be sent
MXNV206MXNV_0024OnlineModeTaskMatchSession.cpp206SEND_SYNC_NOTICE returned an error
MXNV231MXNV_0025OnlineModeTaskMatchSession.cpp231Sync barrier: online system gone
MXNV248MXNV_0005OnlineModeTaskMatchSession.cpp248Could not create START_SEND_GAME_SEQUENCE_DATA (only with upload YES)
MXNV264MXNV_0006OnlineModeTaskMatchSession.cpp264START_SEND_GAME_SEQUENCE_DATA returned an error
MXNV277MXNV_0007OnlineModeTaskMatchSession.cpp277Could not create GET_SERVER_ENV
MXNV295MXNV_0008OnlineModeTaskMatchSession.cpp295GET_SERVER_ENV returned an error
MXNV374MXNV_0009OnlineModeTaskMatchSession.cpp374Error SetConfig(): building the P2P/TURN configuration failed
MXNV431MXNV_0010OnlineModeTaskMatchSession.cpp431Error CreateMultiplaySession (e.g. no usable TURN list entry)
MXNV444MXNV_0011OnlineModeTaskMatchSession.cpp444Multiplay session daemon missing
MXNV452OnlineModeTaskMatchSession.cpp452Multiplay session backend missing
MXNV476MXNV_0013OnlineModeTaskMatchSession.cpp476MXNV_0013: the P2P session never reached "connected" (seen in failed connection tests)
MXNV495OnlineModeTaskMatchSession.cpp495Error InitOnlineModeMultiplay()
MXNV522MXNV_0015OnlineModeTaskMatchSession.cpp522P2P revision check timed out (60 s)
MXNV527MXNV_0016OnlineModeTaskMatchSession.cpp527P2P revision error (different game data revision)
MXNV533MXNV_0017OnlineModeTaskMatchSession.cpp533DATAPACK error (data packs differ between the players)
MXNV537MXNV_0018OnlineModeTaskMatchSession.cpp537Other user disconnected during the revision check
MXNV542MXNV_0019OnlineModeTaskMatchSession.cpp542Unknown revision-check result
MXNV823MXNV_0020OnlineModeTaskMatchSession.cpp823Match session finish: online system missing
—OnlineModeTaskPesLgWatching.cpp
EYRH1163EYRH_0002OnlineModeTaskQuickMatching.cpp1163
EYRH1175EYRH_0003OnlineModeTaskQuickMatching.cpp1175Quick Match: waiting for the P2P connection failed (ActSubConnectWait), shown as "Failed to connect with opponent"
EYRH1197EYRH_0004OnlineModeTaskQuickMatching.cpp1197
EYRH1212EYRH_0005OnlineModeTaskQuickMatching.cpp1212
EYRH1224EYRH_0006OnlineModeTaskQuickMatching.cpp1224
EYRH1246EYRH_0007OnlineModeTaskQuickMatching.cpp1246
EYRH1290EYRH_0008OnlineModeTaskQuickMatching.cpp1290
SLHQ92SLHQ_0001OnlineModeTaskSyncManager.cpp92
SLHQ160SLHQ_0004OnlineModeTaskSyncManager.cpp160
XWSF131XWSF_0002OnlineModeTaskSyncSelectSideInMulti.cpp131
XWSF744XWSF_0005OnlineModeTaskSyncSelectSideInMulti.cpp744
HEED104HEED_0001OnlineModeTaskSyncTeamData.cpp104
OLXH136OLXH_0001OnlineModeTaskWatchGame.cpp136
OLXH144OLXH_0002OnlineModeTaskWatchGame.cpp144Error on the WATCH_GAMEADDPOINT watcher
OLXH171OLXH_0004OnlineModeTaskWatchGame.cpp171Verdict push arrived but the match context isn't in an accepted state
OLXH186OLXH_0005OnlineModeTaskWatchGame.cpp186Verdict push WATCH_GAMEADDPOINT with gameend_reason other than NORMAL_END/INJURY (or missing)
VNBP833VNBP_0001OnlineSystemClient.cpp833
VNBP864VNBP_0002OnlineSystemClient.cpp864
—OnlineSystemClientReconnect.cpp
APLR497APLR_0002OnlineSystemClientReconnect.cpp497Reconnect after a gate drop failed
UMQK322UMQK_0001OnlineSystemClientUpperlinkWatcher.cpp322
REJK373OnlineSystemMultiplay.cpp373
REJK379OnlineSystemMultiplay.cpp379
REJK392REJK_0003OnlineSystemMultiplay.cpp392
REJK438REJK_0006OnlineSystemMultiplay.cpp438
REJK448REJK_0007OnlineSystemMultiplay.cpp448
REJK454REJK_0008OnlineSystemMultiplay.cpp454
REJK459REJK_0009OnlineSystemMultiplay.cpp459
LISV365OnlineSystemMultiplaySessionStrategyP2pFullMeshTurnOnly.cpp365
GQBD643OnlineSystemMultiplaySessionStrategyP2pFullMeshWithTurn.cpp643
PWTV340OnlineSystemObserveSession.cpp340
PWTV343PWTV_0001OnlineSystemObserveSession.cpp343
DZWO402DZWO_0006OnlineSystemUtilHttpStreamWatchingData.cpp402
DZWO832DZWO_0007OnlineSystemUtilHttpStreamWatchingData.cpp832
WUYK111WUYK_0001ProcessOnlineInformationGetEura.cpp111
IQKF574IQKF_0020ProcessOnlineLobbyBasePostJoinRoom.cpp574
IYGW278ProcessOnlineLobbyConnectMatchSession.cpp278
IYGW292IYGW_0003ProcessOnlineLobbyConnectMatchSession.cpp292
IYGW304IYGW_0003ProcessOnlineLobbyConnectMatchSession.cpp304
IYGW347IYGW_0001ProcessOnlineLobbyConnectMatchSession.cpp347
—ProcessOnlineLobbyFreePostCreateJoinRoom.cpp
VZLN130VZLN_0002ProcessOnlineLobbyFreePostCreateJoinRoom.cpp130Free lobby (owner): own pid missing from the room player list
UQOW107UQOW_0001ProcessOnlineLobbyFreePostJoinRoom.cpp107Free lobby: no room player list received within 10 s of JOIN_ROOM_NTL (the reply to the joiner's own request counts)
UQOW159UQOW_0006ProcessOnlineLobbyFreePostJoinRoom.cpp159Free lobby: own entry missing from the room player list
UQOW323UQOW_0009ProcessOnlineLobbyFreePostJoinRoom.cpp323
UQOW328UQOW_0010ProcessOnlineLobbyFreePostJoinRoom.cpp328
HCOC139HCOC_0001ProcessOnlineLobbyMultiPostCreateJoinRoom.cpp139
QBFF113QBFF_0001ProcessOnlineLobbyMultiPostJoinRoom.cpp113
QBFF311QBFF_0003ProcessOnlineLobbyMultiPostJoinRoom.cpp311
QBFF316QBFF_0004ProcessOnlineLobbyMultiPostJoinRoom.cpp316
ENLM173ENLM_0001ProcessOnlineQuickTeamSync.cpp173
—ProcessOnlineRsLottery.cpp
BOKS277BOKS_0008ProcessOnlineRsLottery.cpp277

↑ Back to contents

Catalogue of all 433 server commands

In plain words: every command name the game contains, with the fields it sends and the fields it reads back, extracted automatically from the game. ours = our server implements it; OK only = the game sent it during our tests and got a bare "OK"; unseen = its menu was never opened in our tests. ×N is how often it appeared in our logs.

Request fields come from each command's request builder (HTTP form or gate MessagePack), with the common msgid, rqid, svrtype, client, urltype left out. Reply fields come from the reply parser, with nested objects' fields flattened into the same list (see the encoding rules for blobs vs inline maps). STATIC

CommandAreaViaStatusRequest fieldsReply fieldsNotes
ACCEPT_CLAN_ENTRYClansgateunseenpid, target_pid
ACCEPT_CLAN_INVITELobby & roomsgateunseenpid, target_pid
ADD_FOULNews & infogateOK only ×112card_pid, card_side, card_gameplayer_id_info, gameplayer_unique_id, gameplayer_id, card_kind, injury_pid, injury_side, injury_gameplayer_id, injury_data, part, symptom, level, mcount_left, injury_all, injury_one, gtimercards + injuries →
ADD_MYCLUB_AUCTION_WATCH_LISTmyClubgateunseenpid, product_id
ADD_MYCLUB_AUCTION_WISH_LISTmyClubgateunseenpid, agent, wishlist_id, skill, skill_category, skill_id, grade, is_exhibited
ADD_MYCLUB_SUBSCRIPTION_GAMEPLAYERmyClubgateunseen
ADD_SCORENews & infogateOK only ×8goal_side, goal_gameplayer_id_info, gameplayer_unique_id, gameplayer_id, goal_player_side, goal_player_pid, assist_side, assist_gameplayer_id_info, assist_player_side, assist_player_pid, gtimergoals (there is no ADD_GOAL); dedupe by gtimer →
ADD_SELECTING_PLAYER_NUMNews & infogateunseen
AUTH_STEAMStore & platformHTTPours ×114ticket, steamid, package_type
BL_DATA_SYNCIn-match syncgateunseen
BUY_MYCLUB_MARKET_COACHmyClubgateunseenpid, coach_id, use_pes_point, is_coach_texture_useadaptability_rate, attacking_area, build_up, coach, coach_id, coach_unique_id, contract_gp, contract_pes_point, contract_term, current_point_division, current_point_sim, current_point_vscom, defence_compact, defence_line, defence_num, defence_type, defensive_main_concept, first_df, formation_data, gp, is_coach_texture_use, is_first, is_use_variable_formation, management, mobility, nation_id, offence_num, offensive_main_concept, overall, passsupport_dist, pes_point, press_rule, sell_gp, team_id, transition
CANCEL_CLAN_ENTRYClansgateunseenpid, target_pid
CANCEL_CLAN_INVITELobby & roomsgateunseenpid, target_pid
CANCEL_COOP_GROUP_MATCHINGCo-opgateunseenpid
CANCEL_COOP_MATCHINGCo-opgateunseenpid
CANCEL_MATCHDAY_ENTRY_PICKUP_MATCHMatchdaygateunseenpid, compe_id
CANCEL_MATCHINGMatchmakinggateourspid
CHANGE_GAMEPHASEMatchgateOK only ×720phase, gtimer19 phases; never reply ERR_CHEAT →
CHECK_CHEATFair playgateOK only ×96pid, dlc_version, dlc_type, param_check_sum, entry_check_sumplayer-DB checksums; pair only equal sums →
CHECK_LOCAL_GAMERELAY_PLAYERConnectivity / relaygateunseenpid, np_account_idbuild_gamerelay_num_for_11vs11, build_gamerelay_num_for_1vs1, build_gamerelay_num_for_3vs3, gamerelay_register_url_data, is_local_gamerelay_player, type, url
CHECK_MYCLUB_STOREmyClubgateunseenpidis_enable_myclub_coin, is_enable_subscription
CHECK_STRINGLogin & accountgateunseenstrbad-word filter →
COMPLETE_TEAM_SELECTIn-match syncgateunseen
CONFIRM_CLAN_REQUESTClansgateunseenpid, request_list, type, status, is_new, appliciant_user_id, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, is_follow, date, applicant_clan_name
COPY_MYCLUB_SQUADmyClubgateunseenpid, copy_squad_id, namesquad_id
CREATE_CLANClansgateunseenpid, clan_name
CREATEJOIN_COOP_ROOMCo-opgateunseenpid, basic_settings, room_id, room_name, clan_name, clan_owner_info, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, is_follow, is_com_match, is_use_chat, is_same_level, team_level, coop_level, is_same_manner, coop_manner, room_entry_restriction, password, lang, match_settings, user_team_id, enemy_team_id, cpu_level, kindroom_id
CREATEJOIN_ROOMLobby & roomsgateunseenname, match_type, lang, max_players, is_invite_limit, password, enable_guest, vs_com, use_original_player, is_anyplayers, is_select_gk, auto_start_num, game_rating_limitroom_idcreate 1v1 room →
CREATE_MYCLUB_SQUADmyClubgateunseenpid, coach_unique_id, namesquad_id
CREATE_MYCLUB_STAFFmyClubgateunseenpid, player_info_list, gameplayer_unique_id, gameplayer_base_id, gameplayer_id, gameplayer_level, registared_position, position, stronger_foot, overall, ability, play_style, nation_id, club_team_id, is_use_cloud_matchability, base_exp, base_player_info, club_team_id, gameplayer_base_id, gameplayer_id, gameplayer_level, gameplayer_unique_id, id, nation_id, overall, play_style, position, registared_position, staff_info_list, stronger_foot
CREATE_MYCLUB_TEAMmyClubgateunseenpid, team_name, team_name_short, base_team_id, coach_id, rental_gameplayer_id, is_check_team_name, is_check_team_name_short, is_coach_texture_use, team_name_commentary_id, home_town, nation_id, label, name
CREATE_PLAYERLogin & accountgateours ×10name
DELETE_MYCLUB_AUCTION_WATCH_LISTmyClubgateunseenpid, product_id, is_all
DELETE_MYCLUB_AUCTION_WISH_LISTmyClubgateunseenpid, agent, wishlist_id, skill, skill_category, skill_id, grade, is_exhibited
DELETE_MYCLUB_SQUADmyClubgateunseenpid, squad_id
DEMOCHATSocialgateunseen
DISCONNECTLogin & accountgateours ×182logoutstat
END_STEAM_STOREStore & platformHTTPunseenticket, steamid, package_type, orderid, itemid, pid
END_STORE_TRANSACTIONStore & platformgateunseenpid, product_id, transaction_idsubscription_active, subscription_expire_date
ENTRY_CLANClansgateunseenpid, target_pid
ENTRY_GAMEMatchgateunseenentry, sideentryflag, gameNumEntry/Cancel toggle →
ENTRY_MYCLUB_WEEKLY_RANKINGmyClubgateunseenpid, is_entry
ERRIn-match syncgateunseen
EXCHANGE_E_FOOTBALL_POINTStore & platformHTTPunseenpid, product_ide_football_point_num
EXPEL_CLAN_MEMBERClansgateunseenpid, target_pid
EXTEND_MYCLUB_COACHmyClubgateunseenpid, coach_unique_id, use_pes_pointcontract_term, gp, pes_point
EXTEND_MYCLUB_GAMEPLAYERmyClubgateunseenpid, gameplayer_unique_id_list, use_pes_pointcontract_term, contract_term_list, gameplayer_id, gameplayer_unique_id, gp, pes_point
EXTEND_MYCLUB_ITEM_GAMEPLAYERmyClubgateunseenpid, gameplayer_unique_idcontract_term, extend_ticket, gameplayer_id, gameplayer_unique_id
FINISH_SEASONEvents & competitionsgateunseenpiddivision season end →
FOLLOW_USERSocialgateunseenpid, follow_user_id_list, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, unfollow_user_id_list
GET_AGING_REVISIONLogin & accountgateunseen
GET_AVATAR_HTTPLogin & accountHTTPOK only ×205pidavatar_data, avatar_data_size, avatar_md5avatar: base64 + MD5, ≤48 KiB →
GET_BLOCKLISTSocialgateunseenbklist, block_id, count, max_player_num, name, player_numlobby sub-areas; must implement for rooms →
GET_CHALLENGECODELogin & accountgateours ×76challenge_code
GET_CLAN_INFOClansgateunseenpid, owner_id, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deletedaccount_id, basic_settings, clan_comment, clan_info, clan_member_num, clan_members, clan_name, clan_stats_myclub, clan_stats_online, coop_level, current_division, current_online_mode, current_rating, draw_count, enable_request, goal, is_banned, is_deleted, is_follow, is_join_online_mode, is_valid_cache, last_login, lose_count, lost_goal, match_count, name, online_id, owner_info, pid, pname, psn_user_id, residual_div_first_count, season_match_stats, season_win_count, total_match_stats, user_id, win_count, win_s, win_s_max, xuid_one
GET_CLAN_LISTClansgateunseenpid, search_options, clan_name, enable_request, is_joined_clan, start_indexaccount_id, all_list_num, basic_settings, clan_comment, clan_list, clan_list_num, clan_member_num, clan_members, clan_name, clan_stats_myclub, clan_stats_online, coop_level, current_division, current_online_mode, current_rating, draw_count, enable_request, goal, is_banned, is_deleted, is_follow, is_join_online_mode, is_valid_cache, last_login, lose_count, lost_goal, match_count, name, online_id, owner_info, pid, pname, psn_user_id, residual_div_first_count, season_match_stats, season_win_count, start_index, total_match_stats, user_id, win_count, win_s, win_s_max, xuid_one
GET_CLAN_MEMBER_MODEClansgateunseenpidaccount_id, clan_member_num, clan_members, coop_level, current_online_mode, is_deleted, is_follow, is_join_online_mode, is_valid_cache, last_login, name, online_id, pid, pname, psn_user_id, user_id, xuid_one
GET_CLAN_PENDING_LISTClansgateunseenpidaccount_id, applicant_clan_name, appliciant_user_id, date, is_deleted, is_follow, is_new, is_valid_cache, name, online_id, pending_info_list, pending_info_list_num, pid, pname, psn_user_id, status, type, xuid_one
GET_CLAN_RANKINGClansHTTPunseenpid, is_old_season, view_num, division, start_index, is_myclubaccount_id, basic_settings, clan_comment, clan_name, clan_ranking, clan_ranking_all_list_num, clan_ranking_num, coop_level, current_online_mode, date, division_change_type, draw_count, enable_request, goal, is_banned, is_deleted, is_follow, is_join_online_mode, is_valid_cache, last_login, lose_count, lost_goal, match_count, match_stats, name, online_id, owner_info, pid, pname, psn_user_id, rank, rating, user_id, win_count, win_s, win_s_max, xuid_one
GET_CLAN_REQUEST_LISTClansgateunseenpidaccount_id, applicant_clan_name, appliciant_user_id, date, is_deleted, is_follow, is_new, is_valid_cache, name, online_id, pid, pname, psn_user_id, request_info_list, request_info_list_num, status, type, xuid_one
GET_CLAN_SETTINGSClansgateunseenpidaccount_id, clan_basic_settings, clan_comment, clan_name, coop_level, current_online_mode, enable_request, is_banned, is_deleted, is_follow, is_join_online_mode, is_valid_cache, last_login, name, online_id, owner_info, pid, pname, psn_user_id, user_id, xuid_one
GET_CLAN_SIMPLE_INFO_LISTClansgateunseenpid, owner_pid_listaccount_id, clan_name, clan_simple_info_list, clan_simple_info_list_num, coop_level, current_online_mode, is_deleted, is_follow, is_join_online_mode, is_valid_cache, last_login, name, online_id, owner_info, pid, pname, psn_user_id, user_id, xuid_one
GET_COMPEV_INFOEvents & competitionsgateunseenpid, compe_mode, compe_idad_file_name, add_limit_match_num_max, add_limit_match_num_min, add_limit_rating_max, add_limit_rating_min, add_limit_vscom_win_rate, banner_file_info, body, clear_match_num, clear_win_point, cleared_count, compe_cpu_level, compe_data, compe_end_time, compe_id, compe_info, compe_kind, compe_name, compe_reward, compe_start_time, contract_term, count, difficulty, entity_id, entry_coach_id, entry_national_id, entry_player_num, entry_team_id, entry_teamspirit_max, entry_teamspirit_min, entry_teamstrength_max, entry_teamstrength_min, entry_type, event_compe_reward_list, filename, grade, hash_str, is_cleared, is_compe_reward_exist, is_coop_match, is_efootball_pro_stadium, is_exist_unlocked_compe_by_cleared, is_limited_matching_target, is_locked, is_pesleague_stadium, is_same_team_power_level, is_squad_bonus, is_squad_bonus_reward_exist, item, item_effect_arg, item_type, item_variation, list_banner_file_info, logo_file_name, name, name_jp, pes_point_price, player_level, player_num, precondition_compe_id, precondition_compe_name, present_id, present_type, receipt_deadline, reward, skill, skill_category, skill_id, squad_bonus, squad_bonus_rate, team_id, title, type, usable_ball_id
GET_COMPEV_LISTEvents & competitionsgateunseenpid, compe_list_kind, compe_modeadd_limit_match_num_max, add_limit_match_num_min, add_limit_rating_max, add_limit_rating_min, add_limit_vscom_win_rate, banner_file_info, compe_cpu_level, compe_end_time, compe_id, compe_kind, compe_list, compe_list_kind, compe_name, compe_num, compe_start_time, difficulty, entry_coach_id, entry_national_id, entry_player_num, entry_team_id, entry_teamspirit_max, entry_teamspirit_min, entry_teamstrength_max, entry_teamstrength_min, entry_type, filename, hash_str, is_cleared, is_coop_match, is_locked, is_squad_bonus, list_banner_file_info, player_num
GET_COMPEV_MAINMENU_INFOEvents & competitionsgateunseenpid, compe_mode, compe_id, target_pidclear_count, compe_result, cpu_level, progress_game_count, status, vscom_team_id, win_point
GET_COMPEV_MYENTRY_COMPEIDEvents & competitionsgateunseenpid, compe_modecompe_cpu_level, compe_id, compe_mode, progress_game_count
GET_COMPLG_MYENTRY_COMPEIDPES Leaguegateunseen
GET_COOP_LEVEL_RESULTCo-opgateunseenpid, match_idaccount_id, after_level, after_point, before_level, before_point, coop_level_user_list, evalution, is_clan_owner, is_deleted, is_follow, is_valid_cache, name, online_id, pid, pname, point, psn_user_id, reference, status, user_id, xuid_one
GET_COOP_MAINMENU_INFOCo-opgateunseenpid, online_mode, is_check_season_enddivision, division_change_type, is_coop_banned, is_exist_new_pending, is_exist_new_request, is_exist_owner_clan, is_season_end, pre_season_rank, pre_season_rank_all_clan_num
GET_COOP_MATCH_DATACo-opgateunseenpidmatch_data, match_data_size
GET_COOP_PROFILECo-opgateunseenpidaccount_id, coop_level, coop_level_point, coop_manner, coop_profile_data, follower, is_deleted, is_follow, is_valid_cache, match_data, match_data_size, name, online_id, online_match, pid, pname, psn_user_id, user_info, vscom_match, xuid_one
GET_COOP_QUICKMATCHOPTIONCo-opgateunseenpidcpu_level_max, cpu_level_min, force_alone, is_vscom
GET_COOP_REJECT_LISTCo-opgateunseenpidaccount_id, is_deleted, is_valid_cache, name, online_id, pid, pname, psn_user_id, reject_list, reject_list_num, xuid_one
GET_COOP_ROOMLISTCo-opgateunseenpid, search_options, room_id, use_password, vs_setting, team_level, coop_level, coop_manner, cpu_level_min, cpu_level_max, can_entry, kind, compe_id, start_indexaccount_id, all_room_num, basic_settings, clan_name, clan_owner_info, compe_id, coop_level, coop_manner, cpu_level, enemy_team_id, is_com_match, is_deleted, is_follow, is_game, is_same_level, is_same_manner, is_use_chat, is_valid_cache, kind, lang, match_settings, name, online_id, password, pid, pname, psn_user_id, room_entry_restriction, room_id, room_list, room_list_num, room_name, team_level, user_num, user_team_id, xuid_one
GET_COOP_ROOM_MEMBERCo-opgateunseenpid, room_idaccount_id, coop_level, guest_info, is_clan_member, is_deleted, is_follow, is_guest, is_owner, is_platform_guest, is_ready, is_valid_cache, list_data, list_num, name, online_id, pid, player_index, pname, psn_user_id, user_info, xuid_one
GET_COOP_ROOM_OPTIONCo-opgateunseenpid, room_idaccount_id, basic_settings, clan_name, clan_owner_info, coop_level, coop_manner, countdown_end_time, cpu_level, enemy_team_id, is_com_match, is_deleted, is_follow, is_game, is_same_level, is_same_manner, is_start_count_down, is_start_matching, is_stop_countdown, is_use_chat, is_valid_cache, lang, match_settings, name, online_id, password, pid, pname, psn_user_id, room_entry_restriction, room_id, room_name, room_phase, team_level, user_team_id, xuid_one
GET_COOP_ROOM_PLATFORM_SESSIONCo-opgateunseen
GET_DIVISION_INFODivisions & rankingsgateunseenpid, is_season_endaccount_id, away_score, demotion_point, division, division_info, division_point, doublerank_promotion_point, draw_count, enemy_cpu_level, enemy_name, enemy_side, enemy_team_id, home_score, is_deleted, is_finished_match, is_valid_cache, lose_count, match_history_list, match_record, name, online_id, other_match_num, pname, promotion_point, psn_user_id, rating, win_count, win_lose, win_s_max, xuid_onedivision + server-set thresholds →
GET_DIVISION_POINT_INFODivisions & rankingsgateunseenpiddivision_list, division_type, point, rank, server_numdivision records screen →
GET_DIVISION_RANKINGDivisions & rankingsHTTPunseenstart_index, view_num, divisionaccount_id, date, division, draw_count, favoritePlayer, favoriteTeam, intro, is_deleted, is_valid_cache, lose_count, manner, match_record, name, online_id, pid, pname, point, psn_user_id, rank, rank_list, rating, total_rank_num, user, win_count, win_s_max, xuid_oneHTTP ranking, inline maps →
GET_DIVISION_RANKING_BYIDDivisions & rankingsHTTPunseenpid, xuid_one, np_account_id, view_num, divisionaccount_id, date, division, draw_count, favoritePlayer, favoriteTeam, intro, is_deleted, is_valid_cache, lose_count, manner, match_record, name, online_id, pid, pname, point, psn_user_id, rank, rank_list, rating, total_rank_num, user, win_count, win_s_max, xuid_one
GET_DLC_FILELISTLogin & accountHTTPours ×144file_type, region, piddlc_version, dlcfile_list, dlcfile_list_count, extra_file_list, extra_file_list_count, hash, name, required_program_version, size, url, variation_file_list, variation_file_list_count
GET_DMM_NOTIFICATIONStore & platformgateOK only ×96pid, lang, region, package_typebody, club_team_id, date, default_overall, default_rarity, evoked_text, filename, gameplayer_id, gameplayer_list, gameplayer_list_num, hash_str, header_text, id, info_list, info_list_num, is_watch, link, link_url, movie_url, nation_id, position, service_id, storelinkinfo, thumbnail_info, title, typetop-menu Notifications feed (not Japan-only) →
GET_DMM_PLAYERINFOStore & platformgateOK only ×96pidis_present_inbox
GET_E_FOOTBALL_POINTStore & platformHTTPunseenpide_football_point_num
GET_EFP_MOST_RECENTLY_EXPIRED_POINTSConnectivity / relayHTTPunseenpid, is_warningexpired_point_list, expired_point_list_num, is_show_dialog, point, time
GET_ENTRY_GAMEMatchgateunseenpidentryNum, entry_count, entrygame, gameNum, pid
GET_EULA_NATION_CODEConnectivity / relaygateours ×2area_code, nation_code
GET_EULA_NATION_LISTConnectivity / relaygateours ×74langhas_area, name, nation_code, nation_list, nation_list_num, privacy_kind
GET_EVENT_CATEGORY_LISTEvents & competitionsgateunseenpidbanner_file_info, compe_db_id, event_category, event_category_list, filename, hash_str, is_auto_make_compe_name, is_use_emblem, matchday_emblem_info, matchday_group_type, not_cleared_event_num, open_event_num, recent_event_start_time, team_list_group_a, team_list_group_b
GET_FOLLOW_LISTSocialgateunseenpidaccount_id, follow_list, follow_list_num, is_clan_member, is_deleted, is_locked, is_valid_cache, name, online_id, pid, pname, psn_user_id, user_id, xuid_one
GET_GAMERELAYConnectivity / relayHTTPours ×75pidgame_sycom, gamerelay_index, grid, ip_addr, portgame_sycom P2P|SC; ip/port used only for SC →
GET_GAMERELAY_QUALITYCHECKLISTConnectivity / relayHTTPunseenpidgamerelay_index, grid, ip_addr, last_update, port, quality, quality_check_data_list, quality_check_data_num, quality_list, quality_list_num, quality_threshold_1, quality_threshold_2SC relay quality; bare OK →
GET_GAMERESULTSMatchgateunseenpid, game_res_type, pesleague_compe_idaccount_id, cpu_level, date, ex_type, gameend_reason, is_com, is_deleted, is_follow, is_guest, is_valid_cache, match_category, name, no_match, online_id, pid, pk_flag, player, pname, psn_user_id, rlist, rlist_num, score, score_1st, score_2nd, score_ex1st, score_ex2nd, score_pk, side, team, xuid_onematch history list →
GET_GAME_SCOREMatchgateunseenpidscore, score_1st, score_2nd, score_ex1st, score_ex2nd, score_pk, team
GET_GAME_TEAM_LISTMatchgateours ×114piddivision_point, team_class, team_id, team_list, team_list_num
GET_GLOBALINFOTITLELISTNews & infogateOK only ×156lang, region, package_type, kindannnounce_info_list_num, announce_id, announce_info_list, announce_type, compe_db_id, date, event_id, evoked_text, filename, hash_str, is_auto_make_compe_name, is_use_emblem, list_banner_file_info, matchday_emblem_info, matchday_group_type, popup_type, priority, team_list_group_a, team_list_group_b, title, weekly_info_typenews list →
GET_GP_ACHIEVEMENTStore & platformgateOK only ×236pidall_achievement_bit_array, all_gp, pes_point
GET_HEROSTATSMatchgateunseenpiddivision_match_num, division_win_num, is_current_match_lose, is_current_match_win, myclub_division_match_num, myclub_division_sim_match_num, myclub_division_sim_win_num, myclub_division_win_num, total_goal_num, total_lose_num, total_lostgoal_num, total_match_num, total_win_num
GET_INFOBODYNews & infogateunseenpid, announce_id, is_private, lang, regionannounce_basic_info, announce_id, announce_info, announce_type, banner_file_info, body, compe_db_id, compe_name, compe_start_time, date, direct_move, event_id, evoked_text, filename, hash_str, is_auto_make_compe_name, is_use_emblem, link_url, list_banner_file_info, matchday_emblem_info, matchday_group_type, popup_type, priority, team_list_group_a, team_list_group_b, template_id, title, use_template, weekly_info_typenews item body →
GET_IPANDPORT_NTLConnectivity / relaygateourspidaddress_family, host_addr, ntl_nat_type, pid, reflexive_addr, relayed_addr, sa_data
GET_IS_JOIN_COOP_ROOMCo-opgateunseenpidis_join_coop_room
GET_IS_KONAMIID_COOPERATIONCo-opHTTPunseensteam_id, xuid, xuid_one, account_id, platform, regionis_cooperation, is_reagree, reagree_url
GET_KONAMIID_FUNCTIONAL_BLOCKADESocialHTTPunseenis_blocked
GET_KONAMIID_LINK_URLStore & platformHTTPunseensteam_id, xuid, xuid_one, account_id, platform, regionlink_url, qr_expiration_date
GET_LOBBYINFOLobby & roomsgateunseenlobby_idhas_info, sentence_info, sentence_intro, title
GET_LOBBYLISTLobby & roomsgateourslobby_type, langgamerelay_index, lobby_id, lobby_list, lobby_list_num, name, player_num, player_num_max
GET_MAINTENANCE_INFONews & infogateOK only ×144maintenance_time, maintenance_warnmaintenance-soon dialog →
GET_MANNER_WARNFair playgateOK only ×180pidwarn_kindfair-play rating warning dialog →
GET_MATCH_ANALYZEMatchgateunseenpid, target_pid, analyze_data_typeanalyze_data_list, analyze_data_size, attack_area_left, attack_area_middle, attack_area_right, attack_time, concept_arrange_defence_first, concept_arrange_defence_second, concept_arrange_offence_first, concept_arrange_offence_second, cross_count, cross_success_count, deffence_time, dribble_distance, favorite_play_defence_first, favorite_play_defence_second, favorite_play_defence_third, favorite_play_offence_first, favorite_play_offence_second, favorite_play_offence_third, foul_count, game_res, inframe_shoot_count, intercept_area, match_up_distance, offside_count, pass_count, pass_cut_count, pass_distance, pass_success_count, posession, score_cross_count, score_dribble_count, score_loss_cross_count, score_loss_dribble_count, score_loss_other, score_loss_pass_count, score_loss_set_play_count, score_loss_through_pass_count, score_other, score_pass_count, score_set_play_count, score_through_pass_count, shoot_count, suffer_inframe_shoot_count, suffer_shoot_count, tackle_count, tackle_success_count
GET_MATCH_ANALYZE_ENVMatchgateOK only ×128piddeffence, favorite_play, favorite_play_rate, match_up, passtype, posession
GET_MATCHDAY_ACHIEVEMENT_REWARDMatchdaygateunseenpid, compe_idachievement_reward_list, add_matchday_point, body, contract_term, count, entity_id, gameplay_quality, grade, is_repeat, item, item_effect_arg, item_type, item_variation, name, name_jp, pes_point_price, player_level, present_id, present_type, receipt_deadline, require_point, reward_list, skill, skill_category, skill_id, squad_rating, team_id, title, type
GET_MATCHDAY_FINAL_RESULT_INFOMatchdaygateunseenpid, compe_idfinal_result_info, gameend_reason, is_exist_watch_match_data, score_group_a, score_group_b, score_pk_group_a, score_pk_group_b
GET_MATCHDAY_INFOMatchdaygateunseenpid, compe_idachievement_reward_list, all_reward_info, ball_id, banner_file_info, base_id, body, compe_db_id, compe_id, compe_info, compe_name, contract_term, count, end_date, end_group_match_date, entity_id, entry_limit_date, entry_pickup_match_start_date, entry_user_max, entry_user_num, eula_url, filename, fixed_season, fixed_timezone, fixed_weather, grade, group_desc, group_info_a, group_info_b, group_match_time, group_name, group_type, hash_str, info_overview, is_check_eula, is_disp_compe_name, is_efootball_pro_stadium, is_end, is_entry, is_entry_restricted, is_equalization, is_fix_condition, is_pesleague_stadium, is_possible_watch, is_repeat, is_use_emblem, is_use_emblem_list, item, item_effect_arg, item_type, item_variation, joined_matchday_group, list_banner_file_info, match_type, name, name_jp, pes_point_price, pickup_cut_off_rank, pickup_match_time, pickup_member_date, pickup_select, player_level, pre_pickup_users_pid_list, present_id, present_type, rating_rank, receipt_deadline, require_point, required_point_final_reward, reward_list, skill, skill_category, skill_id, squad_type, start_date, start_match_limit_date, team_id, team_list, team_list_num, title, type, use_stadium_id, watch_match_reward_state, watch_match_start_date, watch_wait_time, win_reward_list
GET_MATCHDAY_LISTMatchdaygateunseenpid, is_myclub, start_indexadd_limit_rating, banner_file_info, base_id, compe_db_id, compe_id, compe_list, compe_name, end_date, end_group_match_date, entry_limit_date, entry_user_max, entry_user_num, filename, group_desc, group_info_a, group_info_b, group_name, group_type, hash_str, is_disp_compe_name, is_end, is_entry, is_entry_restricted, is_no_check, is_possible_watch, is_use_emblem, is_use_emblem_list, list_banner_file_info, list_max, list_num, match_type, pickup_member_date, pre_pickup_users_pid_list, rating_rank, squad_type, start_date, team_list, team_list_num, watch_match_reward_state
GET_MATCHDAY_MAINMENU_INFOMatchdaygateunseenpid, compe_idaccount_id, body, contract_term, count, entity_id, final_reward_list, grade, group_match_info, group_result, is_deleted, is_failed_pickup_users, is_final_reward, is_get_final_reward, is_hide_graph, is_valid_cache, is_watch_match, item, item_effect_arg, item_type, item_variation, mainmenu_info, matchday_point, matchday_progress, matchday_rank, matchday_ranking_user_num, matchday_ratio, name, name_jp, online_id, pes_point_price, pickup_match_score_group_a, pickup_match_score_group_b, pickup_reward_list, pickup_reward_type, pickup_user_group_a_num, pickup_user_group_b_num, pickup_user_info, pickup_users_group_a, pickup_users_group_b, pid, player_level, pname, present_id, present_type, psn_user_id, receipt_deadline, skill, skill_category, skill_id, team_id, title, total_matchday_point_group_a, total_matchday_point_group_b, type, xuid_one
GET_MATCHDAY_RANKINGMatchdaygateunseenpid, compe_id, start_index, view_numaccount_id, entry_name, is_deleted, is_valid_cache, list_max, list_num, matchday_point, name, online_id, pid, pname, psn_user_id, rank, rank_list, recode_date, team_id, update_date, xuid_one
GET_MATCHDAY_RANKING_BYIDMatchdaygateunseenpid, compe_id, view_numaccount_id, entry_name, is_deleted, is_valid_cache, list_max, list_num, matchday_point, name, online_id, pid, pname, psn_user_id, rank, rank_list, recode_date, team_id, update_date, xuid_one
GET_MATCHDAY_SP_ALL_COOP_MEMBER_LISTCo-opgateunseenpid, coop_player_listcoop_memberlist, coop_memberlist_num, gameplayer_id, nation_id, parameters, pid, team_id
GET_MATCHDAY_SP_CONFIRM_COOP_SQUADmyClubgateunseenpidbase_team_id, elected_myplayer_id_list, elected_myplayer_id_list_num, elected_myplayerlist, elected_myplayerlist_num, gameplan_data, gameplan_data_size, gameplayer_id, my_team, nation_id, parameters, pid, team_id
GET_MATCHDAY_SP_GAMEPLANMatchdaygateunseenpid, compe_idgameplan_data, gameplan_data_size, sp_member_list
GET_MATCHDAY_WATCH_MATCH_REWARDMatchdaygateunseenpid, compe_idbody, contract_term, count, entity_id, grade, is_exist_watch_match_reward, item, item_effect_arg, item_type, item_variation, name, name_jp, pes_point_price, player_level, present_id, present_type, receipt_deadline, skill, skill_category, skill_id, team_id, title, type, watch_match_reward_list
GET_MATCHIDMatchgateours ×98match_id, uploadmatch id; keep upload NO →
GET_MATCHREJECTLISTMatchgateunseenpidaccount_id, is_deleted, is_valid_cache, name, online_id, pid, pname, psn_user_id, reject_list, reject_list_num, xuid_one
GET_MYCLUB_ACHIEVEMENTLISTmyClubgateunseenpidachievement_category, achievement_list, achievement_list_num, body, contract_term, count, entity_id, grade, is_new, item, item_effect_arg, item_type, item_variation, milestone_list, milestone_list_num, name, name_jp, pes_point_price, player_level, present, present_id, present_type, receipt_deadline, received_all, received_milestone_level, skill, skill_category, skill_id, target_value, team_id, title, type, value
GET_MYCLUB_AGENT_BOX_INFOmyClubgateunseenpid, agent_idagent, agent_end_time, agent_id, agent_info, agent_token_end_time, banner_file_info, bgm_id, box_pack_num, box_size, count, filename, get_player_num, gp, hash_str, is_buy_gp_pes_point, is_draw_checked, is_use_reset, level, limit_count, main_player_rarity_info, name, name_jp, pes_point, rarity, reset_remain_count, skill, skill_category, skill_id, sub1_player_rarity_info, sub2_player_rarity_info, target_level, token_list, token_list_num, type, uniform, use_count
GET_MYCLUB_AGENT_DRAW_RATEmyClubgateunseenpid, agent_idmain, rate_player_num, rate_table, sub1, sub2
GET_MYCLUB_ALL_COOP_MEMBER_LISTmyClubgateunseenpid, coop_player_listcoop_memberlist, coop_memberlist_num, gameplayer_id, gameplayer_unique_id, matchday_select_team_id, nation_id, parameters, pid, team_id
GET_MYCLUB_AUCTION_PRICE_RANKINGmyClubgateunseenpid, ranking_kindauction_price_ranking, auction_price_ranking_num, end_time, grade, price, product_id, rank, scout_id, skill, skill_category, skill_id
GET_MYCLUB_AUCTION_REPORT_LISTmyClubgateunseenpidauction_report_list, auction_state, bid_num, finalround_end_time, grade, is_bid, is_bid_user_max, is_highest_bider, is_register_watchlist, price_now, product_id, scout_id, skill, skill_category, skill_id, time_limit, total_auction_report_list_num, update_time
GET_MYCLUB_AUCTION_SCOUT_DETAILmyClubgateunseenpid, product_idauction_end_time, auction_scout_detail, auction_start_time, auction_state, bid_num, finalround_end_time, grade, is_bid, is_bid_user_max, is_highest_bidder, is_reservation, my_price, price_now, price_start, product_id, reservation_price, scout_id, second_price, skill, skill_category, skill_id, third_price
GET_MYCLUB_AUCTION_SCOUT_TENDER_USERINFOLISTmyClubgateunseenpid, product_idaccount_id, auction_tender_userlist, auction_tender_userlist_num, is_deleted, is_valid_cache, name, online_id, pid, pname, psn_user_id, xuid_one
GET_MYCLUB_AUCTION_SUCCESSFUL_BID_INFOmyClubgateunseenpid, scout_id, grade, skill, skill_category, skill_idauction_successful_bid_list, auction_successful_bid_list_num, average_bid_price, best_bid_amount_day, best_bid_amount_price
GET_MYCLUB_AUCTION_WATCH_LISTmyClubgateunseenpid, is_auction_state_changedauction_info_list, auction_state, bid_num, finalround_end_time, grade, is_bid, is_bid_user_max, is_highest_bider, is_register_watchlist, price_now, product_id, scout_id, skill, skill_category, skill_id, time_limit, total_auction_info_list_num, update_time
GET_MYCLUB_AUCTION_WISH_LISTmyClubgateunseenpid, start_indexgrade, is_exhibited, skill, skill_category, skill_id, total_wish_info_list_num, wish_info_list, wishlist_id
GET_MYCLUB_CLOUDMATCH_BONUSmyClubgateunseenpidaccount_id, body, cloud_bonus, contract_term, count, cpu_level, date, draw_num, entity_id, ex_type, gameend_reason, grade, is_com, is_deleted, is_follow, is_guest, is_valid_cache, item, item_effect_arg, item_type, item_variation, lose_num, match_category, match_list, match_list_num, match_num, name, name_jp, no_match, online_id, pes_point_price, pid, pk_flag, player, player_level, pname, present_id, present_type, psn_user_id, receipt_deadline, score, score_1st, score_2nd, score_ex1st, score_ex2nd, score_pk, side, skill, skill_category, skill_id, team, team_id, title, type, win_num, xuid_one
GET_MYCLUB_CLOUD_SQUADIDmyClubgateunseenpidsquad_id
GET_MYCLUB_COACH_CONTRACT_NORMAmyClubgateunseenpid, coach_unique_idcurrent_point_division, current_point_sim, current_point_vscom, is_contract_end, norma_point_division, norma_point_sim, norma_point_vscom
GET_MYCLUB_COACHLISTmyClubgateunseenpidadaptability_rate, attacking_area, build_up, coach_id, coach_list, coach_list_num, coach_unique_id, contract_gp, contract_pes_point, contract_term, current_point_division, current_point_sim, current_point_vscom, defence_compact, defence_line, defence_num, defence_type, defensive_main_concept, first_df, formation_data, is_coach_texture_use, is_use_variable_formation, management, mobility, nation_id, offence_num, offensive_main_concept, overall, passsupport_dist, press_rule, sell_gp, team_id, transition
GET_MYCLUB_COM_MATCH_INFOmyClubgateunseenpidcontWinMax_num, contWin_num, current_weekly_point, division, draw_num, goal, lose_num, lostGoal, match_num, match_stats, max_weekly_point, rating, win_num
GET_MYCLUB_COMMENTARY_INFOmyClubgateunseenpid, match_category, team_spirit, team_power_levelcoach_extended, coach_match_num, cont_win_max, cont_win_num, demotion, division, division_num, division_stats, draw_num, gameplayer_extended_list, gameplayer_id, gameplayer_unique_id, get_player_result, is_coach_norma_clear, lose_num, num, promotion, team_power_level_prematch, team_spirit_prematch, total_match_num, win_num
GET_MYCLUB_CONFIRM_COOP_SQUADmyClubgateunseenpidbase_team_id, club_edition_type, coach_id_list, coach_unique_id_list, default_rarity, elected_myplayerlist, elected_myplayerlist_num, gameplan_data, gameplan_data_size, gameplayer_id, gameplayer_unique_id, is_club_edition, is_entry_compe, matchday_condition_list, member_list, member_num, my_team, name, parameters, player_level, squad_id, team_data, team_name, team_name_commentary_id, team_name_short, uniform_number
GET_MYCLUB_DEFAULT_COACHLISTmyClubgateunseenpidadaptability_rate, attacking_area, build_up, coach_id, default_coach_list, default_coach_list_num, defence_compact, defence_line, defence_num, defence_type, defensive_main_concept, first_df, formation_data, gp, is_locked, is_use_variable_formation, management, mobility, offence_num, offensive_main_concept, overall, passsupport_dist, pes_point, press_rule, transition
GET_MYCLUB_DEFAULT_RENTAL_GAMEPLAYERLISTmyClubgateunseenpidadd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, close_date, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer, gameplayer_cost, gameplayer_id, gameplayer_unique_id, games, goal, gp, is_protected, is_rental, is_subscription, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, nation_id, open_date, parameters, pes_point, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, rental_gameplayer_list, rental_gameplayer_list_num, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
GET_MYCLUB_EFP_EXCHANGE_STORELISTmyClubgateunseenpidbody, contract_term, count, entity_id, item, item_effect_arg, item_type, item_variation, limit_count, name, name_jp, pes_point_price, player_level, player_level_limit, present_type, price, product_id, receipt_deadline, store_list, store_list_num, team_id, title, use_count
GET_MYCLUB_FEATURE_PLAYER_LISTmyClubgateunseenpidgameplayer_list, gameplayer_list_num, hold_gameplayer_list, hold_gameplayer_list_num
GET_MYCLUB_GAME_BONUSmyClubgateunseenpidagent_id, base_gp, body, bonus_kind, bonus_rate, contract_term, count, entity_id, gain_gp, game_res, gp, gp_bonus_elected_myplayer_num, gp_bonus_list, gp_bonus_list_num, grade, is_first_win, item, item_effect_arg, item_type, item_variation, match_num, name, name_jp, new_cpu_level, old_cpu_level, pes_point_price, player_level, present_id, present_type, rate, rate_player_num, rate_table, receipt_deadline, scout, sell_gp, skill, skill_category, skill_id, special_match_bonus_list, squad_bonus_item_list, target_level, team_id, title, type
GET_MYCLUB_GAMEPLAYER_EXPERIENCEmyClubgateunseenpidadd_skill_id, enhanced_parameters, exp_current_level, exp_info_postmatch, exp_info_prematch, exp_list, exp_list_num, exp_match, exp_to_next_level, exp_total, gameplayer_unique_id, level, level_limit, parameters
GET_MYCLUB_GAMEPLAYERLISTmyClubgateunseenpidadd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer_cost, gameplayer_id, gameplayer_list, gameplayer_list_max, gameplayer_list_num, gameplayer_unique_id, games, goal, is_protected, is_rental, is_subscription, level, level_info, level_limit, main_edition_gameplayer_list, main_edition_gameplayer_list_num, mcountLeft, mobility_fix, mobility_float, nation_id, parameters, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
GET_MYCLUB_GAMEPLAYER_NEED_EXPERIENCELISTmyClubgateunseen
GET_MYCLUB_HISTORYLISTmyClubgateunseenpid, start_indexcount, data_type, date, entity_id, history_data_in, history_data_kind, history_data_out, index, item_data, item_effect_arg, item_type, item_variation, myclub_history_list, myclub_history_list_num, myclub_history_list_total, name, pes_point_price
GET_MYCLUB_INCREASED_COINLISTmyClubgateunseenpid, start_indexexpiration_date, gain_date, increased_coin_list_total, increased_pes_point_list, increased_pes_point_list_num, index, no_use_pes_point, pes_point, pes_point_buy, pes_point_free, pes_point_type, use_expiration_date
GET_MYCLUB_IS_FIRST_AGENT_MULTIPLEmyClubgateunseenpidis_first
GET_MYCLUB_IS_FIRST_MEMBERLISTmyClubgateunseenpidis_first
GET_MYCLUB_IS_MARKET_COACH_AVAILABLEmyClubgateunseenpid, coach_idis_get
GET_MYCLUB_ITEMLISTmyClubgateunseenpidcount, item_effect_arg, item_list, item_list_num, item_type, item_variation, pes_point_price
GET_MYCLUB_LEGEND_GAMEPLAYERLISTmyClubgateunseenpidadd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer_cost, gameplayer_id, gameplayer_list, gameplayer_list_num, gameplayer_unique_id, games, goal, is_protected, is_rental, is_subscription, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, nation_id, parameters, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
GET_MYCLUB_LOGIN_BONUSmyClubgateunseenpidbody, contract_term, count, entity_id, grade, is_bonus, item, item_effect_arg, item_type, item_variation, login_bonus_list, login_bonus_list_num, name, name_jp, pes_point_price, player_level, present_id, present_type, receipt_deadline, skill, skill_category, skill_id, team_id, title, today_bonus_number, type
GET_MYCLUB_MAINMENU_INFOmyClubgateunseenpidachievement_info, achievement_not_recieved_num, achievement_num, achievement_total_num, agent_panel_file_info, com_countWin_num, com_match_num, compe_db_id, cpu_level, filename, game_result, game_result_wdl, hash_str, is_auction_state_changed, is_auto_make_compe_name, is_coop_enable, is_free_enable, is_use_emblem, liveevent_panel_file_info, matchday_emblem_info, matchday_group_type, oppo_level, present_num, rank, rank_coach, rank_coach_total_num, rank_total_num, scount_num, staff_num, team_id, team_list_group_a, team_list_group_b, weekly_group_rank, weekly_group_rank_total_num
GET_MYCLUB_MAIN_SQUADmyClubgateunseenpid, target_pidadaptability_rate, add_skill_id, assist, attacking_area, attacking_area_center, attacking_area_side, base_team_id, build_up, build_up_long, build_up_short, club_edition_type, coach_id, coach_id_list, coach_list, coach_list_num, coach_unique_id, coach_unique_id_list, concept, contract_gp, contract_pes_point, contract_term, current_point_division, current_point_sim, current_point_vscom, default_overall, default_rarity, defence_compact, defence_line, defence_num, defence_type, defence_type_forecheck, defence_type_retreat, defensive_main_concept, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df, first_df_aggressive, first_df_safety, formation_data, gameplan_data, gameplan_data_size, gameplayer_cost, gameplayer_id, gameplayer_list, gameplayer_list_num, gameplayer_unique_id, games, goal, is_club_edition, is_coach_texture_use, is_entry_compe, is_protected, is_rental, is_subscription, is_use_variable_formation, level, level_info, level_limit, management, mcountLeft, member_list, member_num, mobility, mobility_fix, mobility_float, name, nation_id, offence_num, offensive_main_concept, overall, parameters, passsupport_dist, player_level, player_level_need_exp, press_rule, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, sell_gp, squad, squad_id, team_id, team_name, tiredness, transition, transition_counter, transition_possession, uniform_number
GET_MYCLUB_MARKET_AGENTLISTmyClubgateunseenpidagent, agent_end_time, agent_id, agent_token_end_time, banner_file_info, bgm_id, count, end_time, filename, get_player_num, gp, hash_str, is_buy_gp_pes_point, is_draw_checked, level, limit_count, market_agent_list, market_agent_list_num, market_subscription, name, name_jp, pes_point, skill, skill_category, skill_id, target_level, token_list, token_list_num, type, uniform, use_count
GET_MYCLUB_MARKET_COACHLISTmyClubgateunseenpidadaptability_rate, attacking_area, build_up, coach_id, defence_compact, defence_line, defence_num, defence_type, defensive_main_concept, end_time, first_df, formation_data, gp, is_locked, is_use_variable_formation, management, market_coach_list, market_coach_list_num, mobility, now_time, offence_num, offensive_main_concept, overall, passsupport_dist, pes_point, press_rule, transition
GET_MYCLUB_PLAYER_NUMBER_FIXATIONmyClubgateunseenpidnumber, player_id, player_number_list, player_number_list_num
GET_MYCLUB_PRESENTLISTmyClubgateunseenpidbody, contract_term, count, entity_id, grade, item, item_effect_arg, item_type, item_variation, name, name_jp, pes_point_price, player_level, present_id, present_list, present_list_num, present_type, receipt_deadline, skill, skill_category, skill_id, team_id, title, type
GET_MYCLUB_PROCURABLE_GAMEPLAYERLISTmyClubgateunseenpid, is_top_agent, agent_id, is_subscriptiongameplayer_id, gameplayer_list, gameplayer_list_num, is_draw, level_limit, team_id
GET_MYCLUB_PROCURABLE_GAMEPLAYERLIST_RARITYmyClubgateunseenpid, raritygameplayer_id, gameplayer_list, gameplayer_list_num, is_draw, level_limit, team_id
GET_MYCLUB_PROCURABLE_GAMEPLAYERLIST_SCOUTmyClubgateunseenpid, scout_list, agent_id, skill, skill_category, skill_id, grade, count, rate, rate_table, rate_player_num, target_level, sell_gp, scout_list_numgameplayer_id, gameplayer_list, gameplayer_list_num, is_draw, level_limit, rate, rate_player_num, rate_table, team_id
GET_MYCLUB_PROCURABLE_SCOUTLIST_GAMEPLAYERmyClubgateunseenpid, gameplayeragent_id, count, grade, rate, rate_player_num, rate_table, scout_list, scout_list_num, sell_gp, skill, skill_category, skill_id, target_level
GET_MYCLUB_RANKINGmyClubHTTPunseenstart_index, sort, order, view_num, is_coachaccount_id, date, division, draw_count, favoritePlayer, favoriteTeam, intro, is_deleted, is_valid_cache, lose_count, manner, match_record, name, online_id, pid, pname, psn_user_id, rank, rank_list, rating, team_id, team_name, total_rank_num, user, win_count, win_s_max, xuid_one
GET_MYCLUB_RANKING_BYIDmyClubHTTPunseenpid, xuid_one, np_account_id, sort, order, view_num, is_coachaccount_id, date, division, draw_count, favoritePlayer, favoriteTeam, intro, is_deleted, is_valid_cache, lose_count, manner, match_record, name, online_id, pid, pname, psn_user_id, rank, rank_list, rating, team_id, team_name, total_rank_num, user, win_count, win_s_max, xuid_one
GET_MYCLUB_REFINE_SEARCH_AUCTION_LISTmyClubgateunseenpid, refine_search_auction, grade_list, is_settings_rarity, price_min, price_max, is_settings_price, time_limit_min, time_limit_max, is_settings_time_limit, bid_min, bid_max, is_settings_tender, skill_list, skill_category, skill_id, skill_list_num, is_settings_agent_skill, start_index, is_auction_state_changedauction_info_list, auction_state, bid_num, finalround_end_time, grade, is_bid, is_bid_user_max, is_highest_bider, is_register_watchlist, price_now, product_id, scout_id, skill, skill_category, skill_id, time_limit, total_auction_info_list_num, update_time
GET_MYCLUB_RENTAL_GAMEPLAYERLISTmyClubgateunseenpidadd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, close_date, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer, gameplayer_cost, gameplayer_id, gameplayer_unique_id, games, goal, gp, is_protected, is_rental, is_subscription, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, nation_id, open_date, parameters, pes_point, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, rental_gameplayer_list, rental_gameplayer_list_num, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
GET_MYCLUB_SCOUTLISTmyClubgateunseenpidagent_id, count, grade, rate, rate_player_num, rate_table, scout_list, scout_list_num, sell_gp, skill, skill_category, skill_id, target_level
GET_MYCLUB_SERVER_ENVmyClubgateunseenpid, get_club_edition_listagent_id, count, grade, is_all_club_edition_set, license_out_coach_list, license_out_player_list, market_scout_list, rate, rate_player_num, rate_table, sell_gp, skill, skill_category, skill_id, target_level
GET_MYCLUB_SQUAD_BONUS_TARGET_PLAYERLISTmyClubgateunseenpid, compe_idgameplayer_id, gameplayer_id_list, gameplayer_id_list_num, is_draw, level_limit, need_player_num, team_id
GET_MYCLUB_SQUAD_GAMEPLANmyClubgateunseenpid, squad_idgameplan_data, gameplan_data_size
GET_MYCLUB_SQUADLISTmyClubgateunseenpidcloud_squad_id, club_edition_type, coach_id_list, coach_unique_id_list, default_rarity, edition_squad_list, edition_squad_list_num, gameplan_data, gameplan_data_size, gameplayer_id, gameplayer_unique_id, is_club_edition, is_entry_compe, main_squad_id, member_list, member_num, name, parameters, player_level, squad_id, squad_list, squad_list_num, uniform_number
GET_MYCLUB_STAFF_LISTmyClubgateunseenpid, player_info, gameplayer_unique_id, gameplayer_base_id, gameplayer_id, gameplayer_level, registared_position, position, stronger_foot, overall, ability, play_style, nation_id, club_team_idability, base_exp, base_player_info, club_team_id, gameplayer_base_id, gameplayer_id, gameplayer_level, gameplayer_unique_id, id, nation_id, overall, play_style, position, registared_position, staff_list, staff_list_num, stronger_foot
GET_MYCLUB_SUBSCRIPTION_MY_GAMEPLAYERLISTmyClubgateunseen
GET_MYCLUB_USER_INFOmyClubgateunseenpidadd_uniform_list, base_team_id, gp, home_town, is_iconic_moment_view, label, name, nation_id, norma_point_division, norma_point_sim, norma_point_vscom, pes_point, progress_status, select_add_uniform_id, team_name, team_name_commentary_id, team_name_short, user_base_team_id, user_team_name, user_team_name_commentary_id, user_team_name_short
GET_MYCLUB_VSCOM_OPPONENTmyClubgateunseenpid, is_coach_mode, is_team_power_lvaccount_id, attacking_area_center, attacking_area_side, base_team_id, build_up_long, build_up_short, club_edition_type, coach_adaptability_rate, coach_id_list, coach_unique_id_list, concept, concept_data, cpu_level, default_rarity, defence_type_forecheck, defence_type_retreat, first_df_aggressive, first_df_safety, gameplan_data, gameplan_data_size, gameplayer_id, gameplayer_unique_id, is_club_edition, is_deleted, is_entry_compe, is_valid_cache, member_list, member_num, mobility_fix, mobility_float, name, online_id, parameters, pes_pname, pid, player_level, press_rule_net_defence, press_rule_seal_off, psn_user_id, side, squad_id, team_data, team_name, team_name_commentary_id, team_name_short, transition_counter, transition_possession, uniform_number, xuid_one
GET_MYCLUB_WEEKLYPOINT_RESULTmyClubgateunseenpid, oppo_pidgain_point_by_skill_rank, gain_point_by_weekly_point, hi_score, hi_score_rank, is_entry_weekly_myclub, is_hi_score, old_hi_score, old_hi_score_rank, old_weekly_point, oppo_skill_rank, weekly_point, weekly_point_info, weekly_point_rate
GET_MYCLUB_WEEKLY_RANKINGmyClubHTTPunseengroup_search_target_pid, start_index, view_num, is_group_ranking, is_old_seasonaccount_id, body, contract_term, count, date, division, entity_id, grade, group_number, is_deleted, is_valid_cache, item, item_effect_arg, item_type, item_variation, max_weekly_point, name, name_jp, online_id, pes_point_price, pid, player_level, pname, present_id, present_type, psn_user_id, rank, rank_list, receipt_deadline, reward, reward_list, skill, skill_category, skill_id, team_id, title, total_rank_num, type, xuid_one
GET_MYCLUB_WEEKLY_RANKING_BASIC_INFOmyClubgateunseenpidbasic_info, body, contract_term, count, division, division_change_type, entity_id, eura_url, grade, is_beginner, is_group_rank_1st, is_join, is_no_play_season, is_rejected, is_season_end, item, item_effect_arg, item_type, item_variation, name, name_jp, pes_point_price, player_level, present_id, present_type, receipt_deadline, reward, skill, skill_category, skill_id, team_id, title, type
GET_MYCLUB_WEEKLY_RANKING_BYIDmyClubHTTPunseenpid, xuid_one, np_account_id, view_num, is_group_ranking, is_old_seasonaccount_id, body, contract_term, count, date, division, entity_id, grade, group_number, is_deleted, is_valid_cache, item, item_effect_arg, item_type, item_variation, max_weekly_point, name, name_jp, online_id, pes_point_price, pid, player_level, pname, present_id, present_type, psn_user_id, rank, rank_list, receipt_deadline, reward, reward_list, skill, skill_category, skill_id, team_id, title, total_rank_num, type, xuid_one
GET_OFFMODE_PLAYER_PARAMETERLISTLogin & accountgateunseenpid, home_player_list, gameplayer_unique_id, gameplayer_id, away_player_list, is_equalizationaway_param_playerlist, gameplayer_id, gameplayer_id_info, gameplayer_unique_id, home_param_playerlist, parameters
GET_OFTEN_USED_TEAM_LISTMatchgateunseenpidlast_used_team_id, used_team_id_list, used_team_id_list_num
GET_ONLINE_AD_FILENews & infogateOK only ×16pid, ad_match_kind, compe_idad_banner_file_name, ad_signage_file_namestadium ad-board file names →
GET_ONLINE_IDStore & platformgateunseen
GET_ONLINE_ID_CLIENTStore & platformgateunseen
GET_PESLEAGUE_1VS1_MAINMENU_INFOPES Leaguegateunseenpid, compe_idcompe_end_time, draw_count, lose_count, match_num, matching_first_date, matching_interval, matching_time, point, rank_type, regulation_match_num, team_id, team_name, win_count
GET_PESLEAGUE_COMPE_INFOPES Leaguegateunseenpid, compe_idaccount_id, banner_file_info, basic_settings, clan_comment, clan_info, clan_member_num, clan_members, clan_name, clan_stats_myclub, clan_stats_online, compe_data, compe_db_id, compe_id, compe_name, compe_regulation, condition, coop_level, current_division, current_online_mode, current_rating, draw_count, enable_request, end_date, entry_compe, entry_limit_date, entry_limit_division, entry_limit_division_max, entry_limit_division_min, entry_user_limit, entry_user_max, entry_user_num, extra_time, filename, goal, guest, hash_str, is_banned, is_deleted, is_e_sports, is_efootball_pro_stadium, is_exist_overview_info, is_exist_participation_right, is_exist_rewardInfo, is_follow, is_join_online_mode, is_myclub, is_pesleague_stadium, is_valid_cache, last_login, lose_count, lost_goal, match_count, match_end_date, match_time, match_type, name, online_id, owner_info, pid, pk, pname, psn_user_id, ranking_match_num, residual_div_first_count, season_match_stats, season_win_count, start_date, team_id, total_match_stats, trade_num, use_ball_id, user_id, win_count, win_s, win_s_max, xuid_one
GET_PESLEAGUE_COMPE_LISTPES Leaguegateunseenpid, mode, start_index, is_end, is_join_onlybanner_file_info, compe_db_id, compe_id, compe_list, compe_name, end_date, entry_limit_date, entry_limit_division, entry_limit_division_max, entry_limit_division_min, entry_user_limit, entry_user_max, entry_user_num, filename, hash_str, is_end, is_entry, is_gm_account, is_myclub, is_no_check, list_banner_file_info, list_max, list_num, match_end_date, match_type, mode, start_date
GET_PESLEAGUE_COMPE_OVERVIEW_INFOPES Leaguegateunseenpid, compe_idoverview_info
GET_PESLEAGUE_COMPE_PARTICIPATION_RIGHTPES Leaguegateunseenpid, compe_idaccount_id, banner_file_info, clan_name, clan_owner_name, clan_owner_pid, compe_id, compe_name, end_date, filename, hash_str, is_deleted, is_get, is_valid_cache, name, need_match_num, need_point, online_id, participation_right, player_point, psn_user_id, start_date, xuid_one
GET_PESLEAGUE_COMPE_RANKINGPES Leaguegateunseenpid, compe_id, start_index, view_numaccount_id, clan_owner_name, continuous_win, diff_score, draw_count, entry_name, get_score, is_deleted, is_get_participation_right, is_mydata, is_valid_cache, list_max, list_num, lose_count, lose_score, match_num, name, online_id, pid, point, psn_user_id, rank, rank_list, rank_type, recode_date, team_id, update_date, win_count, xuid_one
GET_PESLEAGUE_COMPE_RANKING_BYIDPES Leaguegateunseenpid, compe_id, view_numaccount_id, clan_owner_name, continuous_win, diff_score, draw_count, entry_name, get_score, is_deleted, is_get_participation_right, is_mydata, is_valid_cache, list_max, list_num, lose_count, lose_score, match_num, name, online_id, pid, point, psn_user_id, rank, rank_list, rank_type, recode_date, team_id, update_date, win_count, xuid_one
GET_PESLEAGUE_COMPE_RESULT_LISTPES Leaguegateunseenpid, compe_id, is_unconfirm_listaccount_id, banner_file_info, before_division, clan_name, clan_owner_name, clan_owner_pid, compe_db_id, compe_id, compe_name, end_date, entry_user_num, filename, hash_str, is_confirm, is_deleted, is_get_reward, is_participation_get, is_valid_cache, name, online_id, player_rank, psn_user_id, result_list, result_list_num, start_date, update_division, xuid_one
GET_PESLEAGUE_COMPE_REWARD_INFOPES Leaguegateunseenpid, compe_idreward_info
GET_PESLEAGUE_COMPE_REWARD_LISTPES Leaguegateunseenpid, compe_idbody, contract_term, count, entity_id, grade, item, item_effect_arg, item_type, item_variation, name, name_jp, pes_point_price, player_level, present_id, present_type, receipt_deadline, reward_list, reward_list_num, skill, skill_category, skill_id, team_id, title, type
GET_PESLEAGUE_COMPE_TEAM_LISTPES Leaguegateunseenpid, compe_idteam_list, team_list_num
GET_PESLEAGUE_MAINMENU_INFOPES Leaguegateunseenpid, modedivision, new_result
GET_PLATFORM_SESSIONStore & platformgateunseenpid, room_iddata_size, session
GET_PLAYER_DATALogin & accountgateours ×86account_id, has_data, is_deleted, is_valid_cache, name, online_id, pid, pname, psn_user_id, xuid_one
GET_PLAYERINFONews & infogateunseenpid, user_id, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deletedaccount_id, active_squad_level, active_squad_power, base_team_id, best_rank, cloud_squad_level, cloud_squad_power, contWinMax_num, contWin_num, coop_level, coop_level_point, coop_manner, coop_profile_data, current_weekly_point, disconnect_rate, division, draw_count, draw_num, entry_count, favoritePlayer, favoriteTeam, follower, game_count, goal, group_win_count, hometown, intro, is_deleted, is_follow, is_valid_cache, label, lose_count, lose_num, lostGoal, manner, match_data, match_data_size, match_num, matchday_rating_rank, matchday_stats_coop, matchday_stats_single, max_weekly_point, myclub_coach_stats, myclub_matchday_rating_rank, myclub_stats, name, nation_id, online_id, online_match, pickup_count, pid, pname, position, position_rating, psn_user_id, rankmatch_stats, rankmatch_teamLog, rating, regist_team_info, skill_rank, team_name, total_position_match_num, total_position_rating, vscom_match, win_count, win_num, xuid_one
GET_PLAYER_PARAMETERLISTLogin & accountgateOK only ×88pid, player_list, gameplayer_unique_id, gameplayer_id, is_equalizationgameplayer_id, gameplayer_id_info, gameplayer_unique_id, is_cost_over, param_playerlist, parameters
GET_POSITION_RATINGMatchgateunseenpid, target_pidgame_count, pos_rating_list, position, rating, total_position_match_num, total_position_rating
GET_PRIVATEINFOTITLELISTNews & infogateOK only ×192pid, lang, regionannnounce_info_list_num, announce_id, announce_info_list, announce_type, compe_db_id, date, event_id, evoked_text, filename, hash_str, is_auto_make_compe_name, is_use_emblem, list_banner_file_info, matchday_emblem_info, matchday_group_type, popup_type, priority, team_list_group_a, team_list_group_b, title, weekly_info_typepersonal news list →
GET_QUICKMATCHOPTIONMatchmakinggateours ×76pidis_league, is_pass_level, is_team_power_lv, ping_level, rating_level, team_class
GET_RANDOMSELECTION_LOTTERY_LISTRandom Selectiongateunseenpid, compe_idgameplayer_list, gameplayer_list_num, trade_num
GET_RANKINGDivisions & rankingsHTTPunseenstart_index, view_num, sort, orderaccount_id, date, division, draw_count, favoritePlayer, favoriteTeam, intro, is_deleted, is_valid_cache, lose_count, manner, match_record, name, online_id, pid, pname, point, psn_user_id, rank, rank_list, rating, total_rank_num, user, win_count, win_s_max, xuid_oneHTTP ranking, inline maps →
GET_RANKING_BYIDDivisions & rankingsHTTPunseenpid, xuid_one, np_account_id, view_num, sort, orderaccount_id, date, division, draw_count, favoritePlayer, favoriteTeam, intro, is_deleted, is_valid_cache, lose_count, manner, match_record, name, online_id, pid, pname, point, psn_user_id, rank, rank_list, rating, total_rank_num, user, win_count, win_s_max, xuid_one
GET_ROOM_BESTPLAYERLobby & roomsgateunseenpid, room_idgame_count, pid, position_best_player, rating
GET_SERVER_ENVLogin & accountgateours ×206is_check_myclub_level, is_revision_check, konamiid_api_retry_sec, lobby_ping_good, lobby_ping_normal, log_update_level, match_client_timeout_cmd_lack, match_client_timeout_init_not_end, match_client_timeout_load_timeout, match_client_timeout_long_outofplay, matchrejectpid_max, max_division, proto_opt, quality_check_wait_sec, quick_ping_good, quick_ping_normal, teamlobby_game_rating_border_hard, teamlobby_game_rating_border_normal, trigger_keep_alivematch timeouts in seconds + switches →
GET_STEAM_STORE_STATEStore & platformHTTPunseenpid, ticket, steamid, package_type, orderidstate
GET_STORELINKStore & platformHTTPunseenregionstorelinkinfo
GET_STORE_PRODUCT_LISTStore & platformgateOK only ×148license_areabase_point, bonus_point, expiration_date, is_consumable, is_purchasable, is_subscription, live_asset_id, live_offer_id, live_product_id, product_id, product_list, product_list_num, psn_entitlement_id, psn_product_id, steam_dlc_id, steam_item_id, total_point
GET_STORE_TRANSACTION_STATEStore & platformgateOK only ×148pidlive_transaction_id, possession_num, product_id, state, steam_order_id, transaction_id, use_num, used_present_product_id_list, used_present_product_id_list_num
GET_SVRLISTLogin & accountgateours ×74timeout, lang, patch_version, dlc_versionmax_player_num, player_num, server_num, svraddr, svrgid, svrlist, svrport, svrtype
GET_SVRTIMELogin & accountgateours ×74date
GET_SVRVERSIONLogin & accountgateours ×74patch_version, dlc_version, livedata_versiondlc_version, eula_myclub_version, eula_privacy_notice_version, eula_privacy_policy_california_version, eula_privacy_policy_version, eula_version, livedata_version, patch_version, version
GET_TRIAL_URLLISTStore & platformHTTPunseenlang, platform, region, typetype, ulist, url, url_num
GET_TURN_SERVER_LISTConnectivity / relayHTTPOK only ×250pid, turn_account_param, turn_time_limitaddress, id, origin, port, pw, server_certificate, server_certificate_data_size, tls_port, turn_server_list, zoneTURN servers + creds; empty list = no relay fallback →
GET_URGENT_ANNOUNCEMENTNews & infogateOK only ×96pid, package_type, online_mode, announcement_type, lang, regionannouncement_data, announcement_id, announcement_type, body, is_announcement, online_mode, read_check, titleserver pop-up before a mode →
GET_URLLISTLogin & accountgateours ×104lang, region, patch_version, dlc_versiontype, ulist, url, url_num
GET_WATCHING_MATCH_LISTSpectatinggateunseenpid, match_category, compe_id, indexaccount_id, cpu_level, date, ex_type, game_phase, game_result, gameend_reason, is_com, is_deleted, is_follow, is_guest, is_valid_cache, match_category, match_id, match_list, match_list_num, name, no_match, online_id, pid, pk_flag, player, pname, psn_user_id, score, score_1st, score_2nd, score_ex1st, score_ex2nd, score_pk, side, team, total_match_num, xuid_onewatchable matches →
INVITE_CLANLobby & roomsgateunseenpid, target_id, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted
JOIN_BLOCKSocialgateunseenblock_identer a block →
JOIN_COMPEVEvents & competitionsgateunseenpid, compe_mode, compe_id, compe_cpu_level
JOIN_COMPEV_MODEEvents & competitionsgateunseenpid, compe_mode
JOIN_COOP_ROOMCo-opgateunseenpid, room_id, password, is_invite
JOIN_LOBBYLobby & roomsgateourslobby_idgamerelay_web_url
JOIN_MATCHDAYMatchdaygateunseenpid, compe_id, entry_matchday_group, team_id, sp_gameplan_data, sp_gameplan_data_size, sp_member_listevaluation_a, evaluation_b, rating_kind_player_bonus_value_list, sp_squad_rating, squad_rating_info
JOIN_MATCHDAY_MODEMatchdaygateunseenpid
JOIN_OFFLINE_MODELogin & accountgateOK only ×12pid, offline_mode
JOIN_ONLINE_MODELogin & accountgateOK only ×96pid, online_mode, patch_version, dlc_version, livedata_version, extradata_versionversions; ERR_MODE_BLOCKED = version gate →
JOIN_PESLEAGUE_COMPEPES Leaguegateunseenpid, compe_id, team_id
JOIN_PESLEAGUE_COMPE_MODEPES Leaguegateunseenpid, compe_mode
JOIN_ROOM_NTLLobby & roomsgateunseenroom_id, is_invited, passwordaccount_id, address_family, host_addr, is_deleted, is_valid_cache, name, ntl_nat_type, online_id, pid, pname, psn_user_id, reflexive_addr, relayed_addr, room_owner, room_stat, sa_data, xuid_onejoin a room (password) →
LACKIn-match syncgateunseen
LEAVE_BLOCKSocialgateunseenpid
LEAVE_CLANClansgateunseenpid, owner_pid
LEAVE_COMPEVEvents & competitionsgateunseenpid, compe_mode
LEAVE_COMPEV_MODEEvents & competitionsgateunseenpid
LEAVE_COOP_ROOMCo-opgateunseenpid, room_id
LEAVE_GAMEMatchgateunseenpidback to room after a match →
LEAVE_LOBBYLobby & roomsgateours
LEAVE_MATCHDAYMatchdaygateunseenpid
LEAVE_MATCHDAY_MODEMatchdaygateunseenpid
LEAVE_MYCLUB_AUCTION_SCOUT_DETAILmyClubgateunseenpid
LEAVE_OFFLINE_MODELogin & accountgateOK only ×12pid, offline_mode
LEAVE_ONLINE_MODELogin & accountgateOK only ×6pid, online_mode
LEAVE_PESLEAGUE_COMPEPES Leaguegateunseenpid
LEAVE_PESLEAGUE_COMPE_MODEPES Leaguegateunseenpid
LEAVE_ROOMLobby & roomsgateOK only ×68error_code
LOCK_FOLLOW_USERSocialgateunseenpid, target_pid, is_lock
LOGINLogin & accountgateours ×152username, hash, platform, patch_version, dlc_version, livedata_version, extradata_version, package_type, sku, net_link_type, np_account_id, pairwise_id
LOGIN_TRIALStore & platformHTTPunseensteam_id, xuid, xuid_one, account_id, platform, region, lang, type
LOST_GUESTIn-match syncgateunseen
MATCH_MENU_STADIUM_LISTMatchgateunseen
MATCH_MENU_UPDATEMatchgateunseen
RECONNECTIn-match syncgateunseenpid, platform, patch_version, dlc_version, online_modekey, key_sizeafter a gate drop; needs key like SET_CURRENTPLAYER →
RECV_MYCLUB_ACHIEVEMENT_BONUSmyClubgateunseenpid, achievement_category, is_allachievement_bonus, achievement_category, achievement_id, body, contract_term, count, entity_id, grade, item, item_effect_arg, item_type, item_variation, name, name_jp, pes_point_price, player_level, present, present_id, present_type, receipt_deadline, received_all, received_milestone_level, recv_achievement_list, skill, skill_category, skill_id, team_id, title, type
RECV_MYCLUB_PRESENTmyClubHTTPunseenpid, present_id, is_allbody, contract_term, count, entity_id, grade, item, item_effect_arg, item_type, item_variation, name, name_jp, pes_point_price, player_level, present_id, present_type, receipt_deadline, receive_result_list, receive_result_list_num, skill, skill_category, skill_id, team_id, title, type
REENTRY_COMPEVEvents & competitionsgateunseenpid, compe_id
REJECT_CLAN_REQUESTClansgateunseenpid, request_list, type, status, is_new, appliciant_user_id, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, is_follow, date, applicant_clan_name
RENT_MYCLUB_GAMEPLAYERmyClubgateunseenpid, gameplayer_id, use_pes_pointadd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer, gameplayer_cost, gameplayer_id, gameplayer_unique_id, games, goal, gp, is_protected, is_rental, is_subscription, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, nation_id, parameters, pes_point, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
REQ_GAMEADDPOINTMatchgateOK only ×64pidasks for the verdict after 10 s; answer + push →
REQWATCH_ERROR_COOP_ROOM_TO_MATCHINGCo-opgateunseenpid, room_iderror_kind, is_error
REQWATCHL_BLOCK_MATCH_LISTSocialgateunseenpidaccount_id, away, game_phase, home, is_deleted, is_valid_cache, list_data, list_key_name, list_num, list_type, match_id, name, online_id, pid, pname, psn_user_id, room_id, room_name, room_number, score, score_1st, score_2nd, score_ex1st, score_ex2nd, score_pk, team_id, xuid_one
REQWATCHL_COOP_ROOM_MEMBERCo-opgateunseenpid, room_idaccount_id, coop_level, guest_info, is_clan_member, is_deleted, is_follow, is_guest, is_owner, is_platform_guest, is_ready, is_valid_cache, list_data, list_key_name, list_num, list_type, name, online_id, pid, player_index, pname, psn_user_id, user_info, xuid_one
REQWATCHL_ROOMLISTLobby & roomsgateunseenaccount_id, auto_start_num, ball_type, cpuLevel, dlcontent, enter_no, exGame, exSubstitution, game_no, game_phase, game_rating_limit, gameenv, gamer, gamer_num, gametime, injury, is_anyplayers, is_deleted, is_invite_limit, is_original_player, is_passwd, is_room_owner, is_select_gk, is_valid_cache, limitTime, list_data, list_key_name, list_num, list_type, max_players, name, online_id, owner_lang, owner_pname, pid, pkOnOff, psn_user_id, room_id, room_number, room_user_count, side, status, substitution, vs_com, xuid_oneroom list (RELOAD/ADD/UPDATE/DEL) →
REQWATCHL_ROOMPLAYERLIST_NTLLobby & roomsgateunseenroom_idaccount_id, address_family, game_entry_no, guest_info, has_guest, host_addr, is_deleted, is_owner, is_platform_guest, is_quality_bad, is_valid_cache, lang, list_data, list_key_name, list_num, list_type, name, ntl_nat_type, online_id, pid, pname, psn_user_id, reflexive_addr, relayed_addr, room_entry_no, room_player_id, sa_data, side, xuid_oneroom members + P2P addresses; reply within 10 s, later changes as UPDATE →
REQWATCH_MYCLUB_AUCTION_REFUNDED_GPmyClubgateunseenpidgp, product_id, refunded_gp_list, skill, skill_category, skill_id, total_gp
REQWATCH_ROOM_XUIDONE_LISTLobby & roomsgateunseenpid, room_idlist_size, xuid_one_list
RESET_MYCLUB_AGENT_BOXmyClubgateunseenpid, agent_id
RESET_MYCLUB_TEAMmyClubgateunseenpid
RESULT_RANDOMSELECTION_LOTTERYRandom Selectiongateunseen
RESULT_RANDOMSELECTION_TRADERandom Selectiongateunseen
RESULT_SELECTING_PLAYER_NUMMatchgateunseen
RESULT_SIDEMatchgateunseen
RETURN_COOP_ROOMCo-opgateunseenpid, room_id
REVISION_CHECKIn-match syncgateunseen
ROLLBACK_STORE_TRANSACTIONStore & platformgateunseenpid, transaction_id
SELECT_SIDEIn-match syncgateunseen
SELL_MYCLUB_COACHmyClubgateunseenpid, coach_unique_idgain_gp, gp
SELL_MYCLUB_GAMEPLAYERmyClubgateunseenpid, gameplayer_unique_id_list, is_use_cloud_matchgain_gp, gp
SELL_MYCLUB_SCOUTmyClubgateunseenpid, scout_list, agent_id, skill, skill_category, skill_id, grade, count, rate, rate_table, rate_player_num, target_level, sell_gpgain_gp, gp
SEND_ABNORMALENDMatchgateOK only ×80reason, error_code26 reasons; error_code CODE_0xHEX →
SEND_ALIVEMatchgateunseenpid, reasonreply to liveness probe →
SEND_ALIVEPLAYERMatchgateunseenpid, pid_list, pid_list_num
SEND_AUTHORIZATION_CODELogin & accountHTTPunseenauthorization_code, issuer_id, pid, onlineid_data, onlineid_term, region, package_typeaccount_id
SEND_COOP_ALIVECo-opgateunseenpid, group_idanswer to CHECKALIVE →
SEND_DOWNLOAD_STATS_DATAMatchgateunseenpid, filename, file_hash, download_type, download_time, downloaded_size, average_bps, max_bps, min_bps, result_kind
SENDFAILEDIn-match syncgateunseen
SEND_GAME_RESULTMatchgateOK only ×72pid, gameend_reason, error_code, game_phase, side, home_score, away_score, home_team_id, away_team_id, is_cheat, abnormalend_reason, communication_time, link_type, rtt_max, rtt_mean, rtt_var, rx_packet_loss_rate_max, rx_packet_loss_rate_mean, rx_recently_packet_loss_rate_max, rx_recently_packet_loss_rate_mean, receive_idle_time, transport_rtt_max, transport_rtt_mean, transport_rtt_var, match_time, cursor_data_list, cursor_id, name, cursor_executed_command_count, cursor_executed_command_count_in_mc_active, input_delay_in_mc_active_mean, input_delay_in_mc_active_max, input_delay_buffer_fatal_cond_determn_time_max, match_delay_mean, match_delay_max, match_delay_mean_inactive, match_delay_max_inactive, match_stop_count_self_buffer_empty_in_mc_active, cursor_data_list_num, match_stop_count_buffer_empty_in_mc_active, executed_command_count, executed_command_count_in_mc_active, match_hz_min, match_hz_mean, match_hz_variance, base_private_network_quality, base_network_quality, private_network_quality, network_quality, is_quality_bad, is_quality_check_failed, is_degrade_private_network, is_degrade_network, pes_srv_rtt_nums, pes_srv_rtt_mean, pes_srv_rtt_variance, pes_srv_rtt_min, pes_srv_rtt_maxone per client; reconcile both →
SEND_GAME_SEQUENCE_DATAMatchgateunseenpid, match_id, game_seq_data, type, fromId, channelId, sequenceNumber, data, data_len, game_seq_data_nummatch recording upload (spectating) →
SEND_HEARTBEATLogin & accountgateours ×3845
SEND_IPANDPORT_NTLConnectivity / relaygateours ×90host_addr, address_family, sa_data, reflexive_addr, relayed_addr, ntl_nat_type, file_hash_list, file_hash_list_numNTL candidates; host's reflexive = LAN IP problem →
SEND_KICK_REQUESTFair playgateunseen
SEND_LOGLogin & accountgateOK only ×192pid, title, log
SEND_MATCH_ANALYZEMatchgateunseenpid, analyze_data_type, analyze_data, game_res, favorite_play_offence_first, favorite_play_offence_second, favorite_play_offence_third, favorite_play_defence_first, favorite_play_defence_second, favorite_play_defence_third, posession, pass_count, pass_success_count, cross_count, cross_success_count, pass_cut_count, tackle_count, tackle_success_count, dribble_distance, attack_time, deffence_time, pass_distance, match_up_distance, foul_count, offside_count, shoot_count, inframe_shoot_count, suffer_shoot_count, suffer_inframe_shoot_count, score_dribble_count, score_pass_count, score_cross_count, score_through_pass_count, score_set_play_count, score_other, score_loss_dribble_count, score_loss_pass_count, score_loss_cross_count, score_loss_through_pass_count, score_loss_set_play_count, score_loss_other, attack_area_left, attack_area_middle, attack_area_right, intercept_area, concept_arrange_offence_first, concept_arrange_offence_second, concept_arrange_defence_first, concept_arrange_defence_second
SEND_MATCHING_RESULTMatchmakinggateOK only ×108member, pid, host_addr, address_family, sa_data, reflexive_addr, relayed_addr, ntl_nat_type, vs_member, error_code, game_sycom, gamerelay_ip_addr, gamerelay_ip_port, quality_select_kind, quality_antennaper-match connectivity record →
SEND_MATCH_TEAM_INFONews & infogateOK only ×72pid, match_team_info, team_spirit, cpu_level, is_cost_over, chemistry, player_role_list, role, is_use_variable_formation, starting_order, gameplayer_id_info, gameplayer_unique_id, gameplayer_id, level, condition, staminaline-ups, form, stamina →
SEND_MYCLUB_MATCH_RATINGmyClubgateunseenpid, rating_list, gameplayer_id_info, gameplayer_unique_id, gameplayer_id, rating, opponent_rating_list, rating_num, opponent_rating_num
SEND_MYCLUB_PROGRESS_STATUSmyClubgateunseenpid, statusnext_status
SEND_MYCLUB_READ_ACHIEVEMENTLISTmyClubgateunseenpid, achievement_category_list
SEND_NOTICEMatchgateourspid_list_num, pid_list, dataJSON room notices (MOMROOM_*, ROOM_SHARE_INFO) →
SEND_PSIDStore & platformgateours ×76psid_high, psid_low, xb1_device_id
SEND_STATS_DATAMatchgateOK only ×72pid, match_id, stats, side, inframe_shoot_num, freekick_num, cornerkick_num, tackle_success_num, save_num, pass_success_num, cut_num, possesion8 team counters per side →
SEND_STORE_TRANSACTION_ERROR_INFOStore & platformgateunseenpid, error_code, transaction_id, product_id, use_num, possession_num, psn_service_entitlement_id, live_asset_id, live_product_id, live_transaction_id
SEND_SYNC_NOTICEMatchgateours ×54pid_list_num, pid_list, databarrier; pid_list grows per match, dedupe →
SEND_SYSTEM_NOTICEMatchgateours ×98pid_list_num, pid_list, dataSTART/END P2P rendezvous; exactly once, in order →
SEND_TAMPER_DATAFair playgateunseenpid, match_category, data, error_codegame reports its own tampering →
SEND_TEXTCHATSocialgateunseenchannel, statement, list_flg, list_pidroom/block chat →
SEND_TRIAL_AUTHORIZATION_CODEStore & platformgateunseen
SEND_TRIAL_AUTHORIZATION_CODE_CLIENTStore & platformHTTPunseenauthorization_code, issuer_id, onlineid_data, onlineid_term, platform, region, typeaccount_id
SEND_TRIAL_IDStore & platformHTTPunseensteam_id, xuid, xuid_one, account_id, platform, region, type
SEND_TURN_ADDRESS_DATAConnectivity / relaygateunseenpid, address, address_data_sizeclient's TURN relayed address; forward to opponent →
SEND_WATCHING_RESULTSpectatinggateunseenpid, match_id, is_connect, phase, error_code, reasonviewer's report →
SET_AVATARLogin & accountgateunseenpid, avatar_data_size, avatar_data, avatar_md5
SET_CLAN_SETTINGSClansgateunseenpid, clan_basic_settings, clan_name, owner_info, user_id, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, coop_level, is_follow, last_login, current_online_mode, is_join_online_mode, enable_request, clan_comment, is_banned
SET_COOP_MATCH_DATACo-opgateunseenpid, match_stats, grade, match_data_size, match_data
SET_COOP_MATCH_READYCo-opgateunseenpid, room_id, is_ready
SET_COOP_PLAYER_GRADECo-opgateunseenpid, grade_list, grade, oppo_grade_list
SET_COOP_QUICKMATCHOPTIONCo-opgateunseenpid, is_vscom, cpu_level_min, cpu_level_max
SET_COOP_REJECTCo-opgateunseenpid, set_reject_pid_list, unset_reject_pid_listaccount_id, is_deleted, is_valid_cache, name, online_id, pid, pname, psn_user_id, reject_list, reject_list_num, xuid_one
SET_COOP_ROOM_GUESTCo-opgateunseenpid, room_id, guest_info_list, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, is_platform_guest
SET_COOP_ROOM_OPTIONCo-opgateunseenpid, room_id, basic_settings, room_name, clan_name, clan_owner_info, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, is_follow, is_com_match, is_use_chat, is_same_level, team_level, coop_level, is_same_manner, coop_manner, room_entry_restriction, password, lang, match_settings, user_team_id, enemy_team_id, cpu_level
SET_COOP_ROOM_PLATFORM_SESSIONCo-opgateunseen
SET_COOP_ROOM_TO_MATCHINGCo-opgateunseenpid, room_id, to_match_pid_list
SET_CURRENTPLAYERLogin & accountgateours ×78region, lang, pcspec, np_account_id, xuid_one, name, dlc_dl_status, abnormal_disocn, discon_game_mode, cmd_err, discon_kind, rtt_nums, rtt_mean, rtt_variance, rtt_min, rtt_max, disconnect_utc_unixtime, dp_file_list, dp_file_list_num, nation_code_ip, nation_code_select, area_code_ip, area_code_select, stun_addr, stun_timearea_code_server, area_name_server, chat_probi, is_select_code_changed, key, key_size, nation_code_server, nation_name_server, subscription_active, subscription_expire_datekey_size 32 would switch to AES; keep 16 →
SET_DMM_NOTIFICATION_ACTIONStore & platformgateunseenpid, notification_id, action_kind
SET_GAMEENVMatchgateunseengame_env, cpuLevel, gametime, injury, ball_type, exGame, pkOnOff, substitution, exSubstitution, limitTimematch settings →
SET_GAMEMEMBERMatchgateOK only ×52owner only; in Free lobby = start the game →
SET_GAMEMEMBERENVMatchgateOK only ×52list_num, envlist, pid, side, sideLeaderowner only; authoritative sides; errors abort →
SET_GAMEPLAYER_PLAYTIMEMatchgateOK only ×16player_list_num, player_list, gameplayer_id_info, gameplayer_unique_id, gameplayer_id, play_time, position, opponent_player_list_num, opponent_player_listminutes + positions →
SET_GAMERELAY_CHECK_RESConnectivity / relaygateours ×81pid, game_sycom, error_code, gamerelay, gamerelay_index, ip_addr, port, grid, failed_reason, is_special_match_confirmclient's connection verdict →
SET_GAMERELAY_MATCH_QUALITYConnectivity / relaygateunseenpid, match_quality
SET_GAMERELAY_QUALITYConnectivity / relaygateunseenpid, quality_list, gamerelay_index, quality, last_update
SET_GAMETEAMMatchgateOK only ×88home_team_id, away_team_idhome/away team ids →
SET_GP_ACHIEVEMENTStore & platformgateunseenpid, new_achievement_bit_arrayall_achievement_bit_array, all_gp
SET_GUESTIn-match syncgateunseenhas_guestplayer, guest_info, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, is_platform_guest
SET_LANGUAGELogin & accountgateOK only ×152lang
SET_LOCAL_GAMERELAY_LISTConnectivity / relayHTTPunseenpid, np_account_id, ip_addr
SET_MATCHDAY_SP_COOP_MEMBER_LISTCo-opgateunseenpid, member_list, gameplayer_id, parameters, team_id, nation_id, member_list_num
SET_MATCHDAY_SP_GAMEPLANMatchdaygateunseenpid, compe_id, gameplan_data_size, gameplan_data, sp_member_list
SET_MATCHDAY_START_WATCH_MATCHMatchdaygateunseenpid, compe_id
SET_MATCHREJECTPIDMatchgateunseenpid, reject_pid, is_reject
SET_MYCLUB_ACHIEVEMENTmyClubgateunseenpid, achievement_category
SET_MYCLUB_ADD_UNIFORM_IDmyClubgateunseenpid, add_uniform_id
SET_MYCLUB_CLOUD_SQUADmyClubgateunseenpid, cloud_squad_id, team_power, team_level, is_use_cloud_match
SET_MYCLUB_CLUB_EDITION_INFOmyClubgateunseenpid, club_edhition_info_list, club_edition_type, team_id, coach_id, name, gameplan_data_size, gameplan_data, squad_member_list, team_member_list, member_list_num, is_over_cost, team_power, team_level, team_spirit
SET_MYCLUB_COOP_MEMBER_LISTmyClubgateunseenpid, member_list, gameplayer_unique_id, gameplayer_id, parameters, team_id, nation_id, member_list_num, matchday_condition_list
SET_MYCLUB_HOMETOWNmyClubgateunseenpid, home_town, nation_id, label, name
SET_MYCLUB_ICONIC_MOMENT_VIEWmyClubgateunseenpid, is_iconic_moment_view
SET_MYCLUB_MAIN_SQUADmyClubgateunseenpid, squad_id, team_power, team_level, team_spirit, matchday_squad_rating_info, squad_rating, squad_rating_kind_player_num_list
SET_MYCLUB_PLAYER_NUMBER_FIXATIONmyClubgateunseenpid, player_number_list, player_id, number, player_number_list_num
SET_MYCLUB_PROTECTED_DISABLEmyClubgateunseenpid, gameplayer_unique_id_list
SET_MYCLUB_PROTECTED_ENABLEmyClubgateunseenpid, gameplayer_unique_id_list
SET_MYCLUB_SQUAD_COACHmyClubgateunseenpid, squad_id, coach_unique_id, tacticsPlanKind, gameplan_data_size, gameplan_data
SET_MYCLUB_SQUAD_GAMEPLANmyClubgateunseenpid, squad_id, gameplan_data_size, gameplan_data
SET_MYCLUB_SQUAD_GAMEPLAYERmyClubgateunseenpid, squad_id, member_list, gameplayer_unique_id, gameplayer_id, uniform_number, player_level, parameters, default_rarity, member_list_num, is_over_cost, team_power, team_level, team_spirit, matchday_squad_rating_info, squad_rating, squad_rating_kind_player_num_list
SET_MYCLUB_SQUAD_NAMEmyClubgateunseenpid, squad_id, name
SET_MYCLUB_TEAM_BASEmyClubgateunseenpid, base_team_id
SET_MYCLUB_TEAM_NAMEmyClubgateunseenpid, team_name, team_name_short, is_check_team_name, is_check_team_name_short, team_name_commentary_id
SET_MYCLUB_VSCOM_GAMERESULTmyClubgateunseenpid, cpu_level, gameend_reason, winner_side, ex_flag, pk_flag, team, score, score_1st, score_2nd, score_ex1st, score_ex2nd, score_pk, goal_player_list, gameplayer_unique_id, gameplayer_id, assist_player_list, yellow_player_list, red_player_list, injury_player_list, gameplayer_id_info, injury_data, part, symptom, level, mcount_left, injury_all, injury_one, gameplayer_played_info_list, play_time, rating, position, is_coach_mode, error_code, pes_srv_rtt_nums, pes_srv_rtt_mean, pes_srv_rtt_variance, pes_srv_rtt_min, pes_srv_rtt_max, past_game_played_pid, is_interruptaccount_id, contWin_num, gameend_reason, is_deleted, is_first, is_first_skillrank, is_rankup_skill_rank, is_valid_cache, name, oldrating, online_id, pes_pname, pid, player_data, psn_user_id, rating, rating_boost_rate, rating_boost_type, rating_compe, rating_type, side, skill_rank, team_id, xuid_one
SET_MYCLUB_WISHLIST_AT_TOPmyClubgateunseenpid, wishlist_id
SET_PLATFORM_SESSIONStore & platformgateunseenpid, data_size, session
SET_PLAYDATA_MATCHMatchHTTPOK only ×15pid, play_dataJSON summary: scorers, player ratings →
SET_PLAYERPROFILELogin & accountgateunseenprofile, date, favorite_team, favorite_player, intro, is_enable_myPESerror_favorite_player, error_favorite_team, error_intro
SET_POSITION_RATINGMatchgateunseenpid, position, rating
SET_QUICKMATCHOPTIONMatchmakinggateunseenpid, is_pass_level, rating_level, ping_level, team_class, is_league, is_team_power_lv
SET_ROOM_OPTIONLobby & roomsgateunseenpid, name, password, is_anyplayers, auto_start_num, game_rating_limit
SET_TRACKRECORDMatchgateunseen
SET_TRIAL_MATCH_DATAStore & platformgateunseen
SET_WEEKLY_INFORMATION_ACTIONNews & infogateunseenpid, announce_id, action_kind
START_COOP_GROUP_MATCHINGCo-opgateunseenpid, matching_type, is_good_reputation, com_level_min, com_level_max, retry_numform my side (every human) →
START_COOP_MATCHINGCo-opgateunseenpid, matching_type, coop_player_info_list, is_good_reputation, guest_kind, user_id, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, owner_pid, use_team_id, retry_numgroup owner only: find opponents →
START_COOP_VSCOM_OPPONENTCo-opgateunseenpid, is_myclub_mode, com_level_min, com_level_max, user_data, guest_kind, owner_pid, my_team_id, vs_team_idco-op vs CPU →
START_MATCHDAY_ENTRY_PICKUP_MATCHMatchdaygateunseenpid, compe_id
START_MATCHDAY_PICKUP_MATCHINGMatchdaygateunseenpid, compe_id
START_MATCHINGMatchmakinggateours ×74pid, matching_type, has_guestplayer, guest_info, pname, name, xuid_one, psn_user_id, account_id, online_id, is_valid_cache, is_deleted, is_platform_guest, pass_level, is_pass_level, is_coach_mode, rating_level, ping_level, class_type, use_team_class_type, is_team_power_lv, retry_num, is_good_reputation
START_SEND_GAME_SEQUENCE_DATAMatchgateunseenpidreplay upload, only with upload YES →
START_STEAM_STOREStore & platformHTTPunseenticket, steamid, package_type, pid, itemid, languageorderid
START_STORE_TRANSACTIONStore & platformgateunseenpid, product_id, use_num, possession_num, live_transaction_id, np_ticket, np_ticket_size, steam_order_idtransaction_id
SUB_SELECTING_PLAYER_NUMLogin & accountgateunseen
SYNC_COMMENTARYIn-match syncgateunseen
SYNC_COMPEV_PROGRESSEvents & competitionsgateunseenpid, target_pid, room_id
SYNC_MATCHPLAN_DATA_SINGLEMatchgateunseen
SYNC_RANDOMSELECTION_TRADERandom Selectiongateunseen
TEAM_DATA_SYNCIn-match syncgateunseen
TENDER_MYCLUB_AUCTION_SCOUTmyClubgateunseenpid, product_id, tender_gp, is_finalroundauction_end_time, auction_scout_detail, auction_start_time, auction_state, bid_num, finalround_end_time, gp, grade, is_bid, is_bid_user_max, is_highest_bidder, is_reservation, my_price, price_now, price_start, product_id, reservation_price, scout_id, second_price, skill, skill_category, skill_id, third_price
TENDER_MYCLUB_AUCTION_SCOUT_FINALROUND_RESERVATIONmyClubgateunseenpid, product_id, tender_gpauction_end_time, auction_scout_detail, auction_start_time, auction_state, bid_num, finalround_end_time, gp, grade, is_bid, is_bid_user_max, is_highest_bidder, is_reservation, my_price, price_now, price_start, product_id, reservation_price, scout_id, second_price, skill, skill_category, skill_id, third_price
TENDER_MYCLUB_AUCTION_SCOUT_FINALROUND_RESERVATION_CANCELmyClubgateunseenpid, product_idauction_end_time, auction_scout_detail, auction_start_time, auction_state, bid_num, finalround_end_time, gain_gp, gp, grade, is_bid, is_bid_user_max, is_highest_bidder, is_reservation, my_price, price_now, price_start, product_id, reservation_price, scout_id, second_price, skill, skill_category, skill_id, third_price
TRADE_MYCLUB_GAMEPLAYERmyClubgateunseenpid, my_player_trade_list, target_trade_playeradd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer, gameplayer_cost, gameplayer_id, gameplayer_unique_id, games, goal, is_protected, is_rental, is_subscription, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, nation_id, parameters, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
UPDATE_MYCLUB_COACH_CONTRACTmyClubgateunseenpid, coach_unique_idcontract_term, next_norma
UPDATE_TEAM_SELECTIn-match syncgateunseen
USE_MYCLUB_ADAPTABILITY_RATE_ITEMmyClubgateunseenpid, coach_unique_id, use_countadaptability_rate, attacking_area, build_up, coach, coach_id, coach_unique_id, contract_gp, contract_pes_point, contract_term, current_point_division, current_point_sim, current_point_vscom, defence_compact, defence_line, defence_num, defence_type, defensive_main_concept, first_df, formation_data, is_coach_texture_use, is_use_variable_formation, management, mobility, nation_id, offence_num, offensive_main_concept, overall, passsupport_dist, press_rule, sell_gp, team_id, transition
USE_MYCLUB_ADD_POSITION_APTITUDE_ITEMmyClubgateunseenpid, gameplayer_unique_id, use_countresult_parameters
USE_MYCLUB_ADD_SKILL_ITEMmyClubgateunseenpid, gameplayer_unique_idadd_skill_id, result_parameters
USE_MYCLUB_AGENTmyClubgateunseenpid, agent_id, use_pes_point, use_token, use_token_leveladd_skill_id, agent_bonus_item_list, assist, attacking_area_center, attacking_area_side, body, build_up_long, build_up_short, concept, contract_gp, contract_pes_point, contract_term, count, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, entity_id, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer_cost, gameplayer_id, gameplayer_list, gameplayer_list_num, gameplayer_unique_id, games, goal, gp, grade, is_protected, is_rental, is_subscription, item, item_effect_arg, item_type, item_variation, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, name, name_jp, nation_id, parameters, pes_point, pes_point_price, player_level, player_level_need_exp, present_id, present_type, press_rule_net_defence, press_rule_seal_off, rating, receipt_deadline, redcard_game_kind, redcard_info_list, sell_gp, skill, skill_category, skill_id, team_id, tiredness, title, transition_counter, transition_possession, type, uniform_number
USE_MYCLUB_ITEM_RECOVERYmyClubgateunseenpid, gameplayer_unique_id_list, is_all, use_pes_pointpes_point
USE_MYCLUB_MANAGEMENT_ITEMmyClubgateunseenpid, coach_unique_id, use_countadaptability_rate, attacking_area, build_up, coach, coach_id, coach_unique_id, contract_gp, contract_pes_point, contract_term, current_point_division, current_point_sim, current_point_vscom, defence_compact, defence_line, defence_num, defence_type, defensive_main_concept, first_df, formation_data, is_coach_texture_use, is_use_variable_formation, management, mobility, nation_id, offence_num, offensive_main_concept, overall, passsupport_dist, press_rule, sell_gp, team_id, transition
USE_MYCLUB_SCOUTmyClubgateunseenpid, scout_list, agent_id, skill, skill_category, skill_id, grade, count, rate, rate_table, rate_player_num, target_level, sell_gp, scout_list_numadd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer, gameplayer_cost, gameplayer_id, gameplayer_unique_id, games, goal, is_protected, is_rental, is_subscription, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, nation_id, parameters, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
USE_MYCLUB_STAFFmyClubgateunseenpid, player_info, gameplayer_unique_id, gameplayer_base_id, gameplayer_id, gameplayer_level, registared_position, position, stronger_foot, overall, ability, play_style, nation_id, club_team_id, staff_info_list, base_player_info, base_exp, use_item_list, item_variation, countadd_skill_id, contract_gp, contract_pes_point, enhanced_parameters, exp_added, exp_current_level, exp_info_post, exp_info_pre, exp_to_next_level, exp_total, gameplayer_unique_id, level, level_limit, m_aggressiveness, m_agility, m_ball_spin_control, m_ball_touch, m_body_balance, m_body_control, m_catching, m_clearances, m_collapsing, m_defense_decision, m_deflecting, m_dribble, m_gk_decision, m_heading, m_intercept, m_jump, m_kick_power, m_long_pass, m_offense_decision, m_place_kicking, m_short_pass, m_shot, m_speed, m_stamina, m_trap, parameters, sell_gp, traning_result, traning_result_num
USE_MYCLUB_TACTICAL_TRAININGmyClubgateunseenpid, squad_id, coach_unique_id, is_offensive_formation, use_countadd_skill_id, assist, attacking_area_center, attacking_area_side, build_up_long, build_up_short, concept, contract_gp, contract_pes_point, contract_term, default_overall, default_rarity, defence_type_forecheck, defence_type_retreat, enhanced_parameters, exp_current_level, exp_to_next_level, exp_total, first_df_aggressive, first_df_safety, gameplayer_cost, gameplayer_id, gameplayer_list, gameplayer_unique_id, games, goal, is_protected, is_rental, is_subscription, level, level_info, level_limit, mcountLeft, mobility_fix, mobility_float, nation_id, parameters, player_level_need_exp, press_rule_net_defence, press_rule_seal_off, rating, redcard_game_kind, redcard_info_list, sell_gp, team_id, tiredness, transition_counter, transition_possession, uniform_number
USER_DATA_SYNCIn-match syncgateunseen
WATCH_BREAKUP_COOP_ROOMCo-opgateunseen
WATCH_CHECK_ALIVE_PLAYERMatchgateunseenpidpush: are you there? → SEND_ALIVE →
WATCH_COOP_GROUP_MATCHINGCo-opgateunseenpidaccount_id, address_family, base_team_id, com_level_max, com_level_min, coop_level, coop_manner, division, game_result, game_result_wdl, guest_info, guest_kind, has_guestplayer, hometown_info, host_addr, is_deleted, is_entry_weekly_myclub, is_follow, is_owner, is_pes_league_mode, is_platform_guest, is_valid_cache, join_compe_rating, label, manner, matching_order, matching_state, member, member_list, member_list_num, name, nation_id, ntl_nat_type, online_id, pid, pname, psn_user_id, rating, reflexive_addr, relayed_addr, retry_num, sa_data, side, skill_rank, team_id, team_name, team_power_lv, weekly_point, xuid_onepush: side formed; one is_owner per group →
WATCH_COOP_MATCHINGCo-opgateunseenpidaccount_id, address_family, base_team_id, coop_level, coop_manner, division, game_result, game_result_wdl, group_list, guest_info, guest_kind, has_guestplayer, hometown_info, host_addr, is_deleted, is_entry_weekly_myclub, is_follow, is_owner, is_pes_league_mode, is_platform_guest, is_valid_cache, join_compe_rating, label, manner, matching_order, member, member_list, member_list_num, name, nation_id, ntl_nat_type, online_id, pid, pname, psn_user_id, rating, reflexive_addr, relayed_addr, retry_num, sa_data, side, skill_rank, team_id, team_name, team_power_lv, weekly_point, xuid_onepush: both groups with sides →
WATCH_COOP_MATCHING_CONDITIONCo-opgateunseenpidcoop_play_level_max, coop_play_level_min, manner_max, manner_min, team_power_level_max, team_power_level_min
WATCH_COOP_ROOM_OPTIONCo-opgateunseenaccount_id, basic_settings, clan_name, clan_owner_info, coop_level, coop_manner, countdown_end_time, cpu_level, enemy_team_id, is_com_match, is_deleted, is_follow, is_game, is_same_level, is_same_manner, is_start_count_down, is_start_matching, is_stop_countdown, is_use_chat, is_valid_cache, lang, match_settings, name, online_id, password, pid, pname, psn_user_id, room_entry_restriction, room_id, room_name, room_phase, team_level, user_team_id, xuid_one
WATCH_COOP_ROOM_TO_MATCHING_MEMBERCo-opgateunseenplayer_index_list
WATCH_COOP_VSCOM_OPPONENTCo-opgateunseenpidaccount_id, base_team_id, club_edition_type, coach_id_list, coach_unique_id_list, com_level, com_team, default_rarity, gameplan_data, gameplan_data_size, gameplayer_id, gameplayer_unique_id, is_club_edition, is_deleted, is_entry_compe, is_valid_cache, member_list, member_num, my_team, name, online_id, owner_pid, parameters, pes_pname, pid, player_level, psn_user_id, side, squad_id, team_data, team_name, team_name_commentary_id, team_name_short, uniform_number, xuid_one
WATCH_DECIDE_GAMEENVMatchgateunseenball_type, cpuLevel, exGame, exSubstitution, game_env, gametime, injury, limitTime, pkOnOff, substitutionpush: final settings →
WATCHEND_LOBBY_MATCH_LISTLobby & roomsgateunseen
WATCH_ENTRY_GAMEMatchgateunseenentryNum, entry_count, entrygame, gameNum, pidpush: who entered →
WATCH_GAMEADDPOINTMatchgateunseenaccount_id, contWin_num, gameend_reason, is_deleted, is_first_skillrank, is_pk, is_rankup_skill_rank, is_valid_cache, name, oldrating, online_id, pes_pname, pid, player_count, player_list, psn_user_id, rating, rating_boost_rate, rating_boost_type, rating_compe, rating_type, side, skill_rank, team_id, winner_side, xuid_onepush: ratings, streak, winner; removes 20 s stall →
WATCH_GAMERELAY_CHECK_RESConnectivity / relaygateOK only ×26error_codepush: server verdict; RETRY if either failed →
WATCH_MATCHDAY_PICKUP_MATCHINGMatchdaygateunseenaccount_id, address_family, group_list, group_list_num, host_addr, is_deleted, is_valid_cache, matching_state, member_list, name, ntl_nat_type, online_id, pid, pname, psn_user_id, reflexive_addr, relayed_addr, sa_data, xuid_one
WATCH_MATCHDAY_PICKUP_USERMatchdaygateunseenaccount_id, is_deleted, is_failed_pickup_users, is_valid_cache, name, online_id, pickup_user_group_a_num, pickup_user_group_b_num, pickup_user_info, pickup_users_group_a, pickup_users_group_b, pid, pname, psn_user_id, xuid_one
WATCH_MATCHINGMatchmakinggateours ×76account_id, address_family, base_team_id, division, game_result, game_result_wdl, guest_info, has_guestplayer, hometown_info, host_addr, is_deleted, is_entry_weekly_myclub, is_first_rookie_match, is_owner, is_pes_league_mode, is_platform_guest, is_same_group_match, is_special_match, is_valid_cache, join_compe_rating, label, manner, matching_order, matching_state, member, name, nation_id, ntl_nat_type, online_id, pid, ping, player_num, pname, psn_user_id, rating, reflexive_addr, relayed_addr, retry_num, sa_data, side, skill_rank, special_match_rate, team_id, team_name, team_power_lv, weekly_point, xuid_one
WATCH_MATCHING_CONDITIONMatchmakinggateunseenmanner_max, manner_min, rating_max, rating_min
WATCH_MYCLUB_AUCTION_SCOUT_DETAILmyClubgateunseenauction_agent_id, auction_state, bid_num, is_bid_user_max, is_finished, my_price, price_now, reservation_price, second_price, successful_bid_pid, third_price, update_auction_scout_detail
WATCH_NOTICEMatchgateunseendata
WATCH_PUNCHING_DATAConnectivity / relaygateunseenaddress_family, host_addr, ntl_nat_type, reflexive_addr, sa_datapush: peer NTL addresses (lobby flows) →
WATCH_ROOMSTATELobby & roomsgateunseenevent, owner_pid, password, statepush: room events/states →
WATCH_SYNC_NOTICEMatchgateOK only ×77datapush; content ignored, 10 s wait →
WATCH_SYSTEM_NOTICEMatchgateOK only ×90datapush; a stray head entry stalls 30 s →
WATCH_TEXTCHATSocialgateunseenchannel, from_pid, name, statementpush: chat line →
WATCH_TURN_ADDRESS_DATAConnectivity / relaygateunseenaddress, address_data_sizepush: opponent's relayed address (bytes unchanged) →

↑ Back to contents

How this was found

What a live test would settle

↑ Back to contents