Yup, I definitely played too much Isaac XD
HalfHeart Studios
Creator of
Recent community posts
The API is fully accessible with HTTP.
The requests library is something you WILL encounter when using python. It is used for sending HTTP requests.
py -m pip install requests
The docs: https://requests.readthedocs.io/en/latest/
How you could go about doing this: Look at the cURL template on the loot locker API docs for making a session:
curl -X POST "https://api.lootlocker.io/game/v2/session/guest" \
-H "Content-Type: application/json" \
-d "{\"game_key\": \"your_game_key\", \"game_version\": \"0.10.0.0\"}"
What you can see: The mode is POST to the url “https://api.lootlocker.io/game/v2/session/guest”. The HTTP Headers (-H argument) are made of key-value pairs (like dictionaries). The key is “Content-Type” and the value is “application/json”. This is standard HTTP. Now to the loot locker specific stuff. The -d argument is the data you send. Here, this is {“game_key”: some_game_key, “game_version”: some_version}.
To transfer this to python:
import requests
GAME_KEY = "my_key"
GAME_VERSION = "1.0.0"
url = "https://api.lootlocker.io/game/v2/session/guest"
# This is the -H argument as a dict
headers = {
"Content-Type": "application/json"
}
# This is the -d argument as a dict
data = {
"game_key": GAME_KEY,
"game_version": GAME_VERSION
}
# Since dicts are (basically) in JSON format, you can specify these as the data
# requests.post returns requests.Response, from which you can get the status_code and other information
r = requests.post(url, headers=headers, json=data)
The same thing can be done for getting the leaderboard. The API Docs show you, that the response will look something like this:
{
"success": true,
"session_token": "e6fa44946f077dd9fe67311ab3f188c596df9969",
"player_id": 3,
"public_uid": "TSEYDXD8",
"player_identifier": "ec9b35e6-b184-4f34-b49f-980f86b291e2",
"player_created_at": "2022-05-30T07:56:01+00:00",
"check_grant_notifications": true,
"check_deactivation_notifications": false,
"seen_before": true
}
Now by accessing r.json().get("session_token")
for example, we can get the session_token, which we can later use to save the score to the leaderboard.
IN SHORT:
- Look at the cURL template
- Convert -H and -d to dicts
- POST to the URL of the API
- Evaluate the Response
- Repeat
If you need help with anything, hit me up on discord (@fabianbuthere)!
(Sorry for the lengthy answer, I’m used to StackOverflow)
Technically you don’t HAVE to have a leaderboard, so you can do this, although I would recommend just using the API, because it’s really not that hard. It’s really just one request for submitting a score, and another one for getting the leaderboard. It will make your game sustain itself, not depending on you checking the comments.
So yes, you can, but it’s less than not recommended.
Loot locker has an API, so you can just make calls from virtually any programming language you’re working with. (https://ref.lootlocker.com/game-api/#introduction)