Embedding to duelyst.js, so the script always loads when you start the game:
Bandai launcher
Go to wherever you installed the launcher.
Open \resources\app\src\
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.
Click the Copy button for the script you want to use on this page, and paste to the VERY END of duelyst.js.
Save the file and launch the game (restart if it was already running), you should be good to go!
Steam
Locate your Duelyst installation folder, right-click Duelyst in Steam -> properties -> local files -> browse local files
Open \resources\app\src\
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.
Click the Copy button for the script you want to use on this page, and paste to the VERY END of duelyst.js.
Save the file and launch the game (restart if it was already running), you should be good to go!
OS X
Go to ~/.counterplay/duelyst/
Open the folder for the current version of the game (for example, v1.67.0)
Edit package contents of Duelyst.app, go to /Resources/app/src
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.
Click the Copy button for the script you want to use on this page, and paste to the VERY END of duelyst.js.
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)
Open the dev tools (ctrl+shift+i / cmd+opt+i in client, f12 in browser)
Open the console tab, it may be hidden, click the » to find it.
Click the Copy button for the script you want to use on this page
Click the bottom row of the console, paste, hit enter and it should run.
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.
Creating a custom template:
Below, you can see a completed template code that can be added into duelyst.js .
Just copy this sample template and edit however you like within the // ***EDITABLE AREA START*** // and // ***EDITABLE AREA END*** // tags, just make sure to change the machineName to something unique. Other than the stuff inside colors: rarity and colors: extracard, none of the styles in the sample are required.
The styles are all basic CSS, so knowing CSS helps.
$(function () {
addCustomDeckTrackerTemplate();
function addCustomDeckTrackerTemplate() {
console.log('Trying to add template');
if (typeof deckTracker !== 'undefined' && Object(deckTracker)) {
console.log('Adding template');
// You can send these to me if you think they're good enough for public use
deckTracker.addTemplate(
{
// ***EDITABLE AREA START*** //
// Human readable name
name: 'Sample theme',
// UNIQUE machine name, so you can deckTracker.setTemplate('tracker_sample');
machineName: 'tracker_sample',
// Your name
creator: 'T2k5',
styles: {
// Tracker container
'playerCardsContainer': {
'color': '#FFFFFF',
'width': '30rem'
},
// Single card container
'card': {
'padding': '0.2em 0.1em 0.2em 0.4em',
'line-height': '4.5rem',
'width': '100%',
'height': '5.3rem',
// Always use deckTracker.resourcePath if you want to load assets from the game files.
'background-image': 'url(' + deckTracker.resourcePath + '/card_backgrounds/deck_builder_card_bg.png)',
'background-position': '0',
'border-radius': '0 .6rem .6rem 0',
'background-size': 'contain',
'background-repeat': 'no-repeat'
},
// These are used a bit differently, only modify the color values here (make all the same value to disable rarity coloring).
'colors': {
rarity: {
'0': '#FFFFFF',
'1': '#FFFFFF',
'2': '#00faff',
'3': '#c78fe1',
'4': '#ffd723'
},
// Cards created by L'Kian etc. are colored by this.
extraCard: 'rgb(225, 140, 90)'
},
// Card count container
'cardCount': {
'float': 'left',
'width': '2rem',
'height': '100%',
'font-size': '150%'
},
// Card name container
'cardName': {
'float': 'left',
'height': '100%',
'overflow': 'hidden'
},
// Card cost container
'cardCost': {
'float': 'left',
'width': '3.4rem',
'height': '100%',
'text-align': 'center',
'margin-right': '2rem',
'font-size': '120%',
'color': '#0C52A1'
}
}
// ***EDITABLE AREA END*** //
}
);
} else {
setTimeout(function () {
addCustomDeckTrackerTemplate();
}, 2000);
}
}
});
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.
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 imageSeason stats sample
Click the "Create stat zero point" button in the stats modal.
Paste into your duelyst.js and save, the same way as you the stats script.
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: DuelystDBManaspring
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."
Small helpful utilities will be added here. It shows your rank chevrons in the profile summary page, changes deck colors to match the color blip you've chosen for a deck, and adds support for fully custom deck name coloring and styling.
Loader:
$.getScript('https://duelyststats.info/scripts/UIHelper.js', function(){var UIHelperMod = new UIHelperModule();});
Hides annoying ads (preorders etc.) and kills the game's Amazon analytics, because they crash the game completely if you're using Hosts file -based adblockers.
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.
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.
The first time the timer starts running from 30 to 0, it can lag by ~1 second due to it starting while the replay is loading. After it resets back to 30secs, it should be within 20 milliseconds of the other timer.
The auto-pause version pauses automatically after the mulligan, so hit sync after that. If you use the original version, you must do the post-mulligan pause manually. The auto-pause version requires a bit more resources from your computer, since it hijacks your game's devtools console, and may not work on very old toasters.