save

Persist per-player key-value data with JSON support and migrations.

Updated Feb 7, 2026
One-click install
npx skills add https://github.com/All-Out-Games/reusable-weapons-csl --skill save-all-out-games
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: save
Source: https://github.com/All-Out-Games/reusable-weapons-csl/tree/main/.claude/skills/save
Command: npx skills add https://github.com/All-Out-Games/reusable-weapons-csl --skill save-all-out-games

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The Save system solves the challenge of persisting player data across game sessions by providing a simple per-player key-value store.

Core Features & Use Cases

  • Per-player data isolation ensures each player's progress and settings are kept separate.
  • Key-value storage with a straightforward API (set/get for strings, ints, and floats) enables fast persistence of core attributes like xp, level, health, and preferences.
  • JSON support for complex structures via set_json/try_get_json, plus migrations and versioning patterns to evolve save data safely.

Quick Start

Load data on join with Save.get_* defaults and save changes immediately with Save.set_*.

Frequently Asked Questions about save

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I persist per-player data across game sessions?

Per-player data persistence across game sessions is handled by a simple key-value store that isolates each player's progress, XP, level, health, and preferences. Data loads on join with default values and saves changes immediately using type-specific setters.

Can I save complex JSON structures for individual player progress?

Complex JSON structures for individual player progress can be saved using dedicated JSON support functions. The system provides specific getters and setters for JSON data, allowing you to store nested or complex structures alongside standard key-value pairs.

What's the best way to handle save data migrations and versioning in game development?

Save data migrations and versioning in game development are supported natively by the system to help evolve save schemas safely. This allows you to update data structures over time without breaking existing player saves during updates.

Does this key-value store support default values for missing player attributes?

Default values for missing player attributes are fully supported by the key-value store. When loading data on join, type-specific getters allow you to specify fallback values for strings, ints, and floats if a key has not been set yet.

How do I ensure per-player isolation for game preferences and stats?

Per-player isolation for game preferences and stats ensures each player's data is kept completely separate. The key-value store architecture inherently partitions data by player, preventing cross-contamination of progress, health, and settings between sessions.

What data types can I use with this per-player key-value store?

Per-player key-value store data types include strings, ints, and floats via standard setters and getters, plus complex structures through JSON support. This covers core game attributes like XP, level, health, and user preferences efficiently.