All the variables
The complete list, and where each one works.
Here are all the variables Recalbox can replace, surveyed from the engine.
A variable is written ${…} and Recalbox replaces it at display time.
The system
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${system} | System name | The full name — e.g. “Sega Megadrive” | Systems, Games |
${system.input.keyboard} | Keyboard needed? | mandatory · recommended · optional · no | Systems, Games |
${system.input.mouse} | Mouse needed? | mandatory · recommended · optional · no | Systems, Games |
${system.input.pad} | Controller needed? | mandatory · recommended · optional · no | Systems, Games |
${system.logo} | System logo | The path of the logo provided by Recalbox | Systems, Games |
${system.manufacturer} | Manufacturer | E.g. “Sega”, “Nintendo”. Empty if unknown | Systems, Games |
${system.name} | Short system name | — | Systems, Games |
${system.releasedate} | Year of release | Year and month — e.g. “1988-10” | Systems, Games |
${system.type} | Machine type (technical name) | arcade · console · handheld · computer · engine · port · fantasy · virtual · virtual-arcade | Games, Systems |
${system.type.name} | Machine type | The same, in plain words: “Home Console”, “handheld Console”, “Arcade”… | Systems, Games |
The game
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${game.developer} | Developer | E.g. “Konami”. “UNKNOWN” if absent | Screensaver, Games |
${game.file.name} | File name | The file name, extension included | Screensaver, Games |
${game.file.path} | Full file path | The full path of the file | Screensaver, Games |
${game.file.stem} | File name (without extension) | The file name, without the extension | Screensaver, Games |
${game.genre.normalized} | Genre (technical name) | The normalized genre, in English — “Platform”, “Shoot’em Up”, “Racing”… | Screensaver, Games |
${game.genre.raw} | Genre | The genre as written in the game's sheet | Screensaver, Games |
${game.isadult} | Adults only? | yes or no | Screensaver, Games |
${game.isfavorite} | Is a favorite? | yes or no (never true/false) | Screensaver, Games |
${game.ishidden} | Is hidden? | yes or no | Screensaver, Games |
${game.islastversion} | Is the latest version? | yes or no | Screensaver, Games |
${game.isnotagame} | Is not a game? | yes or no | Screensaver, Games |
${game.ispreinstalled} | Is preinstalled? | yes or no | Games, Screensaver |
${game.license} | License | The license, often empty | Screensaver, Games |
${game.name} | Game name | The name of the game | Screensaver, Games |
${game.players} | Number of players | “1”, “2”, “1-4”, “4+”… | Screensaver, Games |
${game.players.max} | Players — maximum | A number — e.g. “4” | Screensaver, Games |
${game.players.min} | Players — minimum | A number — e.g. “1” | Screensaver, Games |
${game.publisher} | Publisher | E.g. “Sega”. “UNKNOWN” if absent | Screensaver, Games |
${game.releasedate} | Release date | ISO date — e.g. “1991-06-23”. “UNKNOWN” if absent | Screensaver, Games |
${game.synopsis} | Description | The presentation text, often long | Screensaver, Games |
Rating and statistics
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${game.lastplayed} | Last played | ISO date, or “NEVER” if never played | Screensaver, Games |
${game.rating.10} | Rating (out of 10) | An integer from 0 to 10 | Screensaver, Games |
${game.rating.100} | Rating (out of 100) | An integer from 0 to 100 | Screensaver, Games |
${game.rating.5} | Rating (out of 5) | An integer from 0 to 5 — not stars | Screensaver, Games |
${game.timesplayed} | Number of plays | A number of plays | Screensaver, Games |
${game.totalplayed} | Total play time | A duration — e.g. “3h 12m”. “NONE” if zero | Screensaver, Games |
The game's images and video
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${game.media.boxpath} | Box art | — | Screensaver, Games |
${game.media.imagepath} | Cover art / image | The path of the cover art. Empty if the game has none — see ifexists | Screensaver, Games |
${game.media.thumbpath} | Thumbnail | The path of the thumbnail | Screensaver, Games |
${game.media.videopath} | Video | The path of the video | Screensaver, Games |
The game's medium
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${game.support.index} | Medium index | The disc number — empty if there is only one | Screensaver, Games |
${game.support.number} | Medium number | The whole thing assembled — e.g. “2A/3” | Screensaver, Games |
${game.support.side} | Medium side | The side of the medium — A, B… | Screensaver, Games |
${game.support.total} | Number of media | The number of media. “UNKNOWN” if unknown | Screensaver, Games |
${game.support.type} | Medium type | Cartridge · CD/DVD · Harddisk · Files · Tape · Quick Disc · 3" Floppy · 3".5 Floppy · 5".25 Floppy · PCB · Unknown | Screensaver, Games |
The game's system
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${game.system} | Name of the game's system | The full name of the game's system | Screensaver, Games |
${game.system.input.keyboard} | Keyboard required by the game's system | mandatory · recommended · optional · no | Screensaver, Games |
${game.system.input.mouse} | Mouse required by the game's system | mandatory · recommended · optional · no | Screensaver, Games |
${game.system.input.pad} | Controller required by the game's system | mandatory · recommended · optional · no | Screensaver, Games |
${game.system.logo} | Logo of the game's system | The path of its logo | Screensaver, Games |
${game.system.manufacturer} | Manufacturer of the game's system | Its manufacturer | Screensaver, Games |
${game.system.name} | Short name of the game's system | Its internal name | Screensaver, Games |
${game.system.releasedate} | Year of the game's system | Its year of release | Screensaver, Games |
${game.system.type} | Type of the game's system (technical name) | Like ${system.type}: console · handheld · arcade… | Screensaver, Games |
${game.system.type.name} | Type of the game's system | The same, in plain words | Screensaver, Games |
Emulator
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${game.emulator.compatibility} | Compatibility | unknown · low · average · good · high · perfect | Screensaver, Games |
${game.emulator.extensions} | Supported extensions | The supported extensions — e.g. “.bin .gen .md” | Screensaver, Games |
${game.emulator.hasnetplay} | Supports online play? | yes or no | Screensaver, Games |
${game.emulator.hassoftpatching} | Accepts patches? | yes or no | Screensaver, Games |
${game.emulator.islibretro} | Is a Libretro core? | yes or no | Screensaver, Games |
${game.emulator.name} | Emulator name | E.g. “libretro picodrive” | Screensaver, Games |
${game.emulator.speed} | Speed | unknown · low · average · good · high · perfect | Screensaver, Games |
The machine and its settings
| What to write | What it is | What it returns | Where |
|---|---|---|---|
${display.overscan} | Overscan? | yes or no | Screensaver, Systems, Menu, Games |
${random.between(a,b,c)} | A random value among… | one of the given values | everywhere |
${random.range(1,10)} | A random number between… | an integer between the two bounds | everywhere |
${display.resolution} | Resolution | fhd (1080p and above) · hd (720p) · vga · qvga | Screensaver, Systems, Menu, Games |
${display.tate} | Vertical screen (TATE)? | yes or no | Screensaver, Systems, Menu, Games |
${display.tateleft} | Rotated to the left? | yes or no | Systems, Menu, Games, Screensaver |
${display.tateright} | Rotated to the right? | yes or no | Screensaver, Systems, Menu, Games |
${hardware.board} | Machine model | The model — “RPi 5”, “PC x64”, “RG351P/M”… | Screensaver, Systems, Menu, Games |
${hardware.crt} | CRT screen? | yes or no | Menu, Games, Screensaver, Systems |
${hardware.isanbernic} | Is it an Anbernic? | yes or no | Screensaver, Systems, Menu, Games |
${hardware.isodroid} | Is it an Odroid? | yes or no | Screensaver, Systems, Menu, Games |
${hardware.ispc} | Is it a PC? | yes or no | Screensaver, Systems, Menu, Games |
${hardware.ispi} | Is it a Raspberry Pi? | yes or no | Screensaver, Systems, Menu, Games |
${hardware.jamma} | Jamma cabinet? | yes or no | Systems, Menu, Games, Screensaver |
${recalbox.built} | Build date | The build date | Screensaver, Systems, Menu, Games |
${recalbox.version} | Recalbox version | E.g. “10.0” | Screensaver, Systems, Menu, Games |
${root} | Theme folder | The root of the selected theme — to put in front of all your paths | Menu, Games, Screensaver, Systems |
${settings.language} | Language | The language alone — e.g. “fr” | Screensaver, Systems, Menu, Games |
${settings.locale} | Language and country | Language and country — e.g. “fr_FR” | Screensaver, Systems, Menu, Games |
${settings.region} | Chosen region | eu · us · jp | Screensaver, Systems, Menu, Games |
${settings.timezone} | Time zone | E.g. “Europe/Paris” | Screensaver, Systems, Menu, Games |