Skip to content

Instantly share code, notes, and snippets.

@Tcip
Created May 11, 2025 19:41
Show Gist options
  • Save Tcip/4fbccbc43f8f8ee63f6bc36ce36a9e31 to your computer and use it in GitHub Desktop.
Save Tcip/4fbccbc43f8f8ee63f6bc36ce36a9e31 to your computer and use it in GitHub Desktop.
Embervale Arena Opponent (and Self) Battle Stats
javascript:(function()%7Bconst%20opponentPlayerName%20%3D%20document.querySelectorAll(%22div%5Bdata-v-5784ed69%5D%5Bdata-v-9ecbd550%5D%5Bdata-v-41e3c504%5D%20span%22)%3Bconst%20opponentPlayerLevel%20%3D%20document.querySelectorAll(%22div.wait-bar.wait-bar-text.ev-text-shadow%20span%22)%3Bconst%20battleStats%20%3D%20document.querySelectorAll(%22div%5Bclass%3D'stat-number'%5D%5Bdata-v-5784ed69-s%5D%22)%3Bconst%20dmgText%20%3D%20document.querySelector(%22%23battle-stat-dmg%22)%3Bconst%20styles%20%3D%20%7BstatTextValue%3A%20'padding%3A10px%3Bbackground%3A%23963036%3Bcolor%3A%23fff%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CopponentPlayerName%3A%20'padding%3A10px%3Bbackground%3A%231D2123%3Bcolor%3A%23fff%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CopponentPlayerLevel%3A%20'padding%3A10px%3Bbackground%3A%23161111%3Bcolor%3A%23fff%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2ChealthText%3A%20'padding%3A10px%3Bbackground%3A%23963036%3Bcolor%3A%23f49ce2%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CphysDefense%3A%20'padding%3A10px%3Bbackground%3A%23963036%3Bcolor%3A%23fd5858%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CmagDefense%3A%20'padding%3A10px%3Bbackground%3A%23963036%3Bcolor%3A%230bf%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CcritChance%3A%20'padding%3A10px%3Bbackground%3A%23963036%3Bcolor%3A%23ef9c02%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CcritMultiplier%3A%20'padding%3A10px%3Bbackground%3A%23963036%3Bcolor%3A%2312ef02%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2Cevasion%3A%20'padding%3A10px%3Bbackground%3A%23963036%3Bcolor%3A%23efe302%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CdmgText%3A%20'padding%3A10px%3Bbackground%3A%23591219%3Bcolor%3A%23fff%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%2CdmgTextValue%3A%20'padding%3A10px%3Bbackground%3A%23591219%3Bcolor%3A%23fff%3Btext-shadow%3A1px%201px%200%20%23000%2C-1px%20-1px%200%20%23000%2C-1px%201px%200%20%23000%2C1px%20-1px%200%20%23000%2C0px%201px%200%20%23000%2C0px%20-1px%200%20%23000%2C1px%200px%200%20%23000%2C-1px%200px%200%20%23000%3Bfont%3A%20120%25%2F1.5%20fantasy%2Carial%3B'%7D%3Bconsole.groupCollapsed(%60%24%7BopponentPlayerName%5B0%5D.textContent%7D%20(%24%7BopponentPlayerLevel%5B0%5D.textContent.replace(%22LVL.%22%2C%22%22)%7D)%60)%3Bconsole.log(%60%25c%20Name%3A%20%5Ct%5Ct%5Ct%5Ct%5Ct%25c%20%24%7BopponentPlayerName%5B0%5D.textContent%7D%60%2C%20styles.opponentPlayerName%2C%20styles.opponentPlayerName)%3Bconsole.log(%60%25c%20Level%3A%20%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%25c%20%24%7BopponentPlayerLevel%5B0%5D.textContent.replace(%22LVL.%22%2C%22%22)%7D%60%2C%20styles.opponentPlayerLevel%2C%20styles.opponentPlayerLevel)%3Bconsole.log(%60%25c%20Health%3A%20%5Ct%5Ct%5Ct%5Ct%5Ct%25c%20%24%7BbattleStats%5B0%5D.textContent%7D%60%2C%20styles.healthText%2C%20styles.statTextValue)%3Bconsole.log(%60%25c%20Phys.%20Defense%3A%20%5Ct%25c%20%24%7BbattleStats%5B1%5D.textContent%7D%60%2C%20styles.physDefense%2C%20styles.statTextValue)%3Bconsole.log(%60%25c%20Mag.%20Defense%3A%20%5Ct%25c%20%24%7BbattleStats%5B2%5D.textContent%7D%60%2C%20styles.magDefense%2C%20styles.statTextValue)%3Bconsole.log(%60%25c%20Crit%20Chance%3A%20%5Ct%5Ct%25c%20%24%7BbattleStats%5B3%5D.textContent%7D%60%2C%20styles.critChance%2C%20styles.statTextValue)%3Bconsole.log(%60%25c%20Crit%20Multiplier%3A%20%5Ct%25c%20%24%7BbattleStats%5B4%5D.textContent%7D%60%2C%20styles.critMultiplier%2C%20styles.statTextValue)%3Bconsole.log(%60%25c%20Evasion%3A%20%5Ct%5Ct%5Ct%5Ct%25c%20%24%7BbattleStats%5B5%5D.textContent%7D%60%2C%20styles.evasion%2C%20styles.statTextValue)%3Bconsole.log(%60%25c%20Dmg%3A%20%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%25c%20%24%7BdmgText.textContent.trim().replace(%22Dmg%3A%20%22%2C%22%22)%7D%60%2C%20styles.dmgText%2C%20styles.dmgTextValue)%3Bconsole.groupEnd()%7D)()
const opponentPlayerName = document.querySelectorAll("div[data-v-5784ed69][data-v-9ecbd550][data-v-41e3c504] span");
const opponentPlayerLevel = document.querySelectorAll("div.wait-bar.wait-bar-text.ev-text-shadow span");
const battleStats = document.querySelectorAll("div[class='stat-number'][data-v-5784ed69-s]");
const dmgText = document.querySelector("#battle-stat-dmg");
const styles = {
statTextValue: 'padding:10px;background:#963036;color:#fff;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
opponentPlayerName: 'padding:10px;background:#1D2123;color:#fff;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
opponentPlayerLevel: 'padding:10px;background:#161111;color:#fff;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
healthText: 'padding:10px;background:#963036;color:#f49ce2;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
physDefense: 'padding:10px;background:#963036;color:#fd5858;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
magDefense: 'padding:10px;background:#963036;color:#0bf;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
critChance: 'padding:10px;background:#963036;color:#ef9c02;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
critMultiplier: 'padding:10px;background:#963036;color:#12ef02;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
evasion: 'padding:10px;background:#963036;color:#efe302;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
dmgText: 'padding:10px;background:#591219;color:#fff;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;',
dmgTextValue: 'padding:10px;background:#591219;color:#fff;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,0px 1px 0 #000,0px -1px 0 #000,1px 0px 0 #000,-1px 0px 0 #000;font: 120%/1.5 fantasy,arial;'
};
console.groupCollapsed(`${opponentPlayerName[0].textContent} (${opponentPlayerLevel[0].textContent.replace("LVL.","")})`);
console.log(`%c Name: \t\t\t\t\t%c ${opponentPlayerName[0].textContent}`, styles.opponentPlayerName, styles.opponentPlayerName);
console.log(`%c Level: \t\t\t\t\t\t%c ${opponentPlayerLevel[0].textContent.replace("LVL.","")}`, styles.opponentPlayerLevel, styles.opponentPlayerLevel);
console.log(`%c Health: \t\t\t\t\t%c ${battleStats[0].textContent}`, styles.healthText, styles.statTextValue);
console.log(`%c Phys. Defense: \t%c ${battleStats[1].textContent}`, styles.physDefense, styles.statTextValue);
console.log(`%c Mag. Defense: \t%c ${battleStats[2].textContent}`, styles.magDefense, styles.statTextValue);
console.log(`%c Crit Chance: \t\t%c ${battleStats[3].textContent}`, styles.critChance, styles.statTextValue);
console.log(`%c Crit Multiplier: \t%c ${battleStats[4].textContent}`, styles.critMultiplier, styles.statTextValue);
console.log(`%c Evasion: \t\t\t\t%c ${battleStats[5].textContent}`, styles.evasion, styles.statTextValue);
console.log(`%c Dmg: \t\t\t\t\t\t%c ${dmgText.textContent.trim().replace("Dmg: ","")}`, styles.dmgText, styles.dmgTextValue);
console.groupEnd();
@Tcip
Copy link
Author

Tcip commented May 11, 2025

Embervale Arena Battle Stats

Displays the following stats for your opponent in the Arena. For the game Embervale

  • Player name
  • Player level
  • Health
  • Physical defense
  • Magical defense
  • Critical strike chance
  • Critical strike multiplier
  • Evasion
  • Damage

Note You need to click on a opponent first. And if you want to check your own stats. You can go to Character and hit the bookmarklet

Usage

  1. Create a new bookmark with the Website Address from the file above
  2. While in Arena click on a opponent then click the bookmarklet and open the DevTools to see the result

Arena Battle Stats for Embervale

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment