EpicKitten / PUBG-Replay-Manager

Shows undocumented information from PUBG replays, and has the ability to import and export replays
GNU General Public License v3.0
51 stars 14 forks source link

How does PUBG build the full Replay? #21

Open MyriaCore opened 6 years ago

MyriaCore commented 6 years ago

Sorry in advance if this is a stupid question, but judging from the current understanding of replay files, PUBG shouldn't be able to create a full video replay from just this. Would the files in events have anything to do with that? IDK it just seems like PUBG isn't giving itself enough information to work with.

EpicKitten commented 6 years ago

It's not, I'm currently working on documentation on the replay files. PUBG uses this system to create replay files. To my understanding so far, The header file tells PUBG what app to load, replayinfo and ReplaySummary file in data folder contain information about the match (number of kills, headshots, amount of people, etc), the kill and groggy(DBNO) files in the data folder are kills and knocks that happened within 1km of you. The Demo file is were all the gold lies, it tells PUBG how to reenact the game. Instead of saving a video of what happened, PUBG records all data you send and get from the server and just replays it. This includes all loot picked up, player positions for everyone within 1km of the recorder, the kill feed, etc. But we (as a community, or atleast me), have yet to crack it. It's quite hard, it doesnt match any encoding (Mixes of seemingly random characters and normal words), and replay building in UE4 is very specific to the game so it's all undocumented. This is a picture of parts of the Demo file, they seem to correlate to some kind of class but I've yet to read it, currently (like in the last hour) I've been mulling over the demo file, looking for patterns like this one. Using this a starting point I can read the normal text(PUBG name, SteamID64, and the AccountID)...for 14 players, why 14? No idea.

numinit commented 6 years ago

It's a serialized UE4 network stream. Lots of radar cheat programs can peek at the network traffic already for nefarious reasons, and this is just the same thing.

numinit commented 6 years ago

(also, the format is open source, just look at Epic Games' Unreal repository on github)

flok commented 6 years ago

@numinit i looked in the unreal source for 4 hours straight yesterday, and didnt really find anything. Do you got some hints where i could find the system loading the file ?

EpicKitten commented 6 years ago

In talks with the owner of this site

MyriaCore commented 6 years ago

@EpicKitten anything come of it? I've been hanging out in their discord server, so I know that they're there too. It may be a bit faster for access for you 😄 Their usernames \@pkdotty and \@Rabidbunnylover on the server.

EpicKitten commented 6 years ago

Not really, he was willing to help but couldn't give me direct access because of open source concerns of a packet radar. Me and @cywq we're privately developing solutions but our lack of knowledge in C++ and the confusing undocumented functions of UE4 we're unhelpful so I think (atleast I have) we have set that aside for now

flok commented 6 years ago

i have set it aside too at the moment. Got private stuff todo atm but will continue on it when i got time again.