T2k5's Duelyst helper scripts:

Forum thread Card Lore Codex Chapters Gauntlet stats

Script install instructions


Embedding to duelyst.js, so the script always loads when you start the game:

Windows
  1. Go to C:\Users\YOUR_USERNAME\.counterplay\duelyst\
  2. Open the folder for the current version of the game (for example, v1.67.0)
  3. Open \resources\app\src\
  4. Edit duelyst.js with a text editor, I recommend Notepad++ because it can deal with larger files better than your default notepad.
    • Make sure you're editing the correct file; if you have file extensions hidden, you will see two files named "duelyst", duelyst.js is the one that's over 5MB.
  5. Click the Copy button for the script you want to use on this page, and paste to the VERY END of duelyst.js.
  6. Save the file and launch the game (restart if it was already running), you should be good to go!
Steam
  1. Locate your Duelyst installation folder, right-click Duelyst in Steam -> properties -> local files -> browse local files
  2. Open \resources\app\src\
  3. Edit duelyst.js with a text editor, I recommend Notepad++ because it can deal with larger files better than your default notepad.
    • Make sure you're editing the correct file; if you have file extensions hidden, you will see two files named "duelyst", duelyst.js is the one that's over 5MB.
  4. Click the Copy button for the script you want to use on this page, and paste to the VERY END of duelyst.js.
  5. Save the file and launch the game (restart if it was already running), you should be good to go!
OS X
  1. Go to ~/.counterplay/duelyst/
  2. Open the folder for the current version of the game (for example, v1.67.0)
  3. Edit package contents of Duelyst.app, go to /Resources/app/src
  4. Edit duelyst.js with a text editor
    • Make sure you're editing the correct file; if you have file extensions hidden, you will see two files named "duelyst", duelyst.js is the one that's over 5MB.
  5. Click the Copy button for the script you want to use on this page, and paste to the VERY END of duelyst.js.
  6. Save the file and launch the game (restart if it was already running), you should be good to go!

Using the devtools to only load the script for a single game launch (or to execute scripts that have no loaders yet)

  1. Open the dev tools (ctrl+shift+i / cmd+opt+i in client, f12 in browser)
  2. Open the console tab, it may be hidden, click the » to find it.
  3. Click the Copy button for the script you want to use on this page
  4. Click the bottom row of the console, paste, hit enter and it should run.

Script installer for Windows (Steam support coming at some point, maybe)

THE SCRIPTS THEMSELVES WORK JUST FINE ON STEAM, ONLY THE INSTALLER DOESN'T. READ THE INSTALL INSTRUCTIONS.

FineNerds made an awesome installer for my scripts, that handles the changes to your duelyst.js with just a few clicks! You only need to locate your game client directory (.counterplay) for it once, and after that you can just tick the scripts you want to use, then hit "apply".

Download installer

Sample image

Gauntlet logger

Logs the card options you're given in gauntlet. Shows you statistics of card rarities etc. and sends the options to my server too, so we can get a massive sample size for stats. You can find the current statistics here, updated every 5 minutes.

THIS SCRIPT UTILIZES A METHOD I'VE NEVER USED WITH DUELYST BEFORE, AND SO FAR EVERYTHING HAS WORKED FINE FOR ME, BUT IF YOU NOTICE WEIRD BUGS WITH THIS SCRIPT ON, PLEASE REPORT TO ME!

Loader:

$.getScript('https://duelyststats.info/scripts/gauntletLogger.js', function(){});

Deck Tracker

Shows what cards you have left in your deck. Supports custom templates (everything is customizable).

Sample image

  • Change templates with q and e. Template sample
  • Reposition by clicking on the game board, then press r and it will move to your mouse cursor. Alternatively, you can use the arrow keys.
  • Scale with a and d keys.
  • Change opacity with w and s keys.
  • Doesn't work in practice mode, since it does things differently.
  • Draw percentages, opponent play tracking etc coming later.

Loader:

$.getScript('https://duelyststats.info/scripts/deckTracker.js', function(){});

Script bundle

Contains all my generic helper scripts that don't alter default behaviour (so no automute etc.) in a single package, so you don't have to add everything manually.

If you use this bundle, don't load the scripts included in the bundle separately, or you will have a bad time.

Includes:

Loader:

$.getScript('https://duelyststats.info/scripts/bundle.js', function(){});

Faction statistics

In bundle

Lists faction statistics nicely in-game. Also shows total statistics for the current season, even for your friends, so you'll know when you've played over 100 S-Rank games. Sample image Season stats sample

  1. Click the "Create stat zero point" button in the stats modal.
  2. Paste into your duelyst.js and save, the same way as you the stats script.

Loader:

$.getScript('https://duelyststats.info/scripts/newstatscript.js', function(){});

Collection enhancements

In bundle

Augments your collection manager, features:

  • Allows smart disenchanting of extra cards with just one click per card. Just click the recycle icon to the right of the card you want to DE extras of in the menu. Sample image
  • Allows you to search cards with the following terms:
    • attackX
    • lifeX (or healthX)
    • manaX
    • extracards
    • missing
  • Export collection to CSV, so you can share it and open in Excel, OpenOffice etc.
  • Adds a button that opens ALL orbs with a single click
  • Orb opening statistics
  • Export deck to DuelystDB or Manaspring editor
    • Click the icon next to your deck name
    • Requires unique deck names per faction! DON'T name multiple Abyssian decks "Abyssian 1", for instance.
  • Import deck from DuelystDB or Manaspring editor
    • Go to collection -> new deck.
    • Click the icon ON A COMPLETELY EMPTY DECK.
    • Paste the FULL URL to the DuelystDB or Manaspring deck builder link for your deck, example of a valid url: DuelystDB Manaspring
    • Click the icon again.
    • Let the script work in peace, don't click anything!
    • If you're missing cards that are in the deck, it will wait for a while without doing anything, and it will give you a list of the missing cards once everything is done.
  • Collection statistics (missing cards etc) (WIP)

