Skip to content

Effects

Publish/Crosspost Message

Publish or crosspost a message to a news channel. This will only work if the message is in a news channel.

publish event-message
crosspost event-message
[discord] (publish|crosspost) [message] %message%

Execute X Using Bot

Requires DiSky v4.0.0

This effect is for utilities purpose. It will wrap the actual effect from DiSky and execute it using the specified bot. The syntax MUST come from DiSky, and at least ONE bot MUST be loaded (if the specified one is wrong / not loaded)

No examples provided.
execute (with|using) [the] %bot% <.+>
execute <.+> (with|using) [the] %bot%

Change

Requires DiSky v4.0.0

No description provided.

No examples provided.
(add|give) %objects% to (%~objects%) (with|using) %-bot%
increase %~objects% by (%objects%) (with|using) %-bot%
give %~objects% (%objects%) (with|using) %-bot%
set %~objects% to (%objects%) (with|using) %-bot%
remove (all|every) %objects% from (%~objects%) (with|using) %-bot%
(remove|subtract) %objects% from (%~objects%) (with|using) %-bot%
reduce %~objects% by (%objects%) (with|using) %-bot%
(delete|clear) (%~objects%) (with|using) %-bot%
reset (%~objects%) (with|using) %-bot%

Manage Command Permissions

Requires DiSky v4.0.0

This effect allows you to manage the permissions of slash commands, with the following rules:

  • By default, the command is marked as ENABLED, and anyone can see & use it.
  • You can DISABLE completely the command (first pattern), only admins will be able to use it.
  • Or you can ENABLE the commands for specific PERMISSIONS (second pattern).
disable command{_cmd1} # disable the command for everyone, except the admins.
enable command {_cmd2} for manage server # enable the command only for the users who have the 'manage server' permission.
disable [the] [command] %slashcommand%
enable [the] [command] %slashcommands% (for|to) [the] [permissions] %permissions%

Update Slash Commands

Requires DiSky v4.0.0

Update a list of slash commands in a bot (globally) or in a guild (locally).

See the slash commands page for examples.

(update|register) [the] [command[s]] %slashcommands% [(globally|locally)] in [the] [(bot|guild)] %bot/guild%

Unregister Command

Requires DiSky v4.0.0

Unregister a specific slash command from local or global context of a bot. You must provide the command's name. Keep in mind this SHOULD NOT be used! The best way remains to update bot's commands without the command you want to delete!

unregister command "test" locally in guild with id "000"
unregister [the] [command[s]] %strings% [(1�globally|2�locally)] (in|from|of) [the] [(bot|guild)] %bot/guild%

OpenModal

Requires DiSky v4.0.0

No description provided.

No examples provided.
(show|enable) [the] [modal] %modal% [to [the] [event[( |-)]]user]

Archive / Unarchive Thread

Requires DiSky v4.4.0

Archive or unarchive a specific thread.

archive event-threadchannel
unarchive thread channel with id "000"
archive [the] [thread] %threadchannel%
unarchive [the] [thread] %threadchannel%

Ban Member

Requires DiSky v4.0.0

Bans a member from a guild.

ban discord event-member because of "being lame" and delete 10 days worth of messages
[discord] ban [the] discord [member] %member% [(due to|because of|with [the] reason) %-string%] [and (delete|remove) %-timespan% [worth ]of messages]

Connect / Disconnect Bot

Requires DiSky v4.9.0

Connect or disconnect a bot to a specific audio channel (or disconnect it from the current one). The bot must have the required permissions to connect to the channel. If using the disconnect pattern, only the guild will be required.

connect bot "bot_name" to voice channel with id "000"
disconnect from event-guild
connect %bot% to [the] [(audio|voice)] [channel] %audiochannel%
disconnect [[the] [bot] %bot%] from [the] [guild] %guild%

CreateAction

Requires DiSky v4.0.0

No description provided.

