Export to Ren'Py, Ink and JSON
A story built in FlowBoard can leave the app as a working game script. Play Mode has a view for each export format, and each view shows a live preview that updates as you edit the story:
- RenPy writes a script for Ren’Py, the visual novel engine.
- Ink writes a script in Ink, the narrative scripting language used in many games.
- JSON shows the compiled story as structured data.
All three come from the same story that Play Mode plays. To open them, start Play Mode and select RenPy, Ink or JSON in its header.
Ren’Py
Section titled “Ren’Py”The RenPy view shows the generated .rpy script. It defines your characters and
variables, turns each scene into a label and each Choice into a menu, and ends the game at
each Ending.
Save a single file. For a story on one board, select Save .rpy…, or Copy to copy the script.
Save several files. When the story spans several boards, each board gets its own file, and
the view lists them. Select Save to folder… to write all of them. The board where the story
starts becomes script.rpy, and holds all definitions. To choose a board’s file name, or put
it in a subfolder, open that board’s Settings → Board, and enter a path under
Special Columns → Ren’Py file, for example chapters/chapter1.rpy. Without one,
FlowBoard names the file after the board.
Images and audio come along. Saving copies every background, character image and audio file the story uses, and organizes them the way Ren’Py expects:
script.rpyimages/bg/…images/sprites/<character>/…audio/music/… audio/sfx/… audio/voice/…Save into the game folder of your Ren’Py project. The scripts are replaced on every export.
If images or audio files already exist, FlowBoard lists them and asks which to keep: choose
Keep all, Overwrite all, or pick individual files, then select Apply. This protects
art you’ve adjusted in the project.
Flipped characters. A character shown with Flip appears in the script as, for
example, show king neutral at center, flip. In Ren’Py, a flip would otherwise stay on that
character through later scenes, so the script adds noflip to the character’s unflipped
shows. The game then shows each scene the way Play Mode does.
Several languages. The RenPy view exports the language chosen in Play Mode’s Language selector. For a Ren’Py project that switches language at runtime, use Export Ren’Py project (all languages) in Settings → Story Translation. It writes a script in the source language plus a translation file per target language. See Translate a story.
The Ink view shows the generated files as a list: story.ink, one further .ink file for
each additional board, and story-manifest.json. Select Save to folder… to write them,
together with the story’s images and audio, or Copy file to copy the file you’re viewing.
FlowBoard checks the script with the Ink compiler as you work. The view shows Compiles ✓, or the number of compile errors and a list of problems.
What Ink covers, and what your game does. Ink handles the text, choices, variables and
conditions. It has no concept of pictures or sound, so backgrounds, characters and audio
reach your game as tags on the lines (starting with vn:), and story-manifest.json lists
the characters, image and audio files, and positions. Your game reads them to display the
scene. As in Ren’Py, a vn:scene tag starts an empty stage: remove every character, then show
the ones the following tags name. A mirrored character’s vn:show tag carries flip:x
(left to right), flip:y (upside down) or flip:xy.
What changes on the way to Ink:
- Bold, italic and struck-through text becomes plain text, because Ink has no formatting.
- Ren’Py code written into cards is left out, and a warning says where. Write Ink code in
```inkblocks instead. See Story markup. - Choices remain available when the reader returns to them, as they do in Play Mode.
To check how the exported Ink behaves, switch Play Mode’s engine to Ink. The player then runs the exported script itself.
The JSON view shows the compiled story (scenes, connections, characters, assets and variables) as structured data, for your own tools. Select Copy JSON to copy it.
This is different from Export as JSON in Settings → Export, which exports the whole document’s boards, columns and cards. See Export.
Export cues
Section titled “Export cues”If you use story cues, the RenPy and Ink views have an Export cues setting: Comments writes them as comments in the script, Text makes them visible story text, and Omit leaves them out.
Before you export
Section titled “Before you export”Open Story Health and fix any errors first. The exports are made from the same story that Play Mode plays, so testing in Play Mode is the best check. For Ink, also play with the Ink engine, because Ink differs from Ren’Py in a few details.