fly me to the moon


This page is currently under construction. Please bare with us as we bring it up to par with our other pages.
Thank you.

SHIORI can refer to the Ghost's programming language, or the protocol that Ghosts use to function. Knowing the basic structure of the protocol is helpful to structure your Ghosts. SHIORI Events are requests from the baseware to get responses from the Ghost's SHIORI. The baseware can send information as well as receive it using SHIORI events.

Various SHIORI events have what are known as 'references', they are used to pass information. These references can be accessed by the Ghost and allow the Ghost to react differently. Such as: have unique responses to other Ghosts, count your emails, know the user's birthday and nickname. SHIORI events also comprise a large majority of the Ghost, as it is the baseware that requests a Ghost for their response.

SHIORI events use the prefix On-, which helps distinguish them, as well. The exception being certain NOTIFY events, which lack On-. NOTIFY events will not return any response as they are used only to provide information.

Ghosts, at their core, are bundles of responses to the prompting of the baseware. The random talk, the menus, and checking your email are all SHIORI events which the Ghost replies to. Understanding this, hopefully it is a bit easier to conceptualize why we have the structure we do.

You can add a new response to a SHIORI event practically anywhere. An event response can look something like:
OnFirstBoot : $(
 if $[ $(Reference 0) == 0 ] "\0\s[0]This is my first boot dialogue."
 else if $[ $(Reference 0) >= 10 ] "\0\s[0]This is my reinstalling dialogue after being installed ten times."
 else "\0\s[0]This is my reinstalling dialogue."
OnFirstBoot has a reference that stores how many times the Ghost has been installed. This reference's number is 0, the first reference. Using an if/elseif/else statement, we run some checks so the Ghost gives the appropriate string as a response.

Click for Tangent
As you may have put together, the baseware handles SakuraScript too. When "\0\s[0]" is passed back to the baseware, it runs the appropriate response to focus on the Sakura and run surface0. Other tags work the same way. It is very cool to understand just how much the baseware does!

When we create new entries prefixed with On, we are actually creating responses to SHIORI events. These events can be called with \![raise,On(id)]. Or, \![raiseother,On(id)] to call it in other Ghosts. This means you can send your own events with references to other Ghosts. Neat, huh? The tag \q[title,On(id)] is also useful, which will create text that can be clicked to call the specified event.

Calling new SHIORI events is used constantly in more technical Ghosts. An event can pull up a dynamic menu, initiate a mini-game, check stats and report them, and more. Getting creative and calling your own events can give you much more freedom in Ghost writing.

Calling your own SHIORI events is vital to expanding your Ghost in unique ways. Using them, you can create entirely new functions for your Ghost.


Writing in Kawari
Writing with SakuraScript
Shell Overview
SHIORI Event Overview Basic Coding
Advanced Coding


walkthrough by Okuajub
design by almost sweet - resources