No examples provided.
create [the] [(action|manager)] %roleaction/channelaction% and store (it|the (role|channel)) in %object%

Create Emote

Requires DiSky v4.0.0

Create a new emote in a specific guild. The name must be between 2 and 32 chars and the guild should not have an emote with the same name. The URL will represent the image, and can be either a web URL or a local path.

create new emote named "test" with url "https://static.wikia.nocookie.net/leagueoflegends/images/a/ae/This_Changes_Everything_Emote.png/revision/latest/scale-to-width-down/250?cb=20211019231749" in event-guild and store it in {_emote}
make emote with name "test2" with path "plugins/path/image.png" in event-guild and store it in {_emote}
(make|create) [the] [new] emote (named|with name) %string% with [the] (url|path) %string% in [the] [guild] %guild% and store (it|the emote) in %object%

CreateInvite

Requires DiSky v4.0.0

No description provided.

No examples provided.
(make|create) [the] [new] invite in [the] [(guild|channel)] %guild/channel% [with max us(e|age)[s] %-number%] [with max (time|age) %-number%] and store (it|the invite) in %object%

Create Post

Requires DiSky v4.4.4

Create a new post in a forum channel. The output value will be the newly created thread channel.

create a new post in forum channel with id "000" named "I need help!" with message "please help me!"
create a new post in forum channel with id "000" named "I need help!" with message "please help me!" with tags "help" and "support"
create [a] [new] post in [channel] %forumchannel% (with name|named) %string% [with message] %string/messagecreatebuilder/embedbuilder% [with [the] tags %-strings%] [and store (it|the thread) in %-object%]

Create Scheduled Event

Requires DiSky v4.0.0

Create a new scheduled event in a specific channel or at a specific place. If you use the second pattern (without channel), you'll have to specify the guild where the event will be created, and a start & end date. If you use the first pattern (with channel), you'll just have to specific the channel itself and a start date. Scheduled events currently only support stage & voice channels.

create scheduled event named "Let's Talk Together" in stage channel with id "000" at (5 hours after now) and store it in {_event}
create scheduled event named "Concerto" at "6 routes of XXX" starting (1 hour after now) and ending (5 hours after now) in event-guild and store it in {_event}
create [a] [new] scheduled event (with name|named) %string% in %guildchannel% at %date% and store (it|the event) in %objects%
create [a] [new] scheduled event (with name|named) %string% at %string% starting [at] %date% [and] ending [at] %date% in %guild% and store (it|the event) in %objects%

Create Thread

Requires DiSky v4.0.0

Create a new thread in a text channel with a base name. The bot used in that effect will automatically join the thread, so you don't have to make it join yourself. If you create a private thread, then you cannot specify a message. Else, the Thread will be created based on the specified message. Creating private thread need the guild to be level 2 or more, else it'll throw an exception.

No examples provided.
(make|create) [the] [new] [private] thread (named|with name) %string% in [the] [channel] %channel/textchannel% [(with|using) [the] [message] [as reference] %-message%] [(with|using) [the] [bot] %-bot%] and store (it|the thread) in %object%

Defer Interaction

Requires DiSky v4.0.0

Only usable in interaction event, currently button click/dropdown update/modal event! This will force the interaction to be acknowledge, you have 3 seconds to do so, the effect will send a success message to Discord or hold the interaction to send a message later. Keep in mind that replying in an interaction event will automatically defer the interaction, and therefore you don't need to defer it. If you need to wait more than 3 seconds use the and wait pattern An interaction can only be deferred once!

defer the interaction
defer the interaction and wait
defer the interaction and wait silently
(acknowledge|defer) [the] interaction [and wait [(1�silently)]]

Destroy Discord Entity

Requires DiSky v4.0.0

Destroy on Discord the wanted entity.

destroy event-channel
destroy event-message
destroy %guild/message/role/channel/emote/webhook%

Edit Message

Requires DiSky v4.4.0

Edit a message with new content:

In Interactions (SlashCommands/Buttons/SelectMenus)

The effect will, by default, edit the interaction itself, and thus acknowledge it. If you want to acknowledge an interaction in another way, while also editing the message, you'll have to edit the message directly, by specifying direct in the pattern:

on button click:
    if event-string is "my-button":
        reply with hidden "That message will acknowledge the interaction!"
        edit direct event-message with "I by-passed the interaction!"

Anywhere Else

This will simply edit the message with the new desired content. By default, it overrides all the message content (text content, components, embeds, etc...).

# We are in a slash command event!
reply with hidden "Wanna see a magic trick? ..." and store it in {_msg}
wait a second
# The variable does not contains a 'real' message, it contains the interaction hook.edit {_msg} to show "Abracadabra!"
edit [:direct] [the] [message] %message% (with|to show) %string/messagecreatebuilder/embedbuilder%

Kick Member

Requires DiSky v4.0.0

Kick a specific member out of its guild. You can also specify a reason if needed.

kick discord event-member due to "ur bad guys!"
kick [the] discord [member] %member% [(due to|because of|with [the] reason) %-string%]

Load Members

Requires DiSky v4.0.0

Load every members of a guild. This effect will also cache members that were not, so execution may be delayed. consider calling this effect once, then use the default member expression to get the members.

load members of event-guild and store them in {_members::*}
load [all] members (of|from) [the] %guild% and store (them|the members) in %-objects%

Lock / Unlock Thread

Requires DiSky v4.4.0

Lock or unlock a specific thread.

lock event-threadchannel
unlock thread channel with id "000"
lock [the] [thread] %threadchannel%
unlock [the] [thread] %threadchannel%

Move/Disconnect Member

Requires DiSky v4.14.2

Move a member to another voice chat. You can only move a member if they were previously in a voice channel.

Use the second pattern to disconnect/kick the member from its current voice channel. Requires DiSky v4.14.2 or higher.

move discord event-member to {_voice}
disconnect discord event-member
[voice] move [the] discord [member] %member% to [a] [voice[( |-)channel]] %voicechannel%
[voice] disconnect [the] discord [member] %member%

Move Role Above/Under Role

Requires DiSky v4.0.0

Move a specific role above or under another role within the same guild. The indexes will be updated automatically.

move role {_role} above role with id "000"
move [the] [discord] role %role% above [the] [discord] %role%
move [the] [discord] role %role% under [the] [discord] %role%

Mute Member

Requires DiSky v4.0.0

Mute or unmute a member in their guild.

voice mute event-member
unmute member event-member
[voice] mute [the] [discord] [member] %member%
[voice] un[ |-]mute [the] [discord] [member] %member%

Open Private Channel

Requires DiSky v4.0.0

Opens a private channel with a specific user. The opened channel can be null and an exception can be thrown if the user does not accept message.

open private channel of event-user and store it in {_channel}
if {_channel} is not set:
    reply with "Please enable your private messages!"
else:
    post "Hello world!" to {_channel}
open [the] private (channel|message[s]) of [the] [member] %user% and store (it|the [private] channel) in %objects%

Pin / Unpin Message

Requires DiSky v4.14.3

Pin or unpin a message in a text channel or private channel. You can also use is pinned to check if a message is pinned.

pin event-message
unpin event-message
pin [the] [message] %message%
unpin [the] [message] %message%

Post Message

Requires DiSky v4.4.0

Posts a message to a message-channel. You can send messages in a text, private, news, post or thread channel.

Starting DiSky v4.14.3, you can also reference a message (the bot will then reply to that message).

post "Hello world!" to text channel with id "000"
post last embed to thread channel with id "000" and store it in {_message}
(post|dispatch) %string/messagecreatebuilder/sticker/embedbuilder% (in|to) [the] %channel% [with [the] reference[d] [message] %-message%] [and store (it|the message) in %-objects%]

Purge Messages

