Limits and checks
This page is not meant to be read through, it is meant to be looked up. It gathers what Moiki caps, and the full list of what Validation checks in your story.
For how Validation is used, see Validation.
The limits
Section titled “The limits”Very little is capped. The number of sequences, sub-graphs, events, variables, themes, achievements, choices per sequence, actions or redirects is not limited: write as big as you like.
What is capped comes down to file sizes and a few settings.
| What is capped | The cap |
|---|---|
| Image size | 2 MB |
| Sound size | 5 MB |
| Video size | 10 MB |
| Icon size | 300 KB |
| Size of a document attached to a workshop | 15 MB |
| Media in one story, free plan | 15 MB |
| Media in one story, paid plan | 50 MB |
| Sequence timer duration | 2 to 30 seconds |
| Options on one item | 3 |
| Fragments in a collaborative template | 2 to 8, 6 by default |
The media allowance of a story follows your plan. It is 15 MB on a free plan and 50 MB as soon as a paid plan is active. Resources attached to a workshop follow the same rule. See Plans and billing.
The checks
Section titled “The checks”Validation sorts what it finds into three levels. Critical means the story is broken and cannot be played from end to end. Warning points at a visible flaw that still plays. Hint suggests a way to lighten the story, with no effect on reading.
The same problem can show up several times, once per sequence concerned. The list below counts the checks, not the reports.
Critical (48)
Section titled “Critical (48)”| Check | What it reports |
|---|---|
| Achievements without condition | These achievements have no unlock condition. They will never be earned. |
| Chapter outside main graph | A chapter can only be called from the main graph, not from inside a sub-graph. |
| Chapter used multiple times | A chapter can only be called once in the story. |
| Character not found | The referenced character does not exist. |
| Characters without a portrait | These characters have no main portrait. It is what the reader sees on a line with no chosen emotion: add one on the character sheet. |
| Conditions on a deleted target | These conditions reference a variable or sequence that no longer exists. Pick an existing target or remove the condition. |
| Conditions without a target | These conditions have no target selected. Open the host and pick a variable or a sequence. |
| Counters out of range | The default value of these counters is outside their min/max limits. |
| Dialogue not configured | The dialogue sequence is not linked to a sub-graph. |
| Dialogue sub-graph not found | The sub-graph referenced by the dialogue does not exist. |
| Dialogue without an exit | The reader would stay in the dialogue: add at least one exit sequence to it. |
| Duplicate codes | These puzzle sequences contain identical codes. |
| Duplicate objects | The same object is configured multiple times. |
| Events without actions | These events have no actions defined. They won’t do anything even if triggered. |
| Events without condition | These events have no trigger condition. They will never fire. |
| Exit not marked | This sequence should be marked as a sub-graph exit. |
| Exit outside sub-graph | This exit sequence is not inside a sub-graph. |
| Form with no linked variable | These form sequences have lost their linked variable. Re-create the sequence or manually relink it to a variable. |
| Fragments with no exit | A fragment with no exit traps the reader: once inside, there is no way out. Declare at least one exit. |
| Infinite loop risk | A recurring event triggers an interlude without scope restriction, which will cause a loop. Set a scope on the event. |
| Invalid auto-advance delay | The auto-advance delay is invalid. |
| Invalid code format | These codes don’t match the selected keyboard type. |
| Invalid form max length | The max length is outside the range allowed by the selected display mode. |
| Invalid form min length | The min length is outside the range allowed by the selected display mode. |
| Invalid sub-graph bindings | The bound variable no longer exists, does not belong to the called sub-graph, or the two sides have different types. Redo the binding in the sequence panel. |
| Item option: missing sub-graph | An item option references a sub-graph that does not exist. |
| Item option: wrong mode | An item option references a sub-graph that is not in interlude mode. |
| Min greater than max | The min length cannot exceed the max length. |
| Missing choices | These choice sequences have no choices defined. |
| Missing codes | These puzzle sequences have no codes defined. |
| Missing form variable | The linked variable was deleted. Re-create the sequence to regenerate it. |
| Missing interlude target | An interlude action references a sub-graph that does not exist. |
| Missing links | These sequences have connections without a destination. |
| Missing starting sequence | Your story points to a starting sequence that no longer exists. Until this is fixed, it cannot be played. Open a sequence and set it as the starting point. |
| No objects configured | The object selection has no specific objects. |
| No pattern selected | These sequences announce a pattern without naming one. Pick a pattern, or change the sequence type. |
| No sub-graph selected | The sub-graph call has no sub-graph selected. |
| Object not found | The referenced object no longer exists. |
| Orphan input variables | These variables were owned by a form sequence that no longer exists. Delete them or relink them to a sequence. |
| Orphan sequences | An orphan sequence is a sequence - or a chain of sequences - that is not connected to the rest. Link or delete the following sequences, your story doesn’t allow access to them. |
| Redirects without a condition | These connection redirects fire unconditionally and short-circuit the default destination. Reconfigure or remove the redirect. |
| Sub-graph not found | The referenced sub-graph no longer exists. |
| Sub-graphs without exit | These sub-graphs have no exit sequence. The reader won’t be able to continue after entering them. |
| Unconnected sub-graph exits | Connect the exits of these sub-graphs to a sequence, otherwise the player won’t be able to continue after the sub-graph. |
| Unreachable fragment exits | These exits can never be reached from the fragment entry. Students writing inside won’t be able to lead there: connect them to the rest of the fragment, or remove them. |
| Wrong code length | These codes don’t have the right number of characters. |
| Wrong interlude target mode | An interlude action references a sub-graph that is not in interlude mode. |
| Wrong sub-graph type | The linked sub-graph is not marked as a dialogue. |
Warning (13)
Section titled “Warning (13)”| Check | What it reports |
|---|---|
| Achievements without icon | These achievements have no icon. Add one so they are visible in the game. |
| Choices without label | Some choices in these sequences have no text. |
| Fragments with too many exits | Beyond four exits, a fragment gets hard to wire and to read. Merge a few if you can. |
| Incomplete text variables | These text variables have fewer than 2 possible values. Add values to make them useful. |
| Item excluded by the filter | This item is listed in the sequence, but its tags do not pass the filter: it will never be offered. |
| Links invisible in the editor | These links show in the graph but no panel can display them: they cannot be edited or removed, and the reader never follows them. |
| Local variables in a chapter or a dialogue | A chapter and a dialogue have no variables of their own: whatever is set there is wiped when they end. These variables must belong to the story. |
| Missing cover | Your story has no chosen cover image: the automatic image doesn’t count. Pick one in Settings, Cover image, before publishing. |
| Missing sequence text | The following sequences have no text. Complete them or delete them. |
| No happy ending | Your story must have at least one happy ending sequence! |
| Silent characters without a portrait | These characters have no main portrait and speak in no line: reading isn’t affected. Add one before making them speak, or delete them if they serve no purpose. |
| Sub-graphs without an entry sequence | The entry sequence of these sub-graphs no longer exists. The reader skips the call without entering them. |
| Unknown tag in a filter | An objects sequence filters on a tag no item carries: the filter does nothing. |
Hint (10)
Section titled “Hint (10)”| Check | What it reports |
|---|---|
| Unused counters | If you don’t plan to use these variables, delete them to reduce the size of your story. |
| Unused flags | If you don’t plan to use these variables, delete them to reduce the size of your story. |
| Unused icons | If you don’t plan to use these media, delete them to reduce the loading time of your story. |
| Unused images | If you don’t plan to use these media, delete them to reduce the loading time of your story. |
| Unused items | If you don’t plan to use these variables, delete them to reduce the size of your story. |
| Unused sounds | If you don’t plan to use these media, delete them to reduce the loading time of your story. |
| Unused sub-graphs | If you don’t plan to use these sub-graphs, delete them to reduce the loading time of your story. |
| Unused text variables | If you don’t plan to use these variables, delete them to reduce the size of your story. |
| Unused themes | If you don’t plan to use these themes, delete them to reduce the size of your story. |
| Unused videos | If you don’t plan to use these media, delete them to reduce the loading time of your story. |