Support Bot Drop-in
botsDrop-in support bot for Discord integration.
Drop-in support bot for Discord integration.
Discord bot for server connections and notifications.
Custom Rust map - TheReptile.
Custom Rust map - StonedFlorida420.
## Overview
StonedAI is an AI-powered chat bot plugin for Rust servers. Players can ask questions in chat using a keyword trigger and get real-time responses from an AI model. It supports two providers out of the box β **Ollama** for self-hosted local models (free, runs on your own machine) and **OpenRouter** for cloud-based models including a wide selection of free-tier models.
Unlike other AI plugins, StonedAI uses Oxide's native WebRequest system, which means local HTTP connections to Ollama work without any SSL workarounds or Unity networking restrictions.
---
## Features
- **Dual provider support** β switch between Ollama (local) and OpenRouter (cloud) in config or live in-game
- **Conversation memory** β the bot remembers recent exchanges per player and references them in responses
- **Per-player mute toggle** β players can opt out of seeing bot messages
- **Discord webhook logging** β all interactions logged to a Discord channel
- **Uncensored / censored mode** β toggle between raw Rust-appropriate language or clean mode
- **Server info injection** β automatically tells the AI your wipe schedule, team size, rates, Discord, and website
- **Cooldowns** β per-user and global cooldowns to prevent spam
- **BetterChat compatible** β works alongside BetterChat with no conflicts
- **Fully configurable** β character name, color, system prompt, keywords, language, timezone, and more
---
## Requirements
- Oxide or Carbon
- One of the following:
- [Ollama](https://ollama.com) running on your local network (free, self-hosted)
- An [OpenRouter](https://openrouter.ai) account (free tier available)
- BetterChat (optional but recommended)
---
## Installation
1. Drop `StonedAI.cs` into your `oxide/plugins` folder
2. The plugin will load and generate a default config at `oxide/config/StonedAI.json`
3. Edit the config with your provider details (see Configuration below)
4. Run `o.reload StonedAI`
5. Grant permissions (see Permissions below)
### Provider Setup
**Ollama (local)**
- Install Ollama on your machine: [ollama.com](https://ollama.com)
- Pull a model: `ollama pull llama3.1:8b`
- If Ollama is on a different machine than the Rust server, set `OLLAMA_HOST=0.0.0.0` before starting Ollama so it listens on all interfaces
- Set `Provider` to `ollama` and enter your machine's local IP in the Ollama API URL
**OpenRouter (cloud)**
- Sign up at [openrouter.ai](https://openrouter.ai)
- Generate an API key at openrouter.ai/keys
- Set `Provider` to `openrouter` and paste your key into `API Key`
- Free models end in `:free` β browse them at openrouter.ai/models
- Recommended free model: `google/gemma-4-31b-it:free`
---
## Permissions
| Permission | Description |
|---|---|
| `stonedai.use` | Allows a player to trigger the bot in chat |
| `stonedai.admin` | Allows use of admin commands |
| `stonedai.toggle` | Allows a player to mute/unmute the bot for themselves |
## Chat Triggers
Players type a keyword followed by their message in global chat:
!bot what time does the server wipe?
!ai how do i get sulfur fast?
Keywords are fully configurable in the config file.
## Commands
### Player Commands
| Command | Permission | Description |
|---|---|---|
| `/bot` | `stonedai.toggle` | Toggle muting the bot. You won't see bot responses while muted. |
### Admin Commands
| Command | Permission | Description |
|---|---|---|
| `/aiprovider <ollama\|openrouter>` | `stonedai.admin` | Switch the active AI provider live without a reload |
| `/aitogglecensor` | `stonedai.admin` | Toggle between uncensored and censored response mode |
| `/aitimezone <-12 to 14>` | `stonedai.admin` | Set the timezone offset used for date/time in the AI context |
## Notes
- The bot broadcasts responses to all players on the server (excluding muted players)
- Conversation history is saved per-player in `oxide/data/StonedAI/Conversations/`
- Muted player list is saved at `oxide/data/StonedAI/muted_players.json`
- If using OpenRouter free models, be aware of rate limits (~20 requests/min, ~200/day)
- Provider switches via `/aiprovider` save to config automatically β no reload needed
## Changelog
**1.0.0**
- Initial release
- Dual provider support (Ollama + OpenRouter)
- Conversation memory, Discord webhook, mute toggle, BetterChat compatibility
Tool Cupboard upgrader plugin for Rust servers.
A plugin for drone storage management in Rust.