Skip to content

Releases: gokhanmeteerturk/chatfic-format

v1.1

07 May 20:27

Choose a tag to compare

What's Changed

The chatfic-format format has just been updated to v1.1, introducing powerful new features while maintaining full backward compatibility with v1.0. This update enables multi-app storytelling, variable UI behavior, and more immersive narratives.

Here’s what’s new:


🛍️ Apps

Stories can now simulate not only a chat app, but multiple apps, allowing the reader to feel like they’re navigating a phone, hopping between messaging, social media, and other app UIs (even actual locations if you are using chatficlab as the chatfic viewer).

  • Each message can now include an optional app field to define which "fake app" UI it belongs to.
  • Readers experience seamless transitions between apps, making stories feel more like modern visual novels on a smartphone.

Examples:

{ "message": "Thanks! Also… check your homecam 😳", "app": "chat" }
{ "message": "", "app": "homecam", "multimedia": "media/frontdoor.jpg" }

🗂️ apps Definition in Metadata

Authors can now define the display name of each app used in the story:

"apps": {
  "chat":      { "name": "Messages" },
  "photofeed": { "name": "Instagram" },
  "homecam":   { "name": "Home Camera" }
}
  • chat is the default app for all messages unless specified otherwise. You do not have to include it under the "apps" if you are not specifying "apps":"chat" for any of your messages.

  • A default home app is always available (no need to define it), useful for thoughts or internal monologue.

  • You can also define custom app names with their own backgrounds. These act as real-life locations within your story, offering a break from the mobile phone interface. When messages appear in these locations, they are presented as full-screen visual novel scenes. This lets you use the chatfic-format not only for chat-based storytelling but also to create and share complete visual novels, and no programming is required!

"apps": {
  "chat":   { "name": "Messages" },
  "school": { "name": "School", "background": "media/school.jpg" }
}

In markdown this would look like:

> apps/chat/name: Messages
> apps/school/name: School
> apps/school/background: school.jpg

🧹 Extra Field for App-Specific Data

To enrich messages (especially for fake social media posts, camera feeds, etc.), v1.1 introduces an optional extra field.

This allows per-message app-specific data like:

  • Likes and comments (for a photo feed)

  • Camera room name (for home surveillance)

  • Playback controls or tags (for music players, future features)

Example:

{
  "message": "Hello everyone!",
  "from": "alice",
  "app": "photofeed",
  "multimedia": "media/alice_post_1.jpg",
  "extra": {
    "likes": 15,
    "comments": [
      {"bob": "Nice!"},
      {"mike": "I like it."}
    ]
  }
}

Markdown equivalent:

*app: photofeed  

alice: ![IMAGE](media/alice_post_1.jpg "likes:15,comments: bob: Nice! | mike: I like it.") Hello everyone!

*app: chat

bob: hi!

On JSON format, app property should be defined for each message separately while on markdown, app declarations mark the start of an app section. So, we do not need to add it before every single app. Just when the app needs to change. In addition, on markdown, every page starts by default with "chat" app unless you declare an app at the start of the page.

🧐 Thought-Type Messages

  • You can now mark a message as "type": "thought" to render it as an inner monologue.

  • Thoughts are typically rendered in italics.

  • Thought messages can come from any app, but are most naturally used with the "home" app.

Example:

{
  "message": "Whoa. Is that… Bob?",
  "from": "player",
  "app": "homecam",
  "type": "thought"
}

Markdown equivalent:

_player: Whoa. Is that… Bob?_

✍️ Some Userful Notes

  • Add the app name only when needed. Most dialogue will still happen in "chat".
  • Don’t define "home" in your metadata. It’s always available.

Full Changelog: v1.0...v1.1

v1.0

21 Feb 20:28
14c0e66

Choose a tag to compare

What's Changed

💊 Removed unnecessary and confusing "episodes" entity from the chatFic object.

💊 Introduced Global Variables. Authors can now create words customizable by the players/readers of a chatfic.

💊 Introduced "Handles". The story metadata can now include author handles (patreon, subscribestar, ko-fi and more). Previously there was just the "patreonusername" entity (which is now removed).

💊 Introduced "Model Information". Previously, story authors who needs to attribute a model in their story, would need to include model name and handles as text messages inside the story.

With new model information metadata, model information can be added in a much more organic way with model names, handles and other related information. This information is directly tied to the corresponding story character too. This will allow chatfic players and chatfic servers to let users, for example, find other stories of the same model, or see all of the model's stories. Of course, it will take some time to update old stories to include this information.

💊 Docs, examples and tools are updated to reflect above changes.

Full Changelog: v0.9-beta...v1.0

v0.9-beta

13 Sep 13:20
1299b5d

Choose a tag to compare