${game.*} variables describe the currently selected game and its real system. That is the key difference with system variables: inside favourites, ${system} is "Favorites" while ${game.system} is the game's original system.
These variables only exist for themes designed for Recalbox 10 or above.
They only resolve where a game is selected, that is in the detailed view (game list) and the gameclip view (screensaver). They are limited to the text="" and path="" attributes of <text>, <scrolltext> and <image> objects declared with extra="true".
<view name="detailed">
<text name="infoLine" extra="true" text="${game.developer} — ${game.releasedate}" pos="0.05 0.9" />
<image name="boxart" extra="true" path="${game.media.boxpath}" pos="0.75 0.4" maxSize="0.2 0.4" />
</view>
A ${game.*} variable placed anywhere else — in an <include>, a condition, a numeric property — will never be substituted.
| Variable |
Contents |
Example |
${game.system} |
Full name of the game's real system |
Super Nintendo Entertainment System |
${game.system.name} |
Internal name of the real system |
snes |
${game.system.logo} |
Path to the real system's logo |
/recalbox/system/resources/logos/snes.svg |
${game.system.manufacturer} |
Manufacturer of the real system |
Nintendo |
${game.system.releasedate} |
System release date, YYYY-MM format |
1990-11 |
${game.system.type} |
Type of the real system |
console |
${game.system.type.name} |
Type of the real system, readable form |
Home Console |
${game.system.input.pad} |
Gamepad requirement |
mandatory |
${game.system.input.mouse} |
Mouse requirement |
optional |
${game.system.input.keyboard} |
Keyboard requirement |
no |
| Variable |
Contents |
Example |
${game.file.path} |
Full ROM path |
/recalbox/share/roms/snes/Super Mario World.sfc |
${game.file.name} |
File name, extension included |
Super Mario World.sfc |
${game.file.stem} |
File name without extension |
Super Mario World |
| Variable |
Contents |
Example |
${game.name} |
Game name. On true arcade systems, the readable name from the arcade database |
Super Mario World |
${game.synopsis} |
Game description |
Mario must rescue the princess… |
${game.developer} |
Developer, or UNKNOWN if missing |
Nintendo EAD |
${game.publisher} |
Publisher, or UNKNOWN if missing |
Nintendo |
${game.license} |
Game licence |
GPLv3 |
${game.releasedate} |
Release date in ISO 8601 format, or UNKNOWN |
1990-11-21 |
${game.genre.raw} |
Raw genre, as scraped |
Platform |
${game.genre.normalized} |
Recalbox normalised genre |
Platform |
¶ Players and rating
| Variable |
Contents |
Example |
${game.players} |
Player count, readable form |
1-2 |
${game.players.min} |
Minimum player count |
1 |
${game.players.max} |
Maximum player count |
2 |
${game.rating.5} |
Rating scaled to 5 |
4 |
${game.rating.10} |
Rating scaled to 10 |
9 |
${game.rating.100} |
Rating scaled to 100 |
92 |
| Variable |
Contents |
Example |
${game.lastplayed} |
Last played date in ISO 8601 format, or NEVER |
2026-07-12 |
${game.timesplayed} |
Number of times launched |
17 |
${game.totalplayed} |
Total play time, or NONE |
3h 24m |
| Variable |
Contents |
Example |
${game.isadult} |
yes / no: adults-only game |
no |
${game.ishidden} |
yes / no: hidden game |
no |
${game.isfavorite} |
yes / no: favourite game |
yes |
${game.islastversion} |
yes / no: latest known ROM version |
yes |
${game.ispreinstalled} |
yes / no: game shipped with Recalbox |
no |
${game.isnotagame} |
yes / no: entry that is not a game |
no |
| Variable |
Contents |
Example |
${game.support.type} |
Media type (cartridge, floppy, CD…) |
cart |
${game.support.index} |
Media number within the set, empty if single |
2 |
${game.support.side} |
Media side |
B |
${game.support.total} |
Total media count, or UNKNOWN |
3 |
${game.support.number} |
Full notation combining number, side and total |
2B/3 |
| Variable |
Contents |
Example |
${game.media.imagepath} |
Path of the scraped image |
/recalbox/share/roms/snes/media/images/Super Mario World.png |
${game.media.thumbpath} |
Path of the thumbnail. Identical to imagepath in 10.1 |
…/images/Super Mario World.png |
${game.media.boxpath} |
Path of the box art |
…/box2d/Super Mario World.png |
${game.media.videopath} |
Path of the video |
…/videos/Super Mario World.mp4 |
| Variable |
Contents |
Example |
${game.emulator.name} |
Emulator and core selected for this game |
libretro snes9x |
${game.emulator.islibretro} |
yes / no: the core is a libretro core |
yes |
${game.emulator.hasnetplay} |
yes / no: the core supports netplay |
yes |
${game.emulator.hassoftpatching} |
yes / no: the core supports soft patching |
yes |
${game.emulator.extensions} |
Extensions handled by the core |
.fig .gd3 .sfc .smc .swc |
${game.emulator.compatibility} |
Announced compatibility rate of the core |
high |
${game.emulator.speed} |
Announced speed of the core |
high |