Requires DiSky v4.0.0

Discord provide a better way to delete multiple messages at once. This effect only works with messages, and a list is recommended here. If you want to delete a single message, use the destroy effect.

retrieve last 50 messages from event-channel and store them in {_msg::*}
purge {_msg::*}
purge [the] [message[s]] %messages%

Reply With

Requires DiSky v4.4.0

Reply with a specific message to the channel where a message-event was triggered. It can also be used to acknowledge & reply to an interaction, such as button click or slash command. In interaction only, you can use the keyword 'hidden' to reply with an ephemeral message (only the executor can see it). Therefore, the value stored in the variable, if specified, will be an interaction hook, and not a compete message. You can also provide a message as reference. The replied message be linked with the provided one.

Starting DiSky v4.14.3, you can use reply with premium message to reply with a Discord-made message, meant to warn users about a feature they have to pay for. The bot/server MUST have monetization enabled for this to work!

reply with "Hello world!"
reply with last embed with reference event-message
reply with hidden "Hello ..." and store it in {_msg}
wait a second
edit {_msg} to show "... world!"
reply with [hidden] %string/messagecreatebuilder/sticker/embedbuilder% [with [the] reference[d] [message] %-message%] [and store (it|the message) in %-objects%]
reply with premium [required] message

RetrieveBans

Requires DiSky v4.0.0

No description provided.

