-
Notifications
You must be signed in to change notification settings - Fork 43
Linking to replay files
You can link to replay files hosted in your own site. This kind of link will continue to work even between backwards-incompatible updates.
https://www.haxball.com/replay?v=3#https://haxball.github.io/haxball-replays/sample_replay.hbr2
https://www.haxball.com/replay?v=
replayer_version #
url_to_replay_file
replayer_version: This is an integer that lets haxball know which replayer to use for this file, the version changes with each backwards incompatible update. Read below how find out the version of a .hbr2 file.
url_to_replay_file: This is the url to your .hbr2 file.
The current version of .hbr2 files produced today is 3
.
To obtain the version of any .hbr2 file you must read it's header as a binary file:
The format of this header remains unchanged between HaxBall updates and is safe to read.
The header is written in big endian.
magic_number uint8[4];
version uint32;
replay_duration uint32;
magin_number: This is the string "HBR2" or alternatively it can be interpreted as an uint32 0x48425232
. It is advisable to verify that this number matches.
version: This is the replay version that should be included in the ?v=<replayer_version>
part of the url.
replay_duration: This is the duration of the replay in logic frames, each frame is 1/60th of a second.
For the replays to work the replay file url must allow cross origin requests from https://www.haxball.com
.
To allow this your server must include the header Access-Control-Allow-Origin and set it to either "*" or "https://www.haxball.com"
If your file url is HTTP instead of HTTPS then change HaxBall's url to match or it will fail to load.
For example:
This won't work: https://www.haxball.com/replay?v=3#http://haxball.github.io/haxball-replays/sample_replay.hbr2
But this will: http://www.haxball.com/replay?v=3#http://haxball.github.io/haxball-replays/sample_replay.hbr2