Skip to content
Moiki EDU
EN

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.

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 cappedThe cap
Image size2 MB
Sound size5 MB
Video size10 MB
Icon size300 KB
Size of a document attached to a workshop15 MB
Media in one story, free plan15 MB
Media in one story, paid plan50 MB
Sequence timer duration2 to 30 seconds
Options on one item3
Fragments in a collaborative template2 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.

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.

CheckWhat it reports
Achievements without conditionThese achievements have no unlock condition. They will never be earned.
Chapter outside main graphA chapter can only be called from the main graph, not from inside a sub-graph.
Chapter used multiple timesA chapter can only be called once in the story.
Character not foundThe referenced character does not exist.
Characters without a portraitThese 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 targetThese conditions reference a variable or sequence that no longer exists. Pick an existing target or remove the condition.
Conditions without a targetThese conditions have no target selected. Open the host and pick a variable or a sequence.
Counters out of rangeThe default value of these counters is outside their min/max limits.
Dialogue not configuredThe dialogue sequence is not linked to a sub-graph.
Dialogue sub-graph not foundThe sub-graph referenced by the dialogue does not exist.
Dialogue without an exitThe reader would stay in the dialogue: add at least one exit sequence to it.
Duplicate codesThese puzzle sequences contain identical codes.
Duplicate objectsThe same object is configured multiple times.
Events without actionsThese events have no actions defined. They won’t do anything even if triggered.
Events without conditionThese events have no trigger condition. They will never fire.
Exit not markedThis sequence should be marked as a sub-graph exit.
Exit outside sub-graphThis exit sequence is not inside a sub-graph.
Form with no linked variableThese form sequences have lost their linked variable. Re-create the sequence or manually relink it to a variable.
Fragments with no exitA fragment with no exit traps the reader: once inside, there is no way out. Declare at least one exit.
Infinite loop riskA recurring event triggers an interlude without scope restriction, which will cause a loop. Set a scope on the event.
Invalid auto-advance delayThe auto-advance delay is invalid.
Invalid code formatThese codes don’t match the selected keyboard type.
Invalid form max lengthThe max length is outside the range allowed by the selected display mode.
Invalid form min lengthThe min length is outside the range allowed by the selected display mode.
Invalid sub-graph bindingsThe 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-graphAn item option references a sub-graph that does not exist.
Item option: wrong modeAn item option references a sub-graph that is not in interlude mode.
Min greater than maxThe min length cannot exceed the max length.
Missing choicesThese choice sequences have no choices defined.
Missing codesThese puzzle sequences have no codes defined.
Missing form variableThe linked variable was deleted. Re-create the sequence to regenerate it.
Missing interlude targetAn interlude action references a sub-graph that does not exist.
Missing linksThese sequences have connections without a destination.
Missing starting sequenceYour 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 configuredThe object selection has no specific objects.
No pattern selectedThese sequences announce a pattern without naming one. Pick a pattern, or change the sequence type.
No sub-graph selectedThe sub-graph call has no sub-graph selected.
Object not foundThe referenced object no longer exists.
Orphan input variablesThese variables were owned by a form sequence that no longer exists. Delete them or relink them to a sequence.
Orphan sequencesAn 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 conditionThese connection redirects fire unconditionally and short-circuit the default destination. Reconfigure or remove the redirect.
Sub-graph not foundThe referenced sub-graph no longer exists.
Sub-graphs without exitThese sub-graphs have no exit sequence. The reader won’t be able to continue after entering them.
Unconnected sub-graph exitsConnect the exits of these sub-graphs to a sequence, otherwise the player won’t be able to continue after the sub-graph.
Unreachable fragment exitsThese 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 lengthThese codes don’t have the right number of characters.
Wrong interlude target modeAn interlude action references a sub-graph that is not in interlude mode.
Wrong sub-graph typeThe linked sub-graph is not marked as a dialogue.
CheckWhat it reports
Achievements without iconThese achievements have no icon. Add one so they are visible in the game.
Choices without labelSome choices in these sequences have no text.
Fragments with too many exitsBeyond four exits, a fragment gets hard to wire and to read. Merge a few if you can.
Incomplete text variablesThese text variables have fewer than 2 possible values. Add values to make them useful.
Item excluded by the filterThis item is listed in the sequence, but its tags do not pass the filter: it will never be offered.
Links invisible in the editorThese 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 dialogueA 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 coverYour story has no chosen cover image: the automatic image doesn’t count. Pick one in Settings, Cover image, before publishing.
Missing sequence textThe following sequences have no text. Complete them or delete them.
No happy endingYour story must have at least one happy ending sequence!
Silent characters without a portraitThese 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 sequenceThe entry sequence of these sub-graphs no longer exists. The reader skips the call without entering them.
Unknown tag in a filterAn objects sequence filters on a tag no item carries: the filter does nothing.
CheckWhat it reports
Unused countersIf you don’t plan to use these variables, delete them to reduce the size of your story.
Unused flagsIf you don’t plan to use these variables, delete them to reduce the size of your story.
Unused iconsIf you don’t plan to use these media, delete them to reduce the loading time of your story.
Unused imagesIf you don’t plan to use these media, delete them to reduce the loading time of your story.
Unused itemsIf you don’t plan to use these variables, delete them to reduce the size of your story.
Unused soundsIf you don’t plan to use these media, delete them to reduce the loading time of your story.
Unused sub-graphsIf you don’t plan to use these sub-graphs, delete them to reduce the loading time of your story.
Unused text variablesIf you don’t plan to use these variables, delete them to reduce the size of your story.
Unused themesIf you don’t plan to use these themes, delete them to reduce the size of your story.
Unused videosIf you don’t plan to use these media, delete them to reduce the loading time of your story.