Release 1.4.1 Billyoyo - media.readthedocs.org

24
r6sapi.py Documentation Release 1.4.1 Billyoyo Jan 08, 2021

Transcript of Release 1.4.1 Billyoyo - media.readthedocs.org

Page 1: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py DocumentationRelease 1.4.1

Billyoyo

Jan 08, 2021

Page 2: Release 1.4.1 Billyoyo - media.readthedocs.org
Page 3: Release 1.4.1 Billyoyo - media.readthedocs.org

CONTENTS

1 Contents 11.1 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Indices and tables 17

Index 19

i

Page 4: Release 1.4.1 Billyoyo - media.readthedocs.org

ii

Page 5: Release 1.4.1 Billyoyo - media.readthedocs.org

CHAPTER

ONE

CONTENTS

1.1 Getting Started

1.1.1 Introduction

r6sapi.py is a module for easily getting information from the unofficial rainbow six siege api. It allows you to getthings such as a players rank and specific stats for operators, gamemodes and queues The api requires authenticationto process any api requests, so r6sapi requires your ubisoft login email and password.

1.1.2 Quick Example

import asyncioimport r6sapi as api

@asyncio.coroutinedef run():

auth = api.Auth("email", "password")

player = yield from auth.get_player("billy_yoyo", api.Platforms.UPLAY)operator = yield from player.get_operator("sledge")

print(operator.kills)

asyncio.get_event_loop().run_until_complete(run())

1.1.3 License

MIT

1

Page 6: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

1.2 API Reference

1.2.1 Auth

class r6sapi.Auth(email=None, password=None, token=None, appid=None, cachetime=120,max_connect_retries=1, session=None, refresh_session_period=180)

Holds your authentication information. Used to retrieve Player objects Once you’re done with the auth object,auth.close() should be called.

Parameters

• email (Optional[str]) – Your Ubisoft email

• password (Optional[str]) – Your Ubisoft password

• token (Optional[str]) – Your Ubisoft auth token, either supply this ORemail/password

• appid (Optional[str]) – Your Ubisoft appid, not required

• cachetime (Optional[float]) – How long players are cached for (in seconds)

• max_connect_retries (Optional[int]) – How many times the auth client willautomatically try to reconnect, high numbers can get you temporarily banned

• refresh_session_period (Optional[int]) – How frequently the http sessionshould be refreshed, in seconds. Negative number for never. Defaults to 3 minutes.

sessionaiohttp client session

tokenyour token

Type str

appidyour appid

Type str

sessionidthe current connections session id (will change upon attaining new key)

Type str

keyyour current auth key (will change every time you connect)

Type str

spaceidscontains the spaceid for each platform

Type dict

profileidyour profileid (corresponds to your appid)

Type str

useridyour userid (corresponds to your appid)

Type str

2 Chapter 1. Contents

Page 7: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

cachetimethe time players are cached for

Type float

cachethe current player cache

Type dict

close()This function is a coroutine.

Closes the session associated with the auth object

connect()This function is a coroutine.

Connect to ubisoft, automatically called when needed

get_player(name=None, platform=None, uid=None)This function is a coroutine.

Calls get_players and returns the first element, exactly one of uid and name must be given, platform mustbe given

Parameters

• name (str) – the name of the player you’re searching for

• platform (str) – the name of the platform you’re searching on (See Platforms)

• uid (str) – the uid of the player you’re searching for

Returns player found

Return type Player

get_player_batch(names=None, platform=None, uids=None)This function is a coroutine.

Calls get_player for each name and uid you give, and creates a player batch out of all the resulting playerobjects found. See PlayerBatch for how to use this.

Parameters

• names (list[str]) – a list of player names to add to the batch, can be none

• uids (list[str]) – a list of player uids to add to the batch, can be none

• platform (str) – the name of the platform you’re searching for players on (SeePlatforms)

Returns the player batch

Return type PlayerBatch

get_players(name=None, platform=None, uid=None)This function is a coroutine.

get a list of players matching the term on that platform, exactly one of uid and name must be given,platform must be given, this list almost always has only 1 element, so it’s easier to use get_player

Parameters

• name (str) – the name of the player you’re searching for

• platform (str) – the name of the platform you’re searching on (See Platforms)

1.2. API Reference 3

Page 8: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

• uid (str) – the uid of the player you’re searching for

