IDE Ink editor

Last edit 27 Jul 2026, 09:56 by UnzippedGames (admin)History

Creator Studio includes a full-screen Ink editor for writing conversations. It is not VS Code. It is Sexter's own multi-file IDE: save compiles into the game, with autocomplete for tags and externals, find/replace, media insert, and warning underlines.

The Creator Studio page covers Studio tabs (Characters, Modules, Publish, and so on). This page is only the Ink IDE.

The Sexter.io IDE editor
The Sexter.io IDE editor

Opening the editor

From Studio → Conversations:

  • Open Editor opens the first main-chain Ink file
  • Click a chapter, side conversation, injection, or DM row to open that file
  • Click a warnings pill to jump to the first problem in that conversation

Inside the IDE, use the left Files list (or open tabs) to move between files.

Layout

AreaRole
Left sidebarFiles, Media, or Search
Top toolbarSave, Test, Git (if linked), reference tools, close
TabsOne tab per open Ink file
EditorLine numbers, syntax colors, warning squiggles
Find barIn-file find / replace (⌘F / ⌘H)

On phones, opening a file hides the sidebar so the editor has room. Use the panel toggle to bring Files back.

The hierarchy view
The hierarchy view

Files

Grouped as:

  • Main Story (ordered chapters; unlock day/time on the chain)
  • Side Conversations (by character)
  • Injections
  • TheGram DMs, FansOnly DMs, Swiper DMs

Click a row to open it. Drag to reorder the main chain. Use + (and insert-between rows) to add conversations.

Right-click a file in the sidebar:

ItemAction
EditConversation settings (character, slug, unlock time, and related fields)
DeleteRemove that conversation / side / injection / DM

Media

Pictures, videos, and SFX from the story library. Search, upload, then insert at the caret as <media-id> (or <injectmic-id> for MIC TAP SFX).

Search

Project-wide search across Ink (needs at least 2 characters). Optional Match case, plus Replace / Replace all across every file in the story. Project replace saves and recompiles after you confirm.

Toolbar

Left to right (labels match the UI):

ControlWhat it does
Panel toggleShow or hide the file explorer
TitleConversation name (click to rename when editable)
Search iconJump to sidebar Search (project find/replace)
TestPlay this conversation in the phone UI. If the tab is unsaved, Studio warns first. Test runs the last saved & compiled version
View onlyBadge when you cannot edit. Browse, search, and Test still work
Save allAppears when other tabs are dirty. Saves and compiles every unsaved tab (⌘⇧S)
Save & CompileSaves the active file and compiles it. Shows Compiling… while working
GitOnly if the story is linked to GitHub. Pull / push from here
EmojiToggle the emoji insert strip
BookInk syntax cheat sheet (click a row to insert when editable)
FlagStory data: flags and numbers used in the story, with Get/Set insert and jump-to-use
SlidersEditor appearance (theme, font, size, line height). Stored in your browser
XClose the IDE. Confirms if any tabs are unsaved

After save you get a short status: Saved & compiled, or Saved with a compile error message (source is kept even if compile fails).

The IDE toolbar
The IDE toolbar

Appearance

Color profile: Vivid, Ocean, Warm, or Mono (no colors). Font: JetBrains Mono, System Mono, or Courier. Font size 12–20px. Line height: Tight, Cozy, Normal, Relaxed.

Right-click in the editor

Context depends on what is under the cursor and whether the file is editable.

ItemWhenAction
Add missing SFX / Add missing imageMedia tag with a missing-media warningUpload using that id (does not invent a new id)
Preview SFX / Preview player media / Preview gallery save / Preview mediaKnown media tagQuick preview
Open injection: …<inject-…> that has a conversationOpens that Ink tab
Preview Injector imageInjection with Found imagesPreview
Convert script to InkMulti-line selectionTurns a plain draft into Ink (NPC lines; mc: lines become player choices/knots)
Insert picture / videoEdit modeUpload, then insert <id>
Insert MIC TAP SFXEdit modeUpload, then insert <injectmic-id>

You can also ⌘-click (Ctrl-click on Windows) a divert, media tag, inject tag, or flag name to jump or preview.

Right click menu
Right click menu

