Skip to content

Commit eacf9ab

Browse files
committed
readme refresh
1 parent f3df71c commit eacf9ab

1 file changed

Lines changed: 64 additions & 102 deletions

File tree

README.md

Lines changed: 64 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,51 @@
1-
# Arcanum
1+
# Arcanum Discord Bot
22

3-
<img src="icon-big.png" height="100" alt="Arcanum Bot Avatar">
3+
A Discord bot for tabletop gaming enthusiasts, featuring dice rolling and item tracking functionality.
44

5-
> A streamlined Discord bot for essential TTRPG functionality.
5+
## Features
66

7-
Arcanum is a focused Discord bot designed to provide core tabletop RPG functionality on Discord. It offers comprehensive dice rolling, persistent item tracking, and basic utilities. Built with Node.js and Discord.js, it's lightweight, reliable, and easy to deploy.
7+
### 🎲 Dice Rolling
88

9-
## Features
9+
- Roll standard dice: `/roll d4`, `/roll d6`, `/roll d8`, `/roll d10`, `/roll d12`, `/roll d20`, `/roll d100`
10+
- Roll custom dice: `/roll dx sides:20 quantity:3`
11+
- Roll multiple dice: `/roll d20 quantity:5`
12+
- Supports up to 100 dice per roll with a maximum of 100 sides per die
13+
- Optimized for large rolls with chunked processing to avoid timeouts
14+
15+
### 📋 Item Tracking
16+
17+
- **Add items**: `/tracker add name:sword quantity:2`
18+
- **Remove items**: `/tracker remove name:sword quantity:1`
19+
- **List all items**: `/tracker list`
20+
- **Search for items**: `/tracker search name:sw` (supports fuzzy matching)
21+
- **Clear tracker**: `/tracker clear` (requires MANAGE_CHANNELS permission)
22+
- Per-channel tracking with automatic cleanup of zero-quantity items
1023

11-
- **🎲 Dice Rolling**: Full dice rolling system supporting standard dice (d4, d6, d8, d10, d12, d20, d100) and custom dice
12-
- **📦 Item Tracking**: MongoDB-based persistent item tracking system with search functionality
13-
- **🏓 Bot Status**: Simple ping command to check bot responsiveness
14-
- **🔧 Minimal Configuration**: Simple environment-based setup
24+
### 🏓 Utility
1525

16-
## Quick Start
26+
- **Ping**: `/ping` - Check if the bot is responsive
1727

18-
### Using the Public Instance
28+
## Installation
1929

20-
The easiest way to get started is by inviting our hosted bot to your server:
30+
### Add to Your Server
2131

