ARC Discord Bot
We previously had a Discord bot, but we are now developing a better version. This bot is designed to handle general tasks that the club needs. As you explore its features, you will notice that many of them are intended to help officers and admins configure the bot, manage club operations, and make everything run better.
This is also a full rewrite from Python to Discord.js using JavaScript. We are also using better-sqlite3 for the database. The previous bot had some issues with memory being dirty, timers not functioning right, and other problems, so we improved it to make it more reliable and work better. This also mean we will have some cached results and easy operational use.
Developer Documentation[edit | edit source]
see also Category:ARC Discord Bots
Future Features[edit | edit source]
- git hub for all bots should be linked here, and seperate sections for mARCo and AR-CAT-UCF
- Pings users back to a message after a selected amount of time (like a timer), or let the user pick the time/date the bot pings
- [ [wiki title] ] to send the corresponding wiki link
- T CS links
- could test having it send wiki pages with out using the brackets
- if a user says "..ham exam.." the bot could say "oh we have a page for that!"
- a counter for the times Steve types Teh/teh instead of The/the
- optional additional metrics/stats
- attendance
- Links
- Use our link shortners
- They should be hyperlinked instead of showing the actual link
- Command for just where is the shack is, and the link on how to get there
- Event bot
- Need to be able to give it a list of dates, or a weekly/biweekly/monthly set schedule (Tuesdays at 4:45) for reoccurring events
- ability to import ICS files for easy multi event addition
- Add a picture to the event
- Bonus points if the bot has some preset images we can upload for pictures we use often
- tabling pictures: SU, Memory mall, etc
- FD
- Bonus points if the bot has some preset images we can upload for pictures we use often
- Use ARC gold for the accent colors hex code: FF C9 04
- Reactions for easy sign up
- Custom emojis for different events
- an option for unlicensed folk to sign up for the net, and say that they want someone to control operate for them
- Sign ups add folk's name to the event like Apollo bot
- Easy head counts
- Custom emojis for different events
- Need to be able to give it a list of dates, or a weekly/biweekly/monthly set schedule (Tuesdays at 4:45) for reoccurring events
mARCo[edit | edit source]
User Commands[edit | edit source]
These commands are not fully done and being in progress. The usages are generated by AI bc im lazy:>
General[edit | edit source]
- /ping
- Check whether the bot is online.
/ping
- /status
- View the bot’s uptime.
/status
Timers[edit | edit source]
- /timer
- Create a reminder.
- Parameters:
minutes— Minutes from now.days— Days from now.when— A time or date, such as4:30pm,tomorrow 9am, or2026-07-25 14:30.name— Optional timer name.message— Optional reminder text.
- Rules:
- Use
minutes/daysorwhen, not both. - Minimum duration: 1 minute.
- Maximum duration: 366 days.
- Multiple timers are allowed.
- Use
- Examples:
/timer minutes:10 name:Laundry message:Move clothes to dryer/timer days:2 name:Exam/timer when:4:30pm message:Check the repeater/timer when:tomorrow 9am name:Meeting
Links[edit | edit source]
- /links show
- View ARC links.
- Parameters:
category— Optional. Choices:All,Club & Wiki,Study & Testing, orOperating Reference.
- Examples:
/links show/links show category:Study & Testing
Exam Information[edit | edit source]
- /exam
- View US amateur radio license exam information.
- Parameters:
level— Optional. Choices:All,Technician,General, orAmateur Extra.
- Examples:
/exam/exam level:Technician
Callsign Lookup[edit | edit source]
- /callsign lookup
- Look up a US amateur radio callsign.
- Parameters:
callsign— Required.public— Optional. Usetrueto post publicly. Default: private.
- Examples:
/callsign lookup callsign:K4UCF/callsign lookup callsign:W1AW public:true
Admin Commands[edit | edit source]
Link Management[edit | edit source]
- Requires the Discord
Manage Serverpermission.
- /links add
- Add or update a server link.
- Parameters:
title— Required. Link title.url— Required. Must begin withhttp://orhttps://.category— Required. Choices:Club & Wiki,Study & Testing, orOperating Reference.sort_order— Optional. Lower numbers appear first.
- Example:
/links add title:Repeater Book url:https://example.com category:Operating Reference
- /links list
- View link IDs.
- Parameters:
limit— Optional. Number of links to show, from 1 to 100.
- Example:
/links list
- /links remove
- Remove a link.
- Parameters:
id— Required. Use an ID from/links list.
- Example:
/links remove id:12
Event Management[edit | edit source]
- Requires the Discord
Manage Eventspermission.
- /event create
- Create an event signup message.
- Parameters:
title— Required. Event title.image— Optional. Image URL for the embed image.dates— Optional. Comma-separated dates and times.repeat— Optional. Choices:None,Weekly,Biweekly, orMonthly.first— Optional. First event date and time.weekday— Optional. Weekday for a recurring event.time— Optional. Time for a recurring event.start_date— Optional. Start date for a recurring event.occurrences— Optional. Number of events to create, from 1 to 52.post_count— Optional. Number of event messages to post immediately, from 1 to 10.duration— Optional. Duration in minutes.channel— Optional. Channel for the signup message.location— Optional. Event location.description— Optional. Event details.control_operator— Optional. Show or hide the Need Control Op button.emoji_going— Optional. Custom Going emoji.emoji_maybe— Optional. Custom Maybe emoji.emoji_no— Optional. Custom Not Going emoji.emoji_control— Optional. Custom Need Control Op emoji.
- Examples:
/event create title:Club Meeting first:2026-08-12 6pm location:Student Union/event create title:Weekly Net repeat:Weekly weekday:Tuesday time:4:45pm channel:#events/event create title:Field Day dates:2026-08-01 9am, 2026-08-02 9am post_count:2/event create title:Workshop first:2026-09-20 7pm location:StudentUnion image:https://example.com/flyer.png
- /event list
- View upcoming event IDs and series IDs.
- Parameters:
limit— Optional. Number of events to show, from 1 to 25.
- Example:
/event list
- /event stop
- Stop a recurring event series and cancel its future events.
- Parameters:
series_id— Required. Use a series ID from/event list.
- Example:
/event stop series_id:1
- /event cancel
- Cancel one event.
- Parameters:
event_id— Required. Use an event ID from/event list.
- Example:
/event cancel event_id:4
- /event refresh
- Refresh an event signup message.
- Parameters:
event_id— Required. Use an event ID from/event list.
- Example:
/event refresh event_id:4
wikiRicky[edit | edit source]
- post notification for every page edit
- Bugs / feature requests
- sometimes gets confused and reposts old edits (should ignore edits not done today or prior to previous post?)
- sometimes double posts (should coalesce identical notifications)
- should ignore changes flagged as minor (is this in the rss feed?)
- should include edit summary when provided
- should be able to filter by category (this could be messy to do recursively if rss link doesn't support it)