Agent skill

Pixi Vn Storage

by DRincs-Productions in DRincs-Productions/pixi-vn

A skill your agent uses when reading or writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage, custom persisted classes via StoredClassModel, temporary…

LGPL-2.1Auto-check passed

Install Pixi Vn Storage

skills CLI
$ npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-storage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DRincs-Productions/pixi-vn pixi-vn-storage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/DRincs-Productions/pixi-vn.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/storage .claude/skills/pixi-vn-storage && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pixi-vn-storage
GitHub stars
149
Token cost
~2.2k tokens
SKILL.md length
871 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
LGPL-2.1

At a glance

A skill your agent uses when reading or writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage, custom persisted classes via StoredClassModel, temporary…

  • Works in 4 steps: Simple variables: storage.set /… → Custom persisted classes: StoredClassModel → Reserved keys → …
  • Writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage
  • SKILL.md covers When to use this skill, 1. Simple variables:…, 2. Custom persisted classes:… and 3. Reserved keys, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Pixi Vn Storage is an agent skill from DRincs-Productions/pixi-vn. Use when reading or writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage, custom persisted classes via StoredClassModel, temporary (label-scoped) variables, and how any of this survives save/load and history go-back. Load this before writing any storage.set/storage.get/storage.flags.set code or a class that extends StoredClassModel.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Create visual novels with a modern 2D rendering engine and your favorite JavaScript framework.

When your agent uses it

  • Writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage
  • Custom persisted classes via StoredClassModel
  • Temporary (label-scoped) variables
  • How any of this survives save/load and history go-back

Example prompts

  • “/pixi-vn-storage”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Simple variables: storage.set / storage.get
  2. Custom persisted classes: StoredClassModel
  3. Reserved keys
  4. Relation to save/load and history

What it can do on your machine

Read from SKILL.md and the folder at commit 01c19cb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • pixi-vn.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pixi Vn Storage loads about 2.2k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 871 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from DRincs-Productions/pixi-vn at commit 01c19cb, republished under its LGPL-2.1 licence (© DRincs-Productions). 871 words, ~2,206 tokens.

