BF2142 Statistics

From BF2 Technical Information Wiki
Jump to: navigation, search

Contents

Overview

Stats in Battlefield 2142 are slightly different than they were in Battlefield 2. GameSpy / IGN is doing a fairly good job at blocking people's IP Addresses who incorrectly access their stats servers (so proceed with caution). If this does happen to you (the IP you play bf2142 from gets blocked), your stats in game will still be updated, but you may have trouble accessing them or selecting unlocks if this happens.

One thing that was done in Battlefield 2142 was to introduce a semi-unique authentication token. This token is used to try to differentiate game users from folks running stats sites, who try to pull thousands of players stats at once. If you have or plan on running a big stats site, please take into consideration (as it will affect the in game experience for all of us) that when you do this, it will degrade performance of everyone in game who's stats need to be updated (both the server pushing the stat info, and the user trying to view it in BFHQ). Anyone implementing this needs to use a very smart and non-aggressive pulling mechanism.

the bulk of this information was discovered and discussed here for any who want to read it.

Statistic Functions

Game servers have the first URL hard coded in them and are used for all stats pushes and pulls.


Auth

Every query going through the system uses an auth parameter in the query string. The auth token is comprised of a timestamp, a few magic numbers, the PID, a flag denoting game server or client, and a checksum. getbackendinfo and playersearch use 4 zeros in place of the actual PID

  1. 14 bytes are allocated using a unix time stamp, some magic numbers, the PID, and a client / server flag.
  2. Those bytes are appended w/ the (16 bit) checksum of the first 14 bytes (for a total of 16 bytes)
  3. The subsequent 16 bytes are encrypted using Rijndael / AES encryption
  4. The encrypted bytes are base 64 encoded using a special version of base 64

1. the auth token starts out as a 16 byte array stored little endian as follows:

Bytes value
1 - 4 unix time stamp (in seconds)
5 - 8 magic number 64000000
9 - 12 player id (if making an auth token for playersearch and getbackendinfo these bytes are all zero)
13 00 if the token was generated by a game client

01 if it was generated by a game server

14 00
15 - 16 a CRC16 CCITT checksum (using 0 as the initial value instead of 0xFFFF) of bytes 1 - 14


if you view the numbers used here as hexidecimal strings it may help you understand how we break the number into their "byte" values. if you open calc.exe up in scientific mode, you can paste in the number (in Dec mode) then click on the Hex radio button, and you'll see its byte / hexidecimal form.

the number 123456789 is displayed as a hex string is 75BCD15. or represented as a 4 byte array (in little endian) as: 15 CD 5B 07


