Overview • Contribute • User Guide • Credits • License
This Project aims to create a Safe Sealed Draft Yu-Gi-Oh format online experience similar to the Yu-Gi-Oh Progression Series.
The project currently is divided into four applications:
-
YGO-Progression-Bot: The star of the project, this bot lets players open-packs and add cards to their collection while the admin configures from which set are those pack from, the amount of packs each player can open, and the desired ban-list.
-
YGO-Progression-Web: The bulk of the project, built using Vue.js, this site lets players see their collection, build a deck and export it to battle on their preferred Yu-Gi-Oh dueling system.
-
YGO-Progression-Web-Back: The Backbone of the project, this Flask/SQLAlchemy application exposes the card/set/banlist/player database to the site.
-
YGO-Progression-db: The less exciting part of the project, scripts for getting and parsing yu-gi-oh data and adding those to the database for the others applications to use.
This project was develop by a single Brazilian CS Student, while I don't expect to live by this project, I do plan to continue improving this for years to come as this is such a passion project and the biggest thing I have ever built.
However, currently the project has monetary limitations, I can't pay for the servers this project runs on, that's why I need your contribution.
With the current server there is a limit of 10000 database lines, that's why some newer sets are missing. (there exists more cards than the database line limit).
You can also contribute by opening issues if you found any problem. Any pull request welcome.
Any questions? You can contact me on this Discord Server.
First, Add the Bot to your server!
https://discord.com/api/oauth2/authorize?client_id=859241519781642251&permissions=59456&scope=bot
As admin, configure which channels the bot has access to, then send the following message:
$new_game
This will register a game in your server.
at any point you can finish the game with following command:
$end_game
Beware, sending end_game deletes all data, including player's collection.
Now every player who wants to participate can join with:
$enter
And players can open packs with the pack command,
$pack 7
Here the 7 is the number of packs to open, passing no number will open only 1 pack.
This can take a while depending on the amount of cached images the bot has, however the bot will respond with "Opening..." to ensure you it's working correctly.
Also, the bot tries to reduce the amount of flooding by grouping maximum 5 packs per image.
After running the command, all shown cards will be automatically be added into the player collection.
However, to open packs, players need to have available packs.
A player can see their available packs and collection url using:
$status
The admin needs to distribute packs to the players, using give_pack and the set code:
$give_pack 24 LOB
Here LOB is the code for Legend of Blue Eyes, and the 24 is the number of packs each player will recieve. Players need to open packs on their own with the pack command. If needed, the command supports an arbitrary number of usernames, so you can give specific packs to specific players:
$give_pack MRD 5 @player1 @player2
Available pack codes
Code | Name |
---|---|
LOB | Legend of Blue Eyes White Dragon |
MRD | Metal Raiders |
TP1 | Tournament Pack: 1st Season |
MRL | Magic Ruler |
TP2 | Tournament Pack: 2nd Season |
PSV | Pharaoh's Servant |
TP3 | Tournament Pack: 3rd Season |
LON | Labyrinth of Nightmare |
LOD | Legacy of Darkness |
PGD | Pharaonic Guardian |
TP4 | Tournament Pack 4 |
MFC | Magician's Force |
DCR | Dark Crisis |
IOC | Invasion of Chaos |
AST | Ancient Sanctuary |
SOD | Soul of the Duelist |
TP5 | Tournament Pack 5 |
RDS | Rise of Destiny |
FET | Flaming Eternity |
TP6 | Tournament Pack 6 |
TLM | The Lost Millennium |
CRV | Cybernetic Revolution |
TP7 | Tournament Pack 7 |
EEN | Elemental Energy |
DP1 | Duelist Pack: Jaden Yuki |
DP2 | Duelist Pack: Chazz Princeton |
SOI | Shadow of Infinity |
TP8 | Tournament Pack 8 |
EOJ | Enemy of Justice |
CP01 | Champion Pack: Game One |
CP02 | Champion Pack: Game Two |
DP05 | Duelist Pack: Aster Phoenix |
DP03 | Duelist Pack: Jaden Yuki 2 |
STON | Strike of Neos |
DP04 | Duelist Pack: Zane Truesdale |
CP03 | Champion Pack: Game Three |
FOTB | Force of the Breaker |
TAEV | Tactical Evolution |
CP04 | Champion Pack: Game Four |
GLAS | Gladiator's Assault |
CP05 | Champion Pack: Game Five |
PTDN | Phantom Darkness |
CP06 | Champion Pack: Game Six |
LODT | Light of Destruction |
CP07 | Champion Pack: Game Seven |
TDGS | The Duelist Genesis |
CSOC | Crossroads of Chaos |
CP08 | Champion Pack: Game Eight |
ANPR | Ancient Prophecy |
SOVR | Stardust Overdrive |
ABPF | Absolute Powerforce |
TSHD | The Shining Darkness |
The command give_card has yet to be implemented.
Any questions? You can contact me on this Discord Server.
Configs are keywords to make so the admin can customize the game and implement the format he considers the best, like so:
$config ban_list May 2002
Here, ban_list is the key while May 2002 is the value, this command is setting the server banlist to the May 2002 list.
Supported configs for now:
Key | Supported Values | Info | Default Behavior |
---|---|---|---|
ban_list | "Month Year" of any official banlist | Let admin set the deck builder banlist | No ban list |
private_pack | "False" | $pack response is sent on the channel of the command | $pack response is sent via DM |
Passing an invalid key will do nothing while passing a invalid value will change the key to it's default behavior.
The Site will display only your entire collection, you can't add cards you haven't pull and those won't appear if you search for then.
Also, the cards may take a while to load depending on the size of your collection, don't panic if it looks stuck.
Use the fields and Options to filter/sort, and you can Drag/Drop or Right Click on cards to add/remove then from deck.
That is it, there is no magic here, the ui should be intuitive enough, but you can message me any questions.
Any questions? You can contact me on this Discord Server.
(to do)
Any questions? You can contact me on this Discord Server.
Credit where credit is due
Special Thanks for all my friends who helped on the development, specially Igor, Joao and Felipe.
Thanks to Cimooo for creating the Progression Series and being the inspiration of this project.
Thanks to YGOPRODECK for the great and well documented api.
Released under the MPL 2.0 license.