Returns list of found players

Return type list[Player]

get_session()This function is a coroutine.

Retrieves the current session, ensuring it’s valid first

refresh_session()This function is a coroutine.

Closes the current session and opens a new one

1.2.2 Player

class r6sapi.Player(auth, data)Contains information about a specific player

auththe auth object used to find this player

Type Auth

idthe players profile id

Type str

useridthe players user id

Type str

platformthe platform this player is on

Type str

platform_urlthe URL name for this platform (used internally)

Type str

id_on_platformthe players ID on the platform

Type str

namethe players name on the platform

Type str

urla link to the players profile

Type str

icon_urla link to the players avatar

Type str

4 Chapter 1. Contents

Page 9: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

xpthe amount of xp the player has, must call check_level or load_level first

Type int

levelthe level of the player, must call check_level or load_level first

Type int

ranksdict containing already found ranks (“region_name:season”: Rank)

Type dict

operatorsdict containing already found operators (operator_name: Operator)

Type dict

gamemodesdict containing already found gamemodes (gamemode_id: Gamemode)

Type dict

weaponsdict containing already found weapons (weapon_id: Weapon)

Type dict

casualstats for the casual queue, must call load_queues or check_queues first

Type GameQueue

rankedstats for the ranked queue, must call load_queues or check_queues first

Type GameQueue

deathsthe number of deaths the player has (must call load_general or check_general first)

Type int

killsthe number of kills the player has (must call load_general or check_general first)

Type int

kill_assiststhe number of kill assists the player has (must call load_general or check_general first)

Type int

penetration_killsthe number of penetration kills the player has (must call load_general or check_general first)

Type int

melee_killsthe number of melee kills the player has (must call load_general or check_general first)

Type int

revivesthe number of revives the player has (must call load_general or check_general first)

1.2. API Reference 5

Page 10: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

Type int

matches_wonthe number of matches the player has won (must call load_general or check_general first)

Type int

matches_lostthe number of matches the player has lost (must call load_general or check_general first)

Type int

matches_playedthe number of matches the player has played (must call load_general or check_general first)

Type int

time_playedthe amount of time in seconds the player has played for (must call load_general or check_general first)

Type int

bullets_firedthe amount of bullets the player has fired (must call load_general or check_general first)

Type int

bullets_hitthe amount of bullets the player has hit (must call load_general or check_general first)

Type int

headshotsthe amount of headshots the player has hit (must call load_general or check_general first)

Type int

terrorist_huntcontains all of the above state (from deaths to headshots) inside a gamequeue object.

Type GameQueue

check_gamemodes(data=None)This function is a coroutine.

Checks the players gamemode stats, only loading them if they haven’t already been found

Returns dict of all the gamemodes found (gamemode_name: Gamemode)

Return type dict

check_general(data=None)This function is a coroutine.

Checks the players general stats, only loading them if they haven’t already been found

check_level()This function is a coroutine.

Check the players XP and level, only loading it if it hasn’t been loaded yet

check_queues(data=None)This function is a coroutine.

Checks the players game queues, only loading them if they haven’t already been found

6 Chapter 1. Contents

Page 11: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

check_terrohunt(data=None)This function is a coroutine.

Checks the players general stats for terrorist hunt, only loading them if they haven’t been loaded already

check_weapons(data=None)This function is a coroutine.

Check the players weapon stats, only loading them if they haven’t already been found

Returns list of all the weapon objects found

Return type list[Weapon]

get_all_operators(data=None)This function is a coroutine.

Checks the player stats for all operators, loading them all again if any aren’t found This is significantlymore efficient than calling get_operator for every operator name.

Returns the dictionary of all operators found

Return type dict[Operator]

get_operator(operator, data=None)This function is a coroutine.

Checks the players stats for this operator, only loading them if they haven’t already been found

Parameters operator (str) – the name of the operator

Returns the operator object found

Return type Operator

get_rank(region, season=- 1, data=None)This function is a coroutine.

Checks the players rank for this region, only loading it if it hasn’t already been found

Parameters

• region (str) – the name of the region you want to get the rank for

• season (Optional[int]) – the season you want to get the rank for (defaults to -1,latest season)

Returns the players rank for this region and season

Return type Rank

load_all_operators(data=None)This function is a coroutine.

Loads the player stats for all operators

