dmgcalc
Private
Content
95 lines{=(COMMENT):Calc eAtk using atk/crit/cdmg/dmg mv %. Emote shows up when one set is over 5% higher than the other. "sep" is the separator you want to use.}
{=(prefix):!}
{=(sep):/}
{=(embedcolor):#60CFB7}
{=(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}}}
{=(mvy):{contains(mv):{args}}}
{=():}
{=(atk1):{m:trunc({list(0):{replace({sep},~):{arg1}}})}}
{=(crate1):{m:trunc({list(1):{replace({sep},~):{arg1}}})}}
{=(cdmg1):{m:trunc({list(2):{replace({sep},~):{arg1}}})}}
{=(dmg1):{m:trunc({list(3):{replace({sep},~):{arg1}}})}}
{=(atk2):{m:trunc({list(0):{replace({sep},~):{arg2}}})}}
{=(crate2):{m:trunc({list(1):{replace({sep},~):{arg2}}})}}
{=(cdmg2):{m:trunc({list(2):{replace({sep},~):{arg2}}})}}
{=(dmg2):{m:trunc({list(3):{replace({sep},~):{arg2}}})}}
{=(mv):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}}
{{if({in({sep}):{mv}}==true):=(mv):null}}
{embed(color):{embedcolor}}
{=(help):{if({contains(help):{Lwr}}==true):1|0}}
{=(helpmv):{any({and({4}==mv|{6}=={args}):true}==true|{and({7}==mv|{9}=={args}):true}==true):1|0}}
{=(eatkc1):{math:round({atk1}*(1+{crate1}*{cdmg1}/10000))}}
{{if({mvy}==true):=(eatkc1):{math:trunc({eatkc1}*{mv}/100)}}}
{=(eatkc2):{math:round({atk2}*(1+{crate2}*{cdmg2}/10000))}}
{{if({mvy}==true):=(eatkc2):{math:trunc({eatkc2}*{mv}/100)}}}
{=(eatkd1):{math:round({atk1}*(1+{crate1}*{cdmg1}/10000)*(1+{dmg1}/100))}}
{{if({mvy}==true):=(eatkd1):{math:trunc({eatkd1}*{mv}/100)}}}
{=(eatkd2):{math:round({atk2}*(1+{crate2}*{cdmg2}/10000)*(1+{dmg2}/100))}}
{{if({mvy}==true):=(eatkd2):{math:trunc({eatkd2}*{mv}/100)}}}
{=():}
{=(form):null}
{{if({in(math):{eatkd2}}==true):{if({in(math):{eatkd1}}==true):{if({in(math):{eatkc2}}==true):{if({in(math):{eatkc1}}==true):=(help):1|=(form):c1}|=(form):c2}|=(form):d1}|=(form):d2}}
{=(cahigher):{math:round({eatkc1}*100/{eatkc2}-100)}}
{=(cbhigher):{math:round({eatkc2}*100/{eatkc1}-100)}}
{=(dahigher):{math:round({eatkd1}*100/{eatkd2}-100)}}
{=(dbhigher):{math:round({eatkd2}*100/{eatkd1}-100)}}
{=(dmgfinal):{math:round({eatkd1}*0.9*0.5)}}
{=(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}%)} }
{{if({help}==1):=(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(math):{eatkc1}}==true):=(eatkc1):null}}
{{if({in(math):{eatkc2}}==true):=(eatkc2):null}}
{{if({in(math):{eatkd1}}==true):=(eatkd1):null}}
{{if({in(math):{eatkd2}}==true):=(eatkd2):null}}
{{if({in(m:trunc):{atk1}}==true):=(atk1):null}}
{{if({in(m:trunc):{crate1}}==true):=(crate1):null}}
{{if({in(m:trunc):{cdmg1}}==true):=(cdmg1):null}}
{{if({in(m:trunc):{dmg1}}==true):=(dmg1):null}}
{{if({in(m:trunc):{atk2}}==true):=(atk2):null}}
{{if({in(m:trunc):{crate2}}==true):=(crate2):null}}
{{if({in(m:trunc):{cdmg2}}==true):=(cdmg2):null}}
{{if({in(m:trunc):{dmg2}}==true):=(dmg2):null}}
{=(helpmsg):__**Syntax**__:
**<atk>** - Total attack
**<crit>** - Crit Rate%
**<cdmg>** - Crit Damage%
**<dmg>** - Elemental Damage%
For single sets: `{prefix}dmgcalc atk{sep}crit{sep}cdmg`
Comparing sets: `{prefix}dmgcalc atk1{sep}crit1{sep}cdmg1 atk2{sep}crit2{sep}cdmg2`
Comparing sets including elemental%:
`{prefix}dmgcalc atk1{sep}crit1{sep}cdmg1{sep}dmg1 atk2{sep}crit2{sep}cdmg2{sep}dmg2`
__**Examples**__:
1 set with atk crit cdmg: `{prefix}dmgcalc 100{sep}5{sep}50`
1 set with atk crit cdmg dmg : `{prefix}dmgcalc 100{sep}5{sep}50{sep}40`
2 sets atk and crit comparison: `{prefix}dmgcalc 100{sep}5{sep}50 110{sep}10{sep}80`
2 sets atk, crit, and dmg comparison:
`{prefix}dmgcalc 100{sep}5{sep}50{sep}40 110{sep}10{sep}80{sep}20`
__**Notes**:__
Add ` mv 525` to the end to multiply by your talent value%, 525 in this case.}
{{if({in(credit):{Lwr}}==true):=(credits):1}}Embed
1 line{"color": 4868682, "footer": {"text": "{all({help}==1|{credits}!=1):{random:Cool people use {prefix}dmgcalc credits~~}}"}, "description": "{{if({in(credit):{Lwr}}==true):=(help):0}}{{if({in(credit):{Lwr}}==true):=(helpmv):0}}{{if({in(credit):{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):{dmgfinal}}==false):Your final damage excluding reactions should be **{dmgfinal}**.\nAssuming: 80 Char and Target Lvl, 10% RES, No RES or DEF shred. Try `{prefix}dmgfinal` to use different values.}\n{if({help}==1):{helpmsg}}\n{if({helpmv}==1):Be sure to include dmg% values when also including mv%, otherwise you get a meaningless value.}\n{if({credits}==1):<a:JeanHeyHey1:839178789506252822><a:JeanHeyHey2:839178828319686758> Hope this tag helped you out!\n**Dmgcalc** made by Kai for JeanMains (Qillout#6674)}\n{if({contains(debug):{Lwr}}==true):__Inputs identified__:\n```Lwr: {Lwr}\nAtk 1: {atk1} — Atk 2: {atk2}\nCrate 1: {crate1} — Crate 2: {crate2}\nCdmg 1: {cdmg1} — Cdmg 2: {cdmg2}\nDmg 1: {dmg1} — Dmg 2: {dmg2}\neAtk c1: {eatkc1} — eAtk c2: {eatkc2}\neAtk d1: {eatkd1} — eAtk d2: {eatkd2} \nTalent%: {mvy} — MV%: {mv}%\nOutput: {{form}}\nHelp: {if({help}==1):true|false} — Helpmv: {if({helpmv}==1):true|false}```}"}Raw JSON
{
"id": 985139,
"created_at": "2021-08-02T20:07:02.000Z",
"tag_name": "dmgcalc",
"nsfw": false,
"owner_id": "129703662753808384",
"uses": 4828,
"description": null,
"restricted": false,
"shared": false,
"deleted": false,
"safe": "",
"hidden": false,
"guild_id": "808500851395395657",
"sharer": "129703662753808384",
"content": "{=(COMMENT):Calc eAtk using atk/crit/cdmg/dmg mv %. Emote shows up when one set is over 5% higher than the other. \"sep\" is the separator you want to use.}\n{=(prefix):!}\n{=(sep):/}\n{=(embedcolor):#60CFB7}\n\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{=(mvy):{contains(mv):{args}}}\n\n{=():} \n{=(atk1):{m:trunc({list(0):{replace({sep},~):{arg1}}})}}\n{=(crate1):{m:trunc({list(1):{replace({sep},~):{arg1}}})}}\n{=(cdmg1):{m:trunc({list(2):{replace({sep},~):{arg1}}})}}\n{=(dmg1):{m:trunc({list(3):{replace({sep},~):{arg1}}})}}\n{=(atk2):{m:trunc({list(0):{replace({sep},~):{arg2}}})}}\n{=(crate2):{m:trunc({list(1):{replace({sep},~):{arg2}}})}}\n{=(cdmg2):{m:trunc({list(2):{replace({sep},~):{arg2}}})}}\n{=(dmg2):{m:trunc({list(3):{replace({sep},~):{arg2}}})}}\n{=(mv):{list({math:trunc({index(mv):{args}}+1)}):{replace( ,~):{args}}}}\n{{if({in({sep}):{mv}}==true):=(mv):null}}\n{embed(color):{embedcolor}}\n\n{=(help):{if({contains(help):{Lwr}}==true):1|0}}\n{=(helpmv):{any({and({4}==mv|{6}=={args}):true}==true|{and({7}==mv|{9}=={args}):true}==true):1|0}}\n\n{=(eatkc1):{math:round({atk1}*(1+{crate1}*{cdmg1}/10000))}}\n{{if({mvy}==true):=(eatkc1):{math:trunc({eatkc1}*{mv}/100)}}}\n{=(eatkc2):{math:round({atk2}*(1+{crate2}*{cdmg2}/10000))}}\n{{if({mvy}==true):=(eatkc2):{math:trunc({eatkc2}*{mv}/100)}}}\n{=(eatkd1):{math:round({atk1}*(1+{crate1}*{cdmg1}/10000)*(1+{dmg1}/100))}}\n{{if({mvy}==true):=(eatkd1):{math:trunc({eatkd1}*{mv}/100)}}}\n{=(eatkd2):{math:round({atk2}*(1+{crate2}*{cdmg2}/10000)*(1+{dmg2}/100))}}\n{{if({mvy}==true):=(eatkd2):{math:trunc({eatkd2}*{mv}/100)}}}\n\n{=():}\n{=(form):null}\n{{if({in(math):{eatkd2}}==true):{if({in(math):{eatkd1}}==true):{if({in(math):{eatkc2}}==true):{if({in(math):{eatkc1}}==true):=(help):1|=(form):c1}|=(form):c2}|=(form):d1}|=(form):d2}}\n\n{=(cahigher):{math:round({eatkc1}*100/{eatkc2}-100)}}\n{=(cbhigher):{math:round({eatkc2}*100/{eatkc1}-100)}}\n{=(dahigher):{math:round({eatkd1}*100/{eatkd2}-100)}}\n{=(dbhigher):{math:round({eatkd2}*100/{eatkd1}-100)}}\n\n{=(dmgfinal):{math:round({eatkd1}*0.9*0.5)}}\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\nSet 1: **{eatkc1}** {if({eatkc1}>{eatkc2}):(+{cahigher}%)} \nSet 2: **{eatkc2}** {if({eatkc2}>{eatkc1}):(+{cbhigher}%)} }\n\n{=(msgd2):{target(mention)}, {if({mvy}==true):output damage|effective Atk} for\nSet 1: **{eatkd1}** {if({eatkd1}>{eatkd2}):(+{dahigher}%)} \nSet 2: **{eatkd2}** {if({eatkd2}>{eatkd1}):(+{dbhigher}%)} }\n\n{{if({help}==1):=(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(math):{eatkc1}}==true):=(eatkc1):null}}\n{{if({in(math):{eatkc2}}==true):=(eatkc2):null}}\n{{if({in(math):{eatkd1}}==true):=(eatkd1):null}}\n{{if({in(math):{eatkd2}}==true):=(eatkd2):null}}\n{{if({in(m:trunc):{atk1}}==true):=(atk1):null}}\n{{if({in(m:trunc):{crate1}}==true):=(crate1):null}}\n{{if({in(m:trunc):{cdmg1}}==true):=(cdmg1):null}}\n{{if({in(m:trunc):{dmg1}}==true):=(dmg1):null}}\n{{if({in(m:trunc):{atk2}}==true):=(atk2):null}}\n{{if({in(m:trunc):{crate2}}==true):=(crate2):null}}\n{{if({in(m:trunc):{cdmg2}}==true):=(cdmg2):null}}\n{{if({in(m:trunc):{dmg2}}==true):=(dmg2):null}}\n\n{=(helpmsg):__**Syntax**__:\n**<atk>** - Total attack\n**<crit>** - Crit Rate%\n**<cdmg>** - Crit Damage%\n**<dmg>** - Elemental Damage%\nFor single sets: `{prefix}dmgcalc atk{sep}crit{sep}cdmg`\nComparing sets: `{prefix}dmgcalc atk1{sep}crit1{sep}cdmg1 atk2{sep}crit2{sep}cdmg2`\nComparing sets including elemental%: \n`{prefix}dmgcalc atk1{sep}crit1{sep}cdmg1{sep}dmg1 atk2{sep}crit2{sep}cdmg2{sep}dmg2`\n__**Examples**__:\n1 set with atk crit cdmg: `{prefix}dmgcalc 100{sep}5{sep}50` \n1 set with atk crit cdmg dmg : `{prefix}dmgcalc 100{sep}5{sep}50{sep}40`\n2 sets atk and crit comparison: `{prefix}dmgcalc 100{sep}5{sep}50 110{sep}10{sep}80`\n2 sets atk, crit, and dmg comparison: \n`{prefix}dmgcalc 100{sep}5{sep}50{sep}40 110{sep}10{sep}80{sep}20`\n__**Notes**:__\nAdd ` mv 525` to the end to multiply by your talent value%, 525 in this case.}\n{{if({in(credit):{Lwr}}==true):=(credits):1}}",
"embed": "{\"color\": 4868682, \"footer\": {\"text\": \"{all({help}==1|{credits}!=1):{random:Cool people use {prefix}dmgcalc credits~~}}\"}, \"description\": \"{{if({in(credit):{Lwr}}==true):=(help):0}}{{if({in(credit):{Lwr}}==true):=(helpmv):0}}{{if({in(credit):{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):{dmgfinal}}==false):Your final damage excluding reactions should be **{dmgfinal}**.\\nAssuming: 80 Char and Target Lvl, 10% RES, No RES or DEF shred. Try `{prefix}dmgfinal` to use different values.}\\n{if({help}==1):{helpmsg}}\\n{if({helpmv}==1):Be sure to include dmg% values when also including mv%, otherwise you get a meaningless value.}\\n{if({credits}==1):<a:JeanHeyHey1:839178789506252822><a:JeanHeyHey2:839178828319686758> Hope this tag helped you out!\\n**Dmgcalc** made by Kai for JeanMains (Qillout#6674)}\\n{if({contains(debug):{Lwr}}==true):__Inputs identified__:\\n```Lwr: {Lwr}\\nAtk 1: {atk1} — Atk 2: {atk2}\\nCrate 1: {crate1} — Crate 2: {crate2}\\nCdmg 1: {cdmg1} — Cdmg 2: {cdmg2}\\nDmg 1: {dmg1} — Dmg 2: {dmg2}\\neAtk c1: {eatkc1} — eAtk c2: {eatkc2}\\neAtk d1: {eatkd1} — eAtk d2: {eatkd2} \\nTalent%: {mvy} — MV%: {mv}%\\nOutput: {{form}}\\nHelp: {if({help}==1):true|false} — Helpmv: {if({helpmv}==1):true|false}```}\"}",
"last_fetched": "2026-10-20T17:14:41.035Z"
}