Authoring How-Tos
This page is a practical recipe book for common tasks when authoring for NovyJump. The first half covers Ren’Py; the Ink How-Tos section near the bottom gives the equivalents for Ink. For the full list of what each engine supports, see Supported Renpy Syntax and Supported Ink Syntax.
Create a new variable
Use default so the variable is declared and has an initial value.
default coins = 0If you only assign to a variable without declaring it first, the converter will still create it, but you may get warnings when referencing it in dialogue.
Change a variable
Use $ var = expr:
$ coins = coins + 1Use a variable inside dialogue text
Use [var] interpolation:
"You have [coins] coins."Branch the story with if
if coins >= 10: "You can afford it."else: "Not enough coins."Present choices with menu
menu: "Buy the item": $ coins = coins - 10 "Thanks!" "Don’t buy": "Maybe later."Change the background
scene bg_roomIf you want to reference a background by file path, define an alias with image and then scene the alias:
image bg_room = "images/bg_room.png"
label start: scene bg_roomShow a character sprite
show alice happy at leftNotes:
aliceis treated as the character id.happybecomes a tag.at leftis optional, and only a small set ofattags are supported.
Hide a character sprite
hide alicePlay and stop audio
play music "music/theme.mp3"stop music
play sound "sfx/click.wav"stop soundDefine a speaking character name and basic styling
define a = Character( "Alice", who_color="#ffcc00", what_color="#ffffff", what_size=42)
label start: a "Styled dialogue."Notes:
- Only a subset of Renpy character/style features are converted.
- Font assets are not currently handled as uploadable assets by the converter.
Jump between sections of your story
Use jump:
jump chapter_two
label chapter_two: "Welcome to chapter two."call/return are not currently supported for NovyJump conversion.
Ink How-Tos
The same recipes for authors writing in Ink. NovyJump supports standard Ink plus a set of
multimedia directives written with Ink’s tag (#) syntax — see Supported Ink Syntax for the
complete reference.
Create and change a variable
Declare globals with VAR, constants with CONST, and assign with ~:
VAR coins = 0CONST MAX_COINS = 100~ coins = coins + 1Use a variable inside dialogue text
Use an inline conditional or print the value directly:
You have {coins} coins.Branch the story with a conditional
{ coins >= 10: You can afford it.- else: Not enough coins.}Present choices
Use * (once-only) or + (sticky). The [bracketed] text is what the player sees:
* [Buy the item] ~ coins = coins - 10 Thanks! -> shop+ [Don't buy] Maybe later. -> shopChange the background and play audio
Use multimedia directives:
# music: theme.mp3, channel=bgm, loop=true# sfx: click.wavShow and clear a character sprite
# sprite: alice, alice_happy.png, happy, x=540, y=960# clear_characterSpeaker dialogue
A line beginning with an ALL_CAPS: name is treated as that character speaking:
ALICE: Nice to meet you.Jump between sections of your story
Use knots and diverts:
-> chapter_two
=== chapter_two ===Welcome to chapter two.-> ENDStandard Ink features that are not converted (functions, threads, EXTERNAL, sequences/cycles,
INCLUDE) are listed in Supported Ink Syntax.