Autocomplete

Suggestions appear while you type. Titles include Story flags, Story numbers, Speakers, Knots, Apps, Characters, Commands, and slug lists for sides / DMs / shares.

  • Tab or click to accept
  • ↑ / ↓ to move
  • Esc to dismiss
  • Enter always inserts a newline (it does not accept the suggestion)

Common triggers: [ in group chats, <side-conv- / <inject- / DM prefixes, -> and ===, InstallApp(", GetStoryFlag(" / SetStoryNumber(", and ~ followed by a command name.

Warnings

Studio scans the whole story for authoring problems. There is no separate "Problems" panel. Warnings show up in three places:

  1. Conversations list: pills like 1 warning or N warnings. Click to open the IDE at the first hit
  2. Files sidebar: triangle on the row. Hover for the message; click to jump
  3. Editor: red underlines. Hover for the same message
Warnings in the editor, click on the warning to jump to the line in the file
Warnings in the editor, click on the warning to jump to the line in the file

Typical categories:

KindExamples
Compile / Inkinkjs errors after Save & Compile
Missing mediaImage or <injectmic-…> SFX id not in the library
Broken linksUnknown <side-conv-…>, empty <inject-…>, unreachable side
Deprecated / Unity leftovers<side-story-…>, legacy <insta-…>, leftover RunCommand
ModulesTag or InstallApp while the module is off; MIC TAP without InstallApp("mictap")
Unknown namesBad app id, NPC slug, or ~ command
FlagsSet never read, or Get never set (orphan hints)
Timing / SkiprOdd unlock times on the main chain; Skipr points without a day

Fix warnings before you publish. Many bad tags fail silently at runtime for players. Tag reference: Tags. Externals: External functions.

Shortcuts

Shown under the title when a file is open (Studio uses Mac symbols; Windows / Linux equivalents in parentheses):

⌘S (Ctrl+S) save · Tab/⇧Tab indent · ⌘/ (Ctrl+/) comment · ⌥↑↓ (Alt+↑↓) move · ⌘F (Ctrl+F) find · ⌘H (Ctrl+H) replace

ShortcutAction
⌘S / Ctrl+SSave & Compile
⌘⇧S / Ctrl+Shift+SSave all dirty tabs
⌘F / Ctrl+FFind in this file (or project Search if focus is elsewhere)
⌘H / Ctrl+HReplace in this file (or project replace)
Tab / ⇧TabIndent / outdent (Tab also accepts autocomplete)
⌘/ / Ctrl+/Toggle // comments
⌥↑ / Alt+↑ · ⌥↓ / Alt+↓Move lines
⇧⌥↑ / Shift+Alt+↑ · ⇧⌥↓ / Shift+Alt+↓Duplicate lines
⌘⇧K / Ctrl+Shift+KDelete line(s)
⌘Z / Ctrl+ZUndo
⌘⇧Z / Ctrl+Shift+Z (or Ctrl+Y)Redo
-click / Ctrl-clickJump / preview divert, media, inject, or flag

What you can and cannot do

You can

  • Edit every story Ink file in one IDE (main chain, sides, injections, module DMs)
  • Save and compile into Sexter (source stays even if compile fails)
  • Find and replace in one file or across the project
  • Insert media and MIC TAP SFX from the sidebar or right-click menu
  • Use Sexter-aware autocomplete and the cheat sheet
  • Test the conversation on the real phone UI
  • Rename, reorder the main chain, set unlock day/time
  • Sync with GitHub when the story is Git-linked
  • Work in View only to browse and Test without saving

You cannot

  • Format document / Prettier (there is no auto-format)
  • Multi-cursor, code folding, or a minimap (this is not VS Code)
  • Edit arbitrary folders on disk. Only this story's Ink tree
  • Compile without saving
  • Set breakpoints or step through Ink like a debugger
  • Rely on Test while the tab is dirty without saving first (it uses the last successful save)

External editors (VS Code, Cursor) are optional for drafting. Studio remains the place that compiles, warns, and attaches media for Sexter.

Related

Official Sexter creator documentation. Older Unity / SmGF folder-mod docs remain at docs.unzipped.games. Creator Corner is for community models and production workflows.