Custom CommandCustom Command
Dashboard
Discord
GitHub
Dashboard
Discord
GitHub
  • Guide

    • Getting Started
    • Creating Custom Commands
    • Syntax
    • Code and Comments
    • Using Variables
    • Using Arrays
    • Using Templates
    • Frequently Asked Questions
  • Trigger Types

    • Triggers showcase
    • Button Click
    • Channel add/remove
    • On Join/Leave
    • Library
    • Menu Interaction
    • Modal (Form) Interaction
    • Poll Updates Trigger
    • User Reaction
    • Role Given/Taken
    • Scheduled Event Updates Trigger
    • On Server Boost
    • Slash Command
    • Timed or Interval
    • On Timeout
    • Voice Join/Leave
    • Word Trigger
  • Tutorials & Examples

    • Ping command
    • Staff application
    • Report command
    • Collect reward
    • Simple Slash Command: Confession
    • Sending a poll
  • Other Information

    • Setting Up Your Custom Bot
    • Curl Arguments
    • Creating Embeds with the Embed Builder
    • Understanding Discord Rate Limits and Bot Cooldowns
    • Troubleshooting
    • Useful Information
    • Setting Up Welcomer
  • Changelogs

    • v1
    • V1.4.4
  • Functions

    • Member Functions

      • $authorAvatar
      • $authorID
      • $ban
      • $blackListIDs
      • $boostingSince
      • $changeNickname
      • $discriminator
      • $displayName
      • $eventNewNickname
      • $eventOldNickname
      • $findMember
      • $getUserBadges
      • $globalName
      • $hasAnyPerm
      • $hasAnyRole
      • $hasPerms
      • $hasRoles
      • $isBanned
      • $isUserDMEnabled
      • $kick
      • $memberSearch
      • $membersWithStatus
      • $mention
      • $moveUser
      • $muteUser
      • $nickname
      • $status
      • $unban
      • $user
      • $userAvatar
      • $userBanner
      • $userConnectedVC
      • $userExists
      • $userID
      • $userPerms
      • $userReacted
      • $userRoleColor
      • $userRoles
      • $userTag
      • $username
      • $usersBanned
      • $usersInChannel
      • $usersTyping
      • $usersWithRole
    • Channel Functions

      • $blackListChannelIDs
      • $cacheChannelMessages
      • $categoryChannels
      • $channel
      • $channelCategoryID
      • $channelCount
      • $channelExists
      • $channelID
      • $channelName
      • $channelPermissionsFor
      • $channelTopic
      • $channelType
      • $channelUsed
      • $clear
      • $cloneChannel
      • $closeTicket
      • $createChannel
      • $createForum
      • $deleteChannels
      • $editChannel
      • $editForum
      • $eventChannelID
      • $eventChannelParent
      • $findChannel
      • $findServerChannel
      • $getChannelMessages
      • $getChannelSlowmode
      • $latestMessage
      • $mentionChannel
      • $modifyChannelPerms
      • $newTicket
      • $removeContains
      • $serverChannels
      • $setChannelTopic
      • $slowmode
      • $transcriptChannel
      • $useChannel
      • $vcAfter
      • $vcBefore
      • $voiceChannelID
    • Message Functions

      • $DM
      • $addCmdReactions
      • $addMessageReactions
      • $addReactions
      • $argsCheck
      • $argsCount
      • $awaitMessage
      • $channelSendMessage
      • $clearReaction
      • $clearReactions
      • $createWebhook
      • $deleteCommand
      • $deleteIn
      • $deleteMessage
      • $deleteWebhook
      • Delete Webhook Message
      • $disableChannelMentions
      • Disable @everyone Mentions
      • $disableRoleMentions
      • $editEmbed
      • $editIn
      • $editMessage
      • $editWebhookMessage
      • $emoji
      • $emojiID
      • $emojiName
      • $emojiToString
      • $emojisFromMessage
      • Enable @everyone Mentions
      • $forwardMessage
      • $getCommandOption
      • $getEmbed
      • $getMessage
      • $getMessageReactions
      • $getReactionCount
      • $getReactions
      • $hasEmbeds
      • $hyperlink
      • $message
      • $messageAttachment
      • $messageExists
      • $messageFlags
      • $messageID
      • $messagePublish
      • $messageSlice
      • $messageType
      • $messageWebhookID
      • Modify Webhook
      • $msg
      • $noEscapingMessage
      • $noMentionMessage
      • $pinMessage
      • $poll
      • $referenceChannelID
      • $referenceMessageID
      • $reply
      • $sendCrosspostingMessage
      • $sendDM
      • $sendMessage
      • $sendWebhook
      • $sentMessageID
      • $unpinMessage
      • $webhookExists
    • Interaction Functions

      • $commandName
      • $getOption
      • $interactionDelete
      • $interactionEdit
      • $interactionId
      • $interactionReply
      • $modal
      • $modalAnswer
      • $modalID
    • Threads Functions

      • $addUsersToThread
      • $archiveThread
      • $closePost
      • $createPost
      • $createThread
      • $deletePost
      • $deletePosts
      • $deleteThreads
      • $editPost
      • $editThread
      • $getThreads
      • $joinThreads
      • $leaveThreads
      • $lockPost
      • $lockThread
      • $pinPost
      • $removeUsersFromThread
      • $thread
    • Role Functions

      • $blackListRoleIds
      • $colorRole
      • $createRole
      • $deleteRoles
      • $findRole
      • $getRoleColor
      • $giveRoles
      • $guildRoles
      • $hasRole
      • $highestRole
      • $highestServerRole
      • $lowestRole
      • $lowestServerRole
      • $mentionRole
      • $modifyRole
      • $modifyRolePerms
      • $modifyUserRoles
      • $role
      • $roleCount
      • $roleExists
      • $roleID
      • $roleIcon
      • $roleMembersCount
      • $roleName
      • /Role/rolePerms
      • $rolePosition
      • $setRoles
      • $takeRoles
      • $toggleRoles
    • Server Functions

      • $addEmoji
      • $allMembersCount
      • $createAutomodKeyword
      • $deleteAutomod
      • $deleteEmojis
      • $editAutomodKeyword
      • $emojiCount
      • $emojiExists
      • $getInviteInfo
      • $getServerInvite
      • $guild
      • $membersCount
      • $ownerID
      • $resolveEmojiID
      • $securityPause
      • $serverBanner
      • $serverBoostCount
      • $serverBoostLevel
      • $serverContentFilter
      • $serverDescription
      • serverEmojis
      • serverFeatures
      • $serverIcon
      • $serverName
      • $serverRegion
      • $serverSplash
      • $serverVerificationLevel
      • $setGuildIcon
      • $setGuildName
      • $systemChannelID
    • Random Functions

      • $random
      • $randomChannelID
      • $randomMention
      • $randomRoleID
      • $randomString
      • $randomText
      • $randomTextBiased
      • $randomUserID
      • $resetRandom
    • Text Functions

      • $buffer
      • $channelNSFW
      • $charCount[text]
      • $checkContains
      • $customEmoji
      • $disableMentions
      • $filterMessage
      • $filterMessageWords
      • $findChars
      • $findNumbers
      • $findSpecialChars
      • $indexOf
      • $isChannelMention
      • $isUserMention
      • $mentionType
      • $mentioned
      • $mentionedChannels
      • $mentionedRoles
      • $noMentionMessage
      • $numToWord
      • $numberSeparator
      • $padLeft
      • $padRight
      • $repeatMessage
      • $replaceText
      • $stringEndsWith
      • $stringStartsWith
      • $textLength
      • $textShuffle
      • $textSlice
      • $textTrim
      • $toLocaleUppercase[text]
      • $toLowercase[text]
      • $toUppercase[text]
      • $uri
      • $void
    • Condition Functions

      • $checkCondition
      • $conditional
      • $else
      • $elseif
      • $endIf
      • $endelseif
      • $if
    • Sticker Functions

      • $createSticker
      • $deleteSticker
      • $editSticker
      • $messageStickers
      • $serverStickers
      • $sticker
    • Event Functions

      • $eventCreate
      • $eventDelete
      • $eventEdit
      • $eventEnd
      • $eventExists
      • $eventStart
      • $getEventInfo
      • $getEventUsers
      • $guildEvents
    • User Timeout Functions

      • $timeoutAction
      • $timeoutBy
      • $timeoutReason
      • $userGetTimeout
      • $userRemoveTimeout
      • $userSetTimeout
    • Embed functions

      • $addField
      • $addTimestamp
      • $attachment
      • $author
      • $color
      • $description
      • Complete Embed
      • $footer
      • $image
      • $thumbnail
      • $title
    • Button Functions

      • $addButton
      • $addMenu
      • $awaitButton
      • $awaitMenu
      • $button
      • $buttonEmoji
      • $buttonID
      • $buttonIsDisabled
      • $buttonLabel
      • $buttonStyle
      • $buttonURL
      • $disableButton
      • $disableButtons
      • $disableMenu
      • $editButton
      • $editMenu
      • $enableButtons
      • $enableMenu
      • $eventSelected
      • $menuID
      • $removeButton
      • $removeButtons
      • $removeEmbed
      • $removeMenu
      • $selectMenu
    • Math Functions

      • $abbreviate
      • $abs
      • $ceil
      • $divide
      • $floor
      • $math
      • $mathMax
      • $mathMin
      • $modulo
      • $multi
      • $ordinal
      • $round
      • $roundTenth
      • $sub
      • $sum
      • $truncate
    • Text Split Functions

      • $advancedTextSplit
      • $concatTextSplit
      • $editTextSplitElement
      • $findTextSplitIndex
      • $getTextSplitLength
      • $joinSplitText
      • $removeSplitTextElement
      • $removeTextSplitElement
      • $spliceTextJoin
      • $splitText
      • $textSplit
    • Array Functions

      • $arrayClear
      • $arrayConcat
      • $arrayCount
      • $arrayCreate
      • $arrayElementCount
      • $arrayFilter
      • $arrayGet
      • $arrayInclude
      • $arrayJoin
      • $arrayLength
      • $arrayLoop
      • $arrayMap
      • $arrayPop
      • $arrayPush
      • $arrayRemove
      • $arrayReverse
      • $arraySearch
      • $arraySet
      • $arrayShift
      • $arrayShuffle
      • $arraySlice
      • $arraySort
      • $arrayUnique
      • $arrayUnshift
    • Object Functions

      • $objectCreate
      • $objectGet
      • $ObjectIncrease
      • $ObjectKeyExists
      • $ObjectKeys
      • $ObjectLoop
      • $ObjectMerge
      • $ObjectRemove
      • $ObjectRenameKey
      • $objectSet
      • $ObjectValues
      • $addObjectProperty
      • $createObject
      • $getObject
      • $getObjectKeys
      • $getObjectProperty
    • Is and Has Functions

      • $isBoosting
      • $isbot
      • $isConnected
      • $isDeafened
      • $isEmoji
      • $isHoisted
      • $isManaged
      • $isMentionable
      • $isMentioned
      • $isMuted
      • $isNumber
      • $isStreaming
      • $isTicket
      • $isValidHex
      • $isValidInvite
      • $isValidLink
      • $isValidObject
    • Only Functions

      • $onlyBotPerms
      • $onlyForCategories
      • $onlyForChannels
      • $onlyForIDs
      • $onlyForRoles
      • $onlyIf
      • $onlyIfMessageContains
      • $onlyNSFW
      • $onlyPerms
    • Regex Functions

      • $regexCheck
      • $regexMatch
      • $regexReplace
      • $replaceTextWithRegex
    • Date Functions

      • $creationDate
      • $dateStamp
      • $dateToTime
      • $day
      • $formatDate
      • $hour
      • $humanizeMS
      • $memberJoinedCode
      • $memberJoinedDate
      • $minute
      • $month
      • $parseDate
      • $parseTime
      • $second
      • $timeStamp
      • $timeToDate
      • $timezone
      • $year
    • Variables Functions

      • $deleteChannelVar
      • $deleteMessageVar
      • $deleteServerVar
      • $deleteUserVar
      • $get
      • $getChannelVar
      • $getMessageVar
      • $getServerVar
      • $getUserVar
      • $increaseChannelVar
      • $increaseServerVar
      • $increaseUserVar
      • $initVar
      • $let
      • $resetUserVar
      • $setChannelVar
      • $setMessageVar
      • $setServerVar
      • $setUserVar
      • $userLeaderboard
      • $userVarRank
      • $viewChannelVars
      • $viewServerVars
      • $viewUserVars
    • Bot Functions

      • $botCount
      • $botOwnerID
      • $botPing
      • $botTier
      • $botTyping
      • $botVerified
      • $botVersion
      • $cacheMember
      • $clientID
      • $cpu
      • $executionTime
      • $getBotActivity
      • $getBotInvite
      • $maxRam
      • $ping
      • $ram
      • $serverCount
      • $setBotActivity
      • $uptime
    • Useful Functions

      • $callFunction
      • $commandCode
      • $deleteTrigger
      • $editTrigger
      • $endForEach
      • $endFunction
      • $endTimeout
      • $error
      • $forEach
      • $function
      • $getToken
      • $getTrigger
      • $ignoreErrors
      • $includeLibrary
      • $jsonRequest
      • $redirectErrors
      • $return
      • $seq
      • $setTimeout
      • $spread
      • $stop
      • $suppressErrors
      • $triggerExists
      • $wait
    • Cooldown functions

      • $channelCooldown
      • $clearCooldown
      • $cooldown
      • $getCooldownTime
      • $serverCooldown
    • Http Requests functions

      • $httpRequest
      • $httpRequestHeader
      • $httpRequestStatus
    • Image Builder functions

      • $imageBorderRad
      • $imageCreate
      • $imageCrop
      • $imageDraw
      • $imageDrawBack
      • $imageFill
      • $imageHeight
      • $imageLineHeight
      • $imageLoadEmoji
      • $imageLoadFromURL
      • $imageOutput
      • $imagePositionBase
      • $imageSetOpacity
      • $imageStroke
      • $imageStrokeWidth
      • $imageTextAlign
      • $imageTextBaseline
      • $imageTextColor
      • $imageTextFill
      • $imageTextFillColor
      • $imageTextSize
      • $imageTextStroke
      • $imageTextStrokeColor
      • $imageTextWeight
      • $imageUseFont
      • $imageWidth
  • Contribute

    • Templating System
    • Function Template
    • Contributing to the Documentation
  • Legal

    • Privacy Policy
    • Terms of Service

