ELF's Wishlist
-
Multi Events
Introducing MultiEvents, the ultimate event management plugin for your Rust server! Seamlessly create, manage, and display events with a beautiful, customizable interface that engages your players. With support for multiple event types, easy integration with other plugins, and a powerful visual editor, MultiEvents is the perfect solution to enhance your server's community experience and keep players coming back for more.
⭐️ Features of Multi Events
Beautiful, fully customizable UI with multiple template options (Fullscreen, ServerPanel V1, ServerPanel V2) for a tailored player experience. In-game visual editor for creating and customizing event interfaces, allowing for real-time adjustments without coding. Support for event categories, descriptions, icons, and banners to enhance event visibility and player engagement. Integrated event notifications system to alert players about upcoming and ongoing events, ensuring maximum participation. Event inventory management with customizable permissions, providing control over player access and participation. Image library support for custom graphics and icons, enabling a unique and branded event presentation. Multi-language support with easy localization, making the plugin accessible to a global player base. ServerPanel integration for seamless menu access, enhancing user interaction and ease of use. Developer-friendly API for plugin integration, allowing for extended functionality and customization. Pre-loaded with diverse events such as CollectionResources, FoundationDrop, HelicopterPet, HuntAnimal, KingOfHill, LookingLoot, and SpecialCargo, each offering unique gameplay experiences. Advanced configuration options in JSON format, providing flexibility in event setup and management. Optimized for performance, ensuring smooth operation even with large player bases and extensive data.
🏆 Included Events
MultiEvents comes pre-loaded with several exciting events ready to use on your server:
CollectionResources - Collect resources and compete with other players! The more resources you collect, the higher your score. Use different tools to get multipliers for your gathering. Top players will receive valuable rewards! FoundationDrop - Players spawn on a platform made of foundations. The foundations begin to degrade and fall away one by one. Players must survive by jumping between foundations. The last player standing wins! When only one foundation remains, players receive weapons and radiation appears to speed up the finale. HelicopterPet - Try to get the attention of the patrol helicopter! The more it focuses on you, the more points you earn. Get points when the helicopter orbits around you and even more when it's attacking. The player with the most points at the end wins! Be careful though - this isn't your friendly neighborhood chopper! HuntAnimal - Hunt animals across the map to earn points! Different animals are worth different amounts - chickens are worth 1 point, while bears are worth 10 points. Wolves, boars, horses, and deer are worth 4 points each. The player with the most points at the end of the event wins! KingOfHill - Race to the highest point! Your score is based on the highest elevation you reach. Stay on solid ground - no flying, swimming, or using vehicles. The player who reaches the highest point and maintains their position wins! Watch your step and keep climbing! LookingLoot - Search for loot across the map! Earn points by looting containers and barrels. Most items are worth 1 point each, but special items like scrap and gears are worth 2 points. The player who collects the most valuable loot wins! Be quick - containers can only be looted once! SpecialCargo - Deliver the special cargo from one monument to another! A random player will be chosen to carry the cargo. The carrier must reach the destination monument marked on the map while avoiding other players. If the carrier dies, a new random player becomes the carrier. Teleportation is disabled for the carrier. Successfully deliver the cargo to win! Each event is fully customizable through the visual editor and comes with default settings ready to play immediately after installation!
🖼️ Showcase
Fullscreen Template
ServerPanel V1 Template
ServerPanel V2 Template
📬 Video Overview
🎮 Commands
/events - Opens the events menu for players
🛡️ Permissions
multievents.edit - Permission to edit events
🗒️ Visual Editor
MultiEvents includes a robust visual editor that simplifies the process of creating and customizing events. No coding is required—use the intuitive interface to adjust settings, modify colors, add text, and configure event elements directly in-game. This allows for quick and efficient event setup, ensuring your server's events are both engaging and visually appealing.
📚 FAQ
Q: Can I integrate MultiEvents with other plugins?
A: Yes! MultiEvents has an API that allows other plugins to register and manage events. It also integrates with ServerPanel for menu access.
Q: How do I add custom images for my events?
A: MultiEvents supports an image library. Upload your images to your server, and reference them in the plugin configuration or through the visual editor.
Q: Does MultiEvents support multiple languages?
A: Yes, MultiEvents has built-in localization support. You can customize all text elements in the editor and add translations for different languages.
Q: How do I configure rewards in MultiEvents?
A: Rewards can be configured in two ways. If you want rewards to drop into a custom inventory UI, you need to set up items in the inventory settings and assign them unique IDs. Then, reference these IDs in the event configuration. If you prefer to give rewards directly to the player's in-game inventory, simply specify the rewards directly within the event settings.
Q: What are the recommended sizes for event images?
A: For optimal display, event banners should be 390x349 pixels, and event icons should be 64x64 pixels.
💻 Developer API
MultiEvents provides a developer-friendly API for integration with other plugins:
void API_RegisterEvent(string eventId, JObject data) - Register a new event with MultiEvents API_RegisterEvent Parameters:
eventId (string): unique identifier for the event. data (JObject): JSON object containing event details. JObject Structure:
title (string, required): The title of the event. description (string, optional): A brief description of the event. commandToStart (string, required): The command to start the event. commandToStop (string, required): The command to stop the event. bannerURL (string, optional): URL for the event's banner image. icon (string, optional): URL for the event's icon image. scrollElements (JArray, optional): Custom UI elements for the event's scroll view. Creating UI Elements for scrollElements:
The scrollElements parameter allows you to add custom UI elements to your event description. Each element is defined as a JObject with specific properties based on its type.
Common Properties: type (string): "label", "image", "panel", or "button" color (string): HEX color code (e.g., "#FFFFFF") alpha (float): Opacity from 0 to 100 position (JObject): Element position and dimensions Type-Specific Properties: Text Elements: text (JArray of strings), textColor (HEX), fontSize (int), font (string) Image Elements: image (string URL) Button Elements: text, textColor, fontSize, command (string) Panel Elements: cursorEnabled (bool) Example of UI Elements:
var customScrollElements = new JArray { // Label example new JObject { ["type"] = "label", ["text"] = new JArray { "Duration: <color=#D74933>10 mins</color>", "Reward: <color=#D74933>100 scrap, Jackhammer, Python Revolver</color>" }, ["textColor"] = "#E2DBD3", ["alpha"] = 100f, ["fontSize"] = 14, ["font"] = "robotocondensed-regular.ttf", ["align"] = "MiddleLeft", ["position"] = new JObject { ["anchorMinX"] = 0f, ["anchorMinY"] = 1f, ["anchorMaxX"] = 1f, ["anchorMaxY"] = 1f, ["offsetMinX"] = 0f, ["offsetMinY"] = -200f, ["offsetMaxX"] = 0f, ["offsetMaxY"] = -140f } }, // Image example new JObject { ["type"] = "image", ["image"] = "https://example.com/image.png", ["color"] = "#FFFFFF", ["alpha"] = 100f, ["position"] = new JObject { ["anchorMinX"] = 0f, ["anchorMinY"] = 1f, ["anchorMaxX"] = 0f, ["anchorMaxY"] = 1f, ["offsetMinX"] = 0f, ["offsetMinY"] = -234f, ["offsetMaxX"] = 42f, ["offsetMaxY"] = -192f } }, // Button example new JObject { ["type"] = "button", ["text"] = "Click Me", ["textColor"] = "#FFFFFF", ["color"] = "#D74933", ["alpha"] = 100f, ["fontSize"] = 14, ["command"] = "customcommand {user}", ["position"] = new JObject { ["anchorMinX"] = 0.5f, ["anchorMinY"] = 0f, ["anchorMaxX"] = 0.5f, ["anchorMaxY"] = 0f, ["offsetMinX"] = -60f, ["offsetMinY"] = 20f, ["offsetMaxX"] = 60f, ["offsetMaxY"] = 50f } } }; Example Usage:
MultiEvents.Call("API_RegisterEvent", "CollectionResources", new JObject { ["title"] = "Collection Resources", ["description"] = "Collect resources and compete with other players! The more resources you collect, the higher your score. Use different tools to get multipliers for your gathering. Top players will receive valuable rewards!", ["commandToStart"] = "collectionresources.start", ["commandToStop"] = "collectionresources.stop", ["bannerURL"] = "https://gitlab.com/TheMevent/PluginsStorage/raw/main/Images/MultiEvents/CollectionResources.png", ["icon"] = "https://gitlab.com/TheMevent/PluginsStorage/raw/main/Images/MultiEvents/Icons/CollectionResources.png", ["scrollElements"] = customScrollElements });
(hook) OnEventStart(string eventName) - Hook called when an event begins (hook) OnEventEnd(string eventName) - Hook called when an event ends bool API_PlayerHideNotify(ulong userId) - Allows hiding event notifications for a specific player. Returns a boolean indicating whether notifications are hidden for the player. string GetBannerUrlByEventId(string eventId) - Retrieves the banner URL for a specific event by its ID. This is useful when you need to reference an event's banner in your custom UI.
🧪 TEST SERVER
Join our test server to view and experience all our unique features yourself!
Copy the IP Address below to start playing!
connect 194.147.90.147:28015
Elevate your server's event management with MultiEvents - the complete solution for creating engaging and visually stunning events that will keep your players excited and coming back for more!
- #mutlievents
- #events
- (and 14 more)
-
Resistance Islands
Biotech Research Labs chased miracles, only to unleash horror: mutated plants erupted, ripping through concrete walls, now forming 30-year jungles in weeks. Towns decay in months, while planes and ships collapse on mid-trip, since plants bursting even through metal.
Pieced together from found Cobalt Post news fragments*
Features:
- Island Layout: United by bridges and ziplines, balanced distances for quick swimming
- Railway: Covers major islands, passing through mountain tunnels
- Bridges: Easy crossings by car or train, high enough for large boats
- Coastal Caves: Private bays fit even TugBoats
- Desert Lab: Collapsed research lab, NPCs, Blue keycard, elite crates
- Mountain Research Complex: Blue & Red keycards, NPCs, elite crates
- CargoShip (Safe Zone): SafeZone & trading hub
- Winter GreenBunker: Hidden building spot for quiet farmers
- Sailing Yacht: Vibest building spot
- Monuments: Match facepunch keycard progression
- Ziplines: Fast travel across all islands, full coverage
- Tunnels: For trains and cars, through mountains and underwater
- Roads: Smooth curves, no steep slopes, for comfy drive
- Boats: Deep water, high bridges, easy navigation between islands
- Cliffs: Carefully placed, no procedural generation
Map size: 4000
Prefabs: 25000
Love this map? Discover more unique maps like our Oasis or Cacatua
For any questions or support, feel free to contact us anytime! Discord: https://discord.com/invite/GGgx822❤️
-
Tiers Mode
Integrate a complete tier/stage system into your mod server. Or just set up a new server with this game mode. By default the plugin will generate 4 Tiers, but you can create all the tiers you consider necessary and configure each tier to your liking. 1 Tier for each day? You can do it.
I know, the price of this plugin may seem expensive. But it’s several weeks of work on the development of the plugin + all the time I’ll have to spend maintaining it. Below I will show you all the features that are included.
Features
GUI
Screen Counter: It shows in the upper left part of the screen a counter with the current tier and time left for the tier to change.
Windows Info: Turns the use of the information display on or off. You can block it completely or simply block the information of the next tiers from being consulted.
Alert Modal: Enable or disable the plugin’s modal alerts that will notify players of blocked things.
Alert Modal Changue Tier: Enable or disable modal alerts when changing tiers.
Alert Modal Events: Enable or disable modal alerts when spawning or a server event occurs. Example when an airdrop comes out, the cargoship appears or the oil rig respawns.
Custom Alert Modal: Activate or deactivate custom modal alerts that you can perform from the /tieralert msg command.
MESSAGES
Chat: Notifies by chat of the warnings of the server alerts.
Welcome Message Chat: Welcome message in chat when a player connects explaining that they are on a server with Tiers Mode enabled.
Discord Messages: Notify on Discord, using the Discord Messages plugin when a Wipe is started or a Tier is changed.
OPTIMIZATION
Hooks: The plugin contains more than 14 oxide hooks for the operation of all features. That is why optimization has been taken care of in the use of each hook. Likewise, those features that are deactivated in each tier and their corresponding hooks are not necessary to work will be automatically deactivated.
LOCKED OBJECT EDITING INTERFACE
The plugin has an administrative command /tier edit to edit the objects that will be locked by each tier in an intuitive and easy way.
This way you won’t have to search for the name of the object and add it to the config.
Tiers Features
TIER CONFIG
Tier Name: Sets the name of the Tier to be displayed. Tier Icon URL: Set a URL with the image of the Tier. Tier Color: Set a color to customize the tier. Duration of the tier in Minutes: Sets the duration of the tier in minutes. If you want it to last an hour you will have to specify 60 minutes. If you want it to be 1 day, 24h = 1440. BUILDING
Cupboards: You can set a maximum of curpboards per player or leave it unlimited.
Cupboards Alerts: Destruction alert system. When a player breaks another player’s locker, the server can be notified. (As long as it is configured like this)
Maximum Upgrade Level: Sets the maximum upgrade level in each tier.
WORKBENCH
Research from Workbench: Allow or block research from the workbench depending on the tier.
Place All Workbench: Allow or block placement of all Workbenchs or just the Workbenches you specify.
EVENTS
You will be able to activate or deactivate the automatic events of the Server according to the tier.
For example: You will be able to disable the cargoship in the first tier.
The events that you can configure are:
Cargoship. Oil Rig. Chinook. Patrol Helicopter. Aidrop. Bradley APC.
SELLERS
You can activate or deactivate the different vendors on the map. As well as vending machines and the use of drones.
Helicopter Sale. Boat Sales. Horse Sales. Use of Drones. Use of Public Vending Machine (Rads). SPAWNS
Spawn Cards: Adjust the spawn of access cards. You can make only the green card appear in the first eras and as it progresses, the blue and red cards appear.
Spawn Vehicles (Cars): Configure if you want cars to spawn around the map. You can specify the number of modules that can appear. For example: Make that in the first tier no cars come out, but in the second only cars of 2 modules come out and in the third tier that they come out of 3 modules.
Use Vehicle MLRS: Allows or not, to use the MLRS vehicle.
Use Vehicle Workcart: Allows or not, to use the Workcart.
Use Vehicle Locomotive: Allows or not, to use the Locomotive.
SPEED
Crafting Rate: As the tiers progress, you can configure the crafting time to be faster, or always leave it vanilla.
Research Seconds: As the tiers progress, you can configure the research time to be faster or leave it vanilla. You can also make it last longer than vanilla.
Recycler Seconds: As the tiers progress, you can configure the recycling time to be faster or leave it vanilla. You can also make it last longer than vanilla.
Gather System:A complete Gather system is integrated so that depending on the tier you can configure it in a different way. In this way the first tier can be vanilla and as you advance from tier the farming ratio will go up. Of course, if you activate it, make sure that you do not use any other similar plugin for this. You can configure the following parameters:
Dispenser Gather. Dispenser Bonus. Collectible Pickup. Growable Gathered. Survey Gather. Quarry Gather. Excavator Gather. BLOCK
Items lock Craft: Blocks the ability to craft items that are locked in the current tier.
List of Blocked Items: You can easily edit the locked items in each tier with the /tier edit command.
Deployable lock without Building Permissions: Blocks the ability to place certain items if the player does not have locker permission. Ideal to prevent players from placing certain items anywhere on the map.
EXECUTION COMMANDS
You will be able to set your own commands that will be executed when the tier loads. Both in tier changes, and in server restarts. Ideal for disabling certain plugins up to a certain tier. Or to execute another plugin’s command to trigger an event. Or any other idea you can think of.
Permissions
tiersmode.admin With this permission you will be able to use the /tier edit command and the /tieralert command. Do not grant this permission to players. tiersmode.bypass.use_workcart and tiersmode.bypass.use_locomotive Permission to bypass Workcart and Locomotive usage lock. tiersmode.bypass.use_mlrs Permission to bypass the MLRS usage block. tiersmode.bypass.limit_cupboard Permission to evade the maximum limit of TC. tiersmode.bypass.block_items Permission to evade blocking of all items. tiersmode.bypass.block_place_no_building Permission to bypass the build lock of specific items without cabinets. tiersmode.bypass.upgrade Permission to bypass the building improvement limit. tiersmode.bypass.block_place_all_workbench Permission to bypass the placement lock of any workbench. tiersmode.bypass.block_research Permission to bypass the workbench research lock. tiersmode.bypass.block_vending_helis Permission to evade vendor blocking (Helis, Boats, Horses) tiersmode.bypass.block_vending_boat Permission to evade vendor blocking (Helis, Boats, Horses) tiersmode.bypass.block_vending_horses Permission to evade vendor blocking (Helis, Boats, Horses) tiersmode.instant_research Permission for instant research. tiersmode.alerts.block Permission to block alerts to that player. tiersmode.instant_recycler Permission for instant recycling.
Commands
/tier Opens the info screen if enabled in the config. /tier edit Opens the edit screen for locked items for tiers. Only with Admin. /tieralert textmsg Send a message in alert format to all online players on the server. You can only do this if you have admin permission. Configuration
DEFAULT CONFIGURATION WITH 4 TIERS
Language
Language support. By default it will be generated in English. If you are interested in the Spanish language, you just have to ask me privately.
Bonus
For any problem, doubt, suggestion or assistance do not hesitate to contact me by Discord ninco90#6219
If you need me to configure everything from scratch, according to your tastes, for your server I can also do it for an additional fee. Although you should be able to configure everything yourself.
-
Discord AI-Assistant
By SHAYAN in Discord Bots
AI Assistant Bot Overview
This AI Assistant bot is designed to interact with users on Discord by connecting to the OpenAI API. It supports a variety of features, including reading documents, handling attachments, and maintaining configurable conversation histories. Here's everything you need to know about configuring and using the bot.
IMPORTANT NOTE
Before continuing to read the instructions and explanations, please be aware that this bot relies on paid dependencies, including the OpenAI API key. You must ensure your API key has sufficient balance, as the cost depends on the size of your documents and the level of player interaction. While the cost is minimal for smaller servers, it may increase for larger communities with higher usage.
I’ve explained more about the costs and other details below. If you’re looking for the installation guide, scroll down a bit past the explanation, and you’ll find it there.
1️⃣ File and Folder Structure
1. As soon as you launch the bot for the first time, if no configuration file exists, you will see the following message:
Default config.json file created. Please update it with your API keys and preferences.
2. You must update the `config.json` file with your desired settings, API keys, and preferences before relaunching the bot. After making the necessary configurations, restart the bot to apply the changes.
3. When you launch the bot for the first time, several files and folders are automatically generated to support its functionality. These include:
Generated Folders:
1. `docs/`:
- You can store documents in a folder for the bot to reference during conversations. While I haven’t tested it with many users simultaneously, the model-switching feature helps avoid rate limits, ensuring smooth operation. One of the models has no daily limits, so the bot should function without interruptions. However, your total text file size **should not exceed 10-12 MB** since no AI currently supports processing that much text efficiently. If you have large files, it's best to **split them into smaller chunks**—for example, separate files for topics like "raid," "ranks," and other categories to ensure optimal performance.(again please be sure your total documents wont hit 10-12 MB)
In the near future, I plan to develop a **search system** that will make document retrieval **more efficient and cost-effective** for long-term usage! I hope this update will allow the bot to process documents in **image formats or PDFs** and support much larger files for better exploration. 😊
2. `usage/`:
- Contains two important configuration files:
- **`whoami.txt`**: A file where you define the bot's identity. Use this file to explain who the bot is and configure its personality and purpose step by step.
- **`conditions.txt`**: A file to specify conditions for the bot’s responses. For example, you can add rules like "Never generate harmful content" or "Avoid generating code."
I’ve included my own configurations in the ZIP file you’ll receive—these have been tested and work well. However, you can edit them as needed. Some essential settings have already been added to ensure the bot functions properly.
3. `userschat/`:
- Stores user conversation histories. The bot uses these files to remember the context of recent interactions for a configurable amount of time.
4. `downloads/`:
- A folder to store files uploaded or downloaded by users during their interactions with the bot.
5. How to Configure the Usage Files
The `usage/` folder includes the following AI-readable files:
1. `whoami.txt`:
- Use this file to define the bot's identity. For example, you can write:
`You are a helpful and friendly AI assistant designed to answer questions, provide guidance, and help users interact with documents.`
- Configure it incrementally to refine the bot's personality.
2. `conditions.txt`:
- Add conditions to guide the bot's responses. For example:
`Never generate harmful or inappropriate content.` `Avoid generating programming code unless explicitly requested.` `Always provide accurate and ethical answers.`
- These conditions help you customize the bot's behavior to align with your community's values.
2️⃣ Tips for Efficient Configuration
1. Less is More: Write concise and clear prompts in these files to minimize token usage. Fewer but well-structured instructions reduce costs and improve the bot’s understanding.
2. Cost Insight: API usage costs are minimal. For instance, after over 1,000 requests and millions of tokens, the total cost was only 40 cents. However, ensure your OpenAI account has enough funds, as the bot will stop functioning if the balance is insufficient.
3️⃣ AI-Understandable Files
The bot processes these files naturally, so you can write them in plain, conversational language. For example:
- Whoami Example:
"You are a smart and efficient assistant that helps users manage files, answer queries, and provide creative solutions."
- Conditions Example:
"Avoid political discussions, never generate malicious content, and always prioritize user privacy."
These files act as dynamic prompts that guide the bot’s behavior in real-time.
4️⃣ Cost Management Tips
- While the cost of running the bot is minimal, it scales based on the number of requests and tokens used.
- Use concise prompts and optimize file content to reduce token usage. In future updates, I will introduce a token limit and methods to save tokens both on the bot side and the player side. However, there is already a setting called "temperature of response" in the bot config, which controls message length and creativity—making responses either longer and more creative or shorter and more precise.
- Regularly monitor your OpenAI account balance to avoid interruptions. Adding funds ensures smooth operation, especially when the bot is used in a large community.
5️⃣ Key Features
1. Multi-functional AI Assistant:
- The bot connects to OpenAI API and supports multiple AI models such as `gpt-3.5-turbo`, `gpt-4`, and others.
- It intelligently answers questions based on provided information and configuration settings.
- I have carefully optimized the list of AI models to prioritize efficiency and avoid rate limits, all while maintaining functionality. Each request to the bot incurs a cost, as OpenAI's API usage is paid. If cost isn't a concern, the GPT-4 models are the best choice due to their superior creativity and advanced responses. However, for cost-effective usage, the configuration balances between model capabilities and expenses, ensuring a practical yet powerful bot experience.
2. Highly Configurable:
- The bot is driven by a comprehensive configuration file generated on the first launch. You can customize nearly every aspect of its functionality.
3. Document Handling:
- The bot supports attachments in formats like `txt`, `json`, and `csv`. These files can be processed for extended interactions, although this feature can be disabled if not preferred.
4. Conversation Tracking:
- The bot maintains user conversations in files for a configured duration (`time_to_keep_history_conversation_in_secconds`). This helps the bot remember context within a specified timeframe before creating a new history file.
5. Rate Limit Handling:
- Supports switching between AI models to avoid rate limits imposed by OpenAI's API tiers.
- You can configure the rate limit thresholds for individual users.
I was concerned about large communities using lower-tier OpenAI API keys, as they may face rate limit issues. To address this, I implemented a model-switching function to avoid these rate limits per minute. However, if you upgrade your account for long-term usage, you can reduce these problems. You can find more information about how OpenAI’s usage tiers work at this link: OpenAI Rate Limits Guide.
On higher tiers, there are no usage limits, so you won’t encounter the same restrictions. If you spend over an specific amount, you should see no issues and enjoy smoother performance in the long run.
6. Spam Protection:
- Users are limited to a configurable number of messages (e.g., 5 messages per minute) to prevent spam and API overuse.
7. Admin and Owner Controls:
- Owner IDs in the configuration file can configure advanced settings and access an "EditingMode" for direct file and folder operations, allowing them to bypass limits on the code or have root access in the current or future updates.
8. Status and Activity Configuration:
- The bot can display a custom status, activity type (e.g., "Playing AI-Assistant"), and optional activity URL. It supports most status and activity types based on the available Discord status documentation.
9. Response Temperature:
- Adjust the bot's creativity and response tone using configurable temperature settings (e.g., "cold" for factual precision, "hot" for maximum creativity).
6️⃣ How to Configure the Bot
1. Configuration File
The bot generates a `config.json` file on its first launch. You'll need to configure this file step-by-step:
- Discord Bot Token: Obtain it from Discord Developer Portal . Ensure to enable intents (Message Content, Presence, and Server Members) in the bot settings.
- OpenAI API Key: Generate an API key from OpenAI Platform . Note that OpenAI is a paid service, and API usage costs depend on your tier (e.g., $5/month for basic usage). Each tier has different rate limits.
- Owner IDs: Add your Discord user IDs to grant access to advanced bot controls.
- Log Channels and Warnings: Configure `log_channel_ids` for file upload/download logs and `warning_ids` to notify admins of unauthorized access attempts.
7️⃣ How to Use the Bot
1. Editing Mode
Admins can enter Editing Mode to manage files and folders using simple commands. All explanations can be found once you enter Editing Mode by typing the available help commands.
1. Change Directory: Use commands like `cd <directoryname>` or `cd ..` to navigate between directories.
2. List Files: Use `ls` or `list` to see the files in the current directory.
3. View File: Use `view <filename>` to display the contents of a file.
4. Edit File: Use `edit <filename>` to modify a file's contents.
5. Download Files: Use `download <filename>` to download a specific file, or `download all` to download all files.
6. Create/Remove Files: Use `add <filename>` to create a file, and `rm <filename>` to delete a file.
7. Exit Editing Mode: Use `exit` to leave Editing Mode.
Handling Attachments
- The bot can process file attachments in supported formats (`txt`, `json`, `csv`). However, enabling this feature may lead to excessive API usage if users send large files. You can enable or disable this feature in the configuration:
"handle_attachments (true/false) - Enable this to allow the bot to respond to file uploads or images. Note: This will use more tokens per API request depending on how large the text file is.": "false",
2. Configurable Settings
1. Bot Status
You can set the bot's status and activity type in the configuration:
"bot_status": { "status(e.g. online,idle,dnd)": "online", "activity_type(e.g. playing, listening, watching, competing or streaming)": "playing", "activity_text": "AI-Assistant", "activity_url": "https://www.twitch.tv/your_channel - Place a twitch link here if activity type is set to streaming." },
2. Spam Protection
To prevent abuse, configure message rate limits:
"spam_detection": { "message_limit": 5, "rate_limit_period (in seconds)": 60 },
This limits users to 5 messages per minute by default. Adjust these settings as needed.
3. Response Temperature
Control the bot's tone and creativity:
- Cold: Factual and precise.
- Neutral: Balanced between precision and creativity.
- Warm: Creative responses while maintaining relevance.
- Hot: Highly creative and speculative.
You can also override with a temperature value between `0.1` and `1.0`:
"Response Temperature": { "Ai_selected_mode(e.g. cold,natural,warm,hot)": "natural", "Ai_promopts_explnation": { "Cold (Low creativity, high precision)": "Respond with factual and precise information, avoiding creative or speculative responses.", "Neutral (Balanced creativity and precision)": "Respond with a balance of creativity and accuracy, adapting tone to fit the context.", "Warm (Higher creativity, moderate precision)": "Respond creatively while maintaining relevance to the topic.", "Hot (Max creativity, low precision)": "Respond with maximum creativity, even if it involves speculative or unconventional ideas." }, "Temperature Value (Optional Override 0.1 to 1.0 (Cant be 0.0 it means disabled temp minimum is 0.1))": 0.0, "Temperature_Value_prompt": "Your selected response temperature has been set to {prompt_temp_value} please resonse the message according to this temprature float number that is between 0.1 and 1 anythings beyond 1.0 is equal to 1.0 low means less creativity and amount of text higher means lots of creativity and explnation", "Set this to false to disable the `no_temp_error` message. Remove Ai_selected_mode and set temperature to 0.0 for a natural AI response.": "true" }, 4. file Cleanup Configuration
The File Cleanup section in the configuration file controls how the bot manages and cleans up old user conversation files. This feature ensures that storage isn't unnecessarily occupied by outdated conversation histories.
"file_cleanup": { "file_age_limit_seconds": 727200, "cleanup_interval_seconds - if = 0 it means disable and never clean the users conversation": 43200 },
Key Parameters:
1. "file_age_limit_seconds":
- Specifies the maximum age (in seconds) a conversation file can reach before being deleted.
- For example, if set to `727200`, files older than 8 days (727200 seconds) will be automatically removed.
2. "cleanup_interval_seconds - if = 0 it means disable and never clean the users conversation":
- Defines the interval (in seconds) at which the bot will check for and delete outdated files.
- If set to `43200`, the bot will check for aged files every 12 hours.
3. Disable Cleanup:
- To disable the cleanup feature entirely and retain all conversation histories permanently, set `cleanup_interval_seconds` to `0`:
"cleanup_interval_seconds - if = 0 it means disable and never clean the users conversation"
How It Works:
- The bot periodically scans the `userschat/` folder to identify files older than the age limit ("file_age_limit_seconds").
- Any files that exceed this age are automatically deleted during the cleanup interval.
- This ensures efficient management of storage and prevents excessive buildup of old files.
By adjusting these settings, you can control how long user conversations are retained and the frequency of cleanup operations. For servers with strict data retention policies, this feature can be fine-tuned or disabled entirely.
5. Bot Messages
Every bot message is fully configurable in the `bot_messages` section. You can edit warnings, greetings, or any response to match your preferences or server culture.
8️⃣ Version and Updates
- Current Version: `1.0.0`
- Updates are guaranteed if there are any issues or bugs in the code. New feature updates will only be provided if new ideas come to mind or are suggested through user feedback.
However:
> This bot is actively used by me, so any new updates or enhancements will be released as soon as they are ready!
# Guide to Install and Run Your Discord AI Assistant Bot #
1️⃣ Update Your Server
Ensure your server is up-to-date before proceeding (this is crucial if you are hosting the bot on your own machine):
sudo apt update && sudo apt upgrade -y
2️⃣ Install Python 3 and pip
Install Python 3 and `pip` (Python package manager). If you're logged in as `root`, you can omit `sudo`:
sudo apt install python3 python3-pip -y
3️⃣ Verify the Installation
Run the following commands to confirm Python 3 and `pip` are installed correctly:
python3 --version pip3 --version
> Example Output:
SHAYAN:/home python3 --version Python 3.8.10 SHAYAN:/home pip3 --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
4️⃣ Install Virtual Environment (Optional but Recommended)
To isolate your Python project, install the `venv` module:
sudo apt install python3-venv -y
5️⃣ Create a Virtual Environment
Create a virtual environment to keep dependencies isolated:
python3 -m venv venv
6️⃣ Activate the Virtual Environment
Activate the virtual environment to work within it:
source venv/bin/activate
Note: To deactivate the virtual environment, run the following command later::
deactivate
7️⃣ Install Required Dependencies
Use `pip3` (or `pip` inside the virtual environment) to install the necessary libraries for the bot:
pip3 install discord.py openai
❌Important Note
If you encounter errors like:
`Error: module 'openai' has no attribute 'error'`
or issues related to the version of the `openai` library being outdated, too new, or incompatible, use the following command to fix the problem:
pip install openai==0.28.0
This will install the specific version `0.28.0` of the `openai` library, which is known to work with the bot. Once installed, the bot should start working without issues.
8️⃣ Run Your Bot
Navigate to the directory where your bot script (`AIasistant.py`) is located and run it:
cd /path/to/your/script python3 AIasistant.py
1.Navigation Tips:
- Use `cd directory_name` to go into a directory.
- Use `cd ..` to go back one directory.
- If you need to upload the script file (`AIasistant.py`) from your local PC to your host, use an SFTP client like WinSCP or FileZilla. Alternatively, open the file on your host using `nano`:
nano AIasistant.py Paste the bot code, then save and exit using `Ctrl + X`, `Y`, and `Enter`.
9️⃣ Hosting Platforms for Your Bot
While this guide assumes you're running the bot on your own server, there are several platforms where you can host your Discord bot.
Tip: Many of these platforms provide pre-installed Python environments with dependencies. If you're using such a platform, you may not need to install Python manually—just upload the bot code and define dependencies.
🔧 Pre-Bundled Virtual Environment (Optional)
I’ve already set up a virtual environment (`venv`) with all dependencies installed alongside the bot code. You can simply transfer it to your host and run the bot.
However:
- Python 3 must still be installed on the host.
- The `venv` may not work directly if the host's OS differs from your local system.
To make it work:
1. Upload the zip file to the host using SFTP or any file transfer method.
2. Extract the contents using the following command:
unzip -o AI-Assistant.zip
3. Navigate to the directory containing the files:
cd AI-Assistant
4. Activate the virtual environment:
source venv/bin/activate
5. Run the bot:
python3 AIassistant.py
Tip: You can use tools like **tmux** or **nohup** to keep the bot running on your host permanently. These tools allow the bot to continue running even if you disconnect from the server. You can search online for tutorials on how to use them. While the bot itself is stable and won’t crash, occasional Discord rate limits or heartbeat issues might cause it to stop. Most professional bot hosting platforms include anti-crash mechanisms, so you generally don’t need to worry about this.
If transferring the `AI-Assistant.zip` does not work, simply recreate the virtual environment on the host and install dependencies by following the initial setup steps above.
# Final Note #
Please remember that OpenAI's API is a paid service, and there is a usage cost per message. Be sure to check your usage to manage costs effectively.
If you need help or have questions about the bot, feel free to reach out to me on Discord: ` shayan_. ` You can contact me there for assistance.
As far as this post and tool are concerned, I’ve decided to give a part of this project to AI. I wrote the message fully and gave some parts of it to AI to fix and format the tutorial and explanations for me 😄 For sure, it’s much more readable than my original text 😄 But thanks to AI, our world might be an easier—or scarier—place in close future! 👻
# Exact Configuration File #
{ "discord_bot_token": "Enter your Discord bot token from https://discord.com/developers/applications. Remember to enable intents in the bot configuration.", "openai_api_key": "Enter your OpenAI API key here. Purchase it at https://platform.openai.com/ to use OpenAI models. More details are in the README file.", "discord_link": "Your Discord Server Link Here", "ai_models": [ "gpt-3.5-turbo-16k", "gpt-3.5-turbo", "chatgpt-4o-latest", "gpt-4o-mini", "gpt-4o" ], "time_to_keep_history_conversation_in_secconds": 3600, "handle_attachments (true/false) - Enable this to allow the bot to respond to file uploads or images. Note: This will use more tokens per API request depending on how large the text file is.": "false", "send_bot_response_in_2000_characters_chunks": "true", "allowed_file_extentions": [ "txt", "json", "csv" ], "blacklisted_directories_to_expand": [ "userschat" ], "owner_ids": [ "User IDs listed here will have access to editing mode and avoid rate limits.", "owner_discord_user_id_1", "owner_discord_user_id_2" ], "warning_ids": [ "Warnings about unauthorized access will be sent to these user IDs.", "warning_discord_user_id_1", "warning_discord_user_id_2" ], "warning_channel_ids": [ "Warnings about unauthorized access will be sent to these channels.", "warning_discord_channel_id_1", "warning_discord_channel_id_2" ], "warning_role_ids": [ "Discord role IDs listed here will be tagged in warning channel messages.", "discord_role_to_tag_1", "discord_role_to_tag_2" ], "log_channel_ids": [ "Logs related to file uploads and downloads will be sent to these channels.", "log_discord_channel_id_1", "log_discord_channel_id_2" ], "editingmode_commands": { "enter_editingmode": [ "editingmode", "editmode" ], "listing_command": [ "ls", "list", "files", "avilable" ], "change_dir": [ "cd", "dir", "directory" ], "change_dir_return": [ "..", "back", "return" ], "show_file": [ "view", "show" ], "download_file": [ "download", "get" ], "download_all": [ "all", "everything" ], "edit_file": [ "edit", "change", "replace" ], "append_to_file": [ "append", "addto" ], "new_file": [ "add", "new", "mk" ], "remove_file": [ "remove", "rm", "del" ], "exiting_command": [ "exit", "quit", "deactive", "leave" ], "help_commands": [ "cmd", "help", "command", "commands" ] }, "auto_cleanup": { "Clear the last conversation from the bot prompt if its size exceeds the specified limit in kilobytes (KB). This helps reduce token usage per request and improves efficiency.": 20, "Create_new_conversation_file_if_size_limit_exceeded": "true" }, "file_cleanup": { "file_age_limit_seconds": 727200, "cleanup_interval_seconds - if = 0 it means disable and never clean the users conversation": 43200 }, "chat_history": { "allow_users_to_clearself_history (true/false)": "true", "clear_chat_history_commands": [ "clearhistory", "clean", "clear", "reset" ], "not_allowed_message": "**You dont have permission to clear your chat history it would automatically be reseted every `{time_threshold_secconds}` secconds.**" }, "bot_status": { "status(e.g. online,idle,dnd)": "online", "activity_type(e.g. playing, listening, watching, competing or streaming)": "playing", "activity_text": "AI-Assistant", "activity_url": "https://www.twitch.tv/your_channel - Place a twitch link here if activity type is set to streaming." }, "spam_detection": { "message_limit": 5, "rate_limit_period (in seconds)": 60 }, "Response Temperature": { "Ai_selected_mode(e.g. cold,natural,warm,hot)": "natural", "Ai_promopts_explnation": { "Cold (Low creativity, high precision)": "Respond with factual and precise information, avoiding creative or speculative responses.", "Neutral (Balanced creativity and precision)": "Respond with a balance of creativity and accuracy, adapting tone to fit the context.", "Warm (Higher creativity, moderate precision)": "Respond creatively while maintaining relevance to the topic.", "Hot (Max creativity, low precision)": "Respond with maximum creativity, even if it involves speculative or unconventional ideas." }, "Temperature Value (Optional Override 0.1 to 1.0 (Cant be 0.0 it means disabled temp minimum is 0.1))": 0.0, "Temperature_Value_prompt": "Your selected response temperature has been set to {prompt_temp_value} please resonse the message according to this temprature float number that is between 0.1 and 1 anythings beyond 1.0 is equal to 1.0 low means less creativity and amount of text higher means lots of creativity and explnation", "Set this to false to disable the `no_temp_error` message. Remove Ai_selected_mode and set temperature to 0.0 for a natural AI response.": "true" }, "bot_messages": { "warning_message": "# {role_tags} \n **Warning!** User ID `{user_id}` - tagged as <@{user_id}> tried to access the editing system without permission.", "warning_message_direct": "# **Warning!** User ID `{user_id}` - tagged as <@{user_id}> tried to access the editing system without permission.", "not_owner_message": " You are not an owner to use this command. This action has been reported to the admins to take actions. ", "not_allowed_assistant": "**Assistant is not allowed to assist with the following files: {attachment}. Files like photos, PDFs, or any type of attachments are not assistable due to security reasons. This feature has been disabled by the admins. If you need assistance with something that requires attachments uploading, please contact Admins themselves. You can open a ticket on our Discord server:** \n {discord_link}", "file_upload": "**[`{attachment.filename}`]({attachment.url}) uploaded to `{user_state.current_directory}` by <@{user_id}> (UserID:`{user_id}`)**", "file_download": "**[`{file_name}`]({file_link}) downloaded by <@{user_id}> (UserID: `{user_id}`)**", "limited_use": "<@{user_id}>, you're sending too many messages! Please wait `{time_left}` more seconds before sending another message.", "not_allowed_to_leave": "**You are not allowed to leave this directory! (No other Direcotry with bot access exist please type the command with a directory name after it to switch path)**", "no_temp_error": " No temperature is defined. Please contact the developers about this problem.", "no_valid_defined_prompt": "No response temperature is defined. Response as you like", "normal_users_greeting": "# You are now connected with **Epic-Rust.org AI Assistant**. Feel free to ask any questions about the server! Please note that your conversation with the bot is being saved to improve your experience. Join our [Discord](https://epic-rust.org/discord) | Visit our [Shop](https://epic-rust.org/) | Check out our [Steam Group](https://epic-rust.org/steam)", "normal_users_greeting_clearning_access": "# You are now connected with **Epic-Rust.org AI Assistant**. Feel free to ask any questions about the server! Please note that your conversation with the bot is being saved to improve your experience - If you encounter bot issues or bad responses, simply clear the conversation history using {clear_commands} for a fresh start and more accurate answers. Join our [Discord](https://epic-rust.org/discord) | Visit our [Shop](https://epic-rust.org/) | Check out our [Steam Group](https://epic-rust.org/steam)", "owner_users_greeting": "# Welcome, Admin! You can enter **Editing Mode** by simply typing {formatted_editing_mode_args}. Once inside, use {formatted_Valid_Help_Commands} to view all available commands and options for the bot. ", "how_to_use": "**Available Commands:**\n# 1. **{formatted_change_dir_args} <directoryname> or using {formatted_change_dir_args} {formatted_dir_return_args}**: Change the current directory.\n# 2. **{formatted_listing_args}**: List the contents of the current directory.\n# 3. **{formatted_show_file_args} <filename>**: View the contents of a specific file.\n# 4. **{formatted_download_file_args} <filename>**: Download a specific file.\n# 5. **{formatted_download_file_args} {formatted_download_all_args}**: Download all files in the current directory, 8 files at a time.\n# 6. **{formatted_edit_file_args} <filename>**: Edit the contents of a specific file. You will be prompted to enter the new content for the file.\n# 7. **{formatted_append_to_files_args} <filename>**: Append content to an existing file. You will be prompted to provide the content to append.\n# 8. **{formatted_new_file_args} <filename>**: Create a new file and add content to it. You will be prompted to enter the content for the new file.\n# 9. **{formatted_remove_file_args} <filename>**: Delete a specific file.\n# 10. **{formatted_exit_command_args}**: Exit editing mode if you are in it.\n# For more help, just type {formatted_Valid_Help_Commands} again. Happy exploring!", "bot_cleared_message": "**The bot does not remember the last conversation due to file size limits and long conversation. A new conversation file has been created. Please proceed with your questions again.**" }, "version": "1.0.1", "Created By": "SHAYAN - Discord Id for more support: shayan_. " } Discord ID : SHAYAN_.
- #ai
- #discord
-
(and 21 more)
Tagged with:
- #ai
- #discord
- #discord bot
- #discordsupport
- #discordtool
- #tool
- #support
- #assistant
- #bot
- #paid
- #openai
- #python
- #discordassistant
- #discord-assistant
- #community management
- #community
- #automated assistant
- #ai assistant
- #python script
- #admin tools
- #server administration
- #discord administration
- #moderation tools
-
Radiant Peak | Custom Map By Shemov&Answer
Radiant Peak is unique map where 2 developers have joined forces, featuring a 4500 size and approximately 60,000 prefabs. It supports BetterNPC plugins and Train Homes, enhancing gameplay with bot configurations. Players can explore numerous unmarked abandoned settlements along the roads. The map includes custom building sites, custom zipline points, lakes, and rivers for resources. An underground railway and a double-track surface railway offers metro access. Freshwater lakes and rivers support farming, while a ring road is compatible with events. Monuments are evenly spaced to optimize FPS, and custom subway building sites are available. Bridges are designed for easy tugboat access, and underwater dive sites are marked on the map.
> Adventurers will uncover many unmarked settlements and isolated buildings scattered across the landscape, offering hidden surprises for those willing to explore. Many underwater dive sites have been designed, indicated by 'O' on the minimap. For an extra thrill, the map includes ziplines, offering fast and exciting ways to traverse the map - and this is just the beginning!
You can view this map yourself on the test server 185.207.214.245:35800
FEATURES
- Map size: 4500;
- Prefab count: ~60K;
- Compatible with BetterNPC plugins (Config for bots in the file), and Train Homes;
- Lots of abandoned settlements can be found along the roads, left unmarked so players can find and explore them on their own;
- Custom building sites (X on the minimap);
- Custom Zipline Points spread across the map;
- Custom lakes and rivers for food and water;
- Underground railway;
- Double-track surface railway with 2 entrances to the metro with separate branches for spawn trains;
- Fresh water and vegetation for farmers are in the rivers of the map;
- Ring road (compatible with event plugins);
- Evenly spaced monuments to spread the FPS load of client;
- Custom places for building in the subway (XU on the minimap);
- All bridges are designed for easy tugboat access;
- Underwater farm zones (O on the minimap);-Single small lakes with fresh water throughout the map.
CUSTOM MONUMENTS
- Lots of unmarked settlements spread evenly across the map;
- Wood Industry;
- Container Park;
- Comms Tower;
- Abandoned Town;
- Deserted Motels;
- Office building;
- Train station;
- Construction Site;
- Heat Station;
- MLRS camp;
- Wind Turbine;
- Oil Rig 3;
- Zipline Points;
- RW station;
- Bandit Fishing Village: optimized safe zone;
- Sunken Stone, Sulfur & HQM quarries;
- Custom build spots: marked with X or XU;
- Underwater dive sites: marked with O.
FACEPUNCH MONUMENTS
- Combined Outpost;
- Harbor (2/2)
- Ferry Terminal
- Oxum's Gas Station
- Abandoned Supermarket
- Launch Site
- Airfield
- Arctic Research Base
- Power Plant
- Water Treatment Plant
- Train Yard
- Missile Silo
- Satellite Dish
- Giant Excavator Pit
- Small & Large Oil Rig
- Underwater Lab
- Ziggurat
NOTES
- The password for the map is included, just in case you want to edit it.
- Need help? You can contact Shemov or Answer
- #rust custom
- #custom map
-
(and 6 more)
Tagged with: