YGO Draft

A web application for creating and participating in custom Yu-Gi-Oh! card drafts with your friends. Upload your cube, configure your draft settings, and draft cards in real-time.
Features
- Custom Cubes: Upload your Yu-Gi-Oh! cube in CSV format
- Multiple Draft Formats: Support for Winston Draft and Rochester Draft
- Pack Rarity Customisation: Choose how many cards of each rarity are in a pack
- Custom Card Rarities: You choose how rare each card should be, or just use the Master Duel rarities.
- Real-time Drafting: Draft cards with friends with real-time updates
- Card Visualisation: View your drafted deck with card images and statistics
- YDK Export: Download your drafted deck in YDK format for use in simulators
- Draft Statistics: Analyse your draft with built-in charts and analytics
Getting Started
Prerequisites
- Node.js (v18.x or later)
- pnpm package manager
Installation
Clone the repository
git clone https://github.com/a-ws-m/ygo-draft.git
cd ygo-draft
Install dependencies
pnpm install
Set up your environment variables
cp .env.example .env
Update the .env file with your Supabase credentials
Start the development server
pnpm dev
Usage
Creating a Draft
- Visit the home page
- Upload your cube CSV file (you can create one at YGOProdeck Cube Builder)
- Configure your draft settings:
- Select a draft method (Winston, Rochester or Grid)
- Set the number of players
- Configure additional settings based on the draft method
- Start the draft and share the URL with other players
Participating in a Draft
- Open the shared draft URL
- Wait for all players to join
- The draft creator will start the draft when everyone is ready
- Follow the on-screen instructions to draft cards based on the selected method
Draft Methods
Winston Draft
In Winston Draft, cards are arranged into piles. On your turn:
- Look at the first pile
- Choose to either take that pile or pass to the next pile
- If you pass on all piles, you must take a card from the top of the pool deck
- After your selection, add a card from the deck to each pile you passed
Rochester Draft
In Rochester Draft:
- Cards are laid out face up in "packs"
- Players take turns selecting one card at a time from the available pack
- The direction of picking reverses each round
- When a pack is empty, a new one is opened
Grid Draft
In Grid Draft:
- Cards are arranged face up in a grid (Default is 3×3)
- Players take turns to select a row/column of the grid, adding those cards to their drafted deck
- Replenish rows/columns with new cards from the pool
- Continue until each player has desired number of cards
Asynchronous Draft
In Asynchronous Draft:
- Players draft independently at their own pace without needing to coordinate schedules
- Each player opens their own packs and selects cards
- Once a card is drafted by a player, it's no longer available to others (unless you enable
Allow overlap in player packs
)
- Players can join and make picks whenever they have time
- Draft continues until all players have completed their selections
Technologies
Contributing
We welcome contributions to YGO Draft! Please check out our contributing guidelines for details on how to get started.
For bug reports and feature requests, please open an issue on GitHub.
Changelog
- [19/05/2025] I have disabled sign in with OAuth for now as there is no advantage to doing this compared to signing in anonymously. I want to avoid storing any user data until it becomes necessary to do that for some functionality (e.g. saving your own cubes). If you previously signed in with your Discord/GitHub account, your data has been deleted from Supabase.
License
This project is licensed under the AGPLv3 License - see the LICENSE file for details.
Acknowledgments
- YGOProdeck for their card database and cube builder
- Skully and Retrorage for the default cubes.
- All contributors and players who have helped test and improve this application
Created by a-ws-m