promote
Privateunrated
Content
34 lines{=(comment):This works by making a list of all the role id's associated with every role in a set group that a target can be promoted to, in reverse order (lowest role first, highest role last).
The tag finds their highest role, then gives them the role that comes after that role in the list if the tag user has a role in the promotableroles group at least 2 roles higher than the target. If the user's highest role is not in the list, they will be given the first role in the role list (so persons in the chain of command can use this tag to induct new members as well). Replace the example role ids in (promotableroles): with your own.}
{=(promotableroles):
912413566290780180
912412837660475515
912412793620291614
912412746954444881
912412706026422313
912406706338791424
912406633324371999
912406584003538994
912406275625721877
912397321818484756
912397274984882280
912397213638983771
912396997837873243}
{=(comment):Don't touch this section}
{=(SRlength):{index({promotableroles(0)}):{promotableroles}}}
{=(URs):{user(roleids)}}
{=(TRs):{target(roleids)}}
{=(nextrole):{if({contains({TRs(0)}):{promotableroles}}==true):{promotableroles({m:trunc({index({TRs(0)}):{promotableroles}}+1)})}|{promotableroles(1)}}}
{=(comment):Don't touch this section}
{=(checks):{if({contains({URs(0)}):{promotableroles}}==false):1|{if({target(id)}=={user(id)}):2|{if({index({TRs(0)}):{promotableroles}}=={SRlength}):3|{if({m:trunc({index({URs(0)}):{promotableroles}}-1)}<={index({TRs(0)}):{promotableroles}}):4|false}}}}}
{if({contains({TRs(0)}):{promotableroles}}==true): -{TRs(0)}}
{=(error):You do not have a role within the list of promotable roles.$You did not mention a user. You cannot promote yourself.${target} already has the highest role in the promotable role list.$You must be at least 2 ranks higher than {target} to promote them.}
{=(comment):If you would like the target to lose their current highest role upon promotion provided that role is in the promotion role list, put at the end of the role custom statement, before the "|error"}
{{if({checks}==false):c:role custom {target(id)} +{nextrole}|error({checks}):$}}
{if({checks}==false): I, {user(mention)} hereby promote {target(mention)} to {<@&{nextrole}>(mention)} for completing the requirements.}
{override}{silence}Raw JSON
{
"id": 1208763,
"created_at": "2021-12-26T16:00:39.000Z",
"tag_name": "promote",
"nsfw": false,
"owner_id": "538405898830348308",
"uses": 59,
"description": null,
"restricted": false,
"shared": false,
"deleted": false,
"safe": "unrated",
"hidden": false,
"guild_id": "912379231198126150",
"sharer": "538405898830348308",
"content": "{=(comment):This works by making a list of all the role id's associated with every role in a set group that a target can be promoted to, in reverse order (lowest role first, highest role last).\nThe tag finds their highest role, then gives them the role that comes after that role in the list if the tag user has a role in the promotableroles group at least 2 roles higher than the target. If the user's highest role is not in the list, they will be given the first role in the role list (so persons in the chain of command can use this tag to induct new members as well). Replace the example role ids in (promotableroles): with your own.}\n\n{=(promotableroles): \n912413566290780180 \n912412837660475515 \n912412793620291614 \n912412746954444881 \n912412706026422313 \n912406706338791424 \n912406633324371999 \n912406584003538994 \n912406275625721877 \n912397321818484756 \n912397274984882280 \n912397213638983771 \n912396997837873243}\n\n{=(comment):Don't touch this section}\n{=(SRlength):{index({promotableroles(0)}):{promotableroles}}}\n{=(URs):{user(roleids)}}\n{=(TRs):{target(roleids)}}\n{=(nextrole):{if({contains({TRs(0)}):{promotableroles}}==true):{promotableroles({m:trunc({index({TRs(0)}):{promotableroles}}+1)})}|{promotableroles(1)}}}\n\n{=(comment):Don't touch this section}\n\n{=(checks):{if({contains({URs(0)}):{promotableroles}}==false):1|{if({target(id)}=={user(id)}):2|{if({index({TRs(0)}):{promotableroles}}=={SRlength}):3|{if({m:trunc({index({URs(0)}):{promotableroles}}-1)}<={index({TRs(0)}):{promotableroles}}):4|false}}}}}\n{if({contains({TRs(0)}):{promotableroles}}==true): -{TRs(0)}}\n{=(error):You do not have a role within the list of promotable roles.$You did not mention a user. You cannot promote yourself.${target} already has the highest role in the promotable role list.$You must be at least 2 ranks higher than {target} to promote them.}\n\n{=(comment):If you would like the target to lose their current highest role upon promotion provided that role is in the promotion role list, put at the end of the role custom statement, before the \"|error\"}\n{{if({checks}==false):c:role custom {target(id)} +{nextrole}|error({checks}):$}}\n{if({checks}==false): I, {user(mention)} hereby promote {target(mention)} to {<@&{nextrole}>(mention)} for completing the requirements.}\n{override}{silence}",
"embed": "{}",
"last_fetched": "2026-10-20T18:12:41.985Z"
}