Returns the dictionary of all operators found

Return type dict[Operator]

load_gamemodes(data=None)This function is a coroutine.

Loads the players gamemode stats

Returns dict of all the gamemodes found (gamemode_name: Gamemode)

Return type dict

1.2. API Reference 7

Page 12: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

load_general(data=None)This function is a coroutine.

Loads the players general stats

load_level(data=None)This function is a coroutine.

Load the players XP and level

load_operator(operator, data=None)This function is a coroutine.

Loads the players stats for the operator

Parameters operator (str) – the name of the operator

Returns the operator object found

Return type Operator

load_queues(data=None)This function is a coroutine.

Loads the players game queues

load_rank(region, season=- 1, data=None)This function is a coroutine. Loads the players rank for this region and season

Parameters

• region (str) – the name of the region you want to get the rank for

• season (Optional[int]) – the season you want to get the rank for (defaults to -1,latest season)

Returns the players rank for this region and season

Return type Rank

load_terrohunt(data=None)This function is a coroutine.

Loads the player’s general stats for terrorist hunt

load_weapons(data=None)This function is a coroutine.

Load the players weapon stats

Returns list of all the weapon objects found

Return type list[Weapon]

1.2.3 PlayerBatch

class r6sapi.PlayerBatch(players)Accumulates requests for multiple players’ stats in to a single request, saving time.

Acts as a proxy for any asynchronous method in Player. The response of the method will be a dictionary ofthe responses from each player, with the player ids as keys.

This class is also an iterable, and iterates over the Player objects contained in the batch. Individual players inthe batch can be accessed via their ID using an item accessor (player_batch[player.id])

Parameters players (list[Player]) – the list of players in the batch

8 Chapter 1. Contents

Page 13: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

1.2.4 Rank

class r6sapi.Rank(data, rank_definitions)Contains information about your rank

RANKSNames of the ranks

Type list[str]

RANK_CHARMSURLs for the rank charms

Type list[str]

UNRANKEDthe unranked bracket id

Type int

COPPERthe copper bracket id

Type int

BRONZEthe bronze bracket id

Type int

SILVERthe silver bracket id

Type int

GOLDthe gold bracket id

Type int

PLATINUMthe platinum bracket id

Type int

DIAMONDthe diamond bracket id

Type int

max_mmrthe maximum MMR the player has achieved

Type int

mmrthe MMR the player currently has

Type int

winsthe number of wins this player has this season

Type int

1.2. API Reference 9

Page 14: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

lossesthe number of losses this player has this season

Type int

abandonsthe number of abandons this player has this season

Type int

rank_idthe id of the players current rank

Type int

rankthe name of the players current rank

Type str

max_rankthe id of the players max rank

Type int

next_rank_mmrthe mmr required for the player to achieve their next rank

Type int

seasonthe season this rank is for

Type int

regionthe region this rank is for

Type str

skill_meanthe mean for this persons skill

Type float

skill_stdevthe standard deviation for this persons skill

Type float

get_bracket(rank_id=None)Get rank bracket

Returns the id for the rank bracket this rank is in

Return type int

get_bracket_name(rank_id=None)Get rank bracket name

Returns the name for the rank bracket this rank is in

Return type str

get_charm_url()Get charm URL for the bracket this rank is in

10 Chapter 1. Contents

Page 15: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

Returns the URL for the charm

Return type str

get_icon_url()Get URL for this rank’s icon

Returns the URL for the rank icon

Return type str

get_max_rank_name()Get rank name of max rank

Returns the name for this rank

Return type str

get_rank_name(rank_id=None)Get rank name

Returns the name for this rank

Return type str

1.2.5 Operator

class r6sapi.Operator(name, stats=None, unique_stats=None)Contains information about an operator

namethe name of the operator

Type str

winsthe number of wins the player has on this operator

Type int

lossesthe number of losses the player has on this operator

Type int

killsthe number of kills the player has on this operator

Type int

deathsthe number of deaths the player has on this operator

Type int

headshotsthe number of headshots the player has on this operator

Type int

meleesthe number of melee kills the player has on this operator

Type int

1.2. API Reference 11

Page 16: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

dbnosthe number of DBNO (down-but-not-out)’s the player has on this operator

Type int

xpthe total amount of xp the player has on this operator

Type int

time_playedthe amount of time the player has played this operator for in seconds

