ygopro-implementation

Implements YGOPro card scripts, deck validation, and database queries using Lua and SQLite.

1|Updated Apr 16, 2026
One-click install
npx skills add https://github.com/ZisIsNotZis/ygoskill --skill ygopro-implementation-zisisnotzis
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ygopro-implementation
Source: https://github.com/ZisIsNotZis/ygoskill/tree/main/ygopro
Command: npx skills add https://github.com/ZisIsNotZis/ygoskill --skill ygopro-implementation-zisisnotzis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires xxhash, pyyaml, scikit-learn, numpy, and includes scripts (resource) and references (resource) components.

What problem does it solve? Working with YGOPro requires deep knowledge of its Lua scripting API, SQLite card database schema, YDK deck format, and ban list rules, which are scattered and error-prone to apply manually. ## Core Features & Use Cases - Lua Script Implementation: Write, research, and compare YGOPro card effect scripts (c<id>.lua) against the real ocgcore API with strict correctness rules and a mandatory comparison loop. - Deck Validation and Analysis: Validate YDK decks against ban lists, same-name rules, and deck size limits, plus simulate T0/T1 opening hand rates and compute quality scores with ydkcheck.py. - Database and Tooling: Query cards.cdb with SQLite, analyze deck consensus with ydkshow.py, rename decks by archetype, and generate or download card images. - Use Case: Implement a new counter trap card script, compare it line-by-line against the reference script to catch event code and flag mistakes, then validate a test deck containing it against the current OCG ban list. ## Quick Start Ask the AI to implement a YGOPro Lua script for a specific card by name or ID and validate a YDK deck file against the current ban list.

Frequently Asked Questions about ygopro-implementation

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

FAQPage Schema
How do I write a YGOPro Lua script for a card effect?▼

Create a file named c<card_id>.lua using either the old style (cXXXXX.initial_effect) or new style (local s,id,o=GetID()). Register each effect with Effect.CreateEffect, set the correct EFFECT_TYPE and EVENT codes, and define condition, cost, target, and operation callbacks using the documented API.

How do I validate a YDK deck against the ban list?▼

Run python tools/ydkcheck.py deck.ydk section lflist to check every card against lflist.conf. The tool handles alias cards, reports forbidden and limited violations, and can also run basic size, duplicate, and opening-hand simulation checks.

What is the structure of the YGOPro cards.cdb database?▼

cards.cdb is a SQLite database with two tables: datas holds id, alias, setcode, type bitmask, level, race, attribute, ATK and DEF, while texts holds id, name, and desc. Query it by joining both tables on id with sqlite3.

Why does my counter trap script not activate correctly?▼

Counter traps must use EFFECT_TYPE_ACTIVATE, not EFFECT_TYPE_QUICK_O, with EVENT_FREE_CHAIN or the appropriate event. Also verify you included EFFECT_FLAG_CARD_TARGET with a chkc check when the effect targets cards.

What is the difference between ygopromcp and ygomcp clients?▼

ygopromcp is a fork of fluorohydride/ygopro with an MCP side channel in the GUI binary, used for agent-vs-agent duels. ygomcp is a lightweight headless client at vendor/ygocli, now deprecated for duels but useful for solo tests, puzzles, and replays.

When should I not create a script file for a card?▼

Normal monsters have no script file at all, so do not create one for them. Only effect-bearing cards require a c<card_id>.lua script, and the filename must use the actual card password, not sequential numbers.