XBOX Game Status
On your display
XBOX Game Status
- Topic
- Social
- Includes
- Script · 1 icon
Runs on
- Runs on 32×8 (TC001 & DIY)
- Runs on 52×16 (TC002)
- Does not run on 32×8 with AWTRIX 3 (TC001 & DIY) Made for AWTRIX NG.
Choose your display in the next step.
Script description
🎮 Xbox Live Presence Monitor (Standalone)
A native Berry script for AWTRIX NG that dynamically displays your currently played Xbox game along with the live session duration (e.g., Gears of War - 1h 23m).
✨ Features
Smart Visibility: The app only appears in your AWTRIX loop when you are actively playing a game. It automatically hides (skips) when the console is off, you are on the Dashboard, or watching media apps.
Precision Filtering: Reads the raw JSON from the API and strictly looks for "placement": "Full" to ensure it only tracks active, full-screen games.
Native Time Tracking: Calculates your play session duration directly on the ESP32. It uses Julian date math, meaning it perfectly handles sessions that roll over past midnight or into a new month.
Smooth Transitions: Utilizes the "loop" scroll mode and an is_finished flag to ensure the text smoothly exits the screen before transitioning to the next app, preventing any visual glitches or flickering.
🛠️ Prerequisites (xbl.io API Key)
Since the official Xbox API requires a complex OAuth 2.0 flow, this script uses xbl.io, a trusted proxy service that makes fetching Xbox Live data incredibly easy.
Go to xbl.io and log in with your Microsoft/Xbox account.
Navigate to Profile -> API Keys.
Generate a new API Key and copy it.
⚙️ Configuration
Once installed, go to Apps -> Settings (next to the script name) in your AWTRIX WebUI to configure:
apikey (text): Paste your xbl.io API key here. (Required)
every (number): Polling interval in minutes. Default is 2.
⚠️ Important: The free tier of xbl.io allows up to 150 requests per hour. An interval of 2 minutes uses 30 requests/hour, keeping you perfectly safe from rate limits.
speed (number): Text scrolling speed. Default is 200.
repeat (number): How many times the text scrolls before switching to the next app. Default is 2.
UPDATE 29/08/26
-
Rich Presence Fix: Replaced the rigid bracket-based JSON parser with a direct regex lookup. This stops the app from hiding itself when the Xbox API returns nested objects (Rich Presence) during active gameplay.
-
API Error Protection: Added HTTP status validation (
status != 200) to prevent the script from clearing your active game session if the API temporarily fails or drops the connection. -
Increased Payload Buffer: Expanded the HTTP memory buffer limit from 2048 bytes to 8192 bytes to safely process larger data responses without truncation.
UPDATE 29/08/26(v1.1 → v1.6)
- Added:
ignoredconfiguration field (# @config ignored) to specify a comma-separated list of apps or games to hide from the display (e.g., Kodi, Netflix, Microsoft Store). - Changed: Overhauled the ignore matching logic. The script now splits your ignored entries into individual words and verifies if all words are present in the API response, making the filter resilient to exact-match failures.
- Fixed: Implemented a string sanitizer to automatically strip hidden formatting characters (like Zero Width Joiners and non-breaking spaces) and trademark symbols (®, ™, ©) sent by the Xbox API. This prevents
?artifacts from rendering on the matrix and ensures the ignore list works flawlessly. - Fixed: Improved list parsing (
re.matchall) to safely handle and strip accidental blank spaces around app names in the configuration field.
Sign in to view and copy the code of this script.
These icons are attached to the script. Send them to your AWTRIX separately; they are not included in the script installation.
8×8 px
Sign in to download these icons or send them to your AWTRIX.
Discussion 0
Ask a question, suggest a change or share how you use it.
No comments yet. Start the conversation.
Have an idea?
Sign in to ask questions and join the conversation.