Packaged Files
  • DecklistApp.exe is the main application.
  • DecklistImageExportFixer.exe is a companion application.
  • ReadMe.url is a shortcut to the instructions for general use.
  • DecklistApp Companion.url is a shortcut to a companion spreadsheet.
    ↪ Access to this spreadsheet is limited to event staff only.
  • Example Files is a folder with sample files used by the main application.
  • Logs is a folder to backup event data locally.
Features
This toolset allows an event organizer to quickly....
  • ... (1) validate legality of all decklists with little manual effort.
  • ... (2) assign proper labels to all decklists with aid of AI software.
  • ... (3) view all decklists in single location.
  • ... (4) generate decklist .ydk files for publication.
  • ... (5) generate decklist images for publication.
  • ... (6) generate event data (decktype and card performance data) for publication.
Previews
DecklistApp.exe:
DecklistApp.exe

DecklistApp Companion (Google Spreadsheet, "A1..." tab, Access Limited):
DecklistApp Companion

DecklistImageExportFixer.exe
DecklistImageExportFixer.exe

www.SITE-SHOT.com Configuration: www.SITE-SHOT.com Configuration
Instructions
GETTING STARTED...
Access to DecklistApp is restricted to trusted individuals only. To obtain a copy, please consult with your administrator. Do not use DecklistApp in a manner other than as instructed below.

Please test DecklistApp and request access to the "DecklistApp Companion" Google spreadsheet at least 24 hours prior to your first use.


BEFORE EACH EVENT, to utilize features (1), (2), (3), and (4)...

  1. Open the "DecklistApp Companion" shortcut to open the Google Spreadsheet. Feel free to "Make a Copy" for your own personal use.
  2. Open the "A1..." tab. Insert accurate data in the highlighted cells. Overwrite previous data if necessary.
    ↪ Note that if testing DecklistApp, do not use a non-zero event identifier. Instead, use i.e. "GFC0", "FLC0", "OTHER0", etc.
    ↪ Though it may seem unimportant, it is actually critical to accurately identify each player's Duelingbook username.
  3. Once all data has been inserted onto the "A1..." sheet, go to the "A2..." sheet, then select File > Download > Save As CSV.
    ↪ For clarity, rename this .csv file as "A2-TO-TournamentName.csv" i.e. A2-GF-GFC11 or A2-FL-FLC16, and move it to the Logs folder.
  4. Launch DecklistApp. Press [C] then [Enter] to create a new .html file. Temporarily leave the app.
  5. While holding [Shift], right-click on "A2-TO-TournamentName.csv" and left-click "Copy as Path".
    ↪ Go back to DecklistApp, press [CTRL] + [V] to Paste the path into the app, then press [Enter]. The app will begin by verifying the legality of all the decklists.
    ↪ At this point, the app creates a .html file to easily view all the decklists in one place with the user-given deck labels. Open it to proceed.
  6. Once the legality is validated, press [V] to validate the deck labels.
    You are responsible for ensuring all labels are accurate to the best of your ability. You must be familiar with the complete list of decktypes (available anytime by pressing [V]).
    ↪ If you're unsure how to label a decklist, give it a temporary name and move on, but submit it to the Goat Decktypes Discord server for evaluation prior to publication.
  7. The app will make its own judgments about what each decklist is to expedite the assignment of labels.
    ↪ You can press [C] to accept its judgment, press [V] to view all the decktypes, or type in a decktype's name or number to accept it and move on.
    ↪ The app will speed through decktypes it believes are correctly labeled. Pay attention to which decklists it skips as you perform your independent evaluation!
    ↪ If you disagree with a label that both a user and the app has assigned, you must exit the app, edit the file with a different label for that decklist, and begin again.
  8. Once all decklists have had labels assigned to them, the app will say "All done!".
    ↪ At this point, simply press [Enter] to generate an updated .html file (which will replace the previous .html file, but this time with deck labels validated by you).
    ↪ Note the app will generate a .csv file called "TO-TournamentName-Decklists.csv". Do not delete it.
    ↪ Note you may instead press [Y] to also generate .ydk decklist files.

All the decklists all now backed up and the event can proceed without delay! However do not publish anything yet!


AFTER EACH EVENT, to utilize features (5) and (6)...

  1. From the "DecklistApp Companion" Google Spreadsheet, open the "B1..." tab and clear any data previously entered in the highlighted cells.
  2. Open in Notepad the file called "TO-TournamentName-Decklists.csv" that was created before the event.
    ↪ Copy all of the contents in this file and Paste it into the first highlighted cell on the spreadsheet (to the right of "Header >>>").
    ↪ Confirm the top cell says "TO;TournamentName;DiscordUsername;DuelingbookUsername;CorrectDeckLabel;Decklist" exactly (without the quotations).
  3. Add the correct and respective FinalPosition numbers in column C for any player whose decklist you intend to publish. The rest can be left blank.
  4. Once all the data has been inserted into the fields, go to the "B2..." sheet, then select File > Download > Save As CSV.
    ↪ For clarity, rename this .csv file as "B2-TO-TournamentName.csv" i.e. B2-GF-GFC11 or B2-FL-FLC16, and move it to the Logs folder.
  5. Launch DecklistApp. Press [U] then [Enter] to update the existing .html file. Temporarily leave the app.
  6. While holding [Shift], right-click on "B2-TO-TournamentName.csv" and left-click "Copy as Path".
    ↪ Go back to DecklistApp, press [CTRL] + [V] to paste this into the program, then press [Enter].
  7. You should see a message that says "All done!".
    ↪ At this point, simply press [Enter] to generate an updated .html file (which will replace the previous .html file, but this time with final positions inserted by you).
    ↪ Note the app will generate an updated .csv file called "TO-TournamentName-Decklists.csv". Do not delete it.
    ↪ Note you may instead press [Y] to generate .ydk decklist files.
  8. Please send the final "TO-TournamentName-Decklists.csv" file to Kristopher Perovic so that he may update the database used to quickly assign labels to decklists.

You're now ready to generate decklist images and event data for publication!

HOW TO GENERATE DECKLIST IMAGES...

  1. At any time (before or after a tournament), you may open the .html file generated by DecklistApp to export an any number of decklists as images by pressing the appropriate button.
    The images generated directly by the .html file are not ready for use right away. The Javascript library used doesn't properly capture the wallpaper, so another step must be added.
    Do not publish decklists without first validating their label or including the player's final position in the event.
  2. After any number of images are exported, select any amount (one, several, or all), then drag and drop them onto the DecklistImageExportFixer file.
    ↪ On Windows, perform this behavior as if you were dragging and dropping files into a folder, but instead drop them onto this file.
    ↪ This should replace the initial images with fixed versions that are properly cropped and include the appropriate background.
    ↪ These images are now ready for publication.
HOW TO GENERATE EVENT DATA, to showcase decktype and card performance data...

WARNING! By default, the GoatBot pairs players on Challonge using their Discord username without including their ID number. The problem with this is that Discord usernames are not unique. In other words, even though kperovic#3560 is the real Kristopher Perovic, someone else can register for Discord with the username kperovic#1234. For this reason, you must ensure the Duelingbook usernames used thoughout the "DecklistApp Companion" Google Spreadsheet are unique and accurate, and in particular those shown on sheet "B1...". This is because event data will be generated based on the unique Duelingbook usernames, not the Discord usernames.

  1. From the "DecklistApp Companion" Google Spreadsheet, open the "C1..." tab and clear any data previously entered in the highlighted cells.
  2. Open the "Log" section of the appropriate Challonge bracket, i.e. https://www.challonge.com/PWCQ3/log. Note this page is paginated.
    ↪ Starting with "Ended the tournament", Copy and Paste the contents of the log into column A on the "C1..." sheet. Go to the next page of the log if needed.
    ↪ As you enter data onto the spreadsheet, be sure to append (not overwrite) previously entered data.
    ↪ Continue copying and pasting the contents of each page until you reach the first entry, "Created this tournament".
    ↪ Note the spreadsheet will parse the tournament results and assume winners and losers based on the parsed language.
  3. If using the GoatBot default settings, select "DiscordUsername" in response to the question "How are Challonge pairings made?".
    ↪ If the pairings were made with unique Duelingbook usernames, select that option instead and skip the next step.
  4. The spreadsheet will try to detect whether any errors have been made, such as inconsistent or duplicate Discord usernames.
    ↪ If an error has been detected, you may manually insert Duelingbook usernames that correspond to the data inserted on sheet "B1...".
  5. Only proceed once all data has been inserted into the highlighted fields and no errors have been detected.
  6. Go to http://www.site-shot.com and insert the parameters shown to the right to generate a screenshot of http://www.kperovic.com/goatformat/EventData.html.
    ↪ After inserting the correct parameters, select "SHOT".
  7. Download this image to your PC, then upload it to http://www.imgur.com. Proceed to the next step once you have the direct URL to the image.
  8. In the Weebly website editor for GoatFormat.com, drag "Embed Code" into any post editor and input the following HTML: <a href="https://i.imgur.com/REPLACE.png"><img src="https://i.imgur.com/REPLACE.png" style="width:100%"></a>