Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
plugin:spectre [2024/12/10 16:36] – Resize image ulde3 | plugin:spectre [2025/05/01 11:29] (current) – Adjust content warning note ulde3 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Spectre ====== | ====== Spectre ====== | ||
- | {{page> | + | {{page> |
<WRAP right> | <WRAP right> | ||
^ Spectre | ^ Spectre | ||
Line 11: | Line 11: | ||
</ | </ | ||
- | //Spectre// is a plugin by [[dev: | + | //Content warning: Contains various spooky/ |
+ | |||
+ | //Spectre// is a plugin by [[dev: | ||
++++ Click to reveal spoiler content. | | ++++ Click to reveal spoiler content. | | ||
Line 17: | Line 19: | ||
++++ | ++++ | ||
- | /*{{SIDETOC width18}}*/ | + | Please note that further spoiler content in this article will not be obscured. |
- | /*Uncomment TOC if page has more than 3 headers*/ | + | |
+ | {{SIDETOC width18}} | ||
===== User information ===== | ===== User information ===== | ||
+ | ==== Progression ==== | ||
+ | When Spectre is first installed, the plugin menu will show nothing except for some basic settings, and an on/off toggle for the plugin' | ||
+ | |||
+ | === Discovering Spectre === | ||
+ | Spectre is unaware of the user's presence at first, and the first thing the user must see before progression can begin is a random dialogue from Spectre. Dialogues at this stage, stage 0, will be generally confused, scared, and lonely. Some of them will have strange text effects, such as text that grows or shrinks, words scattered across the balloon, etc. The others will be displayed in grayed-out text, clearly differentiating them from the dialogue of most ghosts. | ||
+ | |||
+ | If using the balloon Ghost Balloon, the ghost silhouette in the corner will be filled in with white to indicate that this dialogue has come from the plugin. Additionally, | ||
+ | |||
+ | In order to progress, the user must see at least 1 dialogue from Spectre. Upon opening the menu again, there will be an option labelled "Is someone else here?" | ||
+ | |||
+ | |||
+ | === Early stage === | ||
+ | Once the user has reached stage 1, Spectre' | ||
+ | |||
+ | If using the balloon Ghost Balloon, the ghost in the corner of the balloon will show Spectre' | ||
+ | |||
+ | Spectre will also occasionally ask questions relating to their situation, or the user will have the opportunity to give input on something Spectre said. In order to progress through this stage and the next, the user must answer these questions sufficiently. | ||
+ | |||
+ | Questions are asked once per every 8 dialogues, roughly once every 2 hours when set to the default talkrate of 15 minutes. Note that these are not asked every 8th dialogue, but rather, every set of 8 dialogues will have one question dialogue at a random position in the set. This means the questions are asked at random times, but will still occur fairly regularly. This system does not reset when the plugin loads/ | ||
+ | |||
+ | |||
+ | === Middle stage === | ||
+ | Once the user has answered all 3 required questions with sufficient answers, Spectre will progress to stage 2. They now have an idea of what their situation is, and their dialogue pool for this stage is more frustrated. | ||
+ | |||
+ | If the ghost Spectre is speaking through has been calibrated, Spectre' | ||
+ | |||
+ | Spectre will speculate on exactly what happened to them and how they ended up this way, and will have 2 more questions that the user must answer before progressing to stage 3. | ||
+ | |||
+ | |||
+ | === Final stage === | ||
+ | At this stage, Spectre has begun to come to terms with what has happened to them, and is more accepting of their situation. Spectre may occasionally ask questions of the user at this stage, but they are not tied to any sort of progression. | ||
+ | |||
+ | This stage has multiple possible dialogue pools, each reflecting a different mood, which are picked semi-randomly whenever the plugin loads. The same pool will not be picked twice in a row, but otherwise they are chosen at random. | ||
+ | |||
+ | The dialogue pools are as follows: | ||
+ | |||
+ | * Dissociated | ||
+ | * Miserable | ||
+ | * Cheerful | ||
+ | * Cheerful 2 | ||
+ | | ||
+ | In the " | ||
+ | |||
+ | In the " | ||
+ | |||
+ | In the " | ||
+ | |||
+ | |||
+ | === Reaching out === | ||
+ | When Spectre boots into the " | ||
+ | |||
+ | Each time the option is clicked, the label of it will change, cycling through this list in order: | ||
+ | |||
+ | * "Hey, can you hear me?" | ||
+ | * " | ||
+ | * " | ||
+ | * "Try to breathe, nice and slowly." | ||
+ | * "Take as long as you need. I'll be here." | ||
+ | |||
+ | Each time, the text effect on Spectre' | ||
+ | |||
+ | Note that at any point before the end of this sequence, if the user stops interacting for at least 5 minutes, it will reset back to the beginning. | ||
+ | |||
+ | |||
+ | ==== Greetings ==== | ||
+ | After the user has Discovered Spectre, greeting options will become available in future sessions. | ||
+ | |||
+ | The second time the plugin is run is a special case, and Spectre will use a small pool of dialogue wondering where the user went and expressing a desire to not be alone. The user must greet Spectre through the menu, with an option labelled " | ||
+ | |||
+ | After this point, greetings may come from either the user or Spectre. Spectre' | ||
+ | |||
+ | If the user opens the plugin' | ||
+ | |||
+ | |||
+ | ==== Settings ==== | ||
+ | === Calibration === | ||
+ | Each individual ghost should be calibrated to work properly with Spectre. Ghosts that have had custom calibration created by their developer may work without completing the calibration step, but for full functionality they should have this step completed. | ||
+ | |||
+ | When opening the plugin menu with a ghost that has not been calibrated, there will be an option on the main menu prompting the user to calibrate this ghost. Any ghost that has already been calibrated may be recalibrated in the settings menu. | ||
+ | |||
+ | For ghosts with custom calibration provided by the developer, opening Spectre' | ||
+ | |||
+ | For ghosts without custom calibration provided, the user will be prompted to perform a manual calibration. Manual calibration follows the [[https:// | ||
+ | |||
+ | During a manual calibration, | ||
+ | |||
+ | If the user answers that the ghost does have facial expressions, | ||
+ | |||
+ | Any surfaces that the user chooses " | ||
+ | |||
+ | Depending on how many expressions are available to use, Spectre may occasionally comment on how much control they have over this particular ghost. For this reason, omitting expressions that do not fit and calibrating even ghosts without facial expressions is encouraged, as it benefits the experience of the plugin. | ||
+ | |||
+ | If some expressions are omitted, the plugin will make note for ghost developers that they may be able to increase compatibility by adding custom calibration for their ghost, linking to a text file with more details. | ||
+ | |||
+ | |||
+ | === Exclusion list === | ||
+ | The exclusion list is an option that may help in environments where more than one ghost is running. This list can be used to control which ghosts Spectre will speak through, in case the user wishes to limit output to a specific ghost, or if they want to omit specific ghosts for any reason. This option is always available, even before the user has met Spectre. | ||
+ | |||
+ | When Spectre speaks, it will pick a random ghost that is not excluded from the list to speak through. Note that if all currently open ghosts are excluded from the list, Spectre will ignore the list and speak through any random ghost. | ||
+ | |||
+ | All currently open ghosts will be listed in this menu. Names in normal text are included ghosts, and names that are grayed out are excluded ghosts. Clicking a name toggles it between these two states. | ||
+ | |||
+ | |||
+ | === Talkrate === | ||
+ | This setting allows the user to adjust how often Spectre talks. It mimics the talkrate found in most ghosts, albeit with much longer times. This option only appears if the user has progressed to stage 1. | ||
+ | |||
+ | The default talkrate is 15 minutes. Other available talkrates are 20 minutes, 30 minutes, 45 minutes, and 60 minutes. | ||
===== Developer information ===== | ===== Developer information ===== | ||
+ | ==== Custom calibration ==== | ||
+ | Custom calibration may be added by a ghost' | ||
+ | |||
+ | |||
+ | === OnSpectrePlugin.ConfirmCalibration === | ||
+ | The event '' | ||
+ | |||
+ | The sakurascript command to be returned is: '' | ||
+ | |||
+ | References are used to send expression information to the plugin. | ||
+ | |||
+ | If the ghost has no facial expressions, | ||
+ | |||
+ | If the ghost has facial expressions, | ||
+ | |||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | By default, the plugin will assume that it can use all expressions //except for// the ones that are listed as references. This means that the developer should only list expressions that the ghost cannot make. This is ideal for ghosts that can make most of the expressions. | ||
+ | |||
+ | If the ghost can only make a few of the expressions, | ||
+ | |||
+ | For example: | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | === OnSpectrePlugin.Surface === | ||
+ | The event '' | ||
+ | |||
+ | This event sends the requested expression via Reference0, and the ghost is expected to check the reference and return the desired expression with any combination of '' | ||
+ | |||
+ | An example implementation in YAYA: | ||
+ | |||
+ | <code C> | ||
+ | OnSpectrePlugin.Surface | ||
+ | { | ||
+ | if reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | elseif reference0 == " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Reacting to possession ==== | ||
+ | The ghost' | ||
+ | |||
+ | Since version 1.0.3, reference0 contains the current " | ||
+ | |||
+ | " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | These reflect the moods seen in the final stage of progression. Note that " | ||
+ | |||
+ | Reference1 indicates whether the script that was played was a " | ||
+ | |||
+ | The event is raised 15 seconds after a dialogue ends. | ||
+ | |||
+ | ===== See also ===== | ||
+ | * [[https:// | ||
===== Gallery ===== | ===== Gallery ===== | ||
{{gallery> | {{gallery> | ||
- | {{tag> | + | {{tag> |