22-
**[🔗 Invite Arcanum to Your Server](https://discord.com/oauth2/authorize?client_id=1274868942753628210)**
32+
[**Click here to add Arcanum to your Discord server**](https://discord.com/oauth2/authorize?client_id=1274868942753628210)
2333

2434
### Self-Hosting
2535

2636
#### Prerequisites
2737

28-
- Node.js 18+
38+
- Node.js 18 or higher
2939
- MongoDB database
30-
- Discord Bot Token
40+
- Discord bot token
3141

32-
#### Installation
42+
#### Setup
3343

3444
1. Clone the repository:
3545

3646
```bash
37-
git clone https://github.com/zuedev/arcanum.git
38-
cd arcanum
47+
git clone https://github.com/zuedev/Arcanum.git
48+
cd Arcanum
3949
```
4050

4151
2. Install dependencies:
@@ -44,119 +54,71 @@ The easiest way to get started is by inviting our hosted bot to your server:
4454
npm install
4555
```
4656

47-
3. Configure environment variables:
57+
3. Create a `.env` file with your configuration:
4858

49-
```bash
50-
cp .env.example .env
51-
# Edit .env with your configuration
59+
```env
60+
DISCORD_BOT_TOKEN=your_bot_token_here
61+
MONGODB_URI=mongodb+srv://user:password@cluster.mongodb.net/arcanum
5262
```
5363

5464
4. Start the bot:
5565
```bash
56-
npm start
66+
npm run dev # Development mode with .env file
67+
npm start # Production mode
5768
```
5869

59-
## Commands
60-
61-
### `/roll` - Dice Rolling System
62-
63-
- `/roll d20` - Roll a d20 (with optional quantity)
64-
- `/roll d12`, `/roll d10`, `/roll d8`, `/roll d6`, `/roll d4` - Roll standard dice
65-
- `/roll d100` - Roll percentile dice
66-
- `/roll dx` - Roll custom dice with specified sides
67-
68-
### `/tracker` - Item Tracking System
69-
70-
- `/tracker add` - Add items to the tracker with quantities
71-
- `/tracker remove` - Remove items from the tracker
72-
- `/tracker list` - Display all tracked items
73-
- `/tracker search` - Search for specific items using fuzzy matching
74-
- `/tracker clear` - Clear all items (requires MANAGE_CHANNELS permission)
75-
76-
### `/ping` - Bot Status
77-
78-
- Simple command to check if the bot is responsive
79-
80-
## Configuration
81-
82-
### Required Environment Variables
83-
84-
```bash
85-
ENVIRONMENT=production # or development
86-
DISCORD_BOT_TOKEN=your_token # Discord bot token
87-
MONGODB_URI=your_mongodb_uri # MongoDB connection string
88-
```
70+
#### Testing
8971

90-
### Optional Configuration
72+
Run the test suite:
9173

9274
```bash
93-
# Development
94-
DEVELOPMENT_GUILD_ID=guild_id # Restrict bot to specific guild during development
75+
npm test
9576
```
9677

97-
## Development
98-
99-
### Development Setup
78+
## Usage Examples
10079

101-
1. Install dependencies: `npm install`
102-
2. Copy environment template: `cp .env.example .env`
103-
3. Configure your `.env` file with development values
104-
4. Run in development mode: `npm run dev`
80+
### Dice Rolling
10581

106-
### Testing
107-
108-
```bash
109-
npm test
82+
```
83+
/roll d20 # Roll a single d20
84+
/roll d6 quantity:4 # Roll 4 d6 dice
85+
/roll dx sides:100 quantity:2 # Roll 2 custom 100-sided dice
11086
```
11187

112-
### Project Structure
88+
### Item Tracking
11389

11490
```
115-
source/
116-
├── main.js # Application entry point
117-
├── bot.js # Discord bot setup and event handling
118-
├── InteractionCreate.Commands/ # Slash command implementations
119-
│ ├── roll.js # Dice rolling commands
120-
│ ├── tracker.js # Item tracking system
121-
│ └── ping.js # Status command
122-
├── library/ # Core utilities
123-
│ └── roll.js # Dice rolling engine
124-
├── controllers/ # Database controllers
125-
│ └── mongo.js # MongoDB operations
126-
└── utilities/ # Helper functions
127-
└── calculateSimilarity.js # String matching for tracker search
91+
/tracker add name:"Health Potion" quantity:3
92+
/tracker remove name:"Health Potion" quantity:1
93+
/tracker list
94+
/tracker search name:potion
95+
/tracker clear # Requires MANAGE_CHANNELS permission
12896
```
12997

130-
## Docker Deployment
98+
## Technical Details
13199

132-
Build and run with Docker:
100+
- **Language**: JavaScript (ES Modules)
101+
- **Runtime**: Node.js
102+
- **Database**: MongoDB
103+
- **Discord Library**: discord.js v14
104+
- **Architecture**: Modular command system with centralized bot logic
133105

134-
```bash
135-
docker build -t arcanum .
136-
docker run -e DISCORD_BOT_TOKEN=your_token -e MONGODB_URI=your_uri arcanum
137-
```
106+
## Permissions Required
138107

139-
## Contributing
108+
The bot only requires the ability to register slash commands and send messages.
140109

141-
Arcanum is open-source and welcomes contributions! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
110+
## Contributing
142111

143112
1. Fork the repository
144-
2. Create a feature branch: `git checkout -b feature-name`
145-
3. Make your changes and test thoroughly
146-
4. Commit your changes: `git commit -m 'Add some feature'`
147-
5. Push to the branch: `git push origin feature-name`
148-
6. Submit a pull request
113+
2. Create a feature branch
114+
3. Make your changes
115+
4. Add tests if applicable
116+
5. Submit a pull request
149117

150118
## License
151119

152-
This project is released into the public domain under the [Unlicense](LICENSE). You are free to use, modify, and distribute this software for any purpose without restriction.
120+
This project is open source and dedicated to the public domain. Feel free to use, modify, and distribute as needed.
153121

154122
## Support
155123

156-
- **Issues**: [GitHub Issues](https://github.com/zuedev/arcanum/issues)
157-
- **Discord**: Join our community for support and updates
158-
- **Documentation**: Check this README and inline code documentation
159-
160-
---
161-
162-
_Simple, reliable TTRPG tools for your Discord server!_
124+
For issues or questions, please open an issue on [GitHub](https://github.com/zuedev/Arcanum/issues).

0 commit comments

Comments
 (0)