so for example, if my timestamp is 1161887092 (# of seconds past jan 1 1970) bytes 1-4 will be:

byte 1: 74 
byte 2: FD
byte 3: 40
byte 4: 45

bytes 5 - 8 are:

byte 5: 64
byte 6: 00
byte 7: 00
byte 8: 00

if my player id is 82188143 the bytes 9 - 12 look like:

byte 9:  6F
byte 10: 17
byte 11: E6
byte 12: 04

if I'm making a token for getbackendinfo or playersearch bytes 9 - 12 look like:

byte 9:  00
byte 10: 00
byte 11: 00
byte 12: 00

if I'm going to fake a client request byte 13 will be:

byte 13: 00

if I'm going to fake a server request, byte 13 will be:

byte 13: 01

byte 14 is always 00

byte 14: 00

2. then bytes 15 and 16 are the CRC16 CCITT w/ 0 as the initial value (this is one that uses the actual PID and the 01 server flag)

byte 15: B4
byte 16: 51

had I used the 00 client flag bytes 15 & 16 would be:

byte 15: 85
byte 16: 62

3. once this value has been formed, it is encrypted using AES / Rijndael encryption.

4. the resulting value is base 64 encoded using

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789[]_

as the string value array instead of the standard

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=

which basically means after a standard base64 encoding, use the following replacement chart to replace standard base64 characters for the ones used by GameSpy:

Base 64 char EA's URL char replacement
'=' '_'
'/' ']'
'+' '['

A sample page has been created to generate the auth token here if you want to test things out.


User Agent

(this information hasn't been validated yet) like in BF2 if you use the client flag (byte 13 = 00) in generating the auth token, you need to set your HTTP header for user-agent to GameSpyHTTP/1.0

If you use the server flag (byte 13 = 01) in generating the auth token, the user agent string is not set in the http header.


Function Information

The following is a detailed list of stat functions and their parameters / results. A full list of the look up values for some of these parameters and their return values are listed on the look up page here


Function: getawardsinfo

  • Gets a list of awards for a particular player
Accepted Parameters
auth (required) - auth parameter as described in the auth section
gsa (unknown) - (added in patch 1.10)
pid (required) - the pid of the player you want to get awards for. the server does not use the PID encoded in the auth parameter.
Returned Results
O
H    pid    nick    asof
D    81246737    MadHatter2142    1161822276
H    award    level    when    first
D    102_1    0    1161468479    0
D    108_1    0    1161195590    0
D    302    0    1161638632    0
D    400    4    1161640639    1161467677
$    142    $

Function: getbackendinfo

  • Gets information used to update various files for the game. At the moment it returns some python code for the config file used to determine awards and rank criteria.
Accepted Parameters
auth - as described in the auth section except a PID of 00000000 is used in place of a valid PID
Returned Results

for client:

O
H    asof    tid    serverip    cb
D    1161822271    0    71.252.218.197    client
H    config
D    swiffHost.setLatestGameVersion 1.0.9.1
rankSettings.setRank 0 0
rankSettings.setRank 1 40
rankSettings.setRank 2 80
rankSettings.setRank 3 120
rankSettings.setRank 4 200
rankSettings.setRank 5 330
rankSettings.setRank 6 520
rankSettings.setRank 7 750
rankSettings.setRank 8 1050
rankSettings.setRank 9 1400
rankSettings.setRank 10 1800
rankSettings.setRank 11 2250
rankSettings.setRank 12 2850
rankSettings.setRank 13 3550
rankSettings.setRank 14 4400
rankSettings.setRank 15 5300
rankSettings.setRank 16 6250
rankSettings.setRank 17 7250
rankSettings.setRank 18 8250
rankSettings.setRank 19 9300
rankSettings.setRank 20 10400
rankSettings.setRank 21 11550
rankSettings.setRank 22 12700
rankSettings.setRank 23 14000
rankSettings.setRank 24 15300
rankSettings.setRank 25 16700
rankSettings.setRank 26 18300
rankSettings.setRank 27 20100
rankSettings.setRank 28 22100
rankSettings.setRank 29 24200
rankSettings.setRank 30 26400
rankSettings.setRank 31 28800
rankSettings.setRank 32 31500
rankSettings.setRank 33 34200
rankSettings.setRank 34 37100
rankSettings.setRank 35 40200
rankSettings.setRank 36 43300
rankSettings.setRank 37 46900
rankSettings.setRank 38 50500
rankSettings.setRank 39 54100
rankSettings.setRank 40 57700
rankSettings.setRank 41 0
rankSettings.setRank 42 0
rankSettings.setRank 43 0
rankSettings.save
awards.setData 100_1 "6,1, ,12"
awards.setData 100_2 "6,1, ,20" "9,23,ktt-3,54000"
awards.setData 100_3 "6,1, ,30" "9,23,ktt-3,180000"
awards.setData 101_1 "6,2, ,12"
awards.setData 101_2 "6,2, ,20" "9,20,ktt-0,54000"
awards.setData 101_3 "6,2, ,30" "9,20,ktt-0,180000"
awards.setData 102_1 "6,3, ,12"
awards.setData 102_2 "6,3, ,20" "9,21,ktt-1,54000"
awards.setData 102_3 "6,3, ,30" "9,21,ktt-1,180000"
awards.setData 103_1 "6,4, ,12"
awards.setData 103_2 "6,4, ,20" "9,22,ktt-2,54000"
awards.setData 103_3 "6,4, ,30" "9,22,ktt-2,180000"
awards.setData 104_1 "6,50, ,10"
awards.setData 104_2 "6,50, ,20" "1,113,slpts,300"
awards.setData 104_3 "6,50, ,30" "1,113,slpts,600"
awards.setData 105_1 "6,5, ,7"
awards.setData 105_2 "6,5, ,10" "1,5,wkls-12,50"
awards.setData 105_3 "6,5, ,17" "1,5,wkls-12,150"
awards.setData 106_1 "6,7, ,5"
awards.setData 106_2 "6,7, ,7" "1,7,wkls-5;wkls-11,50"
awards.setData 106_3 "6,7, ,18" "1,7,wkls-5;wkls-11,300"
awards.setData 107_1 "6,8, ,10"
awards.setData 107_2 "6,8, ,15" "1,8,klse,50"
awards.setData 107_3 "6,8, ,20" "1,8,klse,300"
awards.setData 108_1 "10,18, ,180"
awards.setData 108_2 "6,9, ,15" "9,148,vtp-12;vtp-3;wtp-30,72000"
awards.setData 108_3 "6,9, ,30" "9,148,vtp-12;vtp-3;wtp-30,180000"
awards.setData 109_1 "6,40, ,30"
awards.setData 109_2 "10,150, ,1200" "1,40,csgpm-0,1000"
awards.setData 109_3 "10,150, ,1500" "1,40,csgpm-0,4000"
awards.setData 110_1 "6,39, ,30"
awards.setData 110_2 "10,149, ,1200" "1,39,csgpm-1,1000"
awards.setData 110_3 "10,149, ,1500" "1,39,csgpm-1,4000"
awards.setData 111_1 "6,42, ,8"
awards.setData 111_2 "6,42, ,10" "9,128,etpk-1,36000"
awards.setData 111_3 "6,42, ,15" "9,128,etpk-1,216000" "1,42,rps,200"
awards.setData 112_1 "6,43, ,8"
awards.setData 112_2 "6,43, ,10" "9,129,etpk-5;etpk-0;etpk-2,36000"
awards.setData 112_3 "6,43, ,15" "9,129,etpk-5;etpk-0;etpk-2,216000" "1,43,hls,400"
awards.setData 113_1 "6,45, ,8"
awards.setData 113_2 "6,45, ,10" "9,130,etpk-6,36000"
awards.setData 113_3 "6,45, ,15" "9,130,etpk-6,180000" "1,45,resp,400"
awards.setData 114_1 "10,141, ,900"
awards.setData 114_2 "6,11, ,15" "9,114,atp,90000"
awards.setData 114_3 "6,11, ,35" "9,114,atp,180000"
awards.setData 115_1 "10,142, ,900"
awards.setData 115_2 "6,12, ,15" "9,25,vtp-10;vtp-4,90000"
awards.setData 115_3 "6,12, ,35" "9,25,vtp-10;vtp-4,180000"
awards.setData 116_1 "10,151, ,600"
awards.setData 116_2 "6,116, ,5" "9,115,vtp-1;vtp-4;vtp-6,90000"
awards.setData 116_3 "6,116, ,12" "9,115,vtp-1;vtp-4;vtp-6,144000"
awards.setData 117_1 "6,46, ,8"
awards.setData 117_2 "6,46, ,15" "9,27,tgpm-1,108000"
awards.setData 117_3 "6,46, ,30" "9,27,tgpm-1,216000"
awards.setData 118_1 "6,47, ,8"
awards.setData 118_2 "6,47, ,15" "9,27,tgpm-1,108000"
awards.setData 118_3 "6,47, ,30" "9,27,tgpm-1,216000"
awards.setData 119_1 "6,48, ,2"
awards.setData 119_2 "6,49, ,1" "1,48,tcd,10"
awards.setData 119_3 "6,48, ,3" "6,49, ,1" "1,48,tcd,40"
awards.setData 200 "6,127, ,"
awards.setData 201 "6,126, ,"
awards.setData 202 "6,125, ,"
awards.setData 203 "6,41, ,30" "9,19,tac,180000" "9,28,tasl,180000" "9,29,tasm,180000"
awards.setData 204 "6,59, ,1" "5,62,100_1,1" "5,63,101_1,1" "5,64,102_1,1" "5,65,103_1,1" "5,66,105_1,1" "5,67,106_1,1" "5,68,107_1,1"
awards.setData 205 "6,59, ,1" "5,69,100_2,1" "5,70,101_2,1" "5,71,102_2,1" "5,72,103_2,1" "5,73,105_2,1" "5,74,106_2,1" "5,75,107_2,1"
awards.setData 206 "6,59, ,1" "5,76,100_3,1" "5,77,101_3,1" "5,78,102_3,1" "5,79,103_3,1" "5,80,105_3,1" "5,81,106_3,1" "5,82,107_3,1"
awards.setData 207 "11,30,tt,540000" "3,51,cpt,1000" "3,52,dcpt,400" "3,41,twsc,5000"
awards.setData 208 "10,145, ,180" "11,31,attp-0,540000" "1,54,awin-0,300"
awards.setData 209 "10,146, ,180" "11,32,attp-1,540000" "1,55,awin-1,300"
awards.setData 210 "6,60, ,1" "11,26,tgpm-0,288000" "1,13,kgpm-0,8000" "1,15,bksgpm-0,25"
awards.setData 211 "6,61, ,1" "11,27,tgpm-1,288000" "1,14,kgpm-1,8000" "1,16,bksgpm-1,25"
awards.setData 212 "6,12, ,30" "9,25,vtp-10;vtp-4,360000" "1,12,vkls-10;vkls-4,8000"
awards.setData 213 "6,11, ,25" "9,24,vtp-0;vtp-1;vtp-2,360000" "1,11,vkls-0;vkls-1;vkls-2,8000"
awards.setData 214 "6,17, ,27" "6,83, ,0" "9,30,tt,648000"
awards.setData 215 "11,30,tt,360000" "3,43,hls,400" "3,42,rps,400" "3,45,resp,400"
awards.setData 216 "6,85, ,0.25"
awards.setData 217 "6,86, ,10" "9,33,vtp-4,90000"
awards.setData 218 "6,14, ,10" "11,27,tgpm-1,540000" "1,133,mbr-1-0;mbr-1-1;mbr-1-2;mbr-1-3;mbr-1-5,70"
awards.setData 219 "6,17, ,20" "1,51,cpt,100" "1,42,rps,200"
awards.setData 300 "10,18, ,300" "6,9, ,15"
awards.setData 301 "10,142, ,600" "6,12, ,20"
awards.setData 302 "6,120, ,10"
awards.setData 303 "10,143, ,1200" "9,28,tasl,144000"
awards.setData 304 "10,38, ,1200" "6,34, ,40" "9,19,tac,288000"
awards.setData 305 "6,41, ,15" "9,29,tasm,36000" "9,28,tasl,36000" "9,19,tac,36000"
awards.setData 306 "10,144, ,1080" "6,41, ,40" "9,29,tasm,72000"
awards.setData 307 "6,41, ,55" "9,29,tasm,90000" "9,28,tasl,180000"
awards.setData 308 "6,34, ,45" "9,19,tac,216000" "5,87,wlr,2"
awards.setData 309 "10,141, ,1200" "6,11, ,20"
awards.setData 310 "6,110, ,10" "9,121,vtp-0;vtp-1;vtp-2;vtp-6,36000"
awards.setData 311 "9,99,mtt-0-0;mtt-1-0,0" "9,101,mtt-0-2;mtt-1-2,0" "9,103,mtt-0-4,0" "9,104,mtt-0-5;mtt-1-5,0" "9,108,mtt-0-9,0" "9,32,attp-1,432000"
awards.setData 312 "9,100,mtt-0-1;mtt-1-1,0" "9,102,mtt-0-3;mtt-1-3,0" "9,105,mtt-0-6,0" "9,106,mtt-0-7,0" "9,107,mtt-0-8,0" "9,31,attp-0,432000"
awards.setData 313 "6,17, ,20" "1,88,bksgpm-0;bksgpm-1,10"
awards.setData 314 "6,17, ,10" "6,83, ," "11,30,tt,180000"
awards.setData 315 "6,17, ,10" "11,30,tt,432000" "1,88,bksgpm-0;bksgpm-1,10"
awards.setData 316 "3,10,vkls-7,200"
awards.setData 317 "6,86, ,15" "9,33,vtp-4,90000"
awards.setData 318 "6,138, ,15" "9,137,vtp-12,36000"
awards.setData 319 "6,39, ,10" "11,36,ctgpm-1,90000"
awards.setData 400 "6,89, ,5"
awards.setData 401 "6,89, ,10"
awards.setData 402 "6,48, ,4"
awards.setData 403 "6,109, ,4"
awards.setData 404 "6,86, ,10"
awards.setData 406 "6,47, ,7"
awards.setData 407 "6,139, ,5"
awards.setData 408 "6,110, ,5"
awards.setData 409 "6,93, ,8"
awards.setData 410 "6,8, ,8"
awards.setData 411 "6,44, ,8"
awards.setData 412 "6,124, ,"
awards.setData 413 "6,7, ,4"
awards.setData 414 "6,9, ,10"
awards.setData 415 "6,6, ,10"

$    7473    $

for server

O
H	asof	tid	serverip	cb
D	116182227	0	71.252.218.197	server
H	config
D	rankSettings.setRank 0 0
rankSettings.setRank 1 40
rankSettings.setRank 2 80
rankSettings.setRank 3 120
rankSettings.setRank 4 200
rankSettings.setRank 5 330
rankSettings.setRank 6 520
rankSettings.setRank 7 750
rankSettings.setRank 8 1050
rankSettings.setRank 9 1400
rankSettings.setRank 10 1800
rankSettings.setRank 11 2250
rankSettings.setRank 12 2850
rankSettings.setRank 13 3550
rankSettings.setRank 14 4400
rankSettings.setRank 15 5300
rankSettings.setRank 16 6250
rankSettings.setRank 17 7250
rankSettings.setRank 18 8250
rankSettings.setRank 19 9300
rankSettings.setRank 20 10400
rankSettings.setRank 21 11550
rankSettings.setRank 22 12700
rankSettings.setRank 23 14000
rankSettings.setRank 24 15300
rankSettings.setRank 25 16700
rankSettings.setRank 26 18300
rankSettings.setRank 27 20100
rankSettings.setRank 28 22100
rankSettings.setRank 29 24200
rankSettings.setRank 30 26400
rankSettings.setRank 31 28800
rankSettings.setRank 32 31500
rankSettings.setRank 33 34200
rankSettings.setRank 34 37100
rankSettings.setRank 35 40200
rankSettings.setRank 36 43300
rankSettings.setRank 37 46900
rankSettings.setRank 38 50500
rankSettings.setRank 39 54100
rankSettings.setRank 40 57700
rankSettings.setRank 41 0
rankSettings.setRank 42 0
rankSettings.setRank 43 0
rankSettings.save

$	1299	$

Function: getleaderboard

  • Gets the BF2142 leaderboard information. A full list of look up values for the id parameter are listed here
Accepted Parameters
auth (required) - auth parameter as described in the auth section
gsa (unknown) - (added in patch 1.10)
pos (required) - where the leaderboard starts
after (required) - number of people to put in the list (seems like they return 1 more than this number --MadHatter 18:50, 15 November 2006 (MST))
type (required) - the general category in which to get the results. valid values for this are:
weapon (requires id) - ranks players by weapon. there are 43 some odd different types of weapons. setting the id parameter to a value between 0 - 27 (though more may possibly be pulled... that hasn't been tested) will return a result for that weapon. not all weapons kill. The full list of look up values can be found HERE
overallscore - rank players based on overall score
combatscore - rank players based on combat score
risingstar - rank players based on the player who has progressed the most over some period of time?
commanderscore - rank players on commander score
teamworkscore - rank players based on teamwork score
efficiency - rank players based on efficiency
supremecommander - shows "hall of fame" board and will display whoever has achieved the "supreme commander" rank
vehicle (requires id) - rank players based on a particular vehicle. the id parameter takes values 0 - 14 The full list of look up values can be found HERE
id (required by vehicle & weapon) - specifies a weapon or vehicle type.
ccFilter (optional) - filters result set by country (takes the 2 letter country code as its value)
buddiesFilter (optional) - filters results based on a list of buddy PID's. this parameter takes a comma delimited list similar to bf2's getplayerinfo list. ex: buddiesFilter=81168298,81242994,81306093,81465904
dogTagFilter (optional) - filters the list to people you've knifed (set dogTagFilter=1 to enable this filter).
Returned Results
O
H    size    asof
D    251354    1161796167
H    rank    pos    pid    nick    globalscore    playerrank    countrycode    Vet
D    56947    56947    81246737    MadHatter2142    691    8    US    1
H    rank    pos    pid    nick    globalscore    playerrank    countrycode    Vet    dt
D    31470    1    81624909    Spiv    1084    9    CA    0    1
D    36738    2    81306093    Wolverine-B-    979    9    US    1    1
D    36774    3    64334057    ak1knight    978    9    US    1    1
D    45284    4    81452916    H3LL-R4ZER    841    8    US    1    1
D    56947    5    81246737    MadHatter2142    691    8    US    1    0
D    90921    6    81312600    BearAxe    409    6    US    1    1
D    115552    7    81865105    Nefar2    282    5    US    0    1
$    392    $

Function: getplayerinfo

  • Gets player information
Accepted Parameters
auth (required) - auth parameter as described in the auth section
gsa (unknown) - (added in patch 1.10)
lkey (unknown) - (added in patch 1.2)
mode (required) - the stats mode that takes one of the following parameters:
base - general statistics (server and client have diff result)
ovr - overview stats (server does not get an answer)
award - award stats (server does not get an answer)
ply - player stats (server does not get an answer)
titan - titan mode stats (server does not get an answer)
wrk - teamwork stats (server does not get an answer)
com - leadership stats (server does not get an answer)
wep - weapon stats (server does not get an answer)
veh - vehicle stats (server does not get an answer)
map - map stats (server does not get an answer)
pToken (required on base) - an encrypted payload of ea account email address / nick / country code & some other parts (TODO: decrypt this token to get the exacts of it --MadHatter 19:40, 15 November 2006 (MST)).
Returned Results
O
H    asof    cb
D    1161797095    client
H    pid    nick    tid    klls    klla    dths    suic    klstrk    dstrk    spm    kdr    kpm    dpm    akpr    adpr    tots    toth    ovaccu    ktt-0    ktt-1    ktt-2    ktt-3    kkls-0    kkls-1    kkls-2    kkls-3
D    81246737    MadHatter2142    0    148    24    181    1    7    7    2.032    0.818    0.435    0.532    3.364    4.114    5085    774    0.152    202    16289    1660    854    2    138    7    1
$    238    $

Function: getplayerprogress

  • Gets statistical progress data used to draw the graphs in game
Accepted Parameters
auth (required) - auth parameter as described in the auth section
gsa (unknown) - (added in patch 1.10)
mode (required) - mode in which to get progress info. it uses one of the following parameters:
point - points progress
score - score progress
ttp - total time played
kills - kills progress
spm - score per minute?
role - role
flag - flag capture progress
waccu - weapon accuracy
wl - win/loss ratio
twsc - teamwork score
sup - ?
scale (required) - don't know, but scale always is set to game.
Returned Results
O
H    pid    asof
D    81246737    1161822284
H    date    points    globalscore    experiencepoints    awaybonus
D    1161129600    70    66    4    0
D    1161216000    407    245    162    0
D    1161302400    673    415    258    0
D    1161388800    858    515    343    0
D    1161561600    1055    649    378    28
D    1161648000    1097    691    378    28
$    201    $

Function: getunlocksinfo

  • Gets a list of unlocked items
Accepted Parameters
auth (required) - auth parameter as described in the auth section
Returned Results
O
H    pid    nick    asof
D    81246737    MadHatter2142    1161822276
H    Avcred
D    0
H    UnlockID
D    523
D    111
D    221
D    123
$    79    $

Function: playersearch

  • finds a player based on their nick.
Accepted Parameters
auth (required) - as described in the auth section except a PID of 00000000 is used in place of a valid PID
nick (required) - the name pattern to search on (the * character is used as a wildcard)
Returned Results
O
H	pid	asof
D	0	1163646224
H	searchpattern
D	madhatter*
H	pid	nick
D	83745748	Mad.Hatter
D	84106519	mad+hatter
D	82027053	Madhatter
D	81275564	MadHatter=EX=
D	81300611	MadHatter-=EX=
D	81975435	MadHatter085
D	81315160	MadHatter20000
D	81246737	MadHatter2142
D	81745249	Madhatter45
D	81868168	madhatter45454
D	82477960	MadHatter666
D	81621650	MadHatter7
D	81575833	Madhatter73
D	81465028	MadHatterclan
D	81314046	MadHatter-EX-
$	368	$

Function: clearranknotification

  • Clear rank notification flags 'rnkcg' 1=>0
Accepted Parameters
auth (required) - auth parameter as described in the auth section
Returned Results
O
H	result	asof
D	0	1163646224
H	version
D	115
$	36	$

External Links

Our clan BuddaBudda has been running our own 2142 leaderboard for the last year or so now and have decided to release our mish-mash of code (based on heaps of help from this wiki) to other interested peoples. With no "take-down" threats in all that time, I figure EA aren't too concerned about small clan sites doing this sort of thing. Check this link for info : http://forums.buddabudda.com/viewtopic.php?t=919

TODO's

  • edit pToken parameter of getplayerinfo to outline its contents and how to encrypt the token
  • With release 1.10, a new parameter gsa has been introduced... figure out what this is.

History

  • the problems section that used to be here has been moved to the discussion page here
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox