dmgcalc
Simple stats calculator and compare tool for Genshin Impact. Use the format <atk>/<crate>/<cdmg>/<dmg> for 1 set or 2 sets (1 set followed by the other in the same format), and <dmg> is optional. Use "!dmgcalc help" to start. DM Kai (Qillout#6674) for issues or suggestions.
Privateunrated
Content
276 lines{=(COMMENT):Calc damage and compare artifacts using atk/crit/cdmg/dmg. "sep" is the separator you want to use "/" by default. Don't use space as a separator. Use !dmgcalc with no arguments to start.}
{=(prefix):!}
{=(sep):/}
{=(embedcolor):#60CFB7}
{=(charlevel):80}
{=(targetlevel):90}
{=(defaultres):10}
{=(TCNName):}
{=(HUBLink):}
{=(NO-TOUCHY-BELOW-THIS): Everything configurable is above ^ this line.}
{=():}{=(args):{replace( , ):{args}}}
{=(Lwr):{replace({sep}, ):{lower:{args}}}}
{=(jargs):{join(~):{args}}}
{=(arg1):{list(0):{jargs}}}
{=(arg2):{list(1):{jargs}}}
{=(arg3):{list(2):{jargs}}}
{=(arg4):{list(3):{jargs}}}
{=(arg5):{list(4):{jargs}}}
{=(arg9):}
{=(mvy):{contains(mv):{args}}}{=(fly):{contains(flat):{args}}}
{=(emy):{or({contains(em):{args}}==true|{contains(r):{args}}==true|{contains(f):{args}}==true):true|false}}
{{or({emy}==true|{fly}==true):=(mvy):true}}
{=(react):{or({contains(em):{args}}==true|{contains(r):{args}}==true):Reverse|{if({contains(f):{args}}==true):Forward|None}}}
{=(None):0}{=(Reverse):1.5}{=(Forward):2}
{=(j):{if({in(/):{arg3}}==true):2|{if({m:trunc({list(0):{replace({sep},~):{arg2}}})}>100):2|{if({m:trunc({list(0):{replace({sep},~):{arg1}}})}<=100):2|9}}}}
{=(atk1):{m:{list(0):{replace({sep},~):{arg1}}}}}
{{all({atk1}<0|{atk1}!=):=(atk1):0}}
{=(crate1):{m:{list(1):{replace({sep},~):{arg1}}}}}
{{all({crate1}<0|{crate1}!=):=(crate1):0}}{{all({crate1}>100|{crate1}!=):=(crate1):100}}
{=(cdmg1):{m:{list(2):{replace({sep},~):{arg1}}}}}
{{all({cdmg1}<0|{cdmg1}!=):=(cdmg1):0}}
{=(dmg1):{m:{list(3):{replace({sep},~):{arg1}}}}}
{{all({dmg1}<0|{dmg1}!=):=(dmg1):0}}
{=(atk2):{m:{list(0):{replace({sep},~):{arg{j}}}}}}
{{all({atk2}<0|{atk2}!=):=(atk2):0}}
{=(crate2):{m:{list(1):{replace({sep},~):{arg{j}}}}}}
{{all({crate2}<0|{crate2}!=):=(crate2):0}}{{all({crate2}>100|{crate2}!=):=(crate2):100}}
{=(cdmg2):{m:{list(2):{replace({sep},~):{arg{j}}}}}}
{{all({cdmg2}<0|{cdmg2}!=):=(cdmg2):0}}
{=(dmg2):{m:{list(3):{replace({sep},~):{arg{j}}}}}}
{{all({dmg2}<0|{dmg2}!=):=(dmg2):0}}
{=(mvbork):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}!={arg1}}
{=(mv):{m:({list(0):{replace({sep},~):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}}})}}
{{if({in({sep}):{mv}}==true):=(mv):100}}
{=(spmult):{m:(100+{list(1):{replace({sep},~):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}}})}}
{{or({in(m):{spmult}}==true|{spmult}==):=(spmult):100}}
{=(flat):{m:{list({math:trunc({index(flat):{args}}+1)}):{replace( ,~):{args}}}}}
{{if({in({sep}):{flat}}==true):=(flat):0}}
{=(em):{m:{list(0):{replace({sep},~):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}}}}}
{{or({in(m):{em}}==true|{em}==):=(em):0}}
{=(bonus):{m:{list(1):{replace({sep},~):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}}}}}
{{or({in(m):{bonus}}==true|{bonus}==):=(bonus):0}}
{=(tbonus):{m:{list(2):{replace({sep},~):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}}}}}
{{or({in(m):{tbonus}}==true|{tbonus}==):=(tbonus):0}}
{embed(color):{embedcolor}}
{=(kbork):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}!={arg3}}
{{if({kbork}!=true):=(kbork):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}!={arg3}}}
{=(k):{and({in(/):{arg3}}==true|{kbork}!=true):3|{and({m:trunc({list(0):{replace({sep},~):{arg2}}})}<=100|{m:trunc({list(0):{replace({sep},~):{arg1}}})}>100):2|9}}}
{=(res):{m:trunc({list(0):{replace({sep},~):{arg{k}}}})}}
{=(clvl):{m:trunc({list(1):{replace({sep},~):{arg{k}}}})}}
{{all({clvl}<0|{clvl}!=):=(clvl):1}}{{all({clvl}>90|{clvl}!=):=(clvl):90}}
{=(elvl):{m:trunc({list(2):{replace({sep},~):{arg{k}}}})}}
{{all({elvl}<0|{elvl}!=):=(elvl):1}}{{all({elvl}>100|{elvl}!=):=(elvl):100}}
{=(defred):{m:trunc({list(3):{replace({sep},~):{arg{k}}}})}}
{{all({defred}>90|{defred}!=):=(defred):90}}
{=(defig):{m:trunc({list(4):{replace({sep},~):{arg{k}}}})}}
{{all({defig}>90|{defig}!=):=(defig):90}}
{{if({in(m:):{res}}==true):=(res):{defaultres}}}
{{if({in(m:):{clvl}}==true):=(clvl):{charlevel}}}
{{if({in(m:):{elvl}}==true):=(elvl):{targetlevel}}}
{{if({in(m:):{defred}}==true):=(defred):0}}
{{if({in(m:):{defig}}==true):=(defig):0}}
{=(resd):{m:{res}/100}}
{=(resmult):{if({resd}<0):{m:1-({resd}/2)}|{if({resd}<0.75):{m:1-{resd}}|{m:1/(4*{resd}+1)}}}}
{=(defredm):{m:1-({defred}/100)}}{=(defigm):{m:1-({defig}/100)}}
{=(defmult):{m:({clvl}+100)/({clvl}+100+({elvl}+100)*{defredm}*{defigm})}}
{=(debug):false}
{=(help):{if({args}==):1|0}}{{if({contains(help):{Lwr}}==true):=(help):1}}
{=(helpall):0}
{{and({contains(all):{Lwr}}==true|{help}==1):=(helpall):1}}
{{if({contains(help):{Lwr}}==true):=(helpall):1}}
{=(helpmults):0}
{{and({contains(mv):{Lwr}}==true|{help}==1):=(helpmults):1}}
{{and({contains(mult):{Lwr}}==true|{help}==1):=(helpmults):1}}
{{and({contains(flat):{Lwr}}==true|{help}==1):=(helpmults):1}}
{=(helpres):0}
{{and({contains(res):{Lwr}}==true|{help}==1):=(helpres):1}}
{{and({contains(shred):{Lwr}}==true|{help}==1):=(helpres):1}}
{{and({contains(target):{Lwr}}==true|{help}==1):=(helpres):1}}
{=(helpem):0}
{{and({contains(em):{Lwr}}==true|{help}==1):=(helpem):1}}
{{and({contains(amp):{Lwr}}==true|{help}==1):=(helpem):1}}
{=(helpmore):0}
{{and({contains(more):{Lwr}}==true|{help}==1):=(helpmore):1}}
{{and({contains(advanced):{Lwr}}==true|{help}==1):=(helpmore):1}}
{=(helpmv):0}
{{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):=(help):0}}
{{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):=(helpall):0}}
{=(null):null}
{{if({in(m):{atk1}}==true):=(atk1):null}}
{{if({in(m):{crate1}}==true):=(crate1):null}}
{{if({in(m):{cdmg1}}==true):=(cdmg1):null}}
{{if({in(m):{dmg1}}==true):=(dmg1):null}}
{{if({in(m):{atk2}}==true):=(atk2):null}}
{{if({in(m):{crate2}}==true):=(crate2):null}}
{{if({in(m):{cdmg2}}==true):=(cdmg2):null}}
{{if({in(m):{dmg2}}==true):=(dmg2):null}}
{{if({emy}==false):=(em):0}}{{if({emy}==false):=(bonus):0}}{{if({emy}==false):=(tbonus):0}}
{{if({fly}==false):=(flat):0}}
{=(emb):{m:(2.78*{em})/({em}+1400)}}
{=(amp):{m:1+{emb}+({bonus}/100)}}
{=(trans):{m:(16*{em})/({em}+2000)}}
{=(eatkc1):{m:{atk1}*(1+{crate1}*{cdmg1}/100^2)}}
{=(eatkc1):{m:round({eatkc1}*10^2)/10^2}}
{=(eatkc2):{m:{atk2}*(1+{crate2}*{cdmg2}/100^2)}}
{=(eatkc2):{m:round({eatkc2}*10^2)/10^2}}
{=(midd1):{m:{atk1}*(1+{dmg1}/100)}}{=(flat1):{m:{flat}*(1+{dmg1}/100)*(1+({crate1}*{cdmg1}/100^2))}}
{=(eatkd1):{m:{midd1}+{midd1}*({crate1}*{cdmg1}/100^2)}}
{=(eatkd1):{m:round({eatkd1}*10^2)/10^2}}
{=(midd2):{m:{atk2}*(1+{dmg2}/100)}}{=(flat2):{m:{flat}*(1+{dmg2}/100)*(1+({crate2}*{cdmg2}/100^2))}}
{=(eatkd2):{m:{midd2}+{midd2}*({crate2}*{cdmg2}/100^2)}}
{=(eatkd2):{m:round({eatkd2}*10^2)/10^2}}
{=(form):null}
{{if({in(m):{eatkd2}}==true):{if({in(m):{eatkd1}}==true):{if({in(m):{eatkc2}}==true):{if({in(m):{eatkc1}}==true):=(help):1|=(form):c1}|=(form):c2}|=(form):d1}|=(form):d2}}
{=(cahigher):{m:{eatkc1}*100/{eatkc2}-100}}
{=(cahigher):{m:round({cahigher}*10^2)/10^2}}
{=(cbhigher):{m:{eatkc2}*100/{eatkc1}-100}}
{=(cbhigher):{m:round({cbhigher}*10^2)/10^2}}
{=(dahigher):{m:{eatkd1}*100/{eatkd2}-100}}
{=(dahigher):{m:round({dahigher}*10^2)/10^2}}
{=(dbhigher):{m:{eatkd2}*100/{eatkd1}-100}}
{=(dbhigher):{m:round({dbhigher}*10^2)/10^2}}
{=(flat1):{m:{flat}*(1+{dmg1}/100)}}{=(flat2):{m:{flat}*(1+{dmg2}/100)}}
{=(dmgfinal11):{m:round(({midd1}*({mv}/100)*({spmult}/100)+{flat1})*{resmult}*{defmult})}}
{=(dmgfinal12):{m:round(({midd1}*({mv}/100)*({spmult}/100)+{flat1})*(1+{cdmg1}/100)*{resmult}*{defmult})}}
{=(dmgfinal21):{m:round(({midd2}*({mv}/100)*({spmult}/100)+{flat2})*{resmult}*{defmult})}}
{=(dmgfinal22):{m:round(({midd2}*({mv}/100)*({spmult}/100)+{flat2})*(1+{cdmg2}/100)*{resmult}*{defmult})}}
{=(amp1rn):{m:round({dmgfinal11}*1.5*{amp})}}
{=(amp1rc):{m:round({dmgfinal12}*1.5*{amp})}}
{=(amp1fn):{m:round({dmgfinal11}*2*{amp})}}
{=(amp1fc):{m:round({dmgfinal12}*2*{amp})}}
{=(amp2rn):{m:round({dmgfinal21}*1.5*{amp})}}
{=(amp2rc):{m:round({dmgfinal22}*1.5*{amp})}}
{=(amp2fn):{m:round({dmgfinal21}*2*{amp})}}
{=(amp2fc):{m:round({dmgfinal22}*2*{amp})}}
{=(msgc1):{target(mention)}, your {if({mvy}==true):output damage|effective Atk}: **{eatkc1}**}
{=(msgd1):{target(mention)}, your {if({mvy}==true):output damage|effective Atk}: **{eatkd1}**}
{=(msgc2):{target(mention)}, {if({mvy}==true):output damage|effective Atk} for
`Set 1:` **{eatkc1}** {if({eatkc1}>{eatkc2}):(+{cahigher}%)}
`Set 2:` **{eatkc2}** {if({eatkc2}>{eatkc1}):(+{cbhigher}%)} }
{=(msgd2):{target(mention)}, {if({mvy}==true):output damage|effective Atk} for
`Set 1:` **{eatkd1}** {if({eatkd1}>{eatkd2}):(+{dahigher}%)}
`Set 2:` **{eatkd2}** {if({eatkd2}>{eatkd1}):(+{dbhigher}%)}}
{{and({mvy}==true|{or({form}==c1|{form}==c2):true}==true):=(helpmv):1}}
{=(c1):one set w/o dmg%}{=(d1):one set w/ dmg%}{=(c2):two sets w/o dmg%}{=(d2):two sets w/ dmg%}
{{if({in(m):{eatkc1}}==true):=(eatkc1):null}}
{{if({in(m):{eatkc2}}==true):=(eatkc2):null}}
{{if({in(m):{eatkd1}}==true):=(eatkd1):null}}
{{if({in(m):{eatkd2}}==true):=(eatkd2):null}}
{=(estats):With lvl {clvl} character and lvl {elvl} target, with {if({res}<0):{m:trunc({res}/2)}|{res}}% RES and {defred}% DEF shred{if({defig}!=0):, and {defig}% DEF Ignore}.}
{=(helpmsg):__**Syntax**__:
`{prefix}dmgcalc <atk>{sep}<crit>{sep}<cdmg>{sep}<dmg>`
● **<atk>** - Total attack, or base+bonus attack, or def/hp in case of def/hp scaling.
● **<crit>** - Crit Rate%
● **<cdmg>** - Crit Damage%
● **<dmg>** - Elemental and other Damage%
● For single sets: `{prefix}dmgcalc atk{sep}crit{sep}cdmg`
● Comparing sets and DMG%:
`{prefix}dmgcalc atk1{sep}crit1{sep}cdmg1{sep}dmg1 atk2{sep}crit2{sep}cdmg2{sep}dmg2`
__**Examples**__:
● 1 set with atk crit cdmg dmg : `{prefix}dmgcalc 100{sep}5{sep}50{sep}40`
● 2 sets comparison with only atk and crit: `{prefix}dmgcalc 100{sep}5{sep}50 110{sep}10{sep}80`}
{=(targetmsg):__**Syntax**:__
` <res>{sep}<charlvl>{sep}<targetlvl>{sep}<defshred>{sep}<defignore>`
● **<res>** - Final RES of the enemy after shredding – Do not halve negative values.
● **<charlvl>** - Your character's level.
● **<targetlvl>** - The target's level.
● **<defshred>** - Any Defense shred the target is afflicted with.
● **<defignore>** - Defense ignore inherent to the talent used. Works the same as def shred but is multiplicative with it.
__**Example**__:
● 1 set with atk crit cdmg dmg :
`{prefix}dmgcalc 2100{sep}65{sep}130{sep}90 10-40{sep}90{sep}100{sep}15{sep}60 mv 240`
Shows a regular dmgcalc with target resistances, in this case
`10` RES target, VV shredded for a total of `-30` RES, which the formula will halve to `-15`.
`90` character and `100` target level.
`15`% DEF shred (eg. Lisa A4)
`60`% DEF IGNORE (eg. Raiden C2).
● You can add this target info with 2 set calculation as well.
● All of these values are optional but if you need to enter one value, enter all preceding values as well.}
{=(multmsg):__**Syntax**:__
` mv <mv>{sep}<sp.mult>`
● **<mv>** - Talent multiplier, or mv, in %.
● **<sp.mult>** - Special Multiplier such as Yoimiya E or XQ C4, in %.
__**Example**__:
● Yoimiya final NA hit with t10 AA and t10 E :
`{prefix}dmgcalc 2100{sep}65{sep}130{sep}90 mv 199.7/161.74`
Shows a dmgcalc with default target resistances
`199.7`% Talent Value, and `161.74`% Special Multiplier.
● Special Multiplier value is optional, enter only `mv <mv>` without any separator.}
{=(emmsg):__**Syntax**:__
` em <em>{sep}<amp.bonus>`
● **<em>** - Your character's total Elemental Mastery.
● **<amp.bonus>** - Vape/Melt bonus % such as from artifact set effects.
__**Example**__:
● Character with 78 EM and buffed with Kazuha C2 :
`{prefix}dmgcalc 2100{sep}65{sep}130{sep}90 mv 100 em 78+200/15`
Shows a dmgcalc with default target resistances and:
`78+200` or 278 Elemental Mastery
`15`% Reaction bonus to the reaction damage.
● Enter ` em <em>` to get final dmg with vape/melt reactions (mv will default to 100% if not provided).
● You can enter `em 0` to get vape/melt dmg with 0 EM as well.}
{=(infomsg):● You can add/subtract/multiply your stats by simply typing them out: `740+890` (say, for buffs).
● You can add a ` debug` at the end on the input to check if the command saw the stats correctly.
● Flat dmg (eg. from Yun Jin Q) can be added with ` flat <flatdmg>` where <flatdmg> is calculated by the buffing character's scaling stat * the talent value%. You can do this right here in-command like ` flat 3100*0.6539`.
● Advanced: You can also use the mv% to check different parts of your kit with differing stats in a rotation, for example:
Heart of Depth set only provides extra dmg% for Normal and Charged attacks, and not Skill or Burst attacks.
Say if 40% of your damage comes from burst and 60% from Normals, you can calc with ` mv 40` with regular stats and ` mv 60` with the added dmg% from HoD set.
This can help tell the difference certain set bonuses give you.
Orrrr at this point, use a stat optimizer website.
● Hope this tag can save you some time!
— Kai, made for [Jean Mains](https://discord.gg/fSw9xXSyTe){if({TCNName}!=):, and [{TCNName}]({HUBLink})}.
DM for issues with the command.}
{=(helpmvmsg):● Be sure to include dmg% values when also including mv%, flat dmg, or em, otherwise you get a meaningless value.}
{{and({dmg1}==null|{dmg2}!=null):=(help):1}}
{{and({dmg1}==null|{dmg2}!=null):=(debug):true}}
{{and({or({crate1}==null|{cdmg1}==null):true}==true|{atk1}!=null):=(help):1}}
{{and({or({crate1}==null|{cdmg1}==null):true}==true|{atk1}!=null):=(debug):true}}
{{and({or({emy}==true|{fly}==true):true}==true|{dmg1}==null|{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):true}!=true):=(helpmv):1}}
{{and({or({emy}==true|{fly}==true):true}==true|{dmg1}==null|{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):true}!=true):=(debug):true}}
{{and({help}==1|{atk1}!=null|{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):true}!=true):=(debug):true}}
{{if({contains(debug):{Lwr}}==true):=(debug):true}}
{{and({or({moreinfo}==1|{help}==1):true|false}==true|{debug}==false):=(jean):1|=(jean):0}}
{=(debugmsg):__Verify Input__:
```ml
{prefix}dmgcalc {args}
Atk1: {atk1} — Atk2: {atk2}
Crate1: {crate1} — Crate2: {crate2}
Cdmg1: {cdmg1} — Cdmg2: {cdmg2}
Dmg1: {dmg1} — Dmg2: {dmg2}
EAtkC1: {eatkc1} — EAtkC2: {eatkc2}
EAtkD1: {eatkd1} — EAtkD2: {eatkd2}
MV%: {mv}% — Special Mult: {spmult}%
EM: {em} — Amp Bonus: {bonus}
Flat Dmg: {flat} — Output: {{form}}```}Embed
1 line{"color": 5198940, "title": "{if({helpall}==1):Information overload? Try {prefix}dmgcalc for only the basics.}", "footer": {"text": "{and({help}==1|{helpmults}==0|{helpres}==0|{helpem}==0|{helpmore}==0|{helpall}==0):{prefix}dmgcalc help target for more.}{and({helpmults}==0|{helpres}==1|{helpem}==0|{helpmore}==0):{prefix}dmgcalc help mv for more.}{and({helpmults}==1|{helpres}==0|{helpem}==0|{helpmore}==0):{prefix}dmgcalc help em for more.}{and({helpmults}==0|{helpres}==0|{helpem}==1|{helpmore}==0):{prefix}dmgcalc help more for ...more.}"}, "thumbnail": {"url": "{if({jean}==1):https://cdn.discordapp.com/emojis/809795819234131989.png?size=96}"}, "description": "{{if({in(moreinfo):{Lwr}}==true):=(help):0}}{{if({in(moreinfo):{Lwr}}==true):=(helpmv):0}}{{if({in(moreinfo):{Lwr}}==true):=(form):null}}\n{{if({in(targetinfo):{Lwr}}==true):=(help):0}}{{if({in(targetinfo):{Lwr}}==true):=(helpmv):0}}{{if({in(targetinfo):{Lwr}}==true):=(form):null}}\n{all({help}==0|{helpmv}==0):{if({form}==d2):{msgd2}}{if({form}==c2):{msgc2}}{if({form}==d1):{msgd1}}{if({form}==c1):{msgc1}}}\n{all({help}==0|{helpmv}==0|{mvy}==true|{form}==d1|{in(math):{dmgfinal12}}==false):Your final damage excluding reactions should be **{dmgfinal11}** (non-crit) **{dmgfinal12}** (crit).\n{if({emy}==true):\nWith reverse (1.5x) vape/melt: **{amp1rn}** (non-crit) **{amp1rc}** (crit)\nWith forward (2x) vape/melt: **{amp1fn}** (non-crit) **{amp1fc}** (crit)\n}\n{estats}} \n{all({help}==0|{helpmv}==0|{mvy}==true|{form}==d2|{in(math):{dmgfinal12}}==false|{in(math):{dmgfinal22}}==false):Your final damage excluding reactions should be\n`Set 1:` **{dmgfinal11}** (non-crit) | **{dmgfinal12}** (crit)\n`Set 2:` **{dmgfinal21}** (non-crit) | **{dmgfinal22}** (crit)\n{if({emy}==true):With reverse (1.5x) vape/melt:\n`Set 1:` **{amp1rn}** (non-crit) | **{amp1rc}** (crit)\n`Set 2:` **{amp2rn}** (non-crit) | **{amp2rc}** (crit)\nWith forward (2x) vape/melt:\n`Set 1:` **{amp1fn}** (non-crit) | **{amp1fc}** (crit)\n`Set 2:` **{amp2fn}** (non-crit) | **{amp2fc}** (crit)\n}\n{estats}} \n{if({debug}==true):{debugmsg}}\n{and({help}==1|{helpmults}==0|{helpres}==0|{helpem}==0|{helpmore}==0):{helpmsg}}\n\n{if({helpall}==1):{replace(Syntax,Target Resistances):{targetmsg}}\n\n{replace(Syntax,Talent and Special Multipliers):{multmsg}\n{helpmvmsg}}\n\n{replace(Syntax,Elemental Mastery and Amp Damage):{emmsg}}\n\n__**Extras**:__\n{infomsg}}\n{if({helpmults}==1):{multmsg}}{{if({helpmults}==1):=(helpmv):1}}\n{if({helpmv}==1):{helpmvmsg}}\n{if({helpres}==1):{targetmsg}}\n{if({helpem}==1):{emmsg}}\n{if({helpmore}==1):{infomsg}}"}Raw JSON
{
"id": 1129680,
"created_at": "2021-10-29T16:38:13.000Z",
"tag_name": "dmgcalc",
"nsfw": false,
"owner_id": "286129196227624961",
"uses": 227,
"description": "Simple stats calculator and compare tool for Genshin Impact. Use the format <atk>/<crate>/<cdmg>/<dmg> for 1 set or 2 sets (1 set followed by the other in the same format), and <dmg> is optional. Use \"!dmgcalc help\" to start. DM Kai (Qillout#6674) for issues or suggestions.",
"restricted": false,
"shared": false,
"deleted": false,
"safe": "unrated",
"hidden": false,
"guild_id": "537690888764260352",
"sharer": "286129196227624961",
"content": "{=(COMMENT):Calc damage and compare artifacts using atk/crit/cdmg/dmg. \"sep\" is the separator you want to use \"/\" by default. Don't use space as a separator. Use !dmgcalc with no arguments to start.}\n{=(prefix):!}\n{=(sep):/}\n{=(embedcolor):#60CFB7}\n{=(charlevel):80}\n{=(targetlevel):90}\n{=(defaultres):10}\n{=(TCNName):}\n{=(HUBLink):}\n\n{=(NO-TOUCHY-BELOW-THIS): Everything configurable is above ^ this line.}\n\n{=():}{=(args):{replace( , ):{args}}}\n{=(Lwr):{replace({sep}, ):{lower:{args}}}}\n{=(jargs):{join(~):{args}}}\n{=(arg1):{list(0):{jargs}}}\n{=(arg2):{list(1):{jargs}}}\n{=(arg3):{list(2):{jargs}}}\n{=(arg4):{list(3):{jargs}}}\n{=(arg5):{list(4):{jargs}}}\n{=(arg9):}\n{=(mvy):{contains(mv):{args}}}{=(fly):{contains(flat):{args}}}\n{=(emy):{or({contains(em):{args}}==true|{contains(r):{args}}==true|{contains(f):{args}}==true):true|false}}\n{{or({emy}==true|{fly}==true):=(mvy):true}}\n{=(react):{or({contains(em):{args}}==true|{contains(r):{args}}==true):Reverse|{if({contains(f):{args}}==true):Forward|None}}}\n{=(None):0}{=(Reverse):1.5}{=(Forward):2}\n\n{=(j):{if({in(/):{arg3}}==true):2|{if({m:trunc({list(0):{replace({sep},~):{arg2}}})}>100):2|{if({m:trunc({list(0):{replace({sep},~):{arg1}}})}<=100):2|9}}}}\n{=(atk1):{m:{list(0):{replace({sep},~):{arg1}}}}}\n{{all({atk1}<0|{atk1}!=):=(atk1):0}}\n{=(crate1):{m:{list(1):{replace({sep},~):{arg1}}}}}\n{{all({crate1}<0|{crate1}!=):=(crate1):0}}{{all({crate1}>100|{crate1}!=):=(crate1):100}}\n{=(cdmg1):{m:{list(2):{replace({sep},~):{arg1}}}}}\n{{all({cdmg1}<0|{cdmg1}!=):=(cdmg1):0}}\n{=(dmg1):{m:{list(3):{replace({sep},~):{arg1}}}}}\n{{all({dmg1}<0|{dmg1}!=):=(dmg1):0}}\n{=(atk2):{m:{list(0):{replace({sep},~):{arg{j}}}}}}\n{{all({atk2}<0|{atk2}!=):=(atk2):0}}\n{=(crate2):{m:{list(1):{replace({sep},~):{arg{j}}}}}}\n{{all({crate2}<0|{crate2}!=):=(crate2):0}}{{all({crate2}>100|{crate2}!=):=(crate2):100}}\n{=(cdmg2):{m:{list(2):{replace({sep},~):{arg{j}}}}}}\n{{all({cdmg2}<0|{cdmg2}!=):=(cdmg2):0}}\n{=(dmg2):{m:{list(3):{replace({sep},~):{arg{j}}}}}}\n{{all({dmg2}<0|{dmg2}!=):=(dmg2):0}}\n\n{=(mvbork):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}!={arg1}}\n{=(mv):{m:({list(0):{replace({sep},~):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}}})}}\n{{if({in({sep}):{mv}}==true):=(mv):100}}\n{=(spmult):{m:(100+{list(1):{replace({sep},~):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}}})}}\n{{or({in(m):{spmult}}==true|{spmult}==):=(spmult):100}}\n{=(flat):{m:{list({math:trunc({index(flat):{args}}+1)}):{replace( ,~):{args}}}}}\n{{if({in({sep}):{flat}}==true):=(flat):0}}\n{=(em):{m:{list(0):{replace({sep},~):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}}}}}\n{{or({in(m):{em}}==true|{em}==):=(em):0}}\n{=(bonus):{m:{list(1):{replace({sep},~):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}}}}}\n{{or({in(m):{bonus}}==true|{bonus}==):=(bonus):0}}\n{=(tbonus):{m:{list(2):{replace({sep},~):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}}}}}\n{{or({in(m):{tbonus}}==true|{tbonus}==):=(tbonus):0}}\n{embed(color):{embedcolor}}\n\n{=(kbork):{list({math:trunc({index(em):{args}}+1)}):{replace( ,~):{args}}}!={arg3}}\n{{if({kbork}!=true):=(kbork):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}!={arg3}}}\n{=(k):{and({in(/):{arg3}}==true|{kbork}!=true):3|{and({m:trunc({list(0):{replace({sep},~):{arg2}}})}<=100|{m:trunc({list(0):{replace({sep},~):{arg1}}})}>100):2|9}}}\n{=(res):{m:trunc({list(0):{replace({sep},~):{arg{k}}}})}}\n{=(clvl):{m:trunc({list(1):{replace({sep},~):{arg{k}}}})}}\n{{all({clvl}<0|{clvl}!=):=(clvl):1}}{{all({clvl}>90|{clvl}!=):=(clvl):90}}\n{=(elvl):{m:trunc({list(2):{replace({sep},~):{arg{k}}}})}}\n{{all({elvl}<0|{elvl}!=):=(elvl):1}}{{all({elvl}>100|{elvl}!=):=(elvl):100}}\n{=(defred):{m:trunc({list(3):{replace({sep},~):{arg{k}}}})}}\n{{all({defred}>90|{defred}!=):=(defred):90}}\n{=(defig):{m:trunc({list(4):{replace({sep},~):{arg{k}}}})}}\n{{all({defig}>90|{defig}!=):=(defig):90}}\n\n{{if({in(m:):{res}}==true):=(res):{defaultres}}}\n{{if({in(m:):{clvl}}==true):=(clvl):{charlevel}}}\n{{if({in(m:):{elvl}}==true):=(elvl):{targetlevel}}}\n{{if({in(m:):{defred}}==true):=(defred):0}}\n{{if({in(m:):{defig}}==true):=(defig):0}}\n\n{=(resd):{m:{res}/100}}\n{=(resmult):{if({resd}<0):{m:1-({resd}/2)}|{if({resd}<0.75):{m:1-{resd}}|{m:1/(4*{resd}+1)}}}}\n{=(defredm):{m:1-({defred}/100)}}{=(defigm):{m:1-({defig}/100)}}\n{=(defmult):{m:({clvl}+100)/({clvl}+100+({elvl}+100)*{defredm}*{defigm})}}\n\n{=(debug):false}\n{=(help):{if({args}==):1|0}}{{if({contains(help):{Lwr}}==true):=(help):1}}\n{=(helpall):0}\n{{and({contains(all):{Lwr}}==true|{help}==1):=(helpall):1}}\n{{if({contains(help):{Lwr}}==true):=(helpall):1}}\n{=(helpmults):0}\n{{and({contains(mv):{Lwr}}==true|{help}==1):=(helpmults):1}}\n{{and({contains(mult):{Lwr}}==true|{help}==1):=(helpmults):1}}\n{{and({contains(flat):{Lwr}}==true|{help}==1):=(helpmults):1}}\n{=(helpres):0}\n{{and({contains(res):{Lwr}}==true|{help}==1):=(helpres):1}}\n{{and({contains(shred):{Lwr}}==true|{help}==1):=(helpres):1}}\n{{and({contains(target):{Lwr}}==true|{help}==1):=(helpres):1}}\n{=(helpem):0}\n{{and({contains(em):{Lwr}}==true|{help}==1):=(helpem):1}}\n{{and({contains(amp):{Lwr}}==true|{help}==1):=(helpem):1}}\n{=(helpmore):0}\n{{and({contains(more):{Lwr}}==true|{help}==1):=(helpmore):1}}\n{{and({contains(advanced):{Lwr}}==true|{help}==1):=(helpmore):1}}\n{=(helpmv):0}\n{{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):=(help):0}}\n{{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):=(helpall):0}}\n\n{=(null):null}\n{{if({in(m):{atk1}}==true):=(atk1):null}}\n{{if({in(m):{crate1}}==true):=(crate1):null}}\n{{if({in(m):{cdmg1}}==true):=(cdmg1):null}}\n{{if({in(m):{dmg1}}==true):=(dmg1):null}}\n{{if({in(m):{atk2}}==true):=(atk2):null}}\n{{if({in(m):{crate2}}==true):=(crate2):null}}\n{{if({in(m):{cdmg2}}==true):=(cdmg2):null}}\n{{if({in(m):{dmg2}}==true):=(dmg2):null}}\n{{if({emy}==false):=(em):0}}{{if({emy}==false):=(bonus):0}}{{if({emy}==false):=(tbonus):0}}\n{{if({fly}==false):=(flat):0}}\n\n{=(emb):{m:(2.78*{em})/({em}+1400)}}\n{=(amp):{m:1+{emb}+({bonus}/100)}}\n{=(trans):{m:(16*{em})/({em}+2000)}}\n\n{=(eatkc1):{m:{atk1}*(1+{crate1}*{cdmg1}/100^2)}}\n{=(eatkc1):{m:round({eatkc1}*10^2)/10^2}}\n{=(eatkc2):{m:{atk2}*(1+{crate2}*{cdmg2}/100^2)}}\n{=(eatkc2):{m:round({eatkc2}*10^2)/10^2}}\n\n{=(midd1):{m:{atk1}*(1+{dmg1}/100)}}{=(flat1):{m:{flat}*(1+{dmg1}/100)*(1+({crate1}*{cdmg1}/100^2))}}\n{=(eatkd1):{m:{midd1}+{midd1}*({crate1}*{cdmg1}/100^2)}}\n{=(eatkd1):{m:round({eatkd1}*10^2)/10^2}}\n\n{=(midd2):{m:{atk2}*(1+{dmg2}/100)}}{=(flat2):{m:{flat}*(1+{dmg2}/100)*(1+({crate2}*{cdmg2}/100^2))}}\n{=(eatkd2):{m:{midd2}+{midd2}*({crate2}*{cdmg2}/100^2)}}\n{=(eatkd2):{m:round({eatkd2}*10^2)/10^2}}\n\n{=(form):null}\n{{if({in(m):{eatkd2}}==true):{if({in(m):{eatkd1}}==true):{if({in(m):{eatkc2}}==true):{if({in(m):{eatkc1}}==true):=(help):1|=(form):c1}|=(form):c2}|=(form):d1}|=(form):d2}}\n\n{=(cahigher):{m:{eatkc1}*100/{eatkc2}-100}}\n{=(cahigher):{m:round({cahigher}*10^2)/10^2}}\n{=(cbhigher):{m:{eatkc2}*100/{eatkc1}-100}}\n{=(cbhigher):{m:round({cbhigher}*10^2)/10^2}}\n{=(dahigher):{m:{eatkd1}*100/{eatkd2}-100}}\n{=(dahigher):{m:round({dahigher}*10^2)/10^2}}\n{=(dbhigher):{m:{eatkd2}*100/{eatkd1}-100}}\n{=(dbhigher):{m:round({dbhigher}*10^2)/10^2}}\n\n{=(flat1):{m:{flat}*(1+{dmg1}/100)}}{=(flat2):{m:{flat}*(1+{dmg2}/100)}}\n{=(dmgfinal11):{m:round(({midd1}*({mv}/100)*({spmult}/100)+{flat1})*{resmult}*{defmult})}}\n{=(dmgfinal12):{m:round(({midd1}*({mv}/100)*({spmult}/100)+{flat1})*(1+{cdmg1}/100)*{resmult}*{defmult})}}\n{=(dmgfinal21):{m:round(({midd2}*({mv}/100)*({spmult}/100)+{flat2})*{resmult}*{defmult})}}\n{=(dmgfinal22):{m:round(({midd2}*({mv}/100)*({spmult}/100)+{flat2})*(1+{cdmg2}/100)*{resmult}*{defmult})}}\n\n{=(amp1rn):{m:round({dmgfinal11}*1.5*{amp})}}\n{=(amp1rc):{m:round({dmgfinal12}*1.5*{amp})}}\n{=(amp1fn):{m:round({dmgfinal11}*2*{amp})}}\n{=(amp1fc):{m:round({dmgfinal12}*2*{amp})}}\n{=(amp2rn):{m:round({dmgfinal21}*1.5*{amp})}}\n{=(amp2rc):{m:round({dmgfinal22}*1.5*{amp})}}\n{=(amp2fn):{m:round({dmgfinal21}*2*{amp})}}\n{=(amp2fc):{m:round({dmgfinal22}*2*{amp})}}\n\n{=(msgc1):{target(mention)}, your {if({mvy}==true):output damage|effective Atk}: **{eatkc1}**}\n{=(msgd1):{target(mention)}, your {if({mvy}==true):output damage|effective Atk}: **{eatkd1}**}\n\n{=(msgc2):{target(mention)}, {if({mvy}==true):output damage|effective Atk} for\n`Set 1:` **{eatkc1}** {if({eatkc1}>{eatkc2}):(+{cahigher}%)} \n`Set 2:` **{eatkc2}** {if({eatkc2}>{eatkc1}):(+{cbhigher}%)} }\n\n{=(msgd2):{target(mention)}, {if({mvy}==true):output damage|effective Atk} for\n`Set 1:` **{eatkd1}** {if({eatkd1}>{eatkd2}):(+{dahigher}%)} \n`Set 2:` **{eatkd2}** {if({eatkd2}>{eatkd1}):(+{dbhigher}%)}}\n\n{{and({mvy}==true|{or({form}==c1|{form}==c2):true}==true):=(helpmv):1}}\n{=(c1):one set w/o dmg%}{=(d1):one set w/ dmg%}{=(c2):two sets w/o dmg%}{=(d2):two sets w/ dmg%}\n\n{{if({in(m):{eatkc1}}==true):=(eatkc1):null}}\n{{if({in(m):{eatkc2}}==true):=(eatkc2):null}}\n{{if({in(m):{eatkd1}}==true):=(eatkd1):null}}\n{{if({in(m):{eatkd2}}==true):=(eatkd2):null}}\n\n{=(estats):With lvl {clvl} character and lvl {elvl} target, with {if({res}<0):{m:trunc({res}/2)}|{res}}% RES and {defred}% DEF shred{if({defig}!=0):, and {defig}% DEF Ignore}.}\n{=(helpmsg):__**Syntax**__:\n`{prefix}dmgcalc <atk>{sep}<crit>{sep}<cdmg>{sep}<dmg>`\n● **<atk>** - Total attack, or base+bonus attack, or def/hp in case of def/hp scaling.\n● **<crit>** - Crit Rate%\n● **<cdmg>** - Crit Damage%\n● **<dmg>** - Elemental and other Damage%\n\n● For single sets: `{prefix}dmgcalc atk{sep}crit{sep}cdmg`\n● Comparing sets and DMG%: \n`{prefix}dmgcalc atk1{sep}crit1{sep}cdmg1{sep}dmg1 atk2{sep}crit2{sep}cdmg2{sep}dmg2`\n\n__**Examples**__:\n● 1 set with atk crit cdmg dmg : `{prefix}dmgcalc 100{sep}5{sep}50{sep}40`\n● 2 sets comparison with only atk and crit: `{prefix}dmgcalc 100{sep}5{sep}50 110{sep}10{sep}80`}\n{=(targetmsg):__**Syntax**:__\n` <res>{sep}<charlvl>{sep}<targetlvl>{sep}<defshred>{sep}<defignore>`\n● **<res>** - Final RES of the enemy after shredding – Do not halve negative values.\n● **<charlvl>** - Your character's level.\n● **<targetlvl>** - The target's level.\n● **<defshred>** - Any Defense shred the target is afflicted with.\n● **<defignore>** - Defense ignore inherent to the talent used. Works the same as def shred but is multiplicative with it.\n\n__**Example**__:\n● 1 set with atk crit cdmg dmg : \n`{prefix}dmgcalc 2100{sep}65{sep}130{sep}90 10-40{sep}90{sep}100{sep}15{sep}60 mv 240`\nShows a regular dmgcalc with target resistances, in this case\n`10` RES target, VV shredded for a total of `-30` RES, which the formula will halve to `-15`.\n`90` character and `100` target level.\n`15`% DEF shred (eg. Lisa A4)\n`60`% DEF IGNORE (eg. Raiden C2).\n● You can add this target info with 2 set calculation as well.\n● All of these values are optional but if you need to enter one value, enter all preceding values as well.}\n{=(multmsg):__**Syntax**:__\n` mv <mv>{sep}<sp.mult>`\n● **<mv>** - Talent multiplier, or mv, in %.\n● **<sp.mult>** - Special Multiplier such as Yoimiya E or XQ C4, in %.\n\n__**Example**__:\n● Yoimiya final NA hit with t10 AA and t10 E : \n`{prefix}dmgcalc 2100{sep}65{sep}130{sep}90 mv 199.7/161.74`\nShows a dmgcalc with default target resistances\n`199.7`% Talent Value, and `161.74`% Special Multiplier.\n● Special Multiplier value is optional, enter only `mv <mv>` without any separator.}\n{=(emmsg):__**Syntax**:__\n` em <em>{sep}<amp.bonus>`\n● **<em>** - Your character's total Elemental Mastery.\n● **<amp.bonus>** - Vape/Melt bonus % such as from artifact set effects.\n\n__**Example**__:\n● Character with 78 EM and buffed with Kazuha C2 : \n`{prefix}dmgcalc 2100{sep}65{sep}130{sep}90 mv 100 em 78+200/15`\nShows a dmgcalc with default target resistances and:\n`78+200` or 278 Elemental Mastery\n`15`% Reaction bonus to the reaction damage.\n● Enter ` em <em>` to get final dmg with vape/melt reactions (mv will default to 100% if not provided).\n● You can enter `em 0` to get vape/melt dmg with 0 EM as well.}\n{=(infomsg):● You can add/subtract/multiply your stats by simply typing them out: `740+890` (say, for buffs).\n● You can add a ` debug` at the end on the input to check if the command saw the stats correctly.\n● Flat dmg (eg. from Yun Jin Q) can be added with ` flat <flatdmg>` where <flatdmg> is calculated by the buffing character's scaling stat * the talent value%. You can do this right here in-command like ` flat 3100*0.6539`.\n\n● Advanced: You can also use the mv% to check different parts of your kit with differing stats in a rotation, for example:\n\nHeart of Depth set only provides extra dmg% for Normal and Charged attacks, and not Skill or Burst attacks.\nSay if 40% of your damage comes from burst and 60% from Normals, you can calc with ` mv 40` with regular stats and ` mv 60` with the added dmg% from HoD set.\nThis can help tell the difference certain set bonuses give you. \n\nOrrrr at this point, use a stat optimizer website.\n\n● Hope this tag can save you some time!\n— Kai, made for [Jean Mains](https://discord.gg/fSw9xXSyTe){if({TCNName}!=):, and [{TCNName}]({HUBLink})}.\nDM for issues with the command.}\n{=(helpmvmsg):● Be sure to include dmg% values when also including mv%, flat dmg, or em, otherwise you get a meaningless value.}\n{{and({dmg1}==null|{dmg2}!=null):=(help):1}}\n{{and({dmg1}==null|{dmg2}!=null):=(debug):true}}\n{{and({or({crate1}==null|{cdmg1}==null):true}==true|{atk1}!=null):=(help):1}}\n{{and({or({crate1}==null|{cdmg1}==null):true}==true|{atk1}!=null):=(debug):true}}\n{{and({or({emy}==true|{fly}==true):true}==true|{dmg1}==null|{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):true}!=true):=(helpmv):1}}\n{{and({or({emy}==true|{fly}==true):true}==true|{dmg1}==null|{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):true}!=true):=(debug):true}}\n{{and({help}==1|{atk1}!=null|{or({helpmults}==1|{helpmore}==1|{helpem}==1|{helpres}==1):true}!=true):=(debug):true}}\n{{if({contains(debug):{Lwr}}==true):=(debug):true}}\n{{and({or({moreinfo}==1|{help}==1):true|false}==true|{debug}==false):=(jean):1|=(jean):0}}\n{=(debugmsg):__Verify Input__:\n```ml\n{prefix}dmgcalc {args}\nAtk1: {atk1} — Atk2: {atk2}\nCrate1: {crate1} — Crate2: {crate2}\nCdmg1: {cdmg1} — Cdmg2: {cdmg2}\nDmg1: {dmg1} — Dmg2: {dmg2}\nEAtkC1: {eatkc1} — EAtkC2: {eatkc2}\nEAtkD1: {eatkd1} — EAtkD2: {eatkd2} \nMV%: {mv}% — Special Mult: {spmult}%\nEM: {em} — Amp Bonus: {bonus}\nFlat Dmg: {flat} — Output: {{form}}```}",
"embed": "{\"color\": 5198940, \"title\": \"{if({helpall}==1):Information overload? Try {prefix}dmgcalc for only the basics.}\", \"footer\": {\"text\": \"{and({help}==1|{helpmults}==0|{helpres}==0|{helpem}==0|{helpmore}==0|{helpall}==0):{prefix}dmgcalc help target for more.}{and({helpmults}==0|{helpres}==1|{helpem}==0|{helpmore}==0):{prefix}dmgcalc help mv for more.}{and({helpmults}==1|{helpres}==0|{helpem}==0|{helpmore}==0):{prefix}dmgcalc help em for more.}{and({helpmults}==0|{helpres}==0|{helpem}==1|{helpmore}==0):{prefix}dmgcalc help more for ...more.}\"}, \"thumbnail\": {\"url\": \"{if({jean}==1):https://cdn.discordapp.com/emojis/809795819234131989.png?size=96}\"}, \"description\": \"{{if({in(moreinfo):{Lwr}}==true):=(help):0}}{{if({in(moreinfo):{Lwr}}==true):=(helpmv):0}}{{if({in(moreinfo):{Lwr}}==true):=(form):null}}\\n{{if({in(targetinfo):{Lwr}}==true):=(help):0}}{{if({in(targetinfo):{Lwr}}==true):=(helpmv):0}}{{if({in(targetinfo):{Lwr}}==true):=(form):null}}\\n{all({help}==0|{helpmv}==0):{if({form}==d2):{msgd2}}{if({form}==c2):{msgc2}}{if({form}==d1):{msgd1}}{if({form}==c1):{msgc1}}}\\n{all({help}==0|{helpmv}==0|{mvy}==true|{form}==d1|{in(math):{dmgfinal12}}==false):Your final damage excluding reactions should be **{dmgfinal11}** (non-crit) **{dmgfinal12}** (crit).\\n{if({emy}==true):\\nWith reverse (1.5x) vape/melt: **{amp1rn}** (non-crit) **{amp1rc}** (crit)\\nWith forward (2x) vape/melt: **{amp1fn}** (non-crit) **{amp1fc}** (crit)\\n}\\n{estats}} \\n{all({help}==0|{helpmv}==0|{mvy}==true|{form}==d2|{in(math):{dmgfinal12}}==false|{in(math):{dmgfinal22}}==false):Your final damage excluding reactions should be\\n`Set 1:` **{dmgfinal11}** (non-crit) | **{dmgfinal12}** (crit)\\n`Set 2:` **{dmgfinal21}** (non-crit) | **{dmgfinal22}** (crit)\\n{if({emy}==true):With reverse (1.5x) vape/melt:\\n`Set 1:` **{amp1rn}** (non-crit) | **{amp1rc}** (crit)\\n`Set 2:` **{amp2rn}** (non-crit) | **{amp2rc}** (crit)\\nWith forward (2x) vape/melt:\\n`Set 1:` **{amp1fn}** (non-crit) | **{amp1fc}** (crit)\\n`Set 2:` **{amp2fn}** (non-crit) | **{amp2fc}** (crit)\\n}\\n{estats}} \\n{if({debug}==true):{debugmsg}}\\n{and({help}==1|{helpmults}==0|{helpres}==0|{helpem}==0|{helpmore}==0):{helpmsg}}\\n\\n{if({helpall}==1):{replace(Syntax,Target Resistances):{targetmsg}}\\n\\n{replace(Syntax,Talent and Special Multipliers):{multmsg}\\n{helpmvmsg}}\\n\\n{replace(Syntax,Elemental Mastery and Amp Damage):{emmsg}}\\n\\n__**Extras**:__\\n{infomsg}}\\n{if({helpmults}==1):{multmsg}}{{if({helpmults}==1):=(helpmv):1}}\\n{if({helpmv}==1):{helpmvmsg}}\\n{if({helpres}==1):{targetmsg}}\\n{if({helpem}==1):{emmsg}}\\n{if({helpmore}==1):{infomsg}}\"}",
"last_fetched": "2026-10-20T17:55:33.925Z"
}