Type int

statisticthe value for this operators unique statistic (depreciated in favour of unique_stats)

Type int

statistic_namethe human-friendly name for this operators statistic (depreciated in favour of unique_stats)

Type str

unique_statsmapping of an operator’s unique stat to number of times that stat has been achieved (e.g. kills with agadget)

Type dict[UniqueOperatorStat, int]

1.2.6 Weapon

class r6sapi.Weapon(weaponType, stats=None)Contains information about a weapon

typethe weapon type

Type int

namethe human-friendly name for this weapon type

Type str

killsthe number of kills the player has for this weapon

Type int

headshotsthe number of headshots the player has for this weapon

Type int

hitsthe number of bullet this player has hit with this weapon

Type int

shotsthe number of bullets this player has shot with this weapon

Type int

12 Chapter 1. Contents

Page 17: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

1.2.7 Gamemode

class r6sapi.Gamemode(gamemodeType, stats=None)Contains information about a gamemode

typethe gamemode id

Type str

namethe human-readable name for this gamemode

Type str

wonthe number of wins the player has on this gamemode

Type int

lostthe number of losses the player has on this gamemode

Type int

playedthe number of games this player has played on this gamemode

Type int

best_scorethe best score this player has achieved on this gamemode

Type int

1.2.8 GameQueue

class r6sapi.GameQueue(name, stats=None)Contains information about a specific game queue

namethe name for this gamemode (always either “ranked” or “casual”

Type str

wonthe number of wins the player has on this gamemode

Type int

lostthe number of losses the player has on this gamemode

Type int

time_playedthe amount of time in seconds the player has spent playing on this gamemode

Type int

playedthe number of games the player has played on this gamemode

Type int

1.2. API Reference 13

Page 18: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

killsthe number of kills the player has on this gamemode

Type int

deathsthe number of deaths the player has on this gamemode

Type int

1.2.9 Platforms

class r6sapi.PlatformsPlatforms supported

UPLAYname of the uplay platform

Type str

XBOXname of the xbox platform

Type str

PLAYSTATIONname of the playstation platform

Type str

1.2.10 RankedRegions

class r6sapi.RankedRegionsRanked regions supported

EUname of the european data centre

Type str

NAname of the north american data centre

Type str

ASIAname of the asian data centre

Type str

14 Chapter 1. Contents

Page 19: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

1.2.11 WeaponTypes

class r6sapi.WeaponTypesWeapon Types

ASSAULT_RIFLEthe assault rifle weapon id

Type int

SUBMACHINE_GUNthe submachine gun weapon id

Type int

MARKSMAN_RIFLEthe marksman rifle weapon id

Type int

SHOTGUNthe shotgun weapon id

Type int

HANDGUNthe handgun weapon id

Type int

LIGHT_MACHINE_GUNthe light machine gun weapon id

Type int

MACHINE_PISTOLthe machine pistol weapon id

Type int

1.3 How It Works

1.3.1 Introduction

Most of the API endpoints can be fairly easily retrieved by going on to the network tab and monitoring the requestssent. Your browser, as usual, will send a load of unnecessary headers with the request, and a quick bit of testing willshow that the only two required are the “Authorization” header and the “Ubi-AppId” header. (Also the request musthave content-type set to application/json)

1.3. How It Works 15

Page 20: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

1.3.2 Experimenting

When you’re logged in to your account on the website, your “Authorization” header looks like Ubi_v1 t=[token]where [token] is a load of random characters. Your Ubi-AppId is a string of characters split by “-“, so if we attemptto simply copy/paste these two and use them in our code, it will work but this type of token is called a “ticket” andis only temporary. Eventually you’ll get a response telling you your token is invalid, meaning you need to resend theinformation you used to recieve your ticket in the first place.

1.3.3 Logging In

So clearly some sort of auth login logic is required, where you recieve a new ticket every time your current one runsout. So if you monitor the requests sent when you log in, you’ll see the very first request sent has the authorizationheader set to Basic [token]. This time [token] appears to be constant, and the response you get from thisendpoint gives you a valid ticket, along with some other things. Great, now there’s two things left to do: figure outhow to generate this token from username/id and figure out how to get you appid

1.3.4 Generating The Token

To do this I read through the javascript on the login page until I found the bit that converts your username and passwordin to a base64 number. This is actually, very simply, base64.encode(email + ":" + password). Nice andsimple, this solves our first problem.

1.3.5 Getting the AppId

Turns out the AppId doesn’t seem to matter at all, after reading through the code I couldn’t figure out where the AppIdgets decided. I believe it’s generated server-side by ubisoft based on your IP, but either way I did manage to find adefault AppId in the code, so unless one is specified, just using that one seems to work.

1.3.6 Conclusion

That’s basically the end of it, I convert the username and password in to a basic token, then every time a request getsan unauthorized I try and fetch a new one. Then using the default appid, I can access any of the endpoints easily.

16 Chapter 1. Contents

Page 21: Release 1.4.1 Billyoyo - media.readthedocs.org

CHAPTER

TWO

INDICES AND TABLES

• genindex

• search

17

Page 22: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

18 Chapter 2. Indices and tables

Page 23: Release 1.4.1 Billyoyo - media.readthedocs.org

INDEX

Aabandons (r6sapi.Rank attribute), 10appid (r6sapi.Auth attribute), 2ASIA (r6sapi.RankedRegions attribute), 14ASSAULT_RIFLE (r6sapi.WeaponTypes attribute), 15Auth (class in r6sapi), 2auth (r6sapi.Player attribute), 4

Bbest_score (r6sapi.Gamemode attribute), 13BRONZE (r6sapi.Rank attribute), 9bullets_fired (r6sapi.Player attribute), 6bullets_hit (r6sapi.Player attribute), 6

Ccache (r6sapi.Auth attribute), 3cachetime (r6sapi.Auth attribute), 3casual (r6sapi.Player attribute), 5check_gamemodes() (r6sapi.Player method), 6check_general() (r6sapi.Player method), 6check_level() (r6sapi.Player method), 6check_queues() (r6sapi.Player method), 6check_terrohunt() (r6sapi.Player method), 6check_weapons() (r6sapi.Player method), 7close() (r6sapi.Auth method), 3connect() (r6sapi.Auth method), 3COPPER (r6sapi.Rank attribute), 9

Ddbnos (r6sapi.Operator attribute), 11deaths (r6sapi.GameQueue attribute), 14deaths (r6sapi.Operator attribute), 11deaths (r6sapi.Player attribute), 5DIAMOND (r6sapi.Rank attribute), 9

EEU (r6sapi.RankedRegions attribute), 14

GGamemode (class in r6sapi), 13gamemodes (r6sapi.Player attribute), 5

GameQueue (class in r6sapi), 13get_all_operators() (r6sapi.Player method), 7get_bracket() (r6sapi.Rank method), 10get_bracket_name() (r6sapi.Rank method), 10get_charm_url() (r6sapi.Rank method), 10get_icon_url() (r6sapi.Rank method), 11get_max_rank_name() (r6sapi.Rank method), 11get_operator() (r6sapi.Player method), 7get_player() (r6sapi.Auth method), 3get_player_batch() (r6sapi.Auth method), 3get_players() (r6sapi.Auth method), 3get_rank() (r6sapi.Player method), 7get_rank_name() (r6sapi.Rank method), 11get_session() (r6sapi.Auth method), 4GOLD (r6sapi.Rank attribute), 9

HHANDGUN (r6sapi.WeaponTypes attribute), 15headshots (r6sapi.Operator attribute), 11headshots (r6sapi.Player attribute), 6headshots (r6sapi.Weapon attribute), 12hits (r6sapi.Weapon attribute), 12

Iicon_url (r6sapi.Player attribute), 4id (r6sapi.Player attribute), 4id_on_platform (r6sapi.Player attribute), 4

Kkey (r6sapi.Auth attribute), 2kill_assists (r6sapi.Player attribute), 5kills (r6sapi.GameQueue attribute), 13kills (r6sapi.Operator attribute), 11kills (r6sapi.Player attribute), 5kills (r6sapi.Weapon attribute), 12

Llevel (r6sapi.Player attribute), 5LIGHT_MACHINE_GUN (r6sapi.WeaponTypes at-

tribute), 15load_all_operators() (r6sapi.Player method), 7load_gamemodes() (r6sapi.Player method), 7

19

Page 24: Release 1.4.1 Billyoyo - media.readthedocs.org

r6sapi.py Documentation, Release 1.4.1

load_general() (r6sapi.Player method), 7load_level() (r6sapi.Player method), 8load_operator() (r6sapi.Player method), 8load_queues() (r6sapi.Player method), 8load_rank() (r6sapi.Player method), 8load_terrohunt() (r6sapi.Player method), 8load_weapons() (r6sapi.Player method), 8losses (r6sapi.Operator attribute), 11losses (r6sapi.Rank attribute), 9lost (r6sapi.Gamemode attribute), 13lost (r6sapi.GameQueue attribute), 13

MMACHINE_PISTOL (r6sapi.WeaponTypes attribute), 15MARKSMAN_RIFLE (r6sapi.WeaponTypes attribute), 15matches_lost (r6sapi.Player attribute), 6matches_played (r6sapi.Player attribute), 6matches_won (r6sapi.Player attribute), 6max_mmr (r6sapi.Rank attribute), 9max_rank (r6sapi.Rank attribute), 10melee_kills (r6sapi.Player attribute), 5melees (r6sapi.Operator attribute), 11mmr (r6sapi.Rank attribute), 9

NNA (r6sapi.RankedRegions attribute), 14name (r6sapi.Gamemode attribute), 13name (r6sapi.GameQueue attribute), 13name (r6sapi.Operator attribute), 11name (r6sapi.Player attribute), 4name (r6sapi.Weapon attribute), 12next_rank_mmr (r6sapi.Rank attribute), 10

OOperator (class in r6sapi), 11operators (r6sapi.Player attribute), 5

Ppenetration_kills (r6sapi.Player attribute), 5platform (r6sapi.Player attribute), 4platform_url (r6sapi.Player attribute), 4Platforms (class in r6sapi), 14PLATINUM (r6sapi.Rank attribute), 9played (r6sapi.Gamemode attribute), 13played (r6sapi.GameQueue attribute), 13Player (class in r6sapi), 4PlayerBatch (class in r6sapi), 8PLAYSTATION (r6sapi.Platforms attribute), 14profileid (r6sapi.Auth attribute), 2

RRank (class in r6sapi), 9rank (r6sapi.Rank attribute), 10

RANK_CHARMS (r6sapi.Rank attribute), 9rank_id (r6sapi.Rank attribute), 10ranked (r6sapi.Player attribute), 5RankedRegions (class in r6sapi), 14ranks (r6sapi.Player attribute), 5RANKS (r6sapi.Rank attribute), 9refresh_session() (r6sapi.Auth method), 4region (r6sapi.Rank attribute), 10revives (r6sapi.Player attribute), 5

Sseason (r6sapi.Rank attribute), 10session (r6sapi.Auth attribute), 2sessionid (r6sapi.Auth attribute), 2SHOTGUN (r6sapi.WeaponTypes attribute), 15shots (r6sapi.Weapon attribute), 12SILVER (r6sapi.Rank attribute), 9skill_mean (r6sapi.Rank attribute), 10skill_stdev (r6sapi.Rank attribute), 10spaceids (r6sapi.Auth attribute), 2statistic (r6sapi.Operator attribute), 12statistic_name (r6sapi.Operator attribute), 12SUBMACHINE_GUN (r6sapi.WeaponTypes attribute), 15

Tterrorist_hunt (r6sapi.Player attribute), 6time_played (r6sapi.GameQueue attribute), 13time_played (r6sapi.Operator attribute), 12time_played (r6sapi.Player attribute), 6token (r6sapi.Auth attribute), 2type (r6sapi.Gamemode attribute), 13type (r6sapi.Weapon attribute), 12

Uunique_stats (r6sapi.Operator attribute), 12UNRANKED (r6sapi.Rank attribute), 9UPLAY (r6sapi.Platforms attribute), 14url (r6sapi.Player attribute), 4userid (r6sapi.Auth attribute), 2userid (r6sapi.Player attribute), 4

WWeapon (class in r6sapi), 12weapons (r6sapi.Player attribute), 5WeaponTypes (class in r6sapi), 15wins (r6sapi.Operator attribute), 11wins (r6sapi.Rank attribute), 9won (r6sapi.Gamemode attribute), 13won (r6sapi.GameQueue attribute), 13

XXBOX (r6sapi.Platforms attribute), 14xp (r6sapi.Operator attribute), 12xp (r6sapi.Player attribute), 4

20 Index