Download SKILL.mdSave it as .claude/skills/pixi-vn-storage/SKILL.md (or your agent's skills folder).
name
pixi-vn-storage
description
Use when reading or writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via `storage`, custom persisted classes via `StoredClassModel`, temporary (label-scoped) variables, and how any of this survives save/load and history go-back. Load this before writing any `storage.set`/`storage.get`/`storage.flags.set` code or a class that extends `StoredClassModel`.

Pixi'VN Storage

When to use this skill

Use this skill whenever a task involves storing game state that must persist across steps and saves: flags ("has the player met Liam?"), counters (gold, affection points), arbitrary objects, or a custom class whose instances need to survive save/load (e.g. a quest-tracking model). It does not cover characters specifically (see the characters skill, which is itself built on top of the pattern described here) or how the history/go-back system is implemented internally (see the history skill).

Official docs (authoritative for terminology and recommended patterns): storage, flags, storage classes, temporary storage, save & load.

ts
import { storage, StoredClassModel } from "@drincs/pixi-vn";

(Also available from the narrower @drincs/pixi-vn/storage subpath — see pixi-vn-getting-started for when to prefer that.) storage is a ready-made singleton (StorageManagerInterface) — you never instantiate StorageManager yourself.

1. Simple variables: storage.set / storage.get

See pixi-vn.com/start/storage.

ts
storage.set("test", "test1");
storage.get("test"); // "test1"

storage.set("Test", "test2"); // keys are case-sensitive, "Test" !== "test"
storage.get("nope"); // undefined

storage.set("variable1", { test: "test", test2: 1 }); // objects/arrays are fine too
storage.set("variable6", null);
storage.set("variable7", undefined); // undefined removes the key entirely

Allowed value types (StorageElementType, from src/storage/types/StorageElementType.ts): strings, numbers, booleans, null/undefined, plain objects and arrays of these — no functions, class instances, or Maps/Sets. For anything richer, use a StoredClassModel (below).

Other storage methods:

  • storage.remove(key) — deletes a variable.
  • storage.flags.set(key, value: boolean) / storage.flags.get(key) — a dedicated boolean-flag store (docs), kept separate from set/get; flags default to false when never set. Keys are case-sensitive here too. The docs recommend flags over storage.set for booleans specifically because of save size: internally all active flags are kept as a single array of names, which is much lighter to serialize than one storage entry per boolean. A documented pattern is exposing a class boolean property that's backed by a flag name (a string) instead of a literal boolean, so the getter/setter transparently reads/writes storage.flags.get/set.
  • storage.default = { key: value, ... } — sets the starting values used when the game boots or after storage.clear(); if you later remove() a key (or it was never set()), reading it falls back to this default instead of undefined.
  • storage.clear() — wipes all stored variables (used by tests/new-game flows), after which reads fall back to storage.default.
Temporary (label-scoped) variables

See pixi-vn.com/start/temp-storage. storage.temp.set(key, value) behaves like storage.set for reads — storage.get(key) checks temp variables first, then falls back to the permanent store — but the value is deleted once the label it was set in closes. It's for scratch state that should reset once the player moves on:

ts
storage.temp.set("counter", counter + 1);
// ... reads still go through storage.get("counter")
storage.temp.remove("counter");

Per the docs' own description of the lifecycle: if the label that set the temp variable calls another label (nested call, e.g. call), the variable stays accessible from that child label too — it's only deleted once the originating label itself closes. But if control moves on via jump (closing the current label and starting a new one instead of nesting into it), the temp variable is gone immediately, since it belonged to the now-closed label. Implementation-wise this is tracked as a deadline against how many labels are open on the call stack at the moment temp.set runs — see tests/storage.test.ts, setTempVariable & getTempVariable, where a temp counter set inside a called label keeps incrementing across narration.continue() steps but is reset once narration.labels.closeCurrent() /closeAll() unwind the label stack. Don't rely on temp variables for state that must outlive the label that set it — use storage.set for that.

Show full SKILL.md (369 more words)Show less

2. Custom persisted classes: StoredClassModel

See pixi-vn.com/start/stored-classes. For a richer object whose instances need to persist (survive save/load) and whose fields should be individually get/set, extend StoredClassModel instead of storing a plain object with storage.set. Each instance is identified by a categoryId (shared by all instances of that class) plus a per-instance id; properties are read/written with the protected getStorageProperty/setStorageProperty helpers:

ts
import { StoredClassModel } from "@drincs/pixi-vn";

interface QuestProps {
  title: string;
}

class QuestModel extends StoredClassModel implements QuestProps {
  constructor(id: string, props: QuestProps) {
    super("quest", id); // categoryId, instance id
    this.defaultTitle = props.title;
  }
  readonly defaultTitle: string;

  get title(): string {
    return this.getStorageProperty<string>("title") ?? this.defaultTitle;
  }
  set title(value: string) {
    this.setStorageProperty("title", value);
  }

  get completed(): boolean {
    return this.getStorageProperty<boolean>("completed") ?? false;
  }
  set completed(value: boolean) {
    this.setStorageProperty("completed", value);
  }
}

const findLiam = new QuestModel("find_liam", { title: "Find Liam" });
findLiam.completed = true; // persists under the "quest" category

The constructor arg passed in (e.g. props.title) becomes the default, kept in memory on the instance; setStorageProperty writes an override into storage that takes priority when reading. Passing undefined to setStorageProperty removes that property from storage (falling back to the in-memory default on the next read). This is exactly the pattern CharacterBaseModel uses for name/surname/age — see the characters skill (the docs' own example uses a plain category name like "city"; the library's built-in models happen to fence theirs as "___character___" to avoid any accidental collision, but that underscore style is just a convention, not a requirement — a plain string like "quest" or "city" works the same way).

3. Reserved keys

Do not manually set/read storage keys that collide with the engine's own bookkeeping. The docs' rule of thumb (storage docs) is: system variables use a ___-fenced prefix, so avoid that prefix in your own keys. The full reserved key list lives in the SYSTEM_RESERVED_STORAGE_KEYS constant (src/constants.ts) — in practice most entries are plain namespaced strings without the ___ fence ("dialogue", "dialogue:step_counter", "choice:options", "input:value", "input:info", "character", "label:opened", "choices:made", etc.), with "___glue___" being the one that actually uses the fenced style. Either way, treat every value in that constant as off-limits for your own storage.set/flag keys, to avoid confusion when inspecting exported save data.

4. Relation to save/load and history

Building save/load itself (the Game.exportGameState()/restoreGameState() flow, and how to persist the result) is covered by pixi-vn-saves — you generally don't touch storage directly for that; every variable set through storage is included automatically. The same is true for step-by-step rewind: a snapshot of storage is captured at each recorded history step, so storage variables participate in "go back" too, not just save/load — see pixi-vn-history. storage.clear() resets variables back to whatever was set via storage.default, which is what tests use to get a clean slate between scenarios.

pixi-vn-getting-started, pixi-vn-saves, pixi-vn-characters, pixi-vn-history, pixi-vn-narration

© DRincs-Productions, LGPL-2.1. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/storage of DRincs-Productions/pixi-vn.

Open the folder on GitHubat commit 01c19cb

Compare with similar skills

Pixi Vn Storage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pixi Vn Storage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pixi Vn Storage this skillDRincs-Productions/pixi-vn149—~2.2kAutomated safety check: PassLGPL-2.1
Swift Actor Persistenceaffaan-m/ECC277k4 repos~1.2kAutomated safety check: PassMIT
Object Storagesickn33/agentic-awesome-skills47k2 repos~2.6kAutomated safety check: PassMIT
Neon Object Storagesickn33/agentic-awesome-skills47k1 repos~2.9kAutomated safety check: NotesApache-2.0
Session Persistruvnet/ruflo74k—~415Automated safety check: NotesMIT
Web Storagethedaviddias/Front-End-Checklist74k—~506Automated safety check: PassMIT

Similar skills

  • Thread-safe data persistence in Swift using actors — in-memory cache with file-backed storage, eliminating data races by design.

    277k GitHub starsUsed in 4 repos~1.2k tokens
    MobileAuto-check passed
  • Object Storage

    sickn33/agentic-awesome-skills

    Configure object storage with S3, GCS, and MinIO. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~2.6k tokens
    Backend & APIsAuto-check passed
  • Neon Object Storage

    sickn33/agentic-awesome-skills

    S3-compatible object storage that branches with your Neon project, so files and the database stay in sync across every branch.

    47k GitHub starsUsed in 1 repo~2.9k tokens
    Backend & APIsAuto-check: notes
  • Session Persist

    ruvnet/ruflo

    Persist and restore agent sessions across conversations with state snapshots

    74k GitHub stars~415 tokensUpdated yesterday
    Auto-check: notes
  • Web Storage

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing scripts, client components, bundles, or runtime behavior related to Use Web Storage API safely.

    74k GitHub stars~506 tokensUpdated 5 days ago
    Auto-check passed
  • Read Session

    asgeirtj/system_prompts_leaks

    Locate and read Muse Code's OWN session logs — the current session or a prior one.

    69k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed

More from DRincs-Productions/pixi-vn

All 13 skills in this repo
  • Pixi Vn Assets

    DRincs-Productions/pixi-vn

    A skill your agent uses when adding, organizing, registering, or loading non-code files (images, audio, video) in a Pixi'VN project — local assets processed by PixiJS AssetPack vs.

    149 GitHub stars~2.9k tokensUpdated 10 days ago
    Auto-check passed
  • Pixi Vn Characters

    DRincs-Productions/pixi-vn

    A skill your agent uses when defining visual novel characters for a @drincs/pixi-vn game — creating a character with a name, color, icon and other props, registering it so it can be looked up by id…

    149 GitHub stars~3.1k tokensUpdated 10 days ago
    Auto-check passed
  • Pixi Vn History

    DRincs-Productions/pixi-vn

    A skill your agent uses when implementing "go back" / "rewind" / step-navigation features in a Pixi'VN game, or when you need to read the player-facing dialogue/choice history (e.g.

    149 GitHub stars~2.6k tokensUpdated 10 days ago
    Auto-check passed
  • Pixi Vn Minigames

    DRincs-Productions/pixi-vn

    A skill your agent uses when adding a minigame (snake, quiz, puzzle, timing/reaction game, ...) to a Pixi'VN visual novel — the useMinigame lifecycle hook pattern, using PixiJS directly on its own…

    149 GitHub stars~2.9k tokensUpdated 10 days ago
    Auto-check passed
  • Pixi Vn Narration

    DRincs-Productions/pixi-vn

    A skill your agent uses when writing or editing Pixi'VN story content — defining labels (scenes) with newLabel, writing dialogue steps, adding player choices with…

    149 GitHub stars~4.9k tokensUpdated 10 days ago
    Auto-check passed
  • Pixi Vn Saves

    DRincs-Productions/pixi-vn

    A skill your agent uses when implementing save/load in a Pixi'VN game — Game.exportGameState()/restoreGameState()/jsonToGameState(), what the exported GameState contains, and how to persist it (save…

    149 GitHub stars~1.5k tokensUpdated 10 days ago
    Auto-check passed

Questions about Pixi Vn Storage

What does Pixi Vn Storage do?

A skill your agent uses when reading or writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage, custom persisted classes via StoredClassModel, temporary…. Pixi Vn Storage is an agent skill from DRincs-Productions/pixi-vn. Use when reading or writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage, custom persisted classes via StoredClassModel, temporary (label-scoped) variables, and how any of this survives save/load and history go-back.

When should I use Pixi Vn Storage?

Pixi Vn Storage fits situations like: writing persistent game variables in a @drincs/pixi-vn game — simple flags/counters via storage; custom persisted classes via StoredClassModel; temporary (label-scoped) variables; how any of this survives save/load and history go-back.

How do I install Pixi Vn Storage in Claude Code?

Run `npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-storage -a claude-code`. Or copy the skill folder (skills/storage in DRincs-Productions/pixi-vn) into .claude/skills/pixi-vn-storage in your project. Claude Code loads it when a task matches its description.

How do I install Pixi Vn Storage in Codex?

Run `npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-storage -a codex`. Or copy the skill folder (skills/storage in DRincs-Productions/pixi-vn) into .agents/skills/pixi-vn-storage in your project. Codex loads it when a task matches its description.

Can I use Pixi Vn Storage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-storage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pixi-vn-storage, .gemini/skills/pixi-vn-storage, .github/skills/pixi-vn-storage and .opencode/skills/pixi-vn-storage in your project.

What does Pixi Vn Storage need to run?

SKILL.md names no scripts, command-line tools or credentials: Pixi Vn Storage is instructions for the agent only.

Does Pixi Vn Storage access the network?

SKILL.md names 1 domain. As links in the text: pixi-vn.com. This is read from the text; nothing was executed.

Is Pixi Vn Storage safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Pixi Vn Storage use?

Pixi Vn Storage is published under the LGPL-2.1 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pixi Vn Storage use?

About 2.2k tokens (SKILL.md is roughly 8.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pixi Vn Storage?

Skills that share tags, products or a category with Pixi Vn Storage: Swift Actor Persistence (affaan-m/ECC, 277k stars), Object Storage (sickn33/agentic-awesome-skills, 47k stars), Neon Object Storage (sickn33/agentic-awesome-skills, 47k stars) and Session Persist (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pixi Vn Storage?

DRincs-Productions (a GitHub organization) maintains it in DRincs-Productions/pixi-vn, which has 149 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 1, 2026.

Source: DRincs-Productions/pixi-vn on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.