Image Builder: Positioning Elements

Positioning images and objects is a crucial step in building your images. Position is defined by two values, X and Y, which determine the object's location on the canvas.

Origin

The X and Y origin starts at the top-left corner of the canvas. This means:

  • [X=0, Y=0] is the top-left corner.
  • [X=Width, Y=0] is the top-right corner.
  • [X=0, Y=Height] is the bottom-left corner.
  • [X=Width, Y=Height] is the bottom-right corner.

Example 1: Filling a Rectangle

Let's use the $imageFill function as an example, which requires the position of the filled rectangle. We'll start by positioning a 100x100 rectangle at [X=0, Y=0]:

Centering the Rectangle (Attempt 1)

To center the filled rectangle, we might try placing it at X equal to half the canvas width, and Y equal to half the canvas height:

Problem: That doesn't look centered! Why?

Answer: You're right! By default, X and Y represent the position of the top-left corner of the object. Therefore, placing the corner at the center doesn't center the entire rectangle.

To fix this, we need to offset the position by half the rectangle's width and height.

Centering the Rectangle (Corrected)

Here's the corrected version:

Yay! Now it's centered.

Position Base: Changing the Origin Point

By default, X and Y represent the top-left corner of the object. But what if we want to use a different point as the reference? For example, in the previous example, we had to perform extra calculations to center the box because we were working with the top-left corner.

$imagePositionBase

The $imagePositionBase function allows us to change the origin point used for positioning.

Its usage is:

$imagePositionBase[Base]

Where Base can be one of the following: top, topleft, topright, center, centerleft, centerright, bottom, bottomleft, bottomright.

Example 2: Rewriting Example 1 with $imagePositionBase

Let's rewrite Example 1, but this time we'll make X and Y represent the center of the box by specifying Base as center:

Did you notice width/2 and height/2? Introducing Placeholders

You might be wondering if there are more user-friendly names, like width and height, that can be used in position calculations. The answer is YES! We call them Placeholders.

Position Placeholders

Placeholders simplify positioning by providing convenient ways to refer to canvas dimensions and center points.

PlaceholderDescription
widthThe width of the canvas.
heightThe height of the canvas.
centerxThe horizontal center of the canvas (equivalent to width/2).
centeryThe vertical center of the canvas (equivalent to height/2).
centerIf used in the X position, it's equivalent to centerx; if used in the Y position, it's centery.
wAlias for width.
hAlias for height.

Example 3: Even Simpler Centering

Now we can use center instead of width/2 and height/2, making our code even cleaner:

Improve This Page!