CES RoleCall

#πŸ“Š CES RoleCall

#Installation & Setup Guide

CES RoleCall is a Discord bot that provides live status boards for your server.

It is designed for teams, developers, creators, and businesses that want to show:

  • Open team positions
  • Commission availability
  • Commission lead times
  • Automatic role notifications when a status changes

The bot keeps one persistent embed for each board and updates that embed instead of creating a new message every time.


#✨ Features

CES RoleCall includes:

  • πŸ“Œ Open Positions board
  • 🎨 Commission Status board
  • πŸ”„ Persistent status embeds
  • πŸ”” Optional role pings when statuses change
  • πŸ§‘β€πŸ’Ό Team/position management
  • 🎨 Commission management
  • πŸ—‘οΈ Remove status entries
  • πŸ‘€ Private status overview
  • πŸ”’ Administrator-only commands
  • πŸ’Ύ Local JSON data storage
  • 🌐 Optional global slash commands
  • ⚑ Instant guild slash commands when GUILD_ID is configured

#πŸ“¦ Requirements

Before installing CES RoleCall, make sure you have:

  • A Discord server
  • Permission to add bots to the server
  • A Discord Developer Portal account
  • Node.js v18 or newer
  • A computer, VPS, or hosting service capable of running Node.js

CES RoleCall does not require a MySQL database.

Status information is stored locally in:

config.json

The locations of the two persistent Discord embeds are stored in:

message_map.json

#πŸ€– Step 1 β€” Create Your Discord Bot

Go to the Discord Developer Portal:

https://discord.com/developers/applications

  1. Click New Application.
  2. Enter a name for your bot.
  3. Click Create.
  4. Open the Bot section.
  5. Click Reset Token.
  6. Copy your bot token.

⚠️ Never share your bot token.

Anyone who has your token may be able to control your bot.

If your token is accidentally exposed, reset it immediately in the Discord Developer Portal.


#πŸ†” Step 2 β€” Get Your Application ID

In the Discord Developer Portal:

  1. Open your application.
  2. Go to General Information.
  3. Find Application ID.
  4. Copy it.

You will use this as:

CLIENT_ID=your-application-id

#🏠 Step 3 β€” Get Your Server ID

You can optionally configure RoleCall to register slash commands directly to one Discord server.

This makes the commands appear almost immediately.

First enable Developer Mode:

  1. Open Discord.
  2. Open User Settings.
  3. Select Advanced.
  4. Enable Developer Mode.

Then:

  1. Right-click your Discord server.
  2. Select Copy Server ID.

You will use this as:

GUILD_ID=your-server-id

#Do I need GUILD_ID?

No.

If you configure:

GUILD_ID=123456789012345678

commands are registered specifically to that server and appear instantly.

If you leave it blank:

GUILD_ID=

commands are registered globally.

Global slash commands can take up to an hour to appear the first time.


#πŸ”” Step 4 β€” Create Your Role Ping Roles

RoleCall can optionally ping a Discord role whenever a status changes.

You can configure two separate roles:

TEAM_ROLE_ID=
COMMISSION_ROLE_ID=

#Team Role

This role is pinged when an Open Positions status changes.

Example:

TEAM_ROLE_ID=123456789012345678

#Commission Role

This role is pinged when a Commission Status changes.

Example:

COMMISSION_ROLE_ID=987654321098765432

Both settings are optional.

If you leave them blank, the bot will still post the status update without mentioning a role.


#πŸ†” Step 5 β€” Get the Role IDs

With Developer Mode enabled:

  1. Open your Discord server.
  2. Go to Server Settings β†’ Roles.
  3. Find the role you want to use.
  4. Right-click the role.
  5. Select Copy Role ID.

Paste the ID into your .env file.

Example:

TEAM_ROLE_ID=123456789012345678
COMMISSION_ROLE_ID=987654321098765432

#πŸ”— Step 6 β€” Invite the Bot

Go to:

Discord Developer Portal β†’ Your Application β†’ OAuth2 β†’ URL Generator

Select these scopes:

bot
applications.commands

Under Bot Permissions, enable at least:

  • View Channels
  • Send Messages
  • Embed Links
  • Read Message History
  • Mention Everyone

The bot needs permission to send and edit messages in the channels where you use RoleCall.

The bot does not require privileged gateway intents.


#πŸ“₯ Step 7 β€” Extract CES RoleCall

Extract the downloaded CES RoleCall ZIP file.

Your folder should contain files similar to:

CES_Role_Call/
β”œβ”€β”€ bot.js
β”œβ”€β”€ package.json
β”œβ”€β”€ config.json
β”œβ”€β”€ message_map.json
β”œβ”€β”€ .env.example
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── LICENSE.txt

#πŸ“¦ Step 8 β€” Install Dependencies

Open a terminal inside the CES RoleCall folder.

Run:

npm install

This installs the required Node.js packages.

CES RoleCall uses:

  • discord.js
  • dotenv

#βš™οΈ Step 9 β€” Create Your .env File

Copy:

.env.example

and rename the copy to:

.env

Open the .env file.

You should have:

DISCORD_TOKEN=your-bot-token
CLIENT_ID=your-application-id
GUILD_ID=your-server-id
TEAM_ROLE_ID=
COMMISSION_ROLE_ID=

#πŸ”‘ Step 10 β€” Configure .env

#DISCORD_TOKEN

Your Discord bot token.

DISCORD_TOKEN=your-bot-token

#CLIENT_ID

Your Discord application's Application ID.

CLIENT_ID=123456789012345678

#GUILD_ID

Your Discord server ID.

GUILD_ID=123456789012345678

This is optional.

To use global commands:

GUILD_ID=

#TEAM_ROLE_ID

The role that should be pinged when an Open Positions status changes.

TEAM_ROLE_ID=123456789012345678

Optional.


#COMMISSION_ROLE_ID

The role that should be pinged when a Commission Status changes.

COMMISSION_ROLE_ID=987654321098765432

Optional.


#πŸ”’ Protect Your .env

Never share your .env file publicly.

Do not post your bot token in:

  • Discord
  • GitHub
  • Screenshots
  • Forums
  • Support tickets
  • Public websites

Keep .env private.


#▢️ Step 11 β€” Start CES RoleCall

Run:

npm start

If everything is configured correctly, you should see messages similar to:

βœ… Slash commands registered to your server (instant).
βœ… Logged in as YourBot#1234

If GUILD_ID is blank, you may instead see:

βœ… Slash commands registered globally (can take up to an hour to appear).

Keep the process running for the bot to remain online.


#πŸ“Œ Step 12 β€” Create Your Open Positions Board

CES RoleCall can display your available team positions.

Use:

/set_team_status

You must provide:

name
status

Example:

/set_team_status name:Development Team status:Open

The bot will create or update the Open Positions embed.


#🎨 Step 13 β€” Create Your Commission Board

Use:

/set_commission_status

You must provide:

name
status
lead_time

Example:

/set_commission_status name:Vehicle Liveries status:Open lead_time:3-4 Days

The bot will create or update the Commission Status embed.


#πŸ”„ Persistent Boards

CES RoleCall creates one persistent embed for each board.

The two boards are:

πŸ“Œ Open Positions
🎨 Commission Status

When you update an existing entry, the bot edits the existing embed instead of posting another new embed.

This keeps your Discord channel clean.


#πŸ§‘β€πŸ’Ό Open Positions

Use Open Positions to show roles or positions that your organization is currently accepting.

Examples:

Game Developer
3D Artist
Discord Developer
Web Developer
QA Tester
Creative & Content
Business

Example:

/set_team_status name:Game Developer status:Open

The board will display:

πŸ§‘β€πŸ’Ό Game Developer
βœ… Status: Open

#Commission Status

Use Commission Status to show what services or commission types are currently available.

Examples:

FiveM Scripts
Discord Bots
Website Templates
3D Models
Custom Websites
Game Development

Example:

/set_commission_status name:Discord Bots status:Open lead_time:3-5 Days

The board will display:

🎨 Discord Bots
βœ… Status: Open
⏱️ Lead Time: 3-5 Days

#Removing a Team Status

To remove a position from the Open Positions board:

/remove_team_status name:Development Team

Example:

/remove_team_status name:Game Developer

The entry will be removed from the board.


#Removing a Commission Status

To remove a commission type:

/remove_commission_status name:Vehicle Liveries

The entry will be removed from the Commission Status board.


#Viewing Current Statuses

Use:

/list_statuses

This displays the current contents of both boards.

The response is only visible to you.

It includes:

πŸ“Œ Open Positions

🎨 Commission Status

This is useful for quickly checking your current statuses without scrolling through your Discord channels.


#Role Notifications

If you configured a role ID, RoleCall sends a notification whenever a status is changed.

For example:

πŸ”” @CES Team
Game Developer status changed to Open

For commissions:

πŸ”” @Commissions
Vehicle Liveries commission status changed to Open
⏱️ Lead Time: 3-4 Days

#Disabling Role Pings

Role pings are optional.

To disable team notifications:

TEAM_ROLE_ID=

To disable commission notifications:

COMMISSION_ROLE_ID=

Restart the bot after changing the .env file.


#Administrator Permissions

All RoleCall slash commands require the user to have the Discord:

Administrator

permission.

Users without Administrator permission will receive:

❌ Admins only.

The configured TEAM_ROLE_ID and COMMISSION_ROLE_ID roles are for notifications. They do not grant users permission to manage RoleCall.


#Data Storage

RoleCall does not use a database.

It uses two JSON files.

#config.json

Stores the current status information.

Example:

{
  "teamStatus": {},
  "commissionStatus": {}
}

When you add statuses, the bot updates this file automatically.

You should normally not edit this file manually.


#message_map.json

Stores the Discord channel and message IDs for the persistent boards.

Example:

{
  "open_positions": {
    "channelId": "",
    "messageId": ""
  },
  "commission_status": {
    "channelId": "",
    "messageId": ""
  }
}

The bot updates this file automatically when it creates a board.

You should normally not edit this file manually.


#Backing Up RoleCall

