xpcalc

https://docs.carl.gg/levels/levels/

Sharedunrated

Content

28 lines
{=(dropsperminute):1}

{=():}
{=(xp):{replace(%2C,):{replace(xp,):{urlencode:{args(1)}}}}}
{=(base):{replace(%2C,):{replace(xp,):{urlencode:{args(2)}}}}}

{{if(=={xp}):blacklist(Usage: `!xpcalc <target> [base]`):{server(id)}|{if({xp}!={m:trunc({xp}/1)}):blacklist(XP must be a whole number.):{server(id)}}}}

{=(basexp):{if(=={list(1):{join(~):{args}}}):0|{if({base}!={m:trunc({base}/1)}):0|{base}}}}
{=(diffxp):{m:abs(trunc({xp}-{basexp}))}}
{=(min):{m:round({diffxp}/25)}}
{=(avg):{m:round({diffxp}/20)}}
{=(max):{m:round({diffxp}/15)}}

{=(commaxp):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{xp}}}}}}}
{=(commabasexp):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{basexp}}}}}}}
{=(commadiffxp):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{diffxp}}}}}}}
{=(commamin):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{min}}}}}}}
{=(commaavg):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{avg}}}}}}}
{=(commamax):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{max}}}}}}}

{=(mintime):{m:{min}/{dropsperminute}}}
{=(avgtime):{m:{avg}/{dropsperminute}}}
{=(maxtime):{m:{max}/{dropsperminute}}}

{=(mindisplay):{m:trunc({mintime} / 60)}h {m:trunc({mintime} % 60)}m}
{=(avgdisplay):{m:trunc({avgtime} / 60)} hours and {m:trunc({avgtime} % 60)} minutes}
{=(maxdisplay):{m:trunc({maxtime} / 60)}h {m:trunc({maxtime} % 60)}m}

Embed

1 line
{"url": "https://docs.carl.gg/levels/levels/", "color": 8311585, "title": "XP Calculation", "description": "You need **{commadiffxp}**xp to reach your target.\n\nThis will take **{commaavg}** messages on average (Min **{commamin}**, Max **{commamax}**).\n\nAssuming {dropsperminute} drop(s) per minute, this will take **{avgdisplay}** (Min **{mindisplay}**, Max **{maxdisplay}**)."}
Raw JSON
{
  "id": 854760,
  "created_at": "2021-05-28T20:01:16.000Z",
  "tag_name": "xpcalc",
  "nsfw": false,
  "owner_id": "489484338514100234",
  "uses": 20,
  "description": "https://docs.carl.gg/levels/levels/",
  "restricted": false,
  "shared": true,
  "deleted": false,
  "safe": "unrated",
  "hidden": false,
  "guild_id": "636003276881657857",
  "sharer": "489484338514100234",
  "content": "{=(dropsperminute):1}\n\n{=():}\n{=(xp):{replace(%2C,):{replace(xp,):{urlencode:{args(1)}}}}}\n{=(base):{replace(%2C,):{replace(xp,):{urlencode:{args(2)}}}}}\n\n{{if(=={xp}):blacklist(Usage: `!xpcalc <target> [base]`):{server(id)}|{if({xp}!={m:trunc({xp}/1)}):blacklist(XP must be a whole number.):{server(id)}}}}\n\n{=(basexp):{if(=={list(1):{join(~):{args}}}):0|{if({base}!={m:trunc({base}/1)}):0|{base}}}}\n{=(diffxp):{m:abs(trunc({xp}-{basexp}))}}\n{=(min):{m:round({diffxp}/25)}}\n{=(avg):{m:round({diffxp}/20)}}\n{=(max):{m:round({diffxp}/15)}}\n\n{=(commaxp):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{xp}}}}}}}\n{=(commabasexp):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{basexp}}}}}}}\n{=(commadiffxp):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{diffxp}}}}}}}\n{=(commamin):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{min}}}}}}}\n{=(commaavg):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{avg}}}}}}}\n{=(commamax):{replace(st,):{replace(nd,):{replace(rd,):{replace(th,):{ord:{max}}}}}}}\n\n{=(mintime):{m:{min}/{dropsperminute}}}\n{=(avgtime):{m:{avg}/{dropsperminute}}}\n{=(maxtime):{m:{max}/{dropsperminute}}}\n\n{=(mindisplay):{m:trunc({mintime} / 60)}h {m:trunc({mintime} % 60)}m}\n{=(avgdisplay):{m:trunc({avgtime} / 60)} hours and {m:trunc({avgtime} % 60)} minutes}\n{=(maxdisplay):{m:trunc({maxtime} / 60)}h {m:trunc({maxtime} % 60)}m}",
  "embed": "{\"url\": \"https://docs.carl.gg/levels/levels/\", \"color\": 8311585, \"title\": \"XP Calculation\", \"description\": \"You need **{commadiffxp}**xp to reach your target.\\n\\nThis will take **{commaavg}** messages on average (Min **{commamin}**, Max **{commamax}**).\\n\\nAssuming {dropsperminute} drop(s) per minute, this will take **{avgdisplay}** (Min **{mindisplay}**, Max **{maxdisplay}**).\"}",
  "last_fetched": "2026-10-20T16:35:33.085Z"
}