story-roleplay

Parse SillyTavern character cards and world info from PNG, WebP, and JSON files.

Updated Aug 19, 2026
One-click install
npx skills add https://github.com/Dhanuzh/DCode-Core --skill story-roleplay-dhanuzh
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: story-roleplay
Source: https://github.com/Dhanuzh/DCode-Core/tree/main/crates/dcode-app/assets/builtin-skills/story-roleplay
Command: npx skills add https://github.com/Dhanuzh/DCode-Core --skill story-roleplay-dhanuzh

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires png-chunks-extract, png-chunk-text, and includes scripts (resource) components.

What problem does it solve? Character cards and world info files exported from SillyTavern embed their data as Base64-encoded JSON inside PNG or WebP image metadata, making them unreadable without a dedicated parser. This Skill extracts that data reliably and applies it to roleplay conversations, eliminating manual decoding and preventing fabricated character information. ## Core Features & Use Cases - Character Card Parsing: Extract name, personality, scenario, first message, and system prompt from PNG (chara/ccv3 chunks), WebP, or JSON files in Tavern Card V2/V3 format. - World Info with Keyword Triggers: Parse world info entries (naidata chunks) and inject content into conversations when keywords appear, sorted by priority. - Character Book Handling: Apply character-specific knowledge base entries alongside general world info with correct priority ordering. - Use Case: A user downloads a SillyTavern character card PNG and asks the AI to roleplay as that character; the Skill runs the bundled Node.js parser, saves the result as character.json, and starts the conversation with the character's first message. ## Quick Start Load the character card from character.png and start the roleplay using its personality and opening message.

Frequently Asked Questions about story-roleplay

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

FAQPage Schema
How do I extract character card data from a PNG image?

Run the bundled Node.js parser with the image path and an output path: node parse-character-card.js character.png character.json. The script reads PNG tEXt chunks, finds the chara or ccv3 keyword, and decodes the Base64 JSON into a readable file.

How do I parse SillyTavern world info files?

Use the same parser script with the --world-info flag: node parse-character-card.js world-info.png world-info.json --world-info. It looks for the naidata keyword in PNG text chunks and extracts the entries array with keys, content, priority, and enabled fields.

Does this support WebP character cards?

WebP parsing is not directly implemented in the script; it exits with an error for .webp files. The recommended path is converting the WebP image to PNG first, then running the PNG parser, or using the JSON format instead.

Why does parsing fail with 'PNG metadata does not contain any text chunks'?

This error means the image has no tEXt chunks, so it is likely not a valid SillyTavern export with embedded character data. Re-export the card from SillyTavern with data embedded, or ask for the JSON version of the card.

What dependencies are required to run the character card parser?

The parser requires Node.js plus two npm packages: png-chunks-extract and png-chunk-text, both pinned to version 1.0.0 in package.json. Run npm install in the directory containing the script before executing it.