Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bullish0x/GameStudio --skill phaser-data-managergit clone --depth 1 https://github.com/bullish0x/GameStudioWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bullish0x/gamestudio/phaser-data-manager)<a href="https://agentmods.dev/skills/bullish0x/gamestudio/phaser-data-manager"><img src="https://agentmods.dev/badge/skills/bullish0x/gamestudio/phaser-data-manager/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bullish0x/gamestudio/phaser-data-manager"><img src="https://agentmods.dev/badge/skills/bullish0x/gamestudio/phaser-data-manager.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.04222 |
| Opus 5 | $0.00027 | $0.02111 |
| Sonnet 5 | $0.00011 | $0.00844 |
| Haiku 4.5 | $0.00005 | $0.00422 |
Grade A, and why
phaser-data-manager scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
98% identical to data-manager — 4 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 407 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DataManager
Phaser's DataManager provides key-value storage with event-driven change tracking. It operates at three levels: per-GameObject (
sprite.setData/getData), per-Scene (this.data), and global (this.registry). Every set/change/remove operation emits events, enabling reactive data binding between game systems without tight coupling.
Key source paths: src/data/DataManager.js, src/data/DataManagerPlugin.js, src/data/events/, src/gameobjects/GameObject.js (setData/getData/incData/toggleData)
Related skills: ../phaser-scenes/SKILL.md, ../phaser-events-system/SKILL.md
Quick Start
// Per-GameObject data (auto-creates DataManager on first use)
const gem = this.add.sprite(100, 100, 'gem');
gem.setData('value', 50);
gem.setData({ color: 'red', level: 2 });
gem.getData('value'); // 50
gem.getData(['value', 'color']); // [50, 'red']
// Increment / toggle helpers
gem.incData('value', 10); // value is now 60
gem.incData('value', -5); // value is now 55 (negative to decrement)
gem.toggleData('active'); // false -> true (starts from false if unset)
// Scene-level data (this.data is a DataManagerPlugin)
this.data.set('score', 0);
this.data.get('score'); // 0
this.data.values.score += 100; // triggers changedata event
// Global registry (shared across ALL scenes)
this.registry.set('highScore', 9999);
// Any scene can read it:
this.registry.get('highScore'); // 9999
Core Concepts
DataManager (Phaser.Data.DataManager)
The base class that stores key-value pairs in an internal list object. It provides:
set(key, value)-- stores a value; emitssetdata(new key) orchangedata+changedata-{key}(existing key). Accepts an object to set multiple keys at once.get(key)-- retrieves a value, or pass an array of keys to get an array of values.inc(key, amount)-- increments a numeric value (defaults to +1). Creates from 0 if key does not exist.toggle(key)-- flips a boolean value. Creates fromfalseif key does not exist.remove(key)-- deletes a key; emitsremovedata. Accepts an array of keys.has(key)-- returnstrueif the key exists.getAll()-- returns a shallow copy of all key-value pairs as a plain object.query(regex)-- returns all entries whose keys match the given RegExp.each(callback, context, ...args)-- iterates all entries. Callback signature:(parent, key, value, ...args).merge(data, overwrite)-- bulk-imports from an object.overwritedefaults totrue; setfalseto skip existing keys.pop(key)-- retrieves and deletes a key in one call; emitsremovedata.reset()-- clears all data and unfreezes.freeze/setFreeze(bool)-- when frozen, all set/remove/inc/toggle operations silently no-op.count-- read-only property returning the number of stored entries.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 407 lines · 54 tokens per session scan A 6146179f9f33
phaser-data-manager is a skill published in the GitHub repository bullish0x/GameStudio (12 stars, last pushed 3mo ago), licensed MIT. It adds 54 tokens to every session and 4,222 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 98% identical to data-manager, differing in 4 lines, and is treated as a copy.
Other skills, from other repositories
game-development
Game development with Unity, Unreal Engine, and Godot. Use when building games, implementing game mechanics, physics, AI, or working with game engines.
ar-vr-xr
AR/VR/XR development with Unity XR, WebXR, ARKit, ARCore, Meta Quest SDK, and spatial computing. Use when building augmented reality, virtual reality, mixed reality applications, or spatial experiences.
sdf
SDFormat/SDF model and world authoring, validation, and simulator handoff. Use for .sdf files, SDFormat XML, models, worlds, links, joints, poses, frames, inertials, visual/collision geometry, mesh URIs, sensors, lights, physics, plugins, includes, Gazebo, static SDF review, or simulator-specific metadata. Do not use…
unity-agent-workflows
Use for AI-assisted Unity work that needs live repo discovery, project-derived routing, runtime-owner proof, runtime-visible output hard stops, runtime numeric proof for repeated visible-output failures, state-step guards, multi-agent scope ownership, modular C#/asmdef safety, UI/scene/visual asset gates, data-first…
using-bgs-archive
Use when the user wants to inspect, list, extract, unpack, or repack Bethesda BA2/BSA archives; determine archive format/version/compression; or build archive assets for an MO2 overlay. Triggers - "unpack BA2", "extract BSA", "pack archive", "inspect archive", "bgs-archive".
ai-ml-development
AI and machine learning development with PyTorch, TensorFlow, and LLM integration. Use when building ML models, training pipelines, fine-tuning LLMs, or implementing AI features.