Docs ▸ Steam
Store images and screenshots
Set keyArt (PNG or JPEG, 3840x2160 recommended, at least 1280x720) and logo (a PNG with a transparent background) in gameshipper.json, or put them at art/key-art.png and art/logo.png before init. Every build then writes all eight Steam images to out/store/:
| File | Size | |
|---|---|---|
header_capsule.png |
920x430 | key art and logo |
small_capsule.png |
462x174 | key art and logo |
main_capsule.png |
1232x706 | key art and logo |
vertical_capsule.png |
748x896 | key art and logo |
library_capsule.png |
600x900 | key art and logo |
library_header.png |
920x430 | key art and logo |
library_hero.png |
3840x1240 | key art only |
library_logo.png |
1280x720 | the logo on a transparent background |
Crops centre on keyArtFocus: [x, y] as fractions of the key art's width and height, [0.5, 0.5] by default. Transparent parts of the key art come out black. Unusable art fails the build with KEYART_INVALID (not a PNG or JPEG), KEYART_TOO_SMALL, LOGO_INVALID (not a PNG, or fully transparent) or LOGO_NOT_TRANSPARENT (exit code 2, like a bad icon); art that had to be enlarged gives KEYART_LOW_RES or LOGO_LOW_RES; without keyArt and logo, builds warn STORE_IMAGES_SKIPPED. Each build replaces the images in out/store/ and records what they were made from (the key art's and logo's paths and content hashes, and the focus) in out/store/.source.json; one that skips them or fails leaves none there, so check never passes old ones.
The key art and logo are left out of the game itself unless one of its HTML, JavaScript, CSS or JSON files mentions the file's name, or its name without the extension as a quoted string ("Logo" for Logo.png, as RPG Maker games do); then the game may show it, so it ships. If a play --smoke run finds the game asking for one that was left out, GAME_FILE_MISSING says so.
Steam needs at least five 1920x1080 gameplay screenshots. Press F12 during npx gameshipper play to save one to out/store/screenshots/. It's always exactly 1920x1080, whatever your screen's scaling. F12 only does this in play: in your shipped game it stays Steam's screenshot key.