Ghostblade's Wishlist
-
Door Frames
Are you tired of the strict limitations on floor frames, where only ladder hatches are allowed? DoorFrames is here to change that! This plugin introduces the ability to place Wooden Double Doors, Metal Double Doors, Armored Double Doors, and Garage Doors on floor frames, giving players more creative freedom and practical utility in their base designs.
🌟 What Does DoorFrames Do?
By default, Rust restricts floor frames to only accept ladder hatches, limiting design possibilities. DoorFrames overrides this behavior, allowing players to place multiple door types on floor frames, seamlessly integrating them into existing structures.
🔧 Key Features
🚪 Support for All Double Door Types
Players can place the following doors on floor frames:
Wooden Double Doors
Metal Double Doors
Armored Double Doors
Garage Doors
🔒 Permission-Based Access
Control which players can place specific door types using permission system:
doorframes.all: Allows placement of all supported door types.
doorframes.wood: Allows placement of Wooden Double Doors.
doorframes.metal: Allows placement of Metal Double Doors.
doorframes.armored: Allows placement of Armored Double Doors.
doorframes.garage: Allows placement of Garage Doors.
⏲️ Cooldown System for Performance
To ensure smooth server performance, the plugin includes a 0.5-second cooldown for each frame. Additionally, a 100-frame limit is enforced to prevent excessive memory usage. The oldest cooldowns are purged as needed, ensuring stability during heavy server activity. (Those can be changed in the code for optimization.)
🔌 Custom Hook Integration
The FFDoorPlaced hook is triggered every time a door is successfully placed, enabling advanced customization for server developers.
🎮 How It Works
For Developers
Customization via Hook:
The FFDoorPlaced hook allows you to add functionality such as logging, rewards, or additional restrictions. It provides the following parameters:
BasePlayer player: The player placing the door.
Door door: The door entity being placed.
string doorType: The type of door being placed (e.g., door.double.hinged.metal).
For Players
Select a Door: Equip one of the supported doors in your hotbar.
Aim at a Floor Frame: Point at a valid floor frame within a 5-meter range.
Place with a Click: If permissions are granted, the door will automatically align to the frame.
Players who lack the required permission will receive a message in chat, preventing placement.
⚠️ Important Considerations
Performance First: The cooldown system and frame limit ensure no unnecessary server lag or memory usage.
Backup Recommended: Always back up your server before installing new plugins or making major changes.
For Developers:
using Oxide.Core; using UnityEngine; namespace Oxide.Plugins { [Info("FFDoorLogger", "Hakan", "1.0.0")] public class FFDoorLogger : RustPlugin { void FFDoorPlaced(BasePlayer player, Door door, string doorType) { Puts($"{player.displayName} placed a {doorType} on a floor frame."); } } }
Functionality The FFDoorPlaced method is a hook that gets called whenever a door is placed using the DoorFrames plugin. When triggered, it:
Takes three parameters:
player: The BasePlayer who placed the door
door: The Door entity that was placed
doorType: The type of door placed (e.g., wooden, metal)
- #floorstack
- #floorframe
- (and 13 more)
-
Gun Game
By imthenewguy in Plugins
Gun Game is a high-intensity PvP game mode where players compete to be the first to reach the final weapon by earning kills. Each kill advances the player to the next weapon in a fully customizable progression list, keeping the action fresh and engaging.
The plugin creates a dedicated arena high in the sky, completely separated from the main map, to host the event.
When players join the event, they are teleported from their current location to the event lobby, with all of their items, modifiers and metabolism stats stored safely by the plugin.
Server owners can create any number of weapon profiles for players to progress through. The plugin will choose randomly between each profile at the beginning of each round.
The plugin ships with 2 default profiles:
Standard - Starts with revolver, ends with m249 and is 21 weapons long. Reverse - Starts with m249, ends with a sword and is 23 weapons long.
This plugin works with most PVE plugins.
Spawns an arena when the game begins and removes it when the game ends (no Rust-Edit required). Saves players inventory, metabolism and modifiers when they enter, and restores them when they leave. Configurable amount of kills per weapon to progress to the next weapon in the track. Supports refilling of ammo, and healing when a player gets a kill (configurable). Multiple respawn methods. Customizable clothing for players, with the option to have separate clothing for the leader. Supports custom item, server rewards and economic rewards for winners, as well as participants (based on a configurable threshold). Global scoreboard tracking wins, kills and deaths.
Command: ggstart <arena name>
Description: Starts the gun game event using the specified arena.
Permission: gungame.admin
Command: ggend
Description: Ends the active gun game event.
Permission: gungame.admin
Command: ggsetcentrepoint <arena name>
Description: Sets the spawn location for the specified arena.
Permission: gungame.admin
There are a number of commands that can be changed in the config that handle:
Joining an event [default: ggjoin] Leaving an event [default: ggleave] Restoring items from a previous event [default: ggrestore] Accessing the scoreboard [default: ggscore]
// Returns if the player is enrolled in the event. public bool IsEventPlayer(BasePlayer player); // Called when the arena has spawned and the lobby is about to start. void OnGunGameStart(); // Called when the game is ending. void OnGunGameEnd(); // Called when a player leaves an event. void OnEventLeave(BasePlayer player, string eventName); // Called when a player is attempting to join the event. Return non-null to prevent. object OnEventJoin(BasePlayer player, string eventName); // Called after a player has successfully joined the event, had their weapons stripped and has been teleported to the lobby. void OnEventJoined(BasePlayer player, string eventName);
Very special thanks to Nobody and the guys and girls on Aussie Outpost PVE for their help with testing and feedback!
-
Paintball
By imthenewguy in Plugins
Paintball is a plugin that spawns an arena in the sky to host a paintball match using snowball launchers. Players have a set number of hits that they can take before they are eliminated.
There are 2 game modes included with the plugin:
Free-for-all: Everyone vs everyone. Team death-match: Players are split into 2 teams.
Players can be awarded with items, economics, server rewards and custom commands if they win.
The plugin comes with 2 dynamic arenas included, which will be selected randomly each game.
EventHelper is used to automatically start the event and will also allow players to vote for the event manually.
The only permission is paintball.admin. This is required to run all commands except for joining and leaving an event, or redeeming prizes.
Command: pbstart Parameters: <optional: arenaFile, optional: heightMod, optional: startDelay> Type: Console & Chat Description: Manually starts the game. Command: pbend Parameters: none Type: Console & Chat Description: Manually stops the game. Command: pbjoin (configurable) Parameters: none Type: Console & Chat Description: Joins an active game. Command: pbleave (configurable) Parameters: none Type: Console & Chat Description: Leaves an active game. Command: pbprize (configurable) Parameters: none Type: Chat Description: Redeems a prize for winning. Command: pbsetcentrepoint Parameters: <arenaFile> Type: Chat Description: Sets the centre point of an arena at the players location. The arena will spawn from that location moving forward.
-
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 MultiEvents to ServerPanel?
A: To add MultiEvents to your ServerPanel, create a new category in your ServerPanel configuration with these settings:
"Type": "Plugin", "Plugin Name": "MultiEvents", "Plugin Hook": "API_OpenPlugin". 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.239: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)
-
Caravan
This plugin will add Caravans to your server that will attempt to transport valuable loot along the roads. Carriages are used to transport goods along the roads as configured, pulled by Horses. These convoys are accompanied by NPCs, Riders, and Balloons! By default, the plugin comes with 3 different caravan presets.
The easiest caravan will be fun for early wipe and allows some basic loot for low effort Caravan raids. In order to rob the most difficult caravan, players will need to be tactical about their ambush and it will be much more challenging! The road selection system can make the Caravan less predictable as the NPCs try to find a safe route.
The Caravan can traverse any road type, including good old country dirty roads. You can set up timers for each preset in the config file, to keep the more difficult Caravan from showing up until later in a wipe!
Riders
These can be very dangerous opponents! Unlike regular NPCs, they will quickly close the gap continually shooting at the players as they ride! Riders can be especially effective using short ranged weapons, they are deadly with a shotgun!
Balloons
These are mobile sniper towers on which several NPCs can be placed. In the config, armor can be added to the balloon, greatly increasing the protection for the Caravan snipers.When the caravan stops, Balloons will start moving around randomly, making it more difficult for players to hide! After defeating all of the snipers, Balloons will fall to the ground and explode.
Required Dependency (must install this free plugin)
NpcSpawn – link is included and can be found in the ReadMe file included with download
Chat commands (admin only)
/caravanstart - launches the event using a random preset based on your configuration /caravanstart PresetName - add the name of a preset from the configuration to launch a specific preset /caravanstop - stops the event /caravanroadblock - the event will not be held on the road where you are standing (clear the Blocked roads section of config when you change maps) /caravanpathstart - stand at starting point and enter command to start recording a custom route /caravanpathsave RoutePresetName - to save a custom route (enter anything you'd like in place of RoutePresetName) /caravanpathcancel - to reset the route
Console commands (RCON only)
caravanstart - launches the event using a random preset based on your configuration caravanstart PresetName - add the name of a preset from the configuration to launch a specific preset caravanstop - stops the event
Plugin Config
en – example of plugin configuration in English ru – example of plugin configuration in Russian
Hooks
void OnCaravanStart() - Сalled when a caravan appears void OnCaravanStop() -Сalled when a caravan disappears void OnCaravanEventWin(ulong userId)
Check out the rest of my work: Adem's Codefling Library
You can reach out to me in Discord: Adem's Discord Profile
Thanks to Jbird for writing, translation, & support: Jbird's Discord Profile
Join the Mad Mappers Discord!