༺Ƥeຮ༻
Championship
- 13 July 2020
PES 2021 Private Server / Online Emulator Progress + TrueNAS Docker Setup
PESBUL COMMUNITY PROJECT · PUBLIC BETA
PES 2021 IS ONLINE AGAIN.
After almost six years without the PES experience we loved, two months of relentless development, and countless sleepless nights, the online mode of eFootball PES 2021 is alive again.
● FRIENDLY MATCH LOBBY IS WORKING
Official project website:
https://pes2021.pesbul.eu
PESBUL COMMUNITY PROJECT · PUBLIC BETA
PES 2021 IS ONLINE AGAIN.
After almost six years without the PES experience we loved, two months of relentless development, and countless sleepless nights, the online mode of eFootball PES 2021 is alive again.
● FRIENDLY MATCH LOBBY IS WORKING
Official project website:
https://pes2021.pesbul.eu
SIX YEARS LATER
Almost six years ago, Konami took PES away from us.
Not only the name, but the football series as we knew and loved it.
For almost six years, players who wanted the traditional PES experience were left without a real alternative. We watched the series move further away from its roots while microtransactions became more important, classic modes disappeared, and the community that had supported PES for decades was gradually left behind.
During those years, I tried many different ideas, approaches, tools, and possible solutions. Most of them led nowhere.
Some gave me small clues, but never enough to build something that actually worked. There were many moments when restoring the PES 2021 online experience seemed completely impossible.
Then, around two months ago, we had our first real breakthrough.
From that moment, the project became countless sleepless nights, long days, failed experiments, new discoveries, and hundreds of very small steps forward.
Sometimes one missing value took several days to understand. Sometimes one correctly implemented command unlocked an entire section of the game. Progress was slow, but every small success brought us closer to something that had seemed impossible only weeks earlier.
Today, eFootball PES 2021 has a working online mode again, and Friendly Match Lobby is approximately 99% functional.
This is not the end of the project. It is the moment when the project finally leaves a small circle of controlled private tests and reaches the community it was created for.
We are now ready for the most important test so far:
OPENING PES 2021 ONLINE TO THE PUBLIC.
THIS IS A PUBLIC BETA, NOT A FINISHED SERVICE
I want to be completely honest about what this public test means.
Will everything be stable?
I do not know. That is exactly what we need to discover.
Will it work perfectly for everyone?
I do not know. Different systems and networks may behave differently.
Will we find new problems?
Almost certainly. This is the purpose of a real public test.
This entire project is new territory for me. I am learning while building it, analysing how the original game behaves, reconstructing the missing online services, and solving each problem as it appears.
The public beta will give us something that private testing cannot provide: real data from different players, countries, internet providers, routers, network conditions, and PC configurations.
We need to learn how the system behaves when more people use it at the same time.
We need to discover the problems that cannot be reproduced with only two test computers.
We need real matches, real connections, and real feedback.
IMPORTANT: PLEASE ENTER THE PUBLIC BETA WITH REALISTIC EXPECTATIONS
This is an independent community project, built with limited time and resources.
Constructive feedback will help improve it.
Anger without useful information will not.
IMPORTANT INFORMATION ABOUT CONNECTION QUALITY AND LAG
Matches in PES 2021 use a peer-to-peer connection.
This means that the actual gameplay traffic is exchanged directly between the two players. It does not pass through the main PESBUL server.
If a match is lagging, the cause will usually be related to the connection between the players rather than the central server.
Possible causes include:
- Large geographical distance between the players.
- Wi-Fi instability or poor wireless signal.
- Network congestion or packet loss.
- Background downloads, streaming, or cloud synchronisation.
- Router or NAT configuration.
- Internet provider routing.
- An unstable connection from one of the players.
Please do not immediately assume that every lagging match is caused by PESBUL.
FOR THE BEST POSSIBLE TEST
Use a wired connection whenever possible.
Stop active downloads, streams, cloud backups, and other heavy network activity before starting a match.
HOW TO ENABLE THE PES 2021 ONLINE MODE
- Open the official PESBUL 2021 website:
https://pes2021.pesbul.eu
Click the Connect Now button available on the website.
- A file in .BAT format will be downloaded.
Some browsers or security programs may display a warning because BAT files are executable scripts.
Download and use the installer only from the official PESBUL website.
- Right-click the downloaded file and select:
Run as administrator
- In the installer, choose:
1 — install and activate the PESBUL online server.
2 — remove the PESBUL configuration and restore the original setup.
- Start eFootball PES 2021.
The online mode should now be available.
THAT IS ALL. PES 2021 IS ONLINE AGAIN.
The installation is reversible.
Selecting option 2 removes the PESBUL configuration and restores the original setup.
WHAT IS THE PESBUL 2021 HUB?
The website is still in a very early stage.
Its immediate purpose is to provide access to the restored PES 2021 online services, but the long-term plan is much larger.
The website will gradually become a complete PES 2021 community hub, including:
- ELO seasons and rankings.
- Traditional leagues and championships.
- Cups and tournaments.
- Public player profiles.
- Match history and detailed statistics.
- Achievements and permanent competitive records.
- Competitions organised through Friendly Match Lobby.
- Future Team Play 11 vs 11 events.
Our main long-term goal remains a fully working 11 vs 11 Team Play mode.
Once the core online services are stable, Team Play will become the primary development focus.
The current Friendly Match Lobby work is not the final destination.
It is the foundation that makes the return of 11 vs 11 possible.
LINKING YOUR WEBSITE ACCOUNT WITH YOUR PES 2021 PROFILE
You do not need to verify your website account simply to play PES 2021 online.
Profile verification is optional.
It provides additional features for players who want to participate in PESBUL competitions and use the full PESBUL 2021 Hub.
A verified profile will eventually allow you to:
- Join ELO seasons.
- Participate in leagues, cups, and tournaments.
- Have a public player profile.
- Store match results and statistics.
- Unlock achievements.
- Build a permanent competitive history.
How to Verify Your Profile
- Sign in to your account on the PESBUL 2021 website.
- Open your user dashboard and click the profile verification button.
- The website will generate a unique verification code.
- Open PES 2021 and go to:
Settings → Online Settings → Edit Profile → Favorite Team
- Enter the generated verification code in the Favorite Team field and save the changes.
- Return to your website dashboard and click the verification button again.
If everything is correct, your game profile and website account will be linked.
A public player profile will then become available.
This profile will gradually store your statistics, results, achievements, competitive history, and participation in PESBUL events.
VERIFICATION IS NOT REQUIRED FOR NORMAL ONLINE PLAY
You can use Friendly Match Lobby without verifying a website account.
Verification is an additional service for players who want public profiles, statistics, rankings, and access to organised competitions.
COMMUNITY RULES
This project is completely free, and the rules are intentionally simple.
- Play honestly.
- Treat other players with basic respect.
- Do not exploit known bugs to disrupt other users.
- Do not harass players or create unnecessary conflicts.
- Report technical problems with useful and accurate information.
I will not act as a referee for every personal argument between players.
I will not manually investigate every disputed result, and I will not change match results simply because someone demands it.
I do not have the time or resources to moderate endless personal disputes.
Players who repeatedly create problems, abuse the service, harass others, exploit the testing environment, or deliberately damage the experience will simply lose access.
EVERYTHING IS FREE
There is no money, prize, or commercial service involved.
There is no reason to turn a community project into a source of unnecessary drama.
KNOWN ISSUES
The following problems are already known.
You do not need to report them repeatedly unless you have new and useful information.
- Avatars are currently not working correctly.
- If a player disconnects during a match or during team selection, the other player may be returned to a room that no longer exists.
You can still leave that room normally.
- Room status does not yet update correctly in every situation.
- The Other Results section is not working yet.
- Team Play Lobby and CO-OP Clans are accessible and already significantly advanced.
They include menus, rooms, clan creation, membership functions, and other working elements.
However, these modes are not yet ready for normal use.
If you explore too deeply, you may reach an unfinished screen or a dead end.
HAVE YOU FOUND A NEW PROBLEM?
If the issue is not already included in the known-issues list, please publish it in the dedicated Discord forum channel.
A useful report should include:
- What exactly you did.
- What you expected to happen.
- What actually happened.
- The exact screen or stage where the problem appeared.
- A screenshot or video whenever possible.
- Your country and connection type for network or lag-related problems.
REPORT A BUG ON DISCORD
Konami may have shut down the servers.
But the community is not finished with PES.
Thank you to everyone who tests, reports problems, shares the project, supports the development, or simply plays one match.
What comes next, we will build together.
PESBUL is an independent community project and is not officially affiliated with or endorsed by Konami.
Players must use their own legal copy of eFootball PES 2021.
Hi everyone,
I want to share the current progress of our PES 2021 private server / online emulator work, explain what has already been achieved, what is still not working, and how other people can run the current test server using TrueNAS + Docker.
First of all, credit where it is due:
Original project by Nikow5:
Nikow5/Pes2021PrivateServer
Our work is based on that project. Nikow5’s project gave the starting foundation for PES 2021 private server research and local/LAN-style testing.
What we are doing now is extending and heavily improving that base into a Dockerized, dashboard-driven, publicly deployable emulator environment for further reverse engineering and eventually online lobby / friendly match support.
This is not a finished public server yet. It is a working reverse engineering and protocol research build.
What this project is trying to achieve
The long-term goal is to restore usable online functionality for PES 2021.
Priority order:
MyClub is not the priority right now because it has many additional services and is much more complex. Friendly Lobby / normal 1 vs 1 is a better first target.
What was added on top of the original Nikow5 project
The original project was the base.
On top of it, we added or significantly improved:
✅ Docker deployment
✅ Public Docker image
✅ TrueNAS SCALE deployment
✅ Docker Compose / YAML setup
✅ Runtime environment configuration
✅ Web dashboard
✅ Live packet monitor
✅ Packet inspector
✅ HEX viewer
✅ ASCII viewer
✅ Timeline view
✅ Session tracking
✅ Export Debug ZIP
✅ Individual packet
✅ Auth analysis reports
✅ RX/TX packet comparison
✅ Byte-by-byte Auth diff
✅ Network discovery after Auth
✅ UDP/STUN/raw UDP logger
✅ HTTP/Gateway logger
✅ Runtime Auth mode switching
✅ Auth Lab profiles
✅ Clear Logs button
✅ Version display inside dashboard/API/logs
✅ Debug export suitable for sharing captures with other developers
The Docker image currently used is:
Versioning is intentionally kept inside the dashboard, API, logs, and export files.
We do not rely on versioned Docker tags anymore.
Current technical status
The emulator now reaches far beyond simply listening on TCP.
The current working flow is:
This means:
✅ DNS redirect works
✅ The PES 2021 client reaches our server
✅ TCP ConnectGate works
✅ XOR / NclMio parser works
✅ Packet parser works
✅ We correctly detect PES commands
✅ EULA request is intercepted
✅ EULA response is accepted by the client
✅ Auth ticket is intercepted
✅ Auth response is accepted far enough for the client to continue through Auth
✅ The game reaches the Online menu / login flow
❌ The client does not yet send the first Lobby packet
❌ The client closes immediately after Auth
This is a very important milestone. The project is no longer stuck at connection, DNS, TCP, XOR, or EULA. The blocker is now specifically the post-authentication transition before the Lobby protocol begins.
Confirmed opcodes so far
The current known sequence is stable and repeatable.
What we tested
A lot of Auth Response variants were tested.
Auth Lab profiles include:
The reason for testing these profiles was to determine whether the immediate disconnect after Auth was caused by:
Current result:
All tested profiles reach the same general state:
So the problem is probably not just packet length or simple mirroring.
What is currently NOT working
The emulator does not yet reach:
❌ Friendly Lobby
❌ Room list
❌ Room creation
❌ Room join
❌ P2P negotiation
❌ Gameplay packets
❌ Team Play
The client closes the TCP session around 50 ms after the Auth Response.
No additional endpoint is seen after Auth:
This suggests the remaining blocker is likely inside Auth/session validation, or possibly Steam-related validation.
Current theory
The remaining issue is probably one of:
The Steam version may require a valid Steam/Konami ticket flow before it sends the first Lobby opcode.
One planned experiment is to test Football Life 26, because it does not require Steam. If Football Life progresses further, that would strongly suggest the blocker is related to Steam authentication/session validation.
TrueNAS / Docker Setup Tutorial
This is the current simple setup method.
You only need:
Do not publish your real LAN IP or public IP when sharing logs.
Use placeholders like:
Docker Compose / TrueNAS YAML
Use this as the base YAML:
Replace:
with the LAN IP of your TrueNAS server.
Do not post your real IP publicly.
What the ports are used for
Dashboard URL:
TrueNAS setup steps
You should see the emulator dashboard.
Expected startup logs
The logs should show something like:
Windows connectivity tests
From the Windows PC running PES 2021:
UDP quick test:
Then check the dashboard logs.
PES DNS / hosts redirect
The PES client must be redirected to your emulator.
Depending on your setup, this can be done with:
Example format:
The exact domains may need to be confirmed by packet capture or previous PES network research.
Testing workflow
Recommended workflow:
Before sharing, make sure no personal IPs are exposed.
Replace LAN/private IPs with:
Version / Development History
v0.4
Fixed Docker startup problems.
Added:
Purpose:
Make the project start reliably in Docker/TrueNAS.
v0.5
Added:
Purpose:
Make the container easier to run and monitor.
v0.7
Added:
Purpose:
Move from simple logging to live packet inspection.
v0.8
Added:
Purpose:
Make captured traffic readable in real time.
v0.8.1
Added:
Purpose:
Make it easy to share packet captures for reverse engineering.
v0.9
Added:
Purpose:
Find out what happens immediately after Auth.
Discovery:
The client closes after Auth and does not send a Lobby opcode.
v0.9.1
Added:
Purpose:
Understand why the client closes immediately after Auth.
v0.9.2
Added:
Purpose:
Create better captures before Lobby-focused work.
v0.9.3
Added:
Purpose:
Test whether missing token/session mirroring causes the post-auth close.
v0.9.4
Added:
Purpose:
Check whether the game opens another TCP/UDP/HTTP/TLS endpoint after Auth.
Result:
No external endpoint detected.
v0.9.5
Added:
Purpose:
Test whether the full 120-byte Auth Response is required.
Result:
Still closes after Auth.
v0.9.5.1
Hotfix.
Fixed:
Purpose:
Make debug export reliable again.
v0.9.6
Added:
Purpose:
Make Auth profile testing fast.
Before this, changing Auth mode required YAML changes / redeploy.
After this, testing is:
v0.9.7
Added:
Purpose:
Test whether overwritten flags/IP fields caused the disconnect.
Result:
Still no Lobby packet captured.
Current conclusion
We have a working PES 2021 connection, EULA, and Auth pipeline.
The blocker is now narrow:
The next real breakthrough will likely come from:
Request for help
If anyone has experience with PES 2021 networking, Konami's ConnectGate/NclMio protocol, Steam ticket validation, or has old packet captures from working PES 2021 online services, any help would be extremely valuable.
The project already has:
✅ working Docker deployment
✅ working dashboard
✅ working packet capture
✅ working EULA
✅ working Auth
✅ reproducible debug exports
The missing piece is the final validation step between Auth and Lobby.
I want to share the current progress of our PES 2021 private server / online emulator work, explain what has already been achieved, what is still not working, and how other people can run the current test server using TrueNAS + Docker.
First of all, credit where it is due:
Original project by Nikow5:
Nikow5/Pes2021PrivateServer
Our work is based on that project. Nikow5’s project gave the starting foundation for PES 2021 private server research and local/LAN-style testing.
What we are doing now is extending and heavily improving that base into a Dockerized, dashboard-driven, publicly deployable emulator environment for further reverse engineering and eventually online lobby / friendly match support.
This is not a finished public server yet. It is a working reverse engineering and protocol research build.
What this project is trying to achieve
The long-term goal is to restore usable online functionality for PES 2021.
Priority order:
- Friendly Match Lobby
- Normal 1 vs 1
- Room creation
- Room joining
- P2P negotiation
- Gameplay packet handling
- Team Play Lobby
- MyClub
MyClub is not the priority right now because it has many additional services and is much more complex. Friendly Lobby / normal 1 vs 1 is a better first target.
What was added on top of the original Nikow5 project
The original project was the base.
On top of it, we added or significantly improved:
✅ Docker deployment
✅ Public Docker image
✅ TrueNAS SCALE deployment
✅ Docker Compose / YAML setup
✅ Runtime environment configuration
✅ Web dashboard
✅ Live packet monitor
✅ Packet inspector
✅ HEX viewer
✅ ASCII viewer
✅ Timeline view
✅ Session tracking
✅ Export Debug ZIP
✅ Individual packet
.hex export✅ Auth analysis reports
✅ RX/TX packet comparison
✅ Byte-by-byte Auth diff
✅ Network discovery after Auth
✅ UDP/STUN/raw UDP logger
✅ HTTP/Gateway logger
✅ Runtime Auth mode switching
✅ Auth Lab profiles
✅ Clear Logs button
✅ Version display inside dashboard/API/logs
✅ Debug export suitable for sharing captures with other developers
The Docker image currently used is:
Code:
noobsaibot301/pes2021-emulator:latest
Versioning is intentionally kept inside the dashboard, API, logs, and export files.
We do not rely on versioned Docker tags anymore.
Current technical status
The emulator now reaches far beyond simply listening on TCP.
The current working flow is:
Code:
New TCP connection
↓
RX 0x2EE4
EULA / Server Area Request
↓
TX 0x2EF4
EULA / Server Area Response
↓
RX 0x2E04
Authentication Ticket
↓
Authenticated User: TestUser
↓
TX 0x2E04
Authentication Response
↓
Client closes connection
This means:
✅ DNS redirect works
✅ The PES 2021 client reaches our server
✅ TCP ConnectGate works
✅ XOR / NclMio parser works
✅ Packet parser works
✅ We correctly detect PES commands
✅ EULA request is intercepted
✅ EULA response is accepted by the client
✅ Auth ticket is intercepted
✅ Auth response is accepted far enough for the client to continue through Auth
✅ The game reaches the Online menu / login flow
❌ The client does not yet send the first Lobby packet
❌ The client closes immediately after Auth
This is a very important milestone. The project is no longer stuck at connection, DNS, TCP, XOR, or EULA. The blocker is now specifically the post-authentication transition before the Lobby protocol begins.
Confirmed opcodes so far
Code:
0x2EE4 = EULA / Server Area Request
0x2EF4 = EULA / Server Area Response
0x2E04 = Authentication Ticket / Authentication Response
The current known sequence is stable and repeatable.
What we tested
A lot of Auth Response variants were tested.
Auth Lab profiles include:
Code:
baseline
mirror8
mirror16
mirror32
mirror64
mirror96
full120
mirror_header
user_profile
pure_mirror96
pure_full120
echo_payload120
The reason for testing these profiles was to determine whether the immediate disconnect after Auth was caused by:
- wrong packet length
- wrong payload size
- missing mirrored token
- wrong session bytes
- wrong IP field
- wrong flags
- zeroed tail
- overwritten fields
- bad header/payload layout
Current result:
All tested profiles reach the same general state:
Code:
EULA accepted
Auth accepted
POST_AUTH_WAIT
Client closes
No Lobby opcode
So the problem is probably not just packet length or simple mirroring.
What is currently NOT working
The emulator does not yet reach:
❌ Friendly Lobby
❌ Room list
❌ Room creation
❌ Room join
❌ P2P negotiation
❌ Gameplay packets
❌ Team Play
The client closes the TCP session around 50 ms after the Auth Response.
No additional endpoint is seen after Auth:
Code:
No additional TCP connection
No HTTP request
No UDP packet
No TLS request
No STUN packet
No Lobby opcode
This suggests the remaining blocker is likely inside Auth/session validation, or possibly Steam-related validation.
Current theory
The remaining issue is probably one of:
- missing Auth Response field
- unknown session token
- encrypted/signature field
- checksum/HMAC-like validation
- Steam ticket/session validation
- some internal client-side validation before Lobby starts
The Steam version may require a valid Steam/Konami ticket flow before it sends the first Lobby opcode.
One planned experiment is to test Football Life 26, because it does not require Steam. If Football Life progresses further, that would strongly suggest the blocker is related to Steam authentication/session validation.
TrueNAS / Docker Setup Tutorial
This is the current simple setup method.
You only need:
- TrueNAS SCALE
- Docker / Custom App support
- The Docker image:
Code:noobsaibot301/pes2021-emulator:latest - Your server LAN IP
- PES client DNS/hosts redirect pointing PES domains to your server
Do not publish your real LAN IP or public IP when sharing logs.
Use placeholders like:
Code:
<YOUR_TRUENAS_IP>
<YOUR_CLIENT_IP>
<YOUR_SERVER_IP>
Docker Compose / TrueNAS YAML
Use this as the base YAML:
Code:
services:
pes2021:
container_name: pes2021
image: noobsaibot301/pes2021-emulator:latest
pull_policy: always
restart: unless-stopped
environment:
PES_DB_PATH: /tmp/pes2021.db
PES_EVENT_LOG: /tmp/events.log
PES_GATEWAY_TCP_PORTS: '80'
PES_HTTP_PORT: '5000'
PES_REGION_CODE: FRA
PES_SERVER_PUBLIC_IP: <YOUR_TRUENAS_IP>
PES_TCP_PORT: '10000'
PES_UDP_PORTS: '5730,5739,5740'
ports:
- "5000:5000/tcp"
- "8088:80/tcp"
- "10000:10000/tcp"
- "5730:5730/udp"
- "5739:5739/udp"
- "5740:5740/udp"
Replace:
Code:
<YOUR_TRUENAS_IP>
with the LAN IP of your TrueNAS server.
Do not post your real IP publicly.
What the ports are used for
Code:
Host Port | Container Port | Protocol | Purpose
5000 | 5000 | TCP | Dashboard / API
8088 | 80 | TCP | HTTP/Gateway logger
10000 | 10000 | TCP | PES TCP ConnectGate
5730 | 5730 | UDP | STUN/raw UDP logger
5739 | 5739 | UDP | PES UDP/P2P candidate logger
5740 | 5740 | UDP | PES UDP/P2P candidate logger
Dashboard URL:
Code:
http://<YOUR_TRUENAS_IP>:5000
TrueNAS setup steps
- Open TrueNAS SCALE.
- Create a Custom App / Docker Compose app.
- Paste the YAML above.
- Replace
<YOUR_TRUENAS_IP>with your TrueNAS LAN IP. - Save / Deploy.
- Wait for the container to start.
- Open:
Code:
http://<YOUR_TRUENAS_IP>:5000
You should see the emulator dashboard.
Expected startup logs
The logs should show something like:
Code:
TCP Server (ConnectGate) listening on 0.0.0.0:10000
Mode: NclMio (XOR)
STUN/raw UDP logger listening on 0.0.0.0:5730
STUN/raw UDP logger listening on 0.0.0.0:5739
STUN/raw UDP logger listening on 0.0.0.0:5740
Raw TCP/HTTP/TLS hit logger listening on 0.0.0.0:80
Windows connectivity tests
From the Windows PC running PES 2021:
Code:
Test-NetConnection <YOUR_TRUENAS_IP> -Port 5000
Test-NetConnection <YOUR_TRUENAS_IP> -Port 10000
Test-NetConnection <YOUR_TRUENAS_IP> -Port 8088
UDP quick test:
Code:
$udp = New-Object System.Net.Sockets.UdpClient
$bytes = [Text.Encoding]::ASCII.GetBytes("pes udp test")
$udp.Send($bytes, $bytes.Length, "<YOUR_TRUENAS_IP>", 5739)
$udp.Close()
Then check the dashboard logs.
PES DNS / hosts redirect
The PES client must be redirected to your emulator.
Depending on your setup, this can be done with:
- Windows hosts file
- local DNS override
- router DNS override
- Pi-hole / AdGuard DNS rewrite
- custom DNS server
Example format:
Code:
<YOUR_TRUENAS_IP> pes21-x64-gate.cs.konami.net
<YOUR_TRUENAS_IP> pes21-x64-stun.cs.konami.net
The exact domains may need to be confirmed by packet capture or previous PES network research.
Testing workflow
Recommended workflow:
- Open dashboard:
Code:http://<YOUR_TRUENAS_IP>:5000
- Click Clear Logs.
- Start PES 2021.
- Enter Online mode / Friendly Match Lobby attempt.
- Watch dashboard timeline.
- Expected current result:
Code:
RX 0x2EE4
TX 0x2EF4
RX 0x2E04
TX 0x2E04
POST_AUTH_WAIT
POST_AUTH_CLOSE
- Click Export Debug ZIP.
- Share the ZIP with other developers for analysis.
Before sharing, make sure no personal IPs are exposed.
Replace LAN/private IPs with:
Code:
<YOUR_TRUENAS_IP>
<YOUR_CLIENT_IP>
Version / Development History
v0.4
Fixed Docker startup problems.
Added:
- PYTHONPATH fix
- DB init fix
- entrypoint improvements
- Docker healthcheck
- TrueNAS Custom App YAML
Purpose:
Make the project start reliably in Docker/TrueNAS.
v0.5
Added:
- startup banner
- dashboard URL in logs
- improved dashboard
/healthendpoint- expanded status API
- TrueNAS YAML using
latest
Purpose:
Make the container easier to run and monitor.
v0.7
Added:
- live packet monitor
- selected packet HEX viewer
/api/admin/packets- RX/TX counters
- gateway hit counters
- TCP events written into dashboard logs
Purpose:
Move from simple logging to live packet inspection.
v0.8
Added:
- dashboard title/version
- live refresh
- packet monitor
- clickable packets
- HEX + ASCII inspector
- protocol timeline
/api/admin/timeline- structured packet fields
- better stats
Purpose:
Make captured traffic readable in real time.
v0.8.1
Added:
- Export Debug ZIP
/api/admin/export.zip- per-packet
.hex - packet JSON/TXT/CSV
- timeline export
- sessions export
- stats export
- knowledge base export
Purpose:
Make it easy to share packet captures for reverse engineering.
v0.9
Added:
- Clear Logs
- named debug exports
- post-auth analysis
- POST_AUTH_WAIT / POST_AUTH_RX / POST_AUTH_CLOSE
- larger TCP/TLS/HTTP preview
- UDP/STUN HEX logging
Purpose:
Find out what happens immediately after Auth.
Discovery:
The client closes after Auth and does not send a Lobby opcode.
v0.9.1
Added:
- Auth Investigation panel
/api/admin/auth-report- Auth report JSON/TXT exports
- per-session Auth reports
- RX
0x2E04vs TX0x2E04byte diff - parsed auth helper fields
AUTH_FIELDSlogging
Purpose:
Understand why the client closes immediately after Auth.
v0.9.2
Added:
- cleaner debug export
auth_offsets.jsonauth_diff.txtconnection_state.jsonpacket_summary.md- full auth offset tables
Purpose:
Create better captures before Lobby-focused work.
v0.9.3
Added:
PES_AUTH_RESPONSE_MODEPES_AUTH_RESPONSE_PAYLOAD_LEN- Auth modes:
- baseline
- mirror8
- mirror16
- mirror32
- mirror_header
- user_profile AUTH_VARIANTloggingPOST_AUTH_CLOSEnow logs active Auth mode
Purpose:
Test whether missing token/session mirroring causes the post-auth close.
v0.9.4
Added:
- Network Discovery Lab
/api/admin/network-discoverynetwork_discovery.jsonnetwork_discovery.txt- correlation window after Auth
- DISCOVERY_TCP / DISCOVERY_UDP tags
- HTTP host/path / TLS SNI extraction attempt
- external endpoint hits after auth stat
Purpose:
Check whether the game opens another TCP/UDP/HTTP/TLS endpoint after Auth.
Result:
No external endpoint detected.
v0.9.5
Added:
- default auth profile changed to
full120 - TX
0x2E04total length changed to 120 bytes - added:
- mirror64
- mirror96
- full120 - success/status bytes preserved after mirroring
- IP candidate preserved after mirroring
- auth profile test plan export
Purpose:
Test whether the full 120-byte Auth Response is required.
Result:
Still closes after Auth.
v0.9.5.1
Hotfix.
Fixed:
/api/admin/export.zipHTTP 500- safe export writers
export_warnings.json
Purpose:
Make debug export reliable again.
v0.9.6
Added:
- dashboard Auth Mode dropdown
GET/POST /api/admin/auth-mode- runtime Auth Mode switching
- TCP server reads active mode from
/tmp/pes_auth_response_mode.txt - no Docker rebuild needed for Auth profile tests
Purpose:
Make Auth profile testing fast.
Before this, changing Auth mode required YAML changes / redeploy.
After this, testing is:
Code:
Select Auth Mode
↓
Clear Logs
↓
Test PES
↓
Export ZIP
v0.9.7
Added:
- pure auth profiles:
- pure_mirror96
- pure_full120
- echo_payload120 - reference prep exports
- reference-comparison guidance
Purpose:
Test whether overwritten flags/IP fields caused the disconnect.
Result:
Still no Lobby packet captured.
Current conclusion
We have a working PES 2021 connection, EULA, and Auth pipeline.
The blocker is now narrow:
Code:
Auth Response accepted
↓
Client performs some validation
↓
Client closes before Lobby
The next real breakthrough will likely come from:
- Testing Football Life 26
- Capturing a real successful reference session
- Reverse engineering the remaining Auth/session fields
- Comparing original vs emulator Auth Response byte-by-byte
Request for help
If anyone has experience with PES 2021 networking, Konami's ConnectGate/NclMio protocol, Steam ticket validation, or has old packet captures from working PES 2021 online services, any help would be extremely valuable.
The project already has:
✅ working Docker deployment
✅ working dashboard
✅ working packet capture
✅ working EULA
✅ working Auth
✅ reproducible debug exports
The missing piece is the final validation step between Auth and Lobby.
Last edited:



Maybe I take/waste too much time on it, because just to CLICK > OPEN the message, I'm reversing and extracting-decoding data the whole day 