No examples provided.
retrieve [(all|every)] bans (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (them|the bans) in %-objects%

Retrieve Guild Emotes

Requires DiSky v4.0.0

Retrieve (and cache) all emotes from a specific guild.

retrieve all emotes from event-guild and store them in {_emotes::*}
retrieve [(all|every)] emotes (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (them|the emotes) in %-objects%

Retrieve Interested Members

Requires DiSky v4.0.0

Retrieve (and cache) the interested members from a scheduled event.

retrieve all interested members from {_event} and store them in {_members::*}
retrieve [(all|every)] interested members (from|with|of|in) %scheduledevent% [(with|using) [the] [bot] %-bot%] and store (them|the interested members) in %-objects%

Retrieve Invite

Requires DiSky v4.0.0

Retrieve an invitation from a guild using its invite code/ID.

retrieve invite with id "000" from event-guild and store it in {_invite}
retrieve invite (with|from) id %string% (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (it|the invite) in %~objects%

Retrieve Invites

Requires DiSky v4.0.0

Retrieve all invites from a specific guild.

retrieve invites of event-guild and store them in {_invites::*}
retrieve [all [of]] [the] invite[s] (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (it|them|the invites) in %~objects%

Retrieve Logs

Requires DiSky v4.11.0

Retrieve the audit logs of a guild.

retrieve audit logs from event-guild and store it in {_logs::*}
retrieve [(all|every)] [audit] log[s] [entries] (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (them|the [audit] log[s] [entries]) in %-objects%

RetrieveMember

Requires DiSky v4.0.0

No description provided.

No examples provided.
retrieve member (with|from) id %string% (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (it|the member) in %-object%

RetrieveMessage

Requires DiSky v4.0.0

No description provided.

No examples provided.
retrieve message (with|from) id %string% (from|with|of|in) %channel% [(with|using) [the] [bot] %-bot%] and store (it|the message) in %-object%

Retrieve Messages

Requires DiSky v4.0.0

Retrieve last X messages from a specific message channel. You can retrieve up to 100 last messages, others will be ignored. Don't forget to use 'purge' effect to delete a lot of messages the most enhanced way ever.

retrieve last 30 messages from event-channel and store them in {_msg::*}
retrieve [last] %number% [amount of] message[s] (of|in|from) %channel% and store (them|the messages) in %-objects%

RetrieveOwner

Requires DiSky v4.0.0

No description provided.

No examples provided.
retrieve owner (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (it|the owner) in %-object%

Retrieve Profile

Requires DiSky v4.0.0

Retrieve the profile of the specified user. Profile represent mainly the banner of the user, could return the accent color if non set.

No examples provided.
retrieve profile (with|from) id %string% (from|with|of|in) %user% [(with|using) [the] [bot] %-bot%] and store (it|the profile) in %-object%

Retrieve Sticker

Requires DiSky v4.0.0

Retrieve a sticker from a guild using its per-guild name. This will return a sticker from the guild, not a global one.

No examples provided.
retrieve sticker (with|from) id %string% (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (it|the sticker) in %-object%

Retrieve Stickers

Requires DiSky v4.0.0

Retrieve every stickers (and cache them) from a specific guild.

No examples provided.
retrieve [(all|every)] stickers (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (them|the stickers) in %-objects%

Retrieve Thread Members

Requires DiSky v4.0.0

Retrieve every members (and cache them) from a specific thread.

No examples provided.
retrieve [(all|every)] thread members (from|with|of|in) %threadchannel% [(with|using) [the] [bot] %-bot%] and store (them|the thread members) in %-objects%

Retrieve Threads

Requires DiSky v4.0.0

Retrieve every threads (and cache them) from a specific guild. This effect will only get back the ACTIVE thread, and will pass on the archived ones.

No examples provided.
retrieve [(all|every)] thread[s] (from|with|of|in) %guild% [(with|using) [the] [bot] %-bot%] and store (them|the thread[s]) in %-objects%

RetrieveUser

Requires DiSky v4.0.0

No description provided.

No examples provided.
retrieve user (with|from) id %string% (from|with|of|in) %bot% and store (it|the user) in %-object%

RetrieveEventValue

Requires DiSky v4.0.0

No description provided.

No examples provided.
retrieve [the] [event[(-| )]]value %string% and store (it|the value) in %objects%

Send typing

Requires DiSky v4.0.0

Sends the typing status to discord. This is what is used to make the message "X is typing..." appear. Typing status lasts for 10 seconds.

show typing status in event-channel
[discord] (send|show) typing [status] (in|to) [[text[ |-]]channel] %channel%

Shutdown Bot

Requires DiSky v4.0.0

Stop and disconnect a loaded bot from DiSky & discord. If any requests was still remaining, they will be executed before the actual bot shutdown Using the force pattern will cancel all requests and shutdown the bot instantly.

shutdown bot named "name"
stop bot "name"
[force] (stop|shutdown) [the] [bot] %bot%

Suppress Reaction

Requires DiSky v4.1.1

Suppress one or more reactions of a message. You can also specific the user who added the emote to remove it one time. Without any specified user, it will be the bot's self user that removes the emote.

suppress reaction "x" of event-user from event-message
suppress reaction "joy" from event-message # Remove the reaction ADDED BY THE BOT
suppress [the] %emotes% [(of|from) [the] %-user%] (of|from) [the] %message%

TimeOut Member

Requires DiSky v4.0.0

Timeout a member (temporal exclusion) for a specific duration and with an optional reason. You can either timeout UNTIL a specific date (Skript date), or FOR a specific timespan (Skript timespan). This also can be used to remove the current time out, if the bot has the permission to do so.

timeout event-member for 5 minutes due to "ur so bad"
time out event-member until {_date}
stop time out of event-member
time[( |-)]out %member% for %timespan% [(for [the reason]|due to) %-string%]
time[( |-)]out %member% until %date% [(for [the reason]|due to) %-string%]
(stop|remove) time[( |-)]out (from|of) %member%

Unban User

Requires DiSky v4.0.0

Unbans a user from a guild.

unban event-user in guild with id "818182471140114432"
[discord] un[-| ]ban [the] [discord] [user] %user% (from|in) [guild] %guild%

Download Attachment

Requires DiSky v4.0.0

Download the specific attachment to a file path.

download {_attachment} in folder "plugins/data/attachments/"
(download|dl) [the] [attachment] %attachment% (in|to) [the] [(folder|path)] %string%

Edit Event-Component

Requires DiSky v4.14.2

Edit the event component directly, without editing the whole message again. This effect only works in button, string dropdown and entities dropdown events.

This will Acknowledge the interaction!

For concrete usage and example, check examples here for buttons and here for dropdowns.

edit [component] (button|dropdown|select[( |-)]menu) [of [the] (interaction|event)] to [show] %button/dropdown%

Edit Message's Component

Requires DiSky v4.15.2

Modify a single component via its ID in a specific message. This effect can only handle buttons and select menus.

This will NOT Acknowledge the interaction!

edit button with id "first" of event-message to show new secondary button with id "third" named "ayo ?!" with reaction "sob"
edit [message] (component|button|dropdown|select[( |-)]menu) with [the] id %string% (of|from|in) [the] [message] %message% (to [show]|with) %button/dropdown%

EffAddField

Requires DiSky v4.0.0

No description provided.

No examples provided.
add field (named|with name) %string% [and] with [the] value %string% to [fields of] %embedbuilder%
add inline field (named|with name) %string% [and] with [the] value %string% to [fields of] %embedbuilder%

Add Welcome Screen Channel

Requires DiSky v4.10.0

Add a channel to the welcome screen of a guild. Can only be used in a 'modify welcome screen' section.

discord command setup <guild>:
    trigger:
        modify welcome screen of arg-1:
            change the screen description to "Welcome to the server! Please read the rules and get roles before chatting."
            add channel with id "937001799896956991" named "Read our rules" with reaction "?" to the screen
            add channel with id "952199041335316520" named "Get roles" with reaction "??" to the screen
add [the] [channel] %channel% (named|with name) %string% [with [emoji] %-emote%] [to [the] [welcome] screen]

Welcome Screen Description

Requires DiSky v4.10.0

Change the description of the welcome screen. Can only be used in a 'modify welcome screen' section.

discord command setup <guild>:
    trigger:
        modify welcome screen of arg-1:
            change the screen description to "Welcome to the server! Please read the rules and get roles before chatting."
            add channel with id "937001799896956991" named "Read our rules" with reaction "?" to the screen
            add channel with id "952199041335316520" named "Get roles" with reaction "??" to the screen
change [the] [welcome] screen description to %string%
change [the] description of [the] [welcome] screen to %string%

Register Webhook Client

Requires DiSky v4.15.0

Register a new webhook client with the specified name and URL. The name is only used for internal purposes and can be anything you want; it'll be used in other syntax to reference the registered webhook client. The URL should be a valid Discord webhook URL (containing both the ID and the token). More information & examples can be found on the webhooks page.

See the webhooks page for examples.

register [a] [new] webhook[s] [client] (in|using) [the] [bot] %bot% (with [the] name|named) %string% (and|with) [the] [webhook] url %string%

Unregister Webhook Client

Requires DiSky v4.15.0

Unregister a webhook client with the specified name. This will remove the webhook client from the bot's memory, and it will no longer be usable in any further syntax.

unregister client named "my-webhook"
unregister [the] [webhook] client (with [the] name|named) %string%

Retrieve Webhooks

Requires DiSky v4.15.0

Retrieve all webhooks in a specific channel or guild. The output will be a list of webhook clients, which can be used in other webhook-related syntax.

See the webhooks page for examples.

retrieve [all] [discord] webhooks (of|from) [the] [(guild|channel)] %guild/textchannel% and store (them|the webhooks) in %~objects%

Make Webhook Post Message

Requires DiSky v4.15.0

Make the specified webhook client post a message to its channel. More information & examples can be found on the webhooks page.

See the webhooks page for examples.

make [the] [webhook] client %string% (post|send) [the] [message] %string/messagecreatebuilder/embedbuilder/messagepollbuilder% [with [the] username %-string%] [[and] [with] [the] avatar [url] %-string%] [and store (it|the message) in %-~objects%]