Pictures, sound, and folders
Lives in: your project folder
The script names people and places. Those names only work if the files exist. The simplest game still needs pictures (and usually a little sound) on disk — not only script.txt.
This page is the map. Deeper character packs come under Characters; props under The stage.
A tiny project that can run
my-game/
game.json required — name and defaults
story/
script.txt your play
characters/
hana/
hana.png default look
hana_happy.png optional expression
backgrounds/
street.jpg a place
audio/ optional at first
bgm/
sfx/
themes/
default.json dialogue-box look (copy from an example)
screens.json title / pause (copy from an example)
Copy examples/example-00-boilerplate or example-01-hello-vn and replace pictures — you do not need to invent game.json from scratch on day one.
Characters = folders of pictures
| On disk | In the script |
|---|---|
Folder characters/hana/ | Speaker HANA: and direction [hana left] |
hana.png (or hana_default.png) | Default look |
hana_happy.png | HANA [happy]: or [hana happy left] |
Rules that matter:
- One folder per character id — folder name is the id (
hana), case-insensitive in the script. - File name =
idorid_expression, plus an image extension. - You do not need a JSON pack for a first game. One PNG per expression is enough.
- Layered packs (blinking, talking mouths) are optional later — Characters, Reusing settings.
People often call these “sprites.” In VN-Mikro, character pictures live under characters/. The separate sprites/ folder is for props and gadgets on top of the scene — optional; skip it until you need a lamp, phone overlay, or HUD widget.
Places (background pictures)
| On disk | In the script |
|---|---|
backgrounds/street.jpg | [bg street] or [bg street fade 0.5] |
Write the name without the extension. Formats: .png, .jpg / .jpeg, .webp, .svg.
Sound (when you want it)
| On disk | In the script / settings |
|---|---|
audio/bgm/theme.ogg | [bgm theme] |
audio/sfx/door.mp3 | [sfx door] |
same sfx/ folder | typing beeps and button clicks in game.json |
Formats: .ogg or .mp3. Name without extension in commands.
Title music can also be set once in game.json — Music and sounds by default.
Formats at a glance
| Kind | Folder | Formats | Named in script as |
|---|---|---|---|
| Character | characters/<id>/ | .png .jpg .jpeg .webp .svg | id / expression |
| Place | backgrounds/ | .png .jpg .jpeg .webp .svg | [bg name] |
| Music | audio/bgm/ | .ogg .mp3 | [bgm name] |
| Sound effect | audio/sfx/ | .ogg .mp3 | [sfx name] |
What can wait
| Folder / file | When you need it |
|---|---|
sprites/ | Props, meters, clickable objects — Sprites and objects |
fonts/, richer themes/ | Custom look — Look and menus |
Character *.json packs | Layered art, drive — Characters |
shaders/, animations/ | Polish |
extensions/ | Custom extension packs — Native extensions |
| Extra story packs | Early multi-scripting — In development |
Next
Your first ten minutes if you have not run an example yet · otherwise What a script is