Skip to content

Media & Resolution Specs

This page defines the author-facing technical constraints for assets and layout.

Screen resolution and coordinate space

  • JumpDrive renders on a 1080×1920 portrait canvas.
  • Coordinates are in a screen space where:
    • (0, 0) is top-left
    • x increases to the right
    • y increases downward

Placing images and sprites

When you position a sprite, NovyJump pins one point of the sprite — its anchor — to a point on the canvas. The anchor is a fraction of the sprite’s own size: (0, 0) is the sprite’s top-left corner, (1, 1) is its bottom-right, and (0.5, 0.5) is its centre.

The named positions below pick both the canvas point and a sensible anchor, so the sprite sits inside the screen instead of hanging off an edge. For example, show alice at right pins the sprite’s bottom-right corner to the canvas’s bottom-right (1080, 1920) — so Alice stands in the bottom-right, feet on the floor.

Ren’Py named positions (show … at <tag>)

TagWhere the sprite sitsCanvas point (x, y)Anchor
leftBottom, left edge(0, 1920)(0, 1)
center, defaultBottom, centred(540, 1920)(0.5, 1)
rightBottom, right edge(1080, 1920)(1, 1)
topTop, centred(540, 0)(0.5, 0)
truecenterDead centre of the screen(540, 960)(0.5, 0.5)
topleft, resetTop-left corner(0, 0)(0, 0)
toprightTop-right corner(1080, 0)(1, 0)
centerleftLeft edge, vertically centred(0, 960)(0, 0.5)
centerrightRight edge, vertically centred(1080, 960)(1, 0.5)
bottomleftBottom-left corner(0, 1920)(0, 1)
bottomrightBottom-right corner(1080, 1920)(1, 1)
offscreenleftFully off-screen, left(-4000, 1920)(0.5, 1)
offscreenrightFully off-screen, right(4000, 1920)(0.5, 1)

Any other at tag is not recognised and is ignored — the sprite keeps its default (bottom-centre) placement.

Custom coordinates with transforms

For finer control, a Ren’Py transform / ATL block converts too:

  • xpos / yposabsolute pixels on the 1080×1920 canvas.
  • xalign / yalignfractions of the canvas (xalign 1.0x = 1080, the right edge; yalign 0.0 → the top). xcenter / ycenter behave similarly.
  • xanchor / yanchor — the 0–1 point of the sprite that gets pinned to the position.
transform corner:
xalign 1.0
yalign 0.0 # top-right of the screen
label start:
show alice at corner

Placing sprites in Ink

In Ink, place a sprite with explicit pixel coordinates on the # sprite: directive (see Supported Ink Syntax):

# sprite: alice, alice_happy.png, happy, x=540, y=960

x / y are pixels on the same 1080×1920 canvas — x=540, y=960 is the centre of the screen — and both default to the centre if omitted.

Supported media types

Images

Recognized as image assets by the converter:

  • .avif
  • .png
  • .jpg
  • .jpeg
  • .webp
  • .svg
  • .gif
  • .bmp

Audio

Recognized as audio assets by the converter:

  • .opus
  • .mp3
  • .mp2
  • .flac
  • .wav
  • .pcm

Important note about .ogg:

  • The converter’s current implementation treats .ogg as a video extension first.
  • Until that is corrected, avoid .ogg for audio in NovyJump uploads.

Video

Recognized as video assets by the converter:

  • .mp4
  • .webm
  • .mkv
  • .ogv
  • .avi
  • (plus several codec-specific extensions)

Notes:

  • Video files may be accepted as assets during conversion, but full JumpDrive playback support may be limited depending on the runtime.

How assets are resolved

Case-insensitive matching

Asset resolution is case-insensitive.

To avoid surprises, use explicit string paths where the grammar allows them.

Notes:

  • For backgrounds, scene does not accept string paths; use an image alias with a string path, then scene the alias.
  • For audio, play supports string paths.

Examples:

  • Images:
    • image bg_room = "images/bg_room.png"
  • Audio:
    • "music/theme.mp3"
    • "game/music/theme.mp3"

Default lookup locations

When you reference an asset by name only (for example scene bg_room), the converter tries common defaults:

  • Images:
    • ./images/
  • Audio:
    • ./audio/
    • ./sound/
    • ./sounds/
    • ./music/
    • ./voice/
    • ./sfx/

Referencing assets from Ink

In Ink, assets are referenced by filename inside NovyJump’s multimedia directives (see Supported Ink Syntax). The same resolution rules, supported formats, and coordinate space above apply — including the .ogg caveat for audio.

# background: bg_room.png
# sprite: alice, alice_happy.png, happy, x=540, y=960
# music: theme.mp3, channel=bgm, loop=true
  • Sprite/scene positions use the same 1080×1920 screen space (x=540, y=960 is centre).
  • Give the filename with its extension so the converter classifies the asset type correctly.
  • Audio format guidance is identical to Ren’Py: prefer .mp3 / .opus / .wav; avoid .ogg.