Before moving the bot to another computer or hosting provider, back up:

config.json
message_map.json
.env

The most important files are:

config.json
message_map.json

These preserve your statuses and the locations of your boards.

Keep .env private.


#Updating CES RoleCall

Before updating:

  1. Stop the current bot.
  2. Back up config.json.
  3. Back up message_map.json.
  4. Back up .env.
  5. Download the new version.
  6. Replace the old bot files.
  7. Restore your configuration files.
  8. Run:
npm install
  1. Start the bot:
npm start
  1. Test the slash commands.

Important: Do not overwrite your .env, config.json, or message_map.json without creating backups.


#Keeping the Bot Online

CES RoleCall must remain running to respond to Discord commands.

You can run it on:

  • Your computer
  • A VPS
  • A dedicated server
  • A Node.js hosting service
  • Railway
  • Replit
  • Another service that supports long-running Node.js applications

For production use, a VPS or reliable Node.js hosting service is recommended.


#Troubleshooting

#"Missing required setting(s)"

If you see:

❌ Missing required setting(s)

make sure your .env contains:

DISCORD_TOKEN=
CLIENT_ID=

Both are required.


#"Failed to log in"

This normally means your bot token is incorrect.

Check:

DISCORD_TOKEN=your-bot-token

Make sure:

  • The token is correct.
  • There are no extra spaces.
  • You are using the bot token, not the Application ID.
  • The token has not been reset.

If necessary, generate a new token in the Discord Developer Portal.


#Slash Commands Are Missing

If slash commands do not appear:

#If using GUILD_ID

Check:

GUILD_ID=your-server-id

Make sure it is the correct Discord server ID.

Guild commands should appear quickly.

#If using global commands

If:

GUILD_ID=

commands are registered globally.

The first global registration can take up to an hour to appear.


#Bot Has Missing Permissions

Make sure the bot has permission to:

  • View Channels
  • Send Messages
  • Embed Links
  • Read Message History
  • Mention Everyone

Check the channel permissions if the bot can see the channel but cannot post.


#Role Is Not Being Pinged

Check:

TEAM_ROLE_ID=

or:

COMMISSION_ROLE_ID=

Make sure the role ID is correct.

Also check the Discord role settings.

The bot needs to be able to mention the role.

If the role is configured to only allow certain users/bots to mention it, make sure the bot has permission to do so.


#Status Board Is Not Updating

Check that the bot has:

View Channel
Send Messages
Embed Links
Read Message History

The bot needs to be able to find and edit the existing board message.

If the original board message was deleted, RoleCall may need to create a fresh board message.


#A Board Message Was Deleted

If you delete a RoleCall board message manually, the saved message ID in:

message_map.json

may point to the deleted message.

If the bot cannot recover the board automatically, remove the saved message information for that board from message_map.json.

For example:

{
  "open_positions": {
    "channelId": "",
    "messageId": ""
  }
}

Then run the appropriate status command again.

The bot will create a new board message.

Back up message_map.json before manually changing it.


#Testing Checklist

Before putting CES RoleCall into production:

  • [ ] Node.js v18+ is installed
  • [ ] Discord bot application is created
  • [ ] Bot token is configured
  • [ ] Client ID is configured
  • [ ] Guild ID is configured if desired
  • [ ] Team role ID is configured if desired
  • [ ] Commission role ID is configured if desired
  • [ ] Bot is invited to the server
  • [ ] bot scope is enabled
  • [ ] applications.commands scope is enabled
  • [ ] Bot permissions are configured
  • [ ] npm install completed
  • [ ] Bot starts without errors
  • [ ] Slash commands appear
  • [ ] /set_team_status works
  • [ ] /set_commission_status works
  • [ ] /remove_team_status works
  • [ ] /remove_commission_status works
  • [ ] /list_statuses works
  • [ ] Open Positions board updates
  • [ ] Commission Status board updates
  • [ ] Role pings work if configured
  • [ ] config.json is being updated
  • [ ] message_map.json is being updated

#Support

If you need help with CES RoleCall, contact Crazy Eyes Studio Support.

When requesting support, include:

CES RoleCall Version:
1.0.0

Problem:
Describe the issue.

Error Message:
Copy the exact error message.

Node.js Version:
Your Node.js version.

Discord Server:
Your server name.

Steps to Reproduce:
1.
2.
3.

Screenshots:
Attach screenshots if available.

⚠️ Never send your bot token, .env file, or other private credentials.


#License

CES RoleCall is provided by Crazy Eyes Studio.

See the included:

LICENSE.txt

for the complete license.

You may run and modify your own local copy for your own use, but redistribution, resale, sublicensing, reposting, or claiming authorship is not permitted without permission from Crazy Eyes Studio.


#More CES Documentation

Visit the CES Docs website for documentation for other Crazy Eyes Studio products.

CES Docs

https://docs.crazyeyesstudio.com/

Crazy Eyes Studio

https://crazyeyesstudio.com/


#Β© Crazy Eyes Studio

CES RoleCall is a product of Crazy Eyes Studio.

All rights reserved

No ratings yet