Key List

Last updated: Mar 3rd, 2017

Key List

Key Info
{pm}Echo will private message the response.
{user}Echo will mention the user.
{/user}Echo will say the user's name
{sleep}Delay an action based on x time.
{del}Echo will delete the user's message.
{del:5s}Echo will delete the user's message after x time. (5s,5m,ect..)
{del*}Echo will not delete bot masters messages.
{delme}Deletes Echos message.
{kick}Echo will kick Non-Commanders
{ban}Echo will ban Non-Commanders
{role}Gives a user a specific role.
{alert}Alerts you if someone triggers reponse
{exc}Excludes a role from your trigger!
{chan}Returns the current channel.
{pref}Displays Echo's current prefix.
{greet}Displays Echo's current greeting.
{bye}Displays Echo's current bye message.
{ismaster}Displays if the user is master or not `True` or `False`
{listroles}Displays all the users roles.
{allroles}Displays all roles in server.
{joined}Shows the date and time a user has joined.
{channels}Shows all channels in the server.
{req}Requires a user to have a role. you can also require multiple roles like `{exc}`
{ass}Shows random ass.
{boobs}Shows random boobs.
{rawid}Grabs the users id.
{redirect}Redirects users text to a specific channel.
{cats}Display random cat images.
{take}Takes a role away from someone.
{ars}Allows you to link to another Rule.
{rand}Picks a random number from 0 - 10
Does the same thing as above.
{sky}Shows random sky images
{space}Shows random space images
{dbz}Shows random dbz images
{cute}Shows random cute stuff..
{cars}Shows random car images
{wrecks}Show random wreck images
{trucks}Shows random truck images
{protect}Protect the key from being ran manually.
{timestamp}displays timestamp
{timestamp:ms}displays timestamp in miliseconds
{timestamp:ns}displays timestamp in nanoseconds
{usernick}displays users nickname
{randlist}{randlist:What,Who,Where,How}
{randuser}Randomly choose a username from your server.
{randuserid}Randomly choose a user id from your server.
{randchannel}Randomly choose a channel from your server.
{randchannelid}Randomly choose a cannel id from your server.
{owner|id}guild owner id
{owner|name}guild owner name
{owner|avatar}guild owner avatar
{!content|contains}if content does NOT contain word
{username|contains}if username contains word
{!username|contains}if username does NOT contain word.
{self}the requesters id
{usericon}requesters icon
{guild|icon}guild icon
{guild|name}guild name
{guild|id}guild id
{guild|region}us-south,us-east
{membercount}guild member count (Doesn't include bots)
{botcount}guild bot count (Doesn't include members)
{rolecount}guild role count
{channelcount}guild channel count
{myperms}requesters permissions (bitwise)
{trigger}Shows the trigger used for the rule.
{expint}Requires the params to be integer.
{pin}Makes Echo pin a message to a channel.
{showchan}Gives user basic permissions to channel.
{hidechan}Hides current channel from user.
{readonly}Sets users permissions to read messages\history in channel.
{readnwrite}Sets users permissions to read\write only in channel.
{typing}Sets echos state to "typing" in current channel.
{reactme}Echo will react to current message.
{react}Echo will react to the last message.
{reactbot}Echo will react to his own message.
{discrim}Shows users discriminator. #0000
{stop}Stops echo from responding (good for if statements).
{everyone}Echo will mention everyone in his response.
{here}Echo will mention @here in his response.
{chanid}Gets the current channel ID
{params}if you have this key in your trigger and response you can catch their text!
{json|guild}Sends your entire guild object to a site of your choice!
{json|channels}Just sends your channel object to a site of your choice!
{json|roles}Just sends your roles object to a site of your choice!
{json|members}Just sends your members object to a site of your choice!
{delauto}Deletes the trigger after first use. (Good for games, prizes and keys you want to give out once!)
{params:flip}Reverses the text. Requires {params} in the trigger!
{params:url}converts text to url encoding. Replaces space with %20
Requires {params} in the trigger!
{twitch}Replace username with your twitch name. you have access to these keys:
{game} displays the game you're playing.
{views} shows your current viewers.
{fps} displays your current fps.
{url} - shows the url.
{category}Random Nicknames
Random Baseball words
Random Sports Words
Random Instrument words
Random Halloween Words
{nickname}Changes the users nickname
{tclear}Deletes the person who triggers messages.
{clear}Clears 5 messages
{content}Displays the contents of the message.
{clean}Cleans content of trigger
{content|tolower}Transforms the content to lowercase.
{content|toupper}Transforms the content to uppercase.
{attach}Attach a file to a message via URL.
{arslock}Locks a rule to A.R.S Linking only.(Cannot be ran manually)
{math}Execute math expressions
{delme:5s}Delete the bots message after x time.
{hangman}Transforms text into a hangman style output.
{-mentions}Prevents keys from directing to mentioned user.
{mention}Requires mention in an A.R.S Rule.
{botmaster}Requires the user to be Bot Master.
{embed}Have Echo post custom Embeds
{getapi}Custom JSON API System.
{addr|...}Some intralink keys for your address info.
{randars}Randomly run a rule from a list (If it exists)

Basics

- {pm}

Have Echo private message the response.
.auto .pm={init}
{pm}Hello {/user}!
Compatible with Targeting

- {user}

Echo will mention the user @Username
.auto .test={init}
Hello {user}
Compatible with Targeting

- {/user}

Echo will print the users name (non-mention)
.auto .test={init}
Hello {/user}
Compatible with Targeting

- {sleep}

Delay an action for x time. (s,m,h)
.auto .test={init}
{sleep:10s}Hello {/user}

- {del}

Echo will delete the message that triggered his response.
.auto .test={init}
{del}Hello {/user} I've removed your message!

- {del:5s}

Echo will delete the message that triggered his response after x time.
.auto .test={init}
{del:10s}Hello {/user} your message was removed!

- {del*}

Echo will delete the message unless it's typed by a Bot Commander.
.auto .test={init}
{del*}Hello {/user} your message was removed!

- {delme}

Echo will delete his own message. Currently known to be buggy
.auto .test={init}
{delme}This message gets removed.
With sleep
.auto .test={init}
{delme:10s}This message gets removed after 10 seconds.

- {kick}

Echo will kick the user who triggered the response.
.auto &badword={init}
{-mentions}
{del}{kick}{/user} has been kicked for swearing.
Compatible with Targeting Requires Role Hierarchy

- {ban}

Echo will ban the user who triggered the response.
.auto &badword={init}
{-mentions}
{del}{ban}{/user} has been banned for swearing.
Compatible with Targeting Requires Role Hierarchy

- {role}

Echo will give the user who triggered the response a role.
.auto &Instinct={init}
{-mentions}
{role:Instinct}{/user} has been given the role Instinct.
Compatible with Targeting Requires Role Hierarchy

- {take}

Echo will take a role from the user who triggered the response.
.auto &Valor={init}
{-mentions}
{take:Instinct}{role:Valor}{/user} has switched to Team Valor.
Compatible with Targeting Requires Role Hierarchy

- {alert}

Echo will alert one or more people when the response has been triggered.
.auto .test={init}
{alert:UserDiscordID}Hello {/user} I have alerted the staff!

.auto .test={init}
{alert:UserDiscordID,UserDiscordID}Hello {/user} I have alerted the staff!

- {exc}

Echo will exclude one or more roles from a trigger.
.auto .test={init}
{exc:Role Name}Hello {/user}!

.auto .test={init}
{exc:Role Name,Role Name2}Hello {/user}

- {req}

Echo will Require one or more roles for a trigger.
.auto &.test={init}
{req:Role Name}Hello {/user}!
.auto &.test={init}
{req:Role Name,Role Name2}Hello {/user}!

- {chan}

Returns the current channel.
.auto .test={init}
Current Channel: {chan}

- {pref}

Returns Echos current Prefix.
.auto .myprefix={init}
Current Prefix: {pref}

- {greet}

Returns Echos current Greet Message.
.auto .mygreet={init}
Current Greet: {greet}

- {bye}

Returns Echos current Bye Message.
.auto .mybye={init}
Current Bye: {bye}

- {ismaster}

Returns if the user is a Bot Commander or not.
.auto .ismaster={init}
Bot Commander: `{ismaster}`

- {listroles}

Returns a list of the users roles.
.auto &.listroles={init}
Current roles: ```{listroles}```
Compatible with Targeting

- {allroles}

Returns a list of all roles in server.
.auto &.serverroles={init}
Server roles: ```{allroles}```

- {joined}

Returns when a user joined the server.
.auto &.joined={init}
User joined: {joined}
Compatible with Targeting

- {channels}

Returns a list of the channels in the server.
.auto &.listchannels={init}
Current channels: ```{channels}```

- {rawid}

Returns the users Discord ID.
.auto &.userid={init}
Poster: {rawid} /* Can change if mention */
Compatible with Targeting
Mention safe version:
.auto &.userid={init}
Original Poster: {/rawid} /* Will always return the Author ID */

- {redirect}

Send the response to a specific channel.
.auto &.announce {params}={init}
{redirect:CHANNELID}{params}

- {cats}

Posts random cat images.
.auto .cats={init}
{cats}

- {sky}

Posts random sky images.
.auto .sky={init}
{sky}

- {space}

Posts random space images.
.auto .space={init}
{space}

- {dbz}

Posts random dbz images.
.auto .dbz={init}
{dbz}

- {cute}

Posts random cute images.
.auto .cute={init}
{cute}

- {cars}

Posts random cars images.
.auto .cars={init}
{cars}

- {wrecks}

Posts random wrecks images.
.auto .wrecks={init}
{wrecks}

- {trucks}

Posts random truck images.
.auto .truck={init}
{trucks}

- {ars}

Link your Auto Response to another rule.
.auto .one={init}
{cats}{ars:.two}
.auto .two={init}
{cute}

- {rand}

Choose between a range of two integers.
.auto .rand={init}
{rand:1,10}
.auto .rand={init}
{rand:10}

- {protect}

Protects a rule from being ran manually. (mainly for event keys)
.auto jnevent={init}
{protect}This response will only work for events!

- {timestamp}

Prints the current timestamp
.auto .stamp={init}
{timestamp}
.auto .stamp={init}
{timestamp:Mon _03, 1987 4:05AM}

- {timestamp:ms}

Prints the current timestamp in miliseconds
.auto .stamp={init}
{timestamp:ms}

- {timestamp:ns}

Prints the current timestamp in nanoseconds
.auto .stamp={init}
{timestamp:ns}

- {usernick}

Prints the users nickname or None if they don't have one.
.auto &.usernick={init}
User Nick: `{usernick}`
Compatible with Targeting

- {randlist}

Prints a random item from a pre-defined list.
.auto .pick={init}
I Choose: `{randlist:Rock,Paper,Scissors}`

- {randuser}

Prints a random username from your server
.auto .pick={init}
I Choose: `{randuser}`

- {randuserid}

Prints a random user id from your server
.auto .pick={init}
I Choose: `{randuserid}`

- {randchannel}

Prints a random channel from your server
.auto .pick={init}
I Choose: `{randchannel}`

- {randchannelid}

Prints a random channel id from your server
.auto .pick={init}
I Choose: `{randchannelid}`

- {owner|id}

Prints the server owners Discord ID.
.auto .ownerid={init}
Owner ID: `{owner|id}`

- {owner|name}

Prints the server owners name.
.auto .owner={init}
Server Owner: `{owner|name}`

- {owner|avatar}

Prints the owners avatar.
.auto .owner={init}
Owner Avatar: `{owner|avatar}`

- {!content|contains}

Echo will respond if the message doesn't contain a word..
.auto .tst={init}
{!content|contains:tst}This response won't work!

- {username|contains}

Echo will respond if the user has a word in their username.
.auto .tst={init}
{username|contains:Bot}{/user} has the word `Bot` in their username.

- {!username|contains}

Echo will respond if the user does not have a word in their username.
.auto .tst={init}
{!username|contains:Bot}{/user} doesn't have the word `Bot` in their username.

- {self}

Prints the users Discord ID.
.auto &.tst={init}
User ID: `{self}`
Compatible with Targeting

- {usericon}

Prints the users Avatar.
.auto &.icon={init}
User Avatar: `{usericon}`
Compatible with Targeting

- {guild|icon}

Prints the servers Icon.
.auto .tst={init}
Server Avatar: `{guild|icon}`

- {guild|name}

Prints the servers Name.
.auto .tst={init}
Server Name: `{guild|name}`

- {guild|id}

Prints the servers ID.
.auto .tst={init}
Server ID: `{guild|id}`

- {guild|region}

Prints the servers Region.
.auto .tst={init}
Server Region: `{guild|region}`

- {membercount}

Prints the member count for the server. (Ignores all Bots)
.auto .tst={init}
Server Members: `{membercount}`
Or from a specific role:
.auto .tst={init}
Server Admins: `{membercount:Admins}`

- {botcount}

Prints the bot count for the server.
.auto .tst={init}
Server Bots: `{botcount}`

- {rolecount}

Prints the role count for the server.
.auto .tst={init}
Server Roles: `{rolecount}`

- {channelcount}

Prints the channel count for the server.
.auto .tst={init}
Server Channels: `{channelcount}`

- {myperms}

Prints the bitwise permissions of the user.
.auto .tst={init}
Perms: `{myperms}`

- {trigger}

Prints the trigger used for the rule.
.auto .tst={init}
Trigger: `{trigger}`
/* Prints out .tst */

- {expint}

Requires the params to have be an integer.
.auto &.tst {params}={init}
{expint:Sorry, you need to type an integer. No letters or special characters allowed.}
Hey {/user} you typed out an integer: `{params}`

- {pin}

Echo will pin the message.
.auto &.pin={init}
{pin}Your message has been pinned!

- {showchan}

gives the user basic permissions for a channel.
.auto .view={init}
{showchan:ChannelID}{/user} You can now view the channel <#ChannelID>

- {hidechan}

hides the channel from a user.
.auto .hide={init}
{hidechan:ChannelID}{/user} You can no longer view the channel <#ChannelID>

- {readonly}

gives the user read only permissions for a channel.
.auto .readonly={init}
{readonly:ChannelID}{/user} You can view <#ChannelID> not send messages.

- {readnwrite}

gives the user read and write permissions for a channel.
.auto .view={init}
{readnwrite:ChannelID}{/user} You can now read and write in the channel <#ChannelID>

- {typing}

Echo will toggle the "Echo is typing" in Discord.
.auto .type={init}
{typing}Hello {/user}!

- {reactme}

React to the user who triggers the response.
.auto &blessme={init}
{reactme::pray:}

- {react}

React to the last message.
.auto &bless up={init}
{react::pray:}

- {reactbot}

Reacts to the response message Echo sends.
.auto &bless up={init}
{reactbot::pray:}

- {discrim}

Prints the users Discord Discriminator
.auto .user={init}
Discriminator: `{discrim}`

- {stop}

Haults the response from sending to Discord.
.auto .noprint={init}
{stop}This key is great for Statements!

- {everyone}

Mentions everyone in the response.
.auto .test={init}
Hello {everyone}!

- {here}

Mentions @here.
.auto .test={init}
Hello {here}!

- {chanid}

Prints the current Channel ID.
.auto .chanid={init}
Channel `{chanid}`

- {clean}

Cleans the trigger from {content} or other Content keys.
.auto .test={init}
{clean} /* Cleans trigger from the  Content. */
{content}

- {attach}

Echo will attach a file to the channel.
.auto &.attach={init}
/* Clean the content of the trigger. */
{clean}
/* Attach the link from the url. */
{attach|url:{content}}
/* Give Attachment a name and Extension. */
{attach|name:File.png}

- {content|toupper}

Transforms content to all uppercase..
.auto .test={init}
{clean} /* Cleans trigger from the  Content. */
{content|toupper}

- {content|tolower}

Transforms content to all lowercase..
.auto .test={init}
{clean} /* Cleans trigger from the  Content. */
{content|tolower}

- {tclear}

Clear messages from the user who triggered the response
.auto .tclear={init}
{tclear:15} /* Cleans 15 of the users messages. */

- {clear}

Clear 15 messages.
.auto .clear={init}
{clear:15} /* Cleans 15 messages. */

- {translate}

Translate content to another language..
.auto &.translate={init}
{clean} /* Cleans trigger from {content}. */
{translate:es} /* The output language */

- {arslock}

Locks a rule for Linking only.
.auto trigger2={init}
{arslock} /* Prevent key from being ran manually. */
Hello {/user}! This is a linked rule!

- {math}

Execute math expressions
.auto .test={init}
Expression: `{math:15*3}`

- {hangman}

Display a hangman like string.
.auto .test={init}
The word is `{hangman:Flower Power}`

- {-mentions}

Forces keys like {/user} {user}, {pm} {rawid} from mentions inside a command
.auto &.test={init}
{-mentions}
Original Poster: {rawid}

- {mention}

Require a mention in the command
.auto &.test={init}
{mention} /* Detect mentions only */
Hey <@{/rawid}>, You mentioned someone!
.auto &.test={init}
{mention:{/user} You need to mention someone with this command.}
Hey you mentioned someone!

- {botmaster}

Require user to be a bot master
.auto .test={init}
{botmaster:{/user} You are not a commander.}
Hello {/user}!

Intermediate

- {params}

Allows you to catch users input..
.auto &.say {params}={init}
You Said `{params}`

- {json|guild}

Sends the entire server object to the url you want.
.auto .update={init}
{json|guild:http://link.com/site}

- {json|channels}

Sends the channels object to the url you want.
.auto .update={init}
{json|channels:http://link.com/site}

- {json|roles}

Sends the roles object to the url you want.
.auto .update={init}
{json|roles:http://link.com/site}

- {json|members}

Sends the members object to the url you want.
.auto .update={init}
{json|members:http://link.com/site}

- {delauto}

Deletes the auto after first use.
.auto .test={init}
{delauto}This rulle will work once!

- {params:flip}

Flips the params text.
.auto &.flip {params}={init}
{params:flip}

- {params:url}

Encodes the params text for a URL.
.auto &.encode {params}={init}
{params:url}

- {twitch}

Shows twitch information for a streamer.
.auto .twitch={init}
{twitch:username}
{game}
{views} - {fps}
{url}

- {category}

Prints from a random list based on the category..
.auto .print={init}
{category:names}
{category:baseball}
{category:sports}
{category:instruments}
{category:halloween}

- {nickname}

Changes the nickname of a user.
.auto &.nick {params}={init}
{nickname:{params}}
Compatible with Targeting Doesn't work on Server Owners Requires Role Hierarchy

- {embed}

Create Rich Embeds for Discord
.auto .embed={init}
{embed:
    {title:} /* Insert the title here */
    {type:rich} /* This is always rich as discord does not have any other types available */
    {author|name:} /* Insert the author name (={user}) here */
    {author|icon:} /* This can be used to display a little picture next to the author name */
    {author|url:} /* URL for Author text. */
    {color:} /* Insert a color here (HEX-colors only) */
    {thumb|url:} /* Insert a link to a thumbnail picture */
    {desc:} /* Your entire description goes here, again {user}, {/user} and related can be used */
    {footer|icon:} /* Insert a link to a footer icon */
    {footer|text:} /* Text that should go alongside the {footer|icon:} goes here */
}

Another Example

.auto .echo={init}
{embed:
    {type:rich}
    {color:
        {randlist:
            #4286f4,#ff0000,#00ff00,
            ##e8f442,#f49e42,#000000
        }
    }
    {image|url:https://xtclabs.net/img/EchoIcon.jpg}
    {image|width:250}
    {image|height:250}
    {field[0]|name:Echo}
    {field[0]|value:[Echo Official Website](https://echo.xtclabs.net "The Official website for Echo 2.0")}
    {field[0]|inline:true}
    {field[1]|name:Echo Help}
    {field[1]|value:[Echo Documentation](https://github.com/proxikal/Echo "Learn how to use Echo A.R.S Through some Examples.")}
    {field[1]|inline:true}
    {field[2]|name:AutoGo}
    {field[2]|value:[AutoGo Website!](https://autogo.xtclabs.net "AutoGo! A bot like Echo 1.x You run yourself!")}
    {field[2]|inline:true}
    {field[3]|name:Web Manager}
    {field[3]|value:[Discord Server Manager](https://webm.xtclabs.net "Manage Your discord server and Echo from the world wide web!")}
    {field[3]|inline:true}
    {field[4]|name:PHP Webhooks}
    {field[4]|value:[Github Page!](https://github.com/proxikal/discordphp-webhook "Use discord webhooks with ease using DiscordPHP-Webhooks")}
    {field[4]|inline:true}
    {field[5]|name:xTech Labs API}
    {field[5]|value:[View Website](https://api.xtclabs.net/ "xTech Labs offers free API endpoints like memes, jokes etc..")}
    {field[5]|inline:true}
    {footer|text:Requested by: {/user}.}
    {footer|icon:{usericon}}
}

You can have up to 10 fields in a single embed.

- {getapi}

Echo will grab custom data from a custom json endpoint.
.auto .test={init}
{getapi:
{src:https://raw.githubusercontent.com/coolaj86/json-examples/master/java/jackson/user.json}
Name: {print:name:first}, {print:name:last}
Gender: {print:gender}
Verified: {print:verified}
Image Code: {print:userImage}
}

New optional keys have been added for getapi to customize even more!

{getapi:
{method:POST} /* All methods work; If no method key found it will default to GET */
{header:Accept==>application/json}
{header:Content-Type==>application/xml} /* You can have as many header keys as you want */
body({"User": "Proxy", "Password": "noob."}) /* Only accepts JSON content (for now) */
{src:your-address-here}
}

- {randars}

Run a single rule out of a list.
.auto .test={init}
{randars:trigger1,trigger2,trigger3,trigger4}
/* Will run one of the above rules if it exists */
}