The playthrough itself becomes an embroidered frieze - ArrasBind.js, ArrasCorpus.js, ArrasFigure.js, ArrasFrieze.js, ArrasRender.js, ArrasScene.js
Plugin desc : Every act a player performs is already recorded as a switch, a variable or a choice. Arras weaves them.Watched switches and variables become woven panels in one continuous band. Each act picks its scene from what the act says, so an oath is woven as an oath and a burning is woven as a battle. Figures stand in heraldic postures, the inscription is drawn letter by letter in a stitched alphabet, and the border changes with the chapter outcome.Nothing ships as a PNG. Seventy authored entities generate the band: 16 figure archetypes, 10 border registers, 10 scene compositions, 6 dye sets, 5 grounds and 23 letterforms.Redistribution is prohibited so there's no file attached. This entry is a link and an introduction.Disclosure. This plugin is AI authored. Code and artwork are AI generated and every storefront listing says so.https://csaf.itch.io/arras
License :
・Copyright: Retained
・Commercial Use: Allowed
・Modification: Allowed
・Redistribution: Prohibited (This does not apply to works made using the material.)
・Details: See Download Page / In-plugin documentation
Author : Core Systems Asset Factory
Website : https://csaf.itch.io
Desc page : https://csaf.itch.io/arras
File name : ArrasBind.js, ArrasCorpus.js, ArrasFigure.js, ArrasFrieze.js, ArrasRender.js, ArrasScene.js
Help of plugin :
ArrasBind.js
This is the file that makes the hanging THIS playthrough's rather than a
picture of a generic one. It turns recorded acts into panels: which scene is
woven, which figures stand in it, which border frames it, which dye set it is
worked in, and what the inscription says.
⛔ WHAT ARRAS DOES NOT READ: DEATHS.
That is deliberate and it is a shelf decision, not an oversight. Barrow
(csaf.itch.io/barrow) carves a memorial marker for every death a game
records, and two products in one catalogue reading the same source would
argue with each other on the buyer's own shelf. The division is one sentence:
Barrow is what was LOST. Arras is what was DONE.
If you own both, they are complementary and nothing overlaps.
============================================================================
HOW AN ACT REACHES THE HANGING
============================================================================
Three routes, tried in order, and every one of them is optional:
1. `Arras Weave` — a plugin command. The explicit route: name the act, pick
a scene or let Arras choose one, and it is woven at once.
2. WATCHED SWITCHES — list switches in the plugin parameters. When one
turns ON, its act is woven. This is the zero-scripting route: a designer
who already has "Chapter 3 complete" as a switch gets a hanging without
writing anything.
3. WATCHED VARIABLES — the same, on a variable reaching a threshold.
⚠️ THE SCENE IS CHOSEN BY WHAT THE ACT SAYS, NOT AT RANDOM. `classify()`
reads the act's own words for the vocabulary of each scene kind, so "the oath
at Roven" is woven as an oath and "the burning of the mill" as a battle. Only
an act that matches nothing falls through to the seeded chooser, and even
then the seed is the act's OWN NAME, so the same act always weaves the same
way.
⛔ AND EVERY FIELD DRAWS FROM ITS OWN SEEDED STREAM. Adding a scene, a border
or a wool to a later version must not re-weave a hanging a buyer has already
saved, and successive draws from one stream would do exactly that — insert a
row anywhere and every choice after it moves.
============================================================================
SAVE FORMAT
============================================================================
The hanging is stored on `$gameSystem` as `_arras`, versioned:
{ v: 1, acts: [ { id, title, scene, border, ground, at, seed } ] }
`migrate()` accepts anything with a lower `v` and is called on every load, so
a save made against version 1 keeps working when version 2 ships. An act
carries its RESOLVED scene, border and ground rather than re-deriving them,
which is the only way a buyer's existing hanging is safe against us editing
the classifier.
Terms of use: see LICENSE.txt in the package root.