Loader:

$.getScript('https://duelyststats.info/scripts/collectionEnhancement.js', function(){var collectionMod = new CollectionEnhancementModule();});

Friend utilities

In bundle

This script augments your friend-list and functions related to friends. Features:

  • Remembers what you have written in the friend chat input without sending (separately for each friend), recalling that input when you get back to chat if you were challenged or closed chat for some other reason while writing.
  • Tells you who cancelled a challenge, instead of just saying "Your opponent cancelled the invite."
  • Makes chat text selectable.

Loader:

$.getScript('https://duelyststats.info/scripts/rememberChat.js', function(){});

UI Helpers

In bundle

Small helpful utilities will be added here. For now, it only shows your rank chevrons in the profile summary page.

Loader:

$.getScript('https://duelyststats.info/scripts/UIHelper.js', function(){var UIHelperMod = new UIHelperModule();});

S-Rank Ladder

In bundle

Shows the current S-Rank ladder status.

Loader:

$.getScript('https://duelyststats.info/scripts/ladder.js', function(){});

Autotipper

Automatically tips after each win, you will ALWAYS tip with this on.

Loader:

$.getScript('https://duelyststats.info/scripts/autotip.js', function(){});

Enable Sandbox mode

Brings back the single-player sandbox mode.

DO NOT REPORT BUGS THAT YOU FIND IN SANDBOX MODE, IT WORKS DIFFERENTLY FROM ONLINE PLAY, AND IS NOT OFFICIALLY SUPPORTED!

This one doesn't need a loader, just paste this into duelyst.js or through devtools:

setTimeout(function(){SDK.PlayModeFactory.playModes.sandbox.isHiddenInUI = false;},5000);

Show full turn timer

Shows you the turn timer from 90 seconds.

Replace your /resources/sfx/sfx_unit_onclick.m4a with an empty .m4a file (get it here) or you'll probably go crazy from the bleeping!

This one doesn't need a loader, just paste this into duelyst.js or through devtools:

setTimeout(function(){CONFIG.TURN_TIME_SHOW = 90;},10000);

Disable card backs

COMPLETELY disables card back animations, only shows the front.

This one doesn't need a loader, just paste this into duelyst.js or through devtools:

setTimeout(function(){CONFIG.OPPONENT_PLAYED_CARD_TRANSITION_DURATION = 0;CONFIG.OPPONENT_PLAYED_CARD_SHOW_DURATION = 1;},10000);

Automute opponent

Automatically mutes your opponent, so you don't have to see their BM emotes.

Loader:

$.getScript('https://duelyststats.info/scripts/automute.js', function(){});

Hide unopened crates notification

Hides the crate count in main menu, since it seems to annoy some people.

Loader:

$.getScript('https://duelyststats.info/scripts/hideCrateNotification.js', function(){});

Adblock

Hides annoying ads (Shimzar pre-order for now).

Loader:

$.getScript('https://duelyststats.info/scripts/adblock.js', function(){});

Speedhack

Speeds up movement animations etc, to make turns clearer. Doesn't affect delays caused by attacking or eggs spawning, those require more extensive tampering with the game. The normal version keeps some speed scaling depending on animation type, the insane version makes EVERYTHING as fast as possible.

Normal:

$.getScript('https://duelyststats.info/scripts/speedhack.js', function(){});

Insane:

$.getScript('https://duelyststats.info/scripts/speedhack_fastest.js', function(){});

Caster replay sync

Intended for casters who want to show the hands of both players, will be useless for most other people! Adds a SYNC -button to your replays, which has a timer ticking down from 30 secs. It syncs to your system clock, so both clients should have the same time. Pause the game as soon as the mulligan has resolved (or use the auto-pause version), then wait until the timer is high enough for you to have time to click on both clients, then click the SYNC button on both clients to engage. It will start the replays once the timer runs to 0.

Original loader:

$.getScript('https://duelyststats.info/scripts/replaySync.js', function(){});

Post-mulligan auto-pause version:

$.getScript('https://duelyststats.info/scripts/replaySyncMulliganPause.js', function(){});

API functions and Nightbot scripts

Get card data:

Gives you the details of a specific card. Supports partial names, returns a list of names if multiple results are found.

!card: $(customapi https://duelyststats.info/scripts/carddata/get.php?cardName=$(query))

https://duelyststats.info/scripts/carddata/get.php?cardName=CARD_NAME_HERE

Get random card:

Gives you the details of a random card.

!randomcard: $(customapi https://duelyststats.info/scripts/carddata/get.php?random=1)

https://duelyststats.info/scripts/carddata/get.php?random=1

Collection statistics (OLD WIP, will be implemented in Collection enhancements)

Instructions: Run script through when you want to see them, proper integration with code-embedding support coming soon™

Script:

$.getScript('https://duelyststats.info/scripts/collectionscript.js', function(){});

Remove decklists (WIP)

Instructions: Open script, copy, edit in decknames you want to preserve, then run through devtools while on the collection page

Script: Open, copy and edit this, then run