Jump to content

Search the Community

Showing results for tags 'api'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Plugins
  • Carbon
  • Harmony
  • Maps
  • Monuments
  • Prefabs
  • Bases
  • Tools
  • Discord Bots
  • Customizations
  • Extensions
  • Graphics

Forums

  • CF Hub
    • Announcements
  • Member Hub
    • General
    • Show Off
    • Requests
  • Member Resources
    • For Hire
    • Creators Directory
  • Community Hub
    • Feedback
  • Support Hub
    • Support
    • Site Support

Product Groups

  • Creator Services
  • Host Services

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 20 results

  1. Version 0.1.5

    226 downloads

    A plugin creating a trigger box around Monuments and CargoShips to track entry and exit of players, npcs and entities from it. The list of all monuments can be viewed in the: Vanilla - *SERVER*\oxide\data\MonumentsWatcher\MonumentsBounds.json Custom - *SERVER*\oxide\data\MonumentsWatcher\CustomMonumentsBounds.json Note: MonumentsWatcher is utilized as an API for other plugins. You won't obtain any functionality beyond displaying monument boundaries without an additional plugin. The ability to automatically generate boundaries for vanilla and custom monuments; The ability to automatically regenerate boundaries for monuments on wipe; The ability to automatically adding languages for custom monuments; The ability to manually configure boundaries for monuments; The ability to track the entrance and exit of players, npcs and entities in a Monument and CargoShip; The ability to display boundaries. monumentswatcher.admin - Provides the capability to recreate or display monument boundaries. { "MonumentsWatcher command": "monument", "Use GameTip for messages?": true, "Is it worth recreating boundaries(excluding custom monuments) upon detecting a wipe?": true, "List of tracked types of monuments. Leave blank to track all": [], "Wipe ID": null, "Version": { "Major": 0, "Minor": 1, "Patch": 5 } } Monument bounds example: "airfield_1": { "Center": { "x": 335.881531, "y": 9.936, "z": 2096.53345 }, "CenterOffset": { "x": 0.0, "y": 15.0, "z": -25.0 }, "Size": { "x": 360.0, "y": 60.0, "z": 210.0 }, "Rotation": { "x": 0.0, "y": 44.06058, "z": 0.0 } }, ... Custom Monument bounds example: "exit69": { "MonumentType": 12, "Center": { "x": 336.676483, "y": 47.65218, "z": -39.02194 }, "CenterOffset": { "x": 0.0, "y": 0.0, "z": 0.0 }, "Size": { "x": 100.0, "y": 100.0, "z": 100.0 }, "Rotation": { "x": 0.0, "y": 0.0, "z": 0.0 } }, ... Note: MonumentType can be found in the Developer API section. ENG: https://pastebin.com/nsjBCqZe RUS: https://pastebin.com/ut2icv9T Note: After initialization, the names of custom monuments will also be added here. rotation - Sets the monument rotation based on the argument or the player's view direction; recreate - Recreating boundaries for all monuments; show - Displays the boundaries of the monument in which the player is located, either by specified ID or key. Example: Rotation: /monument rotation - Rotation of the monument towards the player's head direction, in which the player is located /monument rotation gas_station_1_0 256.5 - Monument rotation with specified arguments: monument ID and Y coordinate Display by monument key(Will display all monuments with such a key): /monument show gas_station_1 Display by monument ID(Will display one monument with the specified ID): /monument show gas_station_1_4 void OnMonumentsWatcherLoaded() Called when the MonumentsWatcher plugin has fully loaded. void OnCargoWatcherCreated(string monumentID, string type) Called when a watcher is created for a CargoShip. void OnCargoWatcherDeleted(string monumentID) Called when a watcher is removed for a CargoShip. void OnMonumentsWatcherLoaded() { Puts("MonumentsWatcher plugin is ready!"); } void OnCargoWatcherCreated(string monumentID, string type) { Puts($"Watcher for monument {monumentID}({type}) has been created!"); } void OnCargoWatcherDeleted(string monumentID) { Puts($"Watcher for monument {monumentID} has been deleted!"); } Entered hooks: void OnPlayerEnteredMonument(string monumentID, BasePlayer player, string type, string oldMonumentID) Called when a player enters any monument void OnNpcEnteredMonument(string monumentID, BasePlayer npcPlayer, string type, string oldMonumentID) Called when an NPC player enters any monument void OnEntityEnteredMonument(string monumentID, BaseEntity entity, string type, string oldMonumentID) Called when any other BaseEntity enters any monument void OnPlayerEnteredMonument(string monumentID, BasePlayer player, string type, string oldMonumentID) { Puts($"{player.displayName} entered to {monumentID}({type}). His previous monument was {oldMonumentID}"); } void OnNpcEnteredMonument(string monumentID, BasePlayer npcPlayer, string type, string oldMonumentID) { Puts($"Npc({npcPlayer.displayName}) entered to {monumentID}({type}). Previous monument was {oldMonumentID}"); } void OnEntityEnteredMonument(string monumentID, BaseEntity entity, string type, string oldMonumentID) { Puts($"Entity({entity.net.ID}) entered to {monumentID}({type}). Previous monument was {oldMonumentID}"); } Exited hooks: void OnPlayerExitedMonument(string monumentID, BasePlayer player, string type, string reason, string newMonumentID) Called when a player exits any monument void OnNpcExitedMonument(string monumentID, BasePlayer npcPlayer, string type, string reason, string newMonumentID) Called when an NPC player exits any monument void OnEntityExitedMonument(string monumentID, BaseEntity entity, string type, string reason, string newMonumentID) Called when any other BaseEntity exits any monument void OnPlayerExitedMonument(string monumentID, BasePlayer player, string type, string reason, string newMonumentID) { Puts($"{player.displayName} left from {monumentID}({type}). Reason: {reason}. They are now at '{newMonumentID}'."); } void OnNpcExitedMonument(string monumentID, BasePlayer npcPlayer, string type, string reason, string newMonumentID) { Puts($"Npc({npcPlayer.displayName}) left from {monumentID}({type}). Reason: {reason}. They are now in {newMonumentID}"); } void OnEntityExitedMonument(string monumentID, BaseEntity entity, string type, string reason, string newMonumentID) { Puts($"Entity({entity.net.ID}) left from {monumentID}({type}). Reason: {reason}. They are now in {newMonumentID}"); } [PluginReference] private Plugin MonumentsWatcher; There are 13 types of monuments: SafeZone(0): Bandit Camp, Outpost, Fishing Village, Ranch and Large Barn. RadTown(1): Airfield, Arctic Research Base, Abandoned Military Base, Giant Excavator Pit, Ferry Terminal, Harbor, Junkyard, Launch Site; Military Tunnel, Missile Silo, Power Plant, Sewer Branch, Satellite Dish, The Dome, Train Yard, Water Treatment Plant. RadTownWater(2): Oil Rig, Underwater Lab and CargoShip. RadTownSmall(3): Lighthouse, Oxum's Gas Station, Abandoned Supermarket and Mining Outpost. TunnelStation(4) MiningQuarry(5): Sulfur Quarry, Stone Quarry and HQM Quarry. BunkerEntrance(6) Cave(7) Swamp(8) IceLake(9) PowerSubstation(10) WaterWell(11) Custom(12) There are 21 api methods: GetMonumentDisplayName: Used to retrieve the nice name of the monument, considering the player's language. Returns an empty string on failure. To call the GetMonumentDisplayName method, you need to pass 3 parameters: monumentID as a string; userID as either a string or a ulong. You can provide 0 or empty string to get default(eng) language; displaySuffix() as a bool. Should the suffix be displayed in the name if there are multiple such monuments? This parameter is optional. (string)MonumentsWatcher?.Call("GetMonumentDisplayName", monumentID, player.userID, true); (string)MonumentsWatcher?.Call("GetMonumentDisplayName", monumentID, player.UserIDString, true); GetMonumentType: Used to retrieve the monument type. Returns an empty string on failure. To call the GetMonumentType method, you need to pass 1 parameter: monumentID as a string. (string)MonumentsWatcher?.Call("GetMonumentType", monumentID); GetMonumentPosition: Used to retrieve the position of the monument. Returns Vector3.zero on failure. To call the GetMonumentPosition method, you need to pass 1 parameter: monumentID as a string. (Vector3)MonumentsWatcher?.Call("GetMonumentPosition", monumentID); GetMonumentsList: Used to retrieve an array of monumentIDs for all available monuments. (string[])MonumentsWatcher?.Call("GetMonumentsList"); GetMonumentsTypeDictionary: Used to retrieve a dictionary of all available monuments with their types. (Dictionary<string, string>)MonumentsWatcher?.Call("GetMonumentsTypeDictionary"); GetMonumentsByType: Used to retrieve an array of all available monuments by type. To call the GetMonumentsByType method, you need to pass 1 parameter: monument type as a string. (string[])MonumentsWatcher?.Call("GetMonumentsByType", "SafeZone"); GetMonumentPlayers: Used to retrieve a list of players in the monument. Returns null on failure. To call the GetMonumentPlayers method, you need to pass 1 parameter: monumentID as a string. (HashSet<BasePlayer>)MonumentsWatcher?.Call("GetMonumentPlayers", monumentID); GetMonumentNpcs: Used to retrieve a list of npc players in the monument. Returns null on failure. To call the GetMonumentNpcs method, you need to pass 1 parameter: monumentID as a string. (HashSet<BasePlayer>)MonumentsWatcher?.Call("GetMonumentNpcs", monumentID); GetMonumentEntities: Used to retrieve a list of entities in the monument. Returns null on failure. To call the GetMonumentEntities method, you need to pass 1 parameter: monumentID as a string. (HashSet<BaseEntity>)MonumentsWatcher?.Call("GetMonumentEntities", monumentID); GetPlayerMonument: Used to retrieve the monumentID of the monument in which the player is located. Returns an empty string on failure. To call the GetPlayerMonument method, you need to pass 1 parameter: player as BasePlayer or userID as a ulong. (string)MonumentsWatcher?.Call("GetPlayerMonument", player); (string)MonumentsWatcher?.Call("GetPlayerMonument", player.userID); GetNpcMonument: Used to retrieve the monumentID of the monument in which the npc player is located. Returns an empty string on failure. To call the GetNpcMonument method, you need to pass 1 parameter: npcPlayer as BasePlayer or NetworkableId. (string)MonumentsWatcher?.Call("GetNpcMonument", npcPlayer); (string)MonumentsWatcher?.Call("GetNpcMonument", npcPlayer.net.ID); GetEntityMonument: Used to retrieve the monumentID of the monument in which the entity is located. Returns an empty string on failure. To call the GetEntityMonument method, you need to pass 1 parameter: entity as a BaseEntity or NetworkableId. (string)MonumentsWatcher?.Call("GetEntityMonument", entity); (string)MonumentsWatcher?.Call("GetEntityMonument", entity.net.ID); GetPlayerMonuments: Used to retrieve an array of monumentIDs for the monuments in which the player is located. Returns null on failure. To call the GetPlayerMonuments method, you need to pass 1 parameter: player as BasePlayer or userID as a ulong. (string[])MonumentsWatcher?.Call("GetPlayerMonuments", player); (string[])MonumentsWatcher?.Call("GetPlayerMonuments", player.userID); GetNpcMonuments: Used to retrieve an array of monumentIDs for the monuments in which the npc player is located. Returns an null on failure. To call the GetNpcMonuments method, you need to pass 1 parameter: npcPlayer as BasePlayer or NetworkableId. (string[])MonumentsWatcher?.Call("GetNpcMonuments", npcPlayer); (string[])MonumentsWatcher?.Call("GetNpcMonuments", npcPlayer.net.ID); GetEntityMonuments: Used to retrieve an array of monumentID for the monuments in which the entity is located. Returns an null on failure. To call the GetEntityMonuments method, you need to pass 1 parameter: entity as a BaseEntity or NetworkableId. (string[])MonumentsWatcher?.Call("GetEntityMonuments", entity); (string[])MonumentsWatcher?.Call("GetEntityMonuments", entity.net.ID); GetMonumentByPos: Used to obtain the monumentID based on coordinates. Returns an empty string on failure. To call the GetMonumentByPos method, you need to pass 1 parameter: position as a Vector3. (string)MonumentsWatcher?.Call("GetMonumentByPos", pos); IsPosInMonument: Used to check if the specified position is within the monument. Returns a false on failure. To call the IsPosInMonument method, you need to pass 2 parameters: monumentID as a string; position as a Vector3. (bool)MonumentsWatcher?.Call("IsPosInMonument", monumentID, pos); IsPlayerInMounument: Used to check if the player is in the monument. Returns a false on failure. To call the IsPlayerInMounument method, you need to pass 2 parameters: monumentID as a string; player as a BasePlayer or userID as a ulong. (bool)MonumentsWatcher?.Call("IsPlayerInMounument", monumentID, player); (bool)MonumentsWatcher?.Call("IsPlayerInMounument", monumentID, player.userID); IsNpcInMounument: Used to check if the npc player is in the monument. Returns a false on failure. To call the IsNpcInMounument method, you need to pass 2 parameters: monumentID as a string; npcPlayer as a BasePlayer or NetworkableId. (bool)MonumentsWatcher?.Call("IsNpcInMounument", monumentID, npcPlayer); (bool)MonumentsWatcher?.Call("IsNpcInMounument", monumentID, npcPlayer.net.ID); IsEntityInMounument: Used to check if the entity is in the monument. Returns a false on failure. To call the IsEntityInMounument method, you need to pass 2 parameters: monumentID as a string; entity as a BaseEntity or NetworkableId. (bool)MonumentsWatcher?.Call("IsEntityInMounument", monumentID, entity); (bool)MonumentsWatcher?.Call("IsEntityInMounument", monumentID, entity.net.ID); ShowBounds: Used to display the monument boundaries to the player. Note: Since an Admin flag is required for rendering, players without it will be temporarily granted an Admin flag and promptly revoked. To call the ShowBounds method, you need to pass 3 parameters: monumentID as a string; player as a BasePlayer; displayDuration as a float. Duration of displaying the monument boundaries in seconds. This parameter is optional. MonumentsWatcher?.Call("ShowBounds", monumentID, player, 20f);
    $1.99
  2. Version 0.1.2

    154 downloads

    The plugin enables the collection of a vast amount of gaming data with subsequent transmission to a database(MySQL). This functionality empowers website owners to display the desired statistics from the database on their sites. Moreover, it offers the capability to send data via API, which proves highly beneficial in scenarios where your gaming server and database reside on separate machines, and the database restricts connections beyond localhost. Please note that an instruction manual will be included in the downloaded file, and it is imperative for users to read it thoroughly. Collecting(The full list is available below in the section Collected Data) : Server information; Player information; Team information; Clan information(in future); Feedback(F7) information; Report(F7) information. Sending data through: direct MySQL; via API(POST query) to MySQL. { "Current Server ID": 0, "Time in seconds for updating data in the database(0 to disable)": 300.0, "DataBase - Display upload messages": true, "DataBase - Upload method(true for API, false for MySQL)": true, "API - Service URL(Specify the address of your website)": "https://site.com/ExtendedStats/index.php", "API - Service Key(Generate your own API key)": "GlBRw-elM6v-gjko3-cxSDk-Tsy7B", "MySQL - Host": "localhost", "MySQL - Port": 3306, "MySQL - Database name": "db_playrust", "MySQL - Username": "root", "MySQL - Password": "root", "Data Base - Servers Name": "db_servers", "Data Base - Players Name": "db_players", "Data Base - Players Deploys Name": "db_players_deploys", "Data Base - Players Explosions Name": "db_players_explosions", "Data Base - Players Farms Name": "db_players_farms", "Data Base - Players Kills Name": "db_players_kills", "Data Base - Players Raids Name": "db_players_raids", "Data Base - Teams Name": "db_teams", "Data Base - Clans Name": "db_clans", "Data Base - Feedbacks Name": "db_feedbacks", "Data Base - Reports Name": "db_reports", "Wipe - Clear data upon detection of wipe": true, "Wipe - Clear database data upon detection of wipe": true, "Wipe - List of data to clear upon detection of wipe": [ "players", "teams", "clans", "feedbacks", "reports" ], "List of deployed names": {}, "Wipe ID": null, "Version": { "Major": 0, "Minor": 1, "Patch": 2 } } ServerData: ServerName ServerIdentity ServerIP ServerPort QueryPort ServerDescription ServerHeader ServerURL ServerTime ServerTags MaxPlayers ServerEntities ServerUptime ServerMap MapSize MapSeed FirstSave LastSave WipeID ServerVersion ServerProtocol RconPort RconPassword PlayersData: Info UserID DisplayName Language UserGroups CurrentTeam CurrentClan Flags - Online/Offline, Banned BanReason Connection Connections - Number of connections to the server Ping PlayedTime - PlaytimeTracker/PlayTimeRewards plugins required IdleTime - PlaytimeTracker/PlayTimeRewards plugins required FirstConnectionIP LastConnectionIP FirstConnectionDate LastConnectionDate FarmStats Balance - Economics plugin required BankBalance - BankSystem plugin required Points - ServerRewards plugin required Experience Reputation - ReputationMaster plugin required Barrels Fish_Attempts Guts Supplies Excavator_Supplies Chinooks Surveys Blueprints CraftList GatherList CratesList - List of open crates with quantities FishList MonumentsList - Number of monument visits. MonumentsWatcher plugin required DeployedsList KillStats InflictedDamage - Damage inflicted exclusively on real players Kills FriendlyKills Deaths Suicides WoundsInflicted - Only real players TimesWounded - Only real players Chickens Boars Stags Wolves Bears Sharks Scientists Patrols Bradleys VehicleStats(kills) Bikes Cars RowBoats RHIBs Submarine_Solos Submarine_Duos Tugs Heli_Minis Heli_Attacks Heli_Scraps Balloons Trains Train_Wagons Train_Wagon_Cabooses HitParts - List of body part hits with quantities, only real players KillParts - List of body part kills with quantities, only real players KillWeapons - List of kills from various weapons with quantities, only real players RaidedDeployableConstructionsList RaidedConstructionsList RaidStats Cupboards Doors Windows Foundations Ceilings Walls Doorways WindowFrames Stairs Hatches External_Wooden_Gates External_Wooden_Walls External_Stone_Gates External_Stone_Walls External_Ice_Walls External_Ice_Short_Walls RBStats - The number of raided bases by difficulty level. RaidableBases plugin required RBEasy RBMedium RBHard RBExpert RBNightmare ExplosionStats Rocket Rocket_HV Rocket_I Rocket_Smoke Rocket_Missile Rocket_MLRS Torpedo Explosive_Ammo Grenade_Explosive_40mm Grenade_Smoke_40mm Nade_F1 Nade_Moly Nade_Flash Nade_Smoke Nade_Bean Satchel C4 TeamsData: TeamID TeamName LeaderID TeamMembers ClansData(temporarily not working) : ClanID ClanName LeaderID ClanMembers FeedbacksData: ID UserID Subject Type Message Time ReportsData: ID UserID TargetID TargetName Subject Type Message Time
    $19.99
  3. Version 1.1.2

    243 downloads

    RUST Plugin Test Server TEST MY PLUGINS THERE! connect play.thepitereq.ovh:28050 Redeem Storage API enables you to consolidate all your plugin item sources into a single inventory. This means you can condense multiple storage containers into one and eliminate the need for free space in your inventory. Please note that this plugin doesn't have any standalone functionality; it requires another plugin that utilizes this API. Move your all plugin item rewards/outputs to one storage. You can create multiple custom redeem inventories. Each storage have their own data file, so it's easy to clear only certain inventories on wipes. void AddItem(ulong userId, string name, Item item, bool popUp = false) - Moves the previously created item to the desired redeem inventory of the player. { "Redeem Commands": [ "redeem", "red" ], "PopUp API Preset": "Legacy", "Redeem Storage Item Reminder (in seconds, 0 to disable)": 600, "Redeem Inventories": { "default": { "Default Redeem Inventory (only one)": true, "PopUp Message (configurable in lang file)": false, "Redeem Only In Safezone": true, "Redeem Only If Authed": true, "Allow When No Cupboard (works is option above is true)": false, "Drop Overflow Items Onto Ground (true = drop, false = delete)": true }, "shop": { "Default Redeem Inventory (only one)": false, "PopUp Message (configurable in lang file)": true, "Redeem Only In Safezone": false, "Redeem Only If Authed": false, "Allow When No Cupboard (works is option above is true)": false, "Drop Overflow Items Onto Ground (true = drop, false = delete)": true } } }
    Free
  4. Version 1.1.0

    9 downloads

    paBots RustMaps Module is a Python Discord bot module for the custom and FREE paBots Autoloader. It allows you to host your map manager Discord bot on your Pterodactyl panel and access it in ANY Discord server you choose. Included Features Integrated map generation – allows you to generate maps from RustMaps directly to your Discord server. Basic map preview feature – allows you to send map previews to a specified channel. Autowiper support – allows you to modify your auto wipers settings file and prepare your server for the next wipe. Comprehensive config – allowing you to modify almost every aspect of the module. Detailed setup instructions – provides you a detailed overview of how to set up the module and autoloader from start to finish. Self-hosted files – lets you run the bot on your high-powered servers. Full support – to help you fix or implement any desired feature. Commands /generate – Allows you to generate a map using one of your saved configs from RustMaps. Allows you to select config name, map size, seed, and if its for staging. /preview – Sends a simple Map Preview to a designated channel. /setnextwipe – (Requires an autowiper) Updates your autowiper's configuration to use a certain map. /show – Allows you to see the server names, monthly limit of generations, and config names. Disclaimers Requires RustMaps Subscription – You must have an ACTIVE RustMaps subscription for this to work. Limited to Pterodactyl – The support is limited to pterodactyl. Special Thanks Mr. Blue – Allowing me to use RustMaps' name and logo's within the bot. lencorp – Allowing me to add native integration with his autowiper.
    $6.00
  5. Version 1.0.0

    49 downloads

    The PlayerEventStates plugin provides a system to manage and track event states for individual players and globally across the server. This system can be particularly useful for developers who wish to create conditional gameplay mechanics based on specific events or states. Features Player-Specific Event States: Allows tracking of individual player event states. Global Event States: Provides a mechanism to track global events that apply server-wide. API Access: Exposes several API methods for developers to interact with the system, making it versatile for integration with other plugins or custom scripts. Data Persistence: Ensures that both player-specific and global event states are saved and can be loaded across server restarts. API Methods (For Developers) GetEventStatePlayer_API(ulong playerId, string eventName); // Fetches the event state for a specific player. GetEventStateGlobal_API(string eventName); // Retrieves the global event state. SetEventStatePlayer_API(ulong playerId, string eventName, bool value); // Sets the event state for a specific player. SetEventStateGlobal_API(string eventName, bool value); // Modifies the global event state. PlayerHasRecquiredStates_API(ulong playerId, Dictionary<string,bool> states); //Checks if a player meets specific event state conditions. Usage Examples Quest Systems: If you're developing a quest system, you can use event states to track a player's progress. For instance, if a player completes a task, you can set an event state to true. This can then influence future interactions or dialogues with NPCs. Dynamic World Events: Global event states can be used to track server-wide events. For example, if a server-wide event like a festival is active, you can set a global event state. This could change interactions or available quests for all players. Conditional Dialogues: As mentioned, integration with the Dialogs plugin can lead to dynamic dialogues. An NPC might have different dialogues for players who have or haven't completed specific tasks. Setup & Configuration Ensure the PlayerEventStates plugin is installed on your server. The plugin will automatically create necessary data files in the oxide/data/PlayerEventStates directory. Developers can directly interact with the plugin using the provided API methods. Note for Developers: When developing with this plugin, pay special attention to the variables ending with _API. These are the methods you'll primarily interact with to get or set event states. Conclusion The PlayerEventStates plugin is a powerful tool for developers looking to add depth and dynamism to their Rust servers. By tracking both player-specific and global event states, it opens up a plethora of gameplay possibilities, especially when combined with plugins like Dialogs. Whether you're crafting a complex quest system or just want NPCs to recognize player achievements, PlayerEventStates is a valuable addition to your plugin arsenal. Support : You can also contact me via discord : https://discord.gg/JJnxFgP27G
    Free
  6. Version 0.1.14

    553 downloads

    Useful auxiliary plugin that allows other plugins to customize the status bar through an API. Note: AdvancedStatus does not display any bars on its own. This is done by other plugins that work with it. An example plugin demonstrating interaction with AdvancedStatus. The ability to specify the frequency of calculating the number of bars; The ability to specify the order of the bar; The ability to change the height of the bar; The abillity to customize the color and transparency of the background; The ability to set a material for the background; The ability to switch between CuiRawImageComponent and CuiImageComponent for the image; The abillity to set own image and customize the color and transparency of the image; The abillity to set sprite instead of the image; The ability to specify custom text. Additionally, customization options for the color, size, and font of the text; No need to pass all parameters; No need to manually delete your bar when unloading your plugin. { "Client Status Bar Count Interval": 0.5, "Bar - Display Layer(https://umod.org/guides/rust/basic-concepts-of-gui#layers)": "Under", "Bar - Left to Right": true, "Bar - Offset Between": 2, "Bar - Default Height": 26, "Main - Default Color": "#505F75", "Main - Default Transparency": 0.7, "Main - Default Material(empty to disable)": "", "Image - Default Color": "#6B7E95", "Image - Default Transparency": 1.0, "Text - Default Size": 12, "Text - Default Color": "#FFFFFF", "Text - Default Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Text - Default Offset Horizontal": 0, "SubText - Default Size": 12, "SubText - Default Color": "#FFFFFF", "SubText - Default Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Progress - Default Color": "#89B840", "Progress - Default Transparency": 0.7, "Progress - Default OffsetMin": "25 2.5", "Progress - Default OffsetMax": "-3.5 -3.5", "Version": { "Major": 0, "Minor": 1, "Patch": 14 } } Note: Default values will be used if the external plugin does not pass the property itself. EN: { "MsgDays": "d", "MsgHours": "h", "MsgMinutes": "m", "MsgSeconds": "s" } RU: { "MsgDays": "д", "MsgHours": "ч", "MsgMinutes": "м", "MsgSeconds": "с" } OnPlayerGainedBuildingPrivilege: Called after the player enters their building privilege. OnPlayerLostBuildingPrivilege: Called after the player exits their building privilege. void OnPlayerGainedBuildingPrivilege(BasePlayer player) { Puts($"{player.displayName} entered the authorized building privilege zone."); } void OnPlayerLostBuildingPrivilege(BasePlayer player) { Puts($"{player.displayName} exited the authorized building privilege zone."); } [PluginReference] private Plugin AdvancedStatus; There are 7 methods: CreateBar UpdateContent DeleteBar DeleteCategory DeleteAllBars BarExists InBuildingPrivilege There are 4 types of bar: Default - A simple bar that displays the provided information. Does not update the value of SubText by itself; Timed - Similar to the default bar, but it automatically disappears after the specified time in the TimeStamp parameter; TimeCounter - The SubText shows the remaining time until TimeStamp. Also automatically removed upon expiration of the TimeStamp; TimeProgress - Similar to the TimeCounter bar, but additionally features a progress bar. CreateBar: Used to create a bar or update bar values for a player. To call the CreateBar method, you need to pass 2 parameters. The first one is BasePlayer or <ulong>playerID. The second one is a dictionary with the parameters you need. In the CreateBar method, all parameters are optional, except for two: Id; Plugin. Parameters not specified when creating a new bar will use the values set in the AdvancedStatus plugin's configuration file. Parameters not specified during bar update will retain the values they had before the update. Note: The plugin does not update values automatically, you need to manually send new values. Dictionary<string, object> parameters = new Dictionary<string, object> { { "Id", _barID }, //<string>Unique identifier for the bar in your plugin. ***This is a required field. { "BarType", "Default" }, //<string>Type of the bar. There are 4 types: Default, Timed, TimeCounter and TimeProgress. { "Plugin", Name }, //<string>Name of your plugin. ***This is a required field. { "Category", "Default" }, //<string>Internal plugin category of the bar. { "Order", 10 }, //<int>The position of your bar relative to others. Order is determined by increasing values(ASC). { "Height", 26 }, //<int>The height of your bar. A standard bar is 26 pixels. { "Main_Color", "#505F75" }, //<string>HTML Hex color of the bar background. { "Main_Transparency", 0.7f }, //<float>Transparency of the bar background. { "Main_Material", "assets/content/ui/uibackgroundblur.mat" }, //<string>Material of the bar background(empty to disable). { "Image", "scrap" }, //<string>Name of the image saved in the ImageLibrary or a direct link to the image if ImageLibrary is not used. { "Image_Sprite", "" }, //<string>Sprite image of the bar. (If empty, Image will be used as the image). { "Is_RawImage", true }, //<bool>Which type of image will be used? True - CuiRawImageComponent. False - CuiImageComponent. { "Image_Color", "#6B7E95" }, //<string>HTML Hex color of the bar image. { "Image_Transparency", 1.0f }, //<float>Transparency of the image. { "Text", "Scrap" }, //<string>Main text. { "Text_Size", 12 }, //<int>Size of the main text. { "Text_Color", "#FFFFFF" }, //<string>HTML Hex color of the main text. { "Text_Font", "RobotoCondensed-Bold.ttf" }, //<string>Font of the main text. { "Text_Offset_Horizontal", 0 }, //<int>Horizontal offset for the main text. { "SubText", "35" }, //<string>Sub text. { "SubText_Size", 12 }, //<int>Size of the sub text. { "SubText_Color", "#FFFFFF" }, //<string>HTML Hex color of the sub text. { "SubText_Font", "RobotoCondensed-Bold.ttf" }, //<string>Font of the sub text. { "TimeStamp", Network.TimeEx.currentTimestamp + 6 }, //<double>Used if the bar type is Timed, TimeCounter or TimeProgress. { "Progress", (float)35 / 100f }, //<float>Progress. From 0.0 to 1.0. { "Progress_Color", "#89B840" }, //<string>Progress color. { "Progress_Transparency", 1f }, //<float>Progress transparency. { "Progress_OffsetMin", "25 2.5" }, //<string>Progress OffsetMin: "*left* *bottom*". { "Progress_OffsetMax", "-3.5 -3.5" }, //<string>Progress OffsetMax: "*right* *top*". { "Command", "kit" } //<string>If the field is not empty, the bar becomes clickable, and the specified command is executed upon clicking. Note: the command must be covalence. }; AdvancedStatus?.Call("CreateBar", player.userID, parameters); //Calling the CreateBar method with the passing of BasePlayer/playerID and a dictionary containing the required parameters. UpdateContent: Used to update only the content of an existing status bar. To call the UpdateContent method, you need to pass 2 parameters. The first one is BasePlayer or <ulong>playerID. The second one is a dictionary with the parameters you need. In the UpdateBar method, all parameters are optional, except for two: Id; Plugin. var parameters = new Dictionary<string, object> { { "Id", "MyID" }, //<string>Unique identifier for the bar in your plugin. ***This is a required field. { "Plugin", Name }, //<string>Name of your plugin. ***This is a required field. { "Text", "MyText" }, //<string>Main text. { "SubText", "MyText" }, //<string>Sub text. { "Progress", (float)amount / 100f }, //<float>Progress. From 0.0 to 1.0. }; AdvancedStatus?.Call("UpdateContent", player, parameters); //Calling the UpdateContent method with the passing of BasePlayer/playerID and a dictionary containing the required parameters. DeleteBar: Used to remove the bar for a player. There are two methods for removing a bar by ID: with specifying a particular player; To call this method, you need to pass 3 parameters. The first one is BasePlayer or <ulong>playerID. The second one is Id of your bar and the third one is name of your plugin. without specifying a particular player (which removes it for all players) To call this method, you need to pass 2 parameters. The first one is Id of your bar and the second one is name of your plugin. AdvancedStatus?.Call("DeleteBar", player, barID, Name);//Calling the DeleteBar method with the passing of BasePlayer/playerID, ID of the bar and the name of your plugin. AdvancedStatus?.Call("DeleteBar", barID, Name);//Calling the DeleteBar method with the passing of ID of the bar and the name of your plugin. If you try to delete a bar that doesn't exist, nothing bad will happen. So feel free to delete the bar without checking its existence. P.S. When unloading your plugin, there is no need to manually delete bars for players, AdvancedStatus will handle it automatically. DeleteCategory: Used to remove all bars associated with the plugin's category. To call the DeleteCategory method, you need to pass 2 parameters. The first one is category and the second one is name of your plugin. AdvancedStatus?.Call("DeleteCategory", "Default", Name);//Calling the DeleteCategory method by passing the category and name of your plugin DeleteAllBars: Used to remove all bars associated with the plugin. To call the DeleteAllBars method, you need to pass only 1 parameter. It is name of your plugin. AdvancedStatus?.Call("DeleteAllBars", Name);//Calling the DeleteAllBars method, passing the name of your plugin BarExists: Used to check if the specified bar exists. To call the BarExists method, you need to pass 3 parameters. The first one is BasePlayer or <ulong>playerID. The second one is Id of your bar. And the third one is name of your plugin. (bool)AdvancedStatus?.Call("BarExists", player, barID, Name);//Calling the BarExists method with the passing of BasePlayer/playerID, ID of the bar and name of your plugin. InBuildingPrivilege: Used to check if the player has authorized building privileges. To call the InBuildingPrivilege method, you need to pass BasePlayer or <ulong>playerID. (bool)AdvancedStatus?.Call("InBuildingPrivilege", player, false);//Checking if the player has Building Privilege.
    $1.99
  7. Version 1.1.3

    2,624 downloads

    This plugin does not introduce any functionality by itself, but rather provides a framework for other plugins to manipulate the status list that appears in the game UI on the right. New Version Available This plugin has been rewritten to improve performance! The new version is now called Simple Status and can be downloaded (for free) here: Why is it a new plugin and not just an update to this one? Because I understand that many people have already written awesome plugins that utilize CSF and in order to maximize performance, the plugin needed a complete overhaul. So instead of forcing all those developers to update their plugins, I'm letting CSF stay its own thing for now, but I strongly encourage developers to move to Simple Status when they can. With the release of this new plugin, I do not plan on updating CSF at this time. Positioning As of v1.1.0 you can optionally designate where on the screen the custom statuses are stacked. The vanilla position will stack the statuses nicely on top of the default game ones, this requires more server processing, but achieves a seamless look with the Rust UI. If you don't mind sacrificing that for greater performance, you can optionally change the position property to any other valid position and the plugin won't have to track all those vanilla Rust statuses. Valid Positions: top left top top right left vanilla (default) right bottom left bottom bottom right Performance Tuning If you are not seeing performance issues, there is no need to make any changes. As of v1.1.0 there are configuration options that will help you increase performance on your server by disabling/adjusting feature. If you are having performance issues with CSF, please refer to the following configuration tips: Tip 1: Avoid using the "vanilla" position In the config you have the option to specify a position. This is where the statuses for CSF are stacked. By default, this is set to "vanilla", which means that any custom statuses will stack on top of the vanilla rust ones. This provides a clean and seamless look, however, in order to achieve this, the plugin must calculate all the scenarios for which vanilla statuses are show and then redraw them for each player on the server - which can cause performance issue. For optimal performance, change the "Position" property to any other valid value (see the Positioning section). Tip 2: Make sure "Fast Refresh" is set to "false" By default, as of v.1.1.0, statuses are refreshed once every second, which means that it may take up to one second for a player's status to be removed from their screen. If you you enable "Fast Refresh" in the config, statuses will be updated at a much quicker rate, but this will put more stress on the server. For optimal performance, set "Fast Refresh" to false. Tip 3: Limit the number of CSF plugins that use global statuses The more plugins you have that rely on CSF the more updates will need to be made. If a CSF dependent plugin is written optimally (avoiding global/dynamic statuses) then it won't hurt performance much. However, if you are running a lot of plugins that *do* use dynamic/global statuses, then you might see performance issues. It is up to the developer of CSF dependent plugins to utilize CSF efficiently. Try disabling plugins one at a time to see which ones are causing poor performance. Developer API Check out this demo for a code example of how to use the API for this plugin. (Updated 9/15/2023) Note for developers: when possible, avoid using dynamic statuses, as they are a significant performance draw. If possible, instead manually update statuses when appropriate. // API Documentation for Custom Status Framework v1.0.5 // Returns a list of all statuses for a player, both vanilla and custom ones. List<string> GetStatusList ( BasePlayer basePlayer ) // Returns true if a player has a status matching the given id. bool HasStatus ( BasePlayer basePlayer, string id ) // Method for showing a simple temporary status to a player. // This status will appear and then disappear after some time. void ShowStatus ( BasePlayer basePlayer, string id, string color = null, string text = null, string textColor = null, string subText = null, string subTextColor = null, string imageLibraryIconId = null, string iconColor = null, float seconds = 4f ) // Creates a status for the given player. private void SetStatus ( BasePlayer basePlayer, string id, string color, string text, string textColor, string subText, string subTextColor, string imageLibraryIconId, string iconColor ) // Removes the specified status from the given player. private void ClearStatus ( BasePlayer basePlayer, string id ) // Performs a ClearStatus and then a SetStatus. // Useful if you want to simply refresh a status value. private void UpdateStatus ( BasePlayer basePlayer, string id, string color, string text, string textColor, string subText, string subTextColor, string imageLibraryIconId, string iconColor ) // Creates a global status with a static value. // The value of this status will not change, but will be dynamically applied to all // players who meet the specified condition function. private void CreateStatus ( string id, string color, string text, string textColor, string subText, string subTextColor, string imageLibraryIconId, string iconColor, Func<BasePlayer, bool> condition ) // Creates a global status with a dynamic value. // The value of this status will change, and is dynamically set for each player // based on the return of the dynamicValue function. // This status will be dynamically applied to all players who meet the specified // condition function. private void CreateDynamicStatus ( string id, string color, string text, string textColor, string subTextColor, string imageLibraryIconId, string iconColor, Func<BasePlayer, bool> condition, Func<BasePlayer, string> dynamicValue ) // Deletes a global status by id. private void DeleteStatus ( string id )
    Free
  8. KpucTaJl

    PveMode

    Version 1.2.0

    1,574 downloads

    This plugin does not have its own functionality This plugin is only used as an API for other plugins Creates a configurable PVE mode out of compatible events and plugins Supported Plugins AirEvent HarborEvent WaterEvent Satellite Dish Event Power Plant Event JunkyardEvent Defendable Bases BossMonster BetterNpc Convoy API void EventAddPveMode(string shortname, JObject configJson, Vector3 position, float radius, HashSet<uint> crates, HashSet<uint> scientists, HashSet<uint> tanks, HashSet<ulong> owners, BasePlayer owner) Creates a PVE event mode shortname – name of event configJson – PVE mode configuration (more details below in the description) position – event position on the map radius – radius of the event zone crates – list of all event crates (including locked crates) scientists – list of all NPCs active during event tanks – list of all Bradley events owners – list of all event owners (this parameter is necessary if you need to create an event zone several times) owner – event owner (this parameter is required if you need to run an event with the owner) void EventRemovePveMode(string shortname, bool addCooldownOwners) Removes PVE mode for the event shortname – name of event addCooldownOwners – should there be a cooldown for all event owners if this parameter is active in the PVE mode configuration? (this parameter is necessary if you need to create an event zone several times and issue a cooldown only in the last iteration) void EventAddCrates(string shortname, HashSet<uint> crates) Adds crates to the event if active in PVE mode shortname – name of event crates – list of event crates to be added (including locked crates) void EventAddScientists(string shortname, HashSet<uint> scientists) Adds NPCs to the event if active in PVE mode shortname – name of event scientists – list of added event NPCs to be added void EventAddTanks(string shortname, HashSet<uint> tanks) Adds Bradley to the event if active in PVE mode shortname – name of event tanks – list of added Bradleys event to be added HashSet<ulong> GetEventOwners(string shortname) Returns a list of SteamID for all of the Event Owners during the operation of an event shortname – name of event ulong GetEventOwner(string shortname) Returns the SteamID of the current Event Owner (if there is no Event Owner, it returns 0) shortname – name of event void SetEventOwner(string shortname, ulong owner) Sets the current Event Owner shortname – name of event owner – SteamID of the player HashSet<string> GetEventsPlayer(ulong id) Returns a list of event zones where the player is located id - SteamID of the player Dictionary<string, double> GetTimesPlayer(ulong id) Returns a list of events and the time when the player participated in the event the last time id - SteamID of the player PVE Mode Configuration float Damage – The amount of damage that the player has to do to become the Event Owner HashSet<ScaleDamageConfig> ScaleDamage – Damage coefficients for calculation to become the Event Owner bool LootCrate – Can other players and teams loot the crates if not Event Owner or their team? [true/false] bool HackCrate – Can other players and teams hack locked crates if not Event Owner or their team? [true/false] bool LootNpc – Can other players and teams loot NPC corpses if not Event Owner or their team? [true/false] bool DamageNpc – Can other players and teams deal damage to the NPC if not Event Owner or their team? [true/false] bool DamageTank – Can other players and teams do damage to Bradley if not Event Owner or their team? [true/false] bool TargetNpc – Can an Npc attack other players and teams if not Event Owner or their team? [true/false] bool TargetTank – Can Bradley attack other players and teams if not Event Owner or their team? [true/false] bool CanEnter – Allow other players and teams to enter the Event Zone if not Event Owner or their team? [true/false] bool CanEnterCooldownPlayer – Allow a player who has an active cooldown as the Event Owner to enter the event zone? [true/false] int TimeExitOwner – The time that the Event Owner can leave the Event Zone and retain title [sec.] int AlertTime – The Warning time until Event Owner status will end [sec.] bool RestoreUponDeath – Prevent RestoreUponDeath plugin from functioning in the Event Zone? (Player will drop gun and inventory when in Event Zone) [true/false] double CooldownOwner – Cooldown timer for Event Owner until they can achieve the title again, after the end of an event where the player was its owner [sec.] int Darkening – Darkening of the dome (0 – disables the dome) Example: JObject config = new JObject { ["Damage"] = 500f, ["ScaleDamage"] = new JArray { new JObject { ["Type"] = "NPC", ["Scale"] = 1f }, new JObject { ["Type"] = "Bradley", ["Scale"] = 2f } }, ["LootCrate"] = false, ["HackCrate"] = false, ["LootNpc"] = false, ["DamageNpc"] = false, ["DamageTank"] = false, ["TargetNpc"] = false, ["TargetTank"] = false, ["CanEnter"] = false, ["CanEnterCooldownPlayer"] = true, ["TimeExitOwner"] = 300, ["AlertTime"] = 60, ["RestoreUponDeath"] = true, ["CooldownOwner"] = 86400, ["Darkening"] = 12 }; Chat commands EventsTime - shows the player a list of how much time has passed since participating in the event the last time Console commands (RCON only) ClearTimePveMode {steamid} - clears the list of the time when the player with SteamID ({steamid}) participated in the event the last time My Discord: KpucTaJl#8923 Join the Mad Mappers Discord here! Check out more of my work here!
    $16.00
  9. DezLife

    XDFriends

    Version 4.0.7

    10 downloads

    Friends Plugin for Rust Server "Friends" is a robust and flexible plugin designed to enhance the in-game friends system in Rust. It will help streamline the interaction between friends, simplify the process of authorization, and access to important game elements, and manage damage between friends. Key Features: Damage Control: An integrated feature of damage blocking among friends helps prevent accidental damage. This feature can be easily enabled or disabled by command. Enhanced Friends Authorization System: The plugin allows activating friends' authorization for a wide range of elements, including: Turrets SAM site Code locks Key locks Cupboards Upon removal from the friends' list, the player will automatically be deauthorized from all the listed elements. Remote Friend Invitation: With a special command, you can invite a player to be friends, even from afar. Authorization Settings Flexibility: Choose between two authorization methods for code locks - guest authorization ("guestPlayers") or full authorization ("whitelistPlayers"). Compatibility and Optimization: The "Friends" plugin is optimized for maximum performance and is compatible with many other plugins. Extensive API: The plugin offers a comprehensive API for developers, providing flexibility and the possibility of further customization. Detailed Logging System: "Friends" includes a logging system, providing transparency and control over activities. Optimize your gameplay with the "Friends" plugin for Rust server. It will help improve your gaming experience, simplify interactions with friends, and make your server safer and more manageable. Commands: /team - Additional info /team invite/add <Nickname> /team ff - Friendly fire Default Configuration: { "Chat commands": [ "team", "ff", "friend" ], "Maximum number of friends": 3, "Time to accept team invite (in seconds)": 20.0, "Enable friend authorization for turrets?": true, "Enable friend authorization for SAM sites?": true, "Enable friend authorization for code locks?": true, "Enable friend authorization for key locks?": true, "Enable friend authorization for cupboards?": true, "Authorization method for code locks (guestPlayers - guest authorization, whitelistPlayers - full authorization)": "guestPlayers", "Enable logging system ?": false, "Chat prefix (IQChat)": "<color=#5cd6skykey>[Friends]</color>\n" } API for Developers HasFriend(ulong playerId, ulong friendId) //Checks if the specified user is a friend of the player. HasFriends(string playerS, string friendS) //Checks if the player has friends by their string identifiers. IsFriend(ulong playerId, ulong friendId) //Checks if the specified user is a friend of the player. AreFriends(ulong playerId, ulong friendId) //Checks if the specified players are friends. AreFriends(string playerS, string friendS) //Checks if the specified players are friends by their string identifiers. IsFriends(string playerS, string friendS) //Checks if the player has friends by their string identifiers. GetFriends(ulong playerId) //Returns the player's friends list. GetFriendList(string playerS) //Returns the player's friends list by the string identifier. GetFriends(string playerS) //Returns the player's friends list by the string identifier. IsFriendOf(ulong playerId) //Returns a list of players who are friends of the specified player. IsFriendOf(string playerS) //Returns a list of players who are friends of the specified player by the string identifier. GetFriendList(ulong playerId) //Returns the friends list of the specified player.
    $8.99
  10. Version 1.1.1

    248 downloads

    Send Gametip messages on a timed interval to online players Features : Simple configuration. Sends Gametip messages on a configurable timed interval and duration (seconds). Can use a permission to ignore a player to get the messages. API support for other plugins to use its simplified queue system. Permissions : randomtips.exclude : To exclude the player from getting the Gametips sent by this plugin Configuration : Show Messages is set to false by default so it will not run the standard messages on plugin install. If you don't want to use a prefix , then you can leave it empty. Warning tips (RED) have a max lifetime of 5 seconds { "Show Messages": true, "Prefix": "[YourServer] ", "Interval (seconds)": 600, "Global Tip Duration (seconds)": 5.0, "Show as warning (max 5 sec)": false, "Messages": [ "Join our Discord ,Click <color=orange>[view webpage]</color> button.", "We run several cool Plugins !", "Grab one of our kits using /kit .", "<color=red>Color</color> code is supported" ] } API : void TIP(BasePlayer player, string message, float dur , bool warning) example call RandomTips?.Call("TIP", player, "Your text here", 6f ,true);
    Free
  11. Version 1.1.3

    1,627 downloads

    Overview Provides an API for adding custom status messages that fit in with those of vanilla Rust. This plugin requires another plugin to utilize it, it does not do anything on its own. Check out the "Works With" list above for some plugins that utilize this API. Commands /ts Toggles the visibility of statuses for a player. This command can be changed in the config settings. /simplestatus.clearcache Clears the cache and status data. Only useable as an admin or from the server console. Mostly helpful if you're developing a plugin and want to force it to refresh. Custom Status Framework This plugin is a sequel to Custom Status Framework and features much better performance. They do the same thing, but are NOT compatible with each other. Do not load both on your server or you may run into issues. Plugins that require Custom Status Framework will need to be updated to support Simple Status, it is not backwards compatible. If you are a plugin developer and need help writing your plugin to use Simple Status, please reach out to me! API void CreateStatus(Plugin plugin, string statusId, string backgroundColor = "1 1 1 1", string title = "Text", string titleColor = "1 1 1 1", string text = null, string textColor = "1 1 1 1", string imageName = null, string imageColor = "1 1 1 1") // Registers a new status, should be called during plugin init. void SetStatus(ulong userId, string statusId, int duration = int.MaxValue, bool pauseOffline = true) // Assigns a player a status with a duration. Set duration to int.MaxValue for an infinite status. Set to 0 to clear a status. void SetStatusColor(ulong userId, string statusId, string color = null) // Sets the background color of a status for a player. Assign to null to restore the original status color. void SetStatusTitle(ulong userId, string statusId, string title = null) // Updates the title property with the specified localization message id. void SetStatusTitleColor(ulong userId, string statusId, string color = null) // Sets the color of the title for a player status. Assign to null to restore the original color. void SetStatusText(ulong userId, string statusId, string text = null) // Sets the text property with the specified localization message id. void SetStatusTextColor(ulong userId, string statusId, string color = null) // Sets the color of the text for a player status. Assign to null to restore the original color. void SetStatusIcon(ulong userId, string statusId, string imageLibraryNameOrAssetPath = null) // Updates the icon for a player status. Accepts a registered image libary name, sprite asset path or item id. See image types section of // documentation for how to support different images. void SetStatusIconColor(ulong userId, string statusId, string color = null) // Sets the color of the icon color for a player status. Assign to null to restore the original color. void SetStatusProperty(ulong userId, string statusId, Dictionary<string, object> properties) // Set multiple properties for a player status with a single API call. Will minimize the number of redraws, so its better than individually setting properties. See the OnStatusUpdate hook for valid property keys. int GetDuration(ulong userId, string statusId) // Returns the duration in seconds of a status that a player has. Returns 0 if the player does not have that status. Hooks void OnStatusSet(ulong userId, string statusId, int duration) // Called when a status is initially set for a player. void OnStatusEnd(ulong userId, string statusId, int duration) // Called when a status is removed for a player. (When the duration reaches 0). void OnStatusUpdate(ulong userId, string statusId, string property, string value) // Called when a status property is updated. // The 'property' parameter can be: 'title', 'titleColor', 'text', 'textColor', 'icon', 'iconColor', 'color' Image Types Using the API you can specify different image types with a prefix. For raw images, prefix the image with "raw:" for item icon ids prefix it with "itemid:". If you want to use a sprite asset path, the plugin will be expecting "assets/". If you just want to use a simple recolorable image then no prefix is required. Here are examples: Asset paths can be found here and item ids can be found here. // An example of adding a star image with ImageLibrary ImageLibrary.Call<bool>("AddImage", "https://i.imgur.com/vnHTj1C.png", "star", 0UL); // Sets the icon to the star image added by image library. SimpleStatus.Call("SetStatusIcon", player.userID, "MyStatusID", "star"); // Sets the icon to the star image, but it will be rendered as a RawImageComponent. SimpleStatus.Call("SetStatusIcon", player.userID, "MyStatusID", "raw:star"); // Sets the icon to the item icon for scrap which has an id of 1326180354. SimpleStatus.Call("SetStatusIcon", player.userID, "MyStatusID", "itemid:1326180354"); // Sets the icon to the asset image for the "enter" UI icon. SimpleStatus.Call("SetStatusIcon", player.userID, "MyStatusID", "assets/icons/enter.png"); Code Example This is an example of a plugin that utilizes Simple Status to produce the image in the thumbnail. For plugin developer reference. using Oxide.Core.Libraries.Covalence; using Oxide.Core.Plugins; using System.Collections.Generic; namespace Oxide.Plugins { [Info("SimpleStatusDemo", "mr01sam", "1.1.0")] [Description("Allows plugins to add custom status displays for the UI.")] partial class SimpleStatusDemo : CovalencePlugin { [PluginReference] private readonly Plugin ImageLibrary; [PluginReference] private readonly Plugin SimpleStatus; public static SimpleStatusDemo PLUGIN; private void OnServerInitialized() { PLUGIN = this; ImageLibrary.Call<bool>("AddImage", "https://i.imgur.com/vnHTj1C.png", "star", 0UL); // EXAMPLE: SimpleStatus.CallHook("CreateStatus", <plugin>, <statusId>, <backgroundColor>, <title>, <titleColor>, <text>, <textColor>, <imageLibraryNameOrAssetPath>, <iconColor>); // TIP: The icon can be either an asset sprite or an image library PNG. In this example we are using sprites for title1 and title2 while using a image library PNG for title3. SimpleStatus.CallHook("CreateStatus", this, "status1", "0.77255 0.23922 0.15686 1", "title1", "0.91373 0.77647 0.75686 1", "text1", "0.91373 0.77647 0.75686 1", "assets/icons/home.png", "0.91373 0.77647 0.75686 1"); SimpleStatus.CallHook("CreateStatus", this, "status2", "0.35490 0.40980 0.24510 1", "title2", "0.69804 0.83137 0.46667 1", "text2", "0.69804 0.83137 0.46667 1", "assets/icons/info.png", "0.69804 0.83137 0.46667 1"); SimpleStatus.CallHook("CreateStatus", this, "status3", "0.08627 0.25490 0.38431 1", "title3", "0.25490 0.61176 0.86275 1", "text3", "0.25490 0.61176 0.86275 1", "star", "0.25490 0.61176 0.86275 1"); } [Command("show")] private void CmdShow(IPlayer player, string command, string[] args) { int duration = int.MaxValue; if (args.Length > 0) { int.TryParse(args[0], out duration); } var basePlayer = player.Object as BasePlayer; // EXAMPLE: SimpleStatus.CallHook("SetStatus", <userId>, <statusId>, <duration>, <pauseWhenOffline>); // TIP: If you want the status to have no duration (be infinite) pass the duration as max value int otherwise, // pass the number of seconds you want it to appear for. SimpleStatus.CallHook("SetStatus", basePlayer.userID, "status3", duration); SimpleStatus.CallHook("SetStatus", basePlayer.userID, "status2", duration); SimpleStatus.CallHook("SetStatus", basePlayer.userID, "status1", duration); } [Command("change")] private void CmdChange(IPlayer player, string command, string[] args) { var basePlayer = player.Object as BasePlayer; // EXAMPLE: SimpleStatus.CallHook("SetStatusProperty", <userId>, <statusId>, <property dictionary>); // TIP: You can set multiple properties at once with this method. See documentation for the keys for each // property. SimpleStatus.CallHook("SetStatusProperty", basePlayer.userID, "status3", new Dictionary<string, object> { ["title"] = "changes", ["titleColor"] = GetRandomColor() }); } [Command("hide")] private void CmdHide(IPlayer player, string command, string[] args) { var basePlayer = player.Object as BasePlayer; // TIP: To remove a status from a player, set the duration to 0. SimpleStatus.CallHook("SetStatus", basePlayer.userID, "status3", 0); SimpleStatus.CallHook("SetStatus", basePlayer.userID, "status2", 0); SimpleStatus.CallHook("SetStatus", basePlayer.userID, "status1", 0); } private string GetRandomColor() => $"{UnityEngine.Random.Range(0f, 1f)} {UnityEngine.Random.Range(0f, 1f)} {UnityEngine.Random.Range(0f, 1f)} 1"; protected override void LoadDefaultMessages() { lang.RegisterMessages(new Dictionary<string, string> { ["title1"] = "Simple", ["title2"] = "Status", ["title3"] = "Rocks!", ["text1"] = "Make", ["text2"] = "Custom", ["text3"] = "Statuses", ["changes"] = "Changes!" }, this); } } }
    Free
  12. Mals

    RustFriends

    Version 13.1.3

    751 downloads

    This is a direct fork of Friends from Umod: https://umod.org/plugins/friends with filtering to avoid adding NPC and ending up with bloated data files. Chat Commands: /friend <add/remove> <player name or id> -- Add or remove a player as a friend /friend list -- List all of your current friends It has the same name, hooks and API as Friends so is a plug and play replacement. It tries to block adding NPC, but some sneak in, so when the plugin saves the friends data it removes all the NPC data. This will also clean up any existing data with NPCs in it. So expect the files to shrink in size on the initial run.
    Free
  13. Version 1.0.0

    420 downloads

    RUST Plugin Test Server TEST MY PLUGINS THERE! connect play.thepitereq.ovh:28050 Discord Core creates essential links between your RUST and Discord servers. It lets you display the player count, enable chat between Discord and the game, and send messages to the server or connected players. Allows you to connect users' RUST accounts to their Discord accounts. Send private messages to connected players. You can grant Discord or game roles to players who have linked their accounts. You can create a chat between Discord and RUST, displaying messages from RUST in a Discord channel. Show your player count in the bot's status. Send private and server messages through the API. To make this plugin work, you need to have the Discord Extension and a pre-made Discord Bot. A full tutorial on how to set it up is available on the Discord Extension web page. Please note, the bot must be connected to only one server! How to connect? To connect your Steam account to Discord, generate a code using the /discord command in-game and send it as a private message to your pre-created bot. /discord - Generates or shows your discord connection code. (Editable in config) void API_SendPrivateMessage(string userId, string message) - If player is connected, it sends private message to connected discord user. void API_SendMessage(string channelId, string message) - Sends message to channel on discord. { "BOT API Token": "Paste Token Here!", "Commands": [ "discord", "dc", "connect" ], "Show Player Count In Status": false, "Connect Granted - Discord Group ID": "", "Connect Granted - RUST Group Name": "", "RUST Chat - Discord Channel ID": "", "RUST Chat - Discord Output Format": "**{0}** » *{1}*", "RUST Chat - RUST Output Format": "<color=#aaee32>[Discord]</color> <color=#5c81ed>{0}</color> » {1}" }
    Free
  14. Version 1.0.5

    603 downloads

    A lightweight API that allows other plugins to place markers on the map. On its own it serves no purpose. Developer API: position: world position of the marker entity: the entity the marker is attached to uname: unique name of the marker, used when removing it ownerid: marker is only visible to player with that id duration: time before the marker will be removed automatically refreshRate: time between marker refesh, useful for markers attached to entities radius: radius of the circle on the map displayName: name of the marker on the map colorMarker: color of the marker, in hex format colorOutline: color of the marker outline, in hex format with transparency Create a map marker visible for everyone at a given position. Returns false when a marker with the given name already exists. (bool) API_CreateMarkerPublic (Vector3 position, string uname, int duration = 0, float refreshRate = 3f, float radius = 0.4f, string displayName = "Marker", string colorMarker = "00FFFF", string colorOutline = "00FFFFFF") Create a map marker visible for everyone attached to an entity. Returns false when a marker with the given name already exists. (bool) API_CreateMarkerPublic (BaseEntity entity, string uname, int duration = 0, float refreshRate = 3f, float radius = 0.4f, string displayName = "Marker", string colorMarker = "00FFFF", string colorOutline = "00FFFFFF") Create a map marker only visible for a certain player at a given position. Returns false when a marker with the given name already exists. (bool) API_CreateMarkerPrivate (Vector3 position, string uname, ulong ownerid, int duration = 0, float refreshRate = 3f, float radius = 0.4f, string displayName = "Marker", string colorMarker = "00FFFF", string colorOutline = "00FFFFFF") Create a map marker only visible for a certain player attached to an entity. Returns false when a marker with the given name already exists. (bool) API_CreateMarkerPrivate (BaseEntity entity, string uname, ulong ownerid, int duration = 0, float refreshRate = 3f, float radius = 0.4f, string displayName = "Marker", string colorMarker = "00FFFF", string colorOutline = "00FFFFFF") Remove map marker (fast) (bool) API_RemoveCachedMarker (string uname) Remove map marker (slow, use only if marker is not cached) (void) API_RemoveMarker (string uname) Credit: Credit to https://umod.org/user/DezLife for the original plugin. This plugin is a fork of https://umod.org/plugins/marker-manager
    Free
  15. Version 1.0.3

    366 downloads

    Ruster.NET Addons is a service that allows plugin developers to create and server owners to upgrade and change Ruster.NET in almost any way possible. This plugin provides API and hook support that gives you access to interactions users make in Ruster.NET, from creating your own DM bots with custom commands, to use all the modular panels Ruster.NET provides for your own purposes. Read documentation here or get Addons on this tag. Features API Access Open / close users' browser Open modals with custom (required) fields Open color picker Get users or a specific user Check if users are admins, moderators, verified, developer or a bot Create your own users with custom profile pictures and user configurations (for bots) Get friends of users Get friend requests Get posts for a specific feed or user Get marketplace or advert posts Get blocked users Send or handle friend requests for an user Pin/unpin posts Like/dislike posts Get feed information, such as feed title, type, owner Create posts and publish them on feeds or users' profiles Get or create conversations between users Send messages to players Mark message status (read/unread), and much more. Hook Access On coupons added or removed On language change On custom nickname update On wallet withdraw On restock On hashtag filter On post created/removed On post viewed/closed On post with audio played/stopped On DM sent, and much more. Type Examples Feed Post Marketplace Listing Story Coupon Transaction User Gif Flipbook Modal Field Licensed Item Gift Card User Configuration User Notification Conversation Direct Message Emoji Friend Request Hashtag Business Card Bot Bot Command Check the documentation for more in-depth examples and what you can do so far in Ruster.NET and Ruster.NET Addons.
    Free
  16. ThePitereq

    PopUp API

    Version 2.0.3

    1,376 downloads

    RUST Plugin Test Server TEST MY PLUGINS THERE! connect play.thepitereq.ovh:28050 PopUp API streamlines notifications into one minimalist plugin, particularly handy during player inventory actions when the chat is hidden. Pop-ups are fully customizable, allowing for infinite designs to be created. Please note that the ImageLibrary plugin is only required if you intend to use images in your pop-ups. You can generate an infinite number of customized pop-ups and display them to players using the built-in command. The PopUp API supports detailed customization, allowing you to add multiple panel/image details to your pop-up background. You can create pop-up presets within your plugins by hooking the function to generate a new preset with a simple JObject hook. showpopup <userId> <configName> <time> <fontSize> "<text>" - Shows pop-up with set preset to desired player. showpopup * <configName> <time> <fontSize> "<text>" - Shows pop-up with set preset to all players. How to create presets? Creating presets is very easy. You just need to know basics of RUST UI. Let's start from the beginning. Anchor Position It's a position on screen where pop-up will be hooked. It's based on 2 values in one string. Example: "0.5 1" Values are numbers from 0 to 1. First one is the width position of the anchor. Width is calculated from left to right. The second one is the height position of the anchor. Height is calculated from the bottom to the top. In our example, our pop-up is anchored to the middle-top of the screen. Value "0 0" would be bottom-right, and "1 1" would be top-left. Panel Parent Each UI have their parent. Based on that, it will know how "deep" it needs to be displayed. Sometimes we want pop-up to be shown in inventory, some of them not. Here is a small list of valid values with addition of RUST screen UIs. Indexes are from top to bottom. Overall > RUST Chat Overlay Hud.Menu > RUST Inventory Hud Under Panel Family Name It's a really basic config value. If you don't want your different pop-ups to overlap if they are in the same position, make the family name the same. Like if you want to create the pop-up on the middle top, keep the family name "Legacy", it will keep pop-ups remove if new one will show up there. Text/Background Position Basic RUST UI scale 1.0 is made on 1280x720 resolution. Position is just an offset from your previously set anchor. It's based on 2 values in one string. Example: "-180 -250" First value is width position, second is height position. Like in anchor option. For example, if you set Min. Value to "-200 -100" and Max. Value to "200 0" and if we will take the anchor of "0.5 1" our UI will be the size of 400x100 proportionally scaled to your resolution from 1280x720. Text Anchor These values are how text is positioned on your pop-up. A full list of anchors is available on Unity Docs HERE! Available Fonts Unfortunatelly RUST Fonts are limited to 4 for now. Here's a full list of them: DroidSansMono.ttf PermanentMarker.ttf RobotoCondensed-Bold.ttf RobotoCondensed-Regular.ttf The rest options should be easy to configure. Just test them! ^^ PopUp API 2.0 void ShowPopUp(BasePlayer player, string panelName, string text, int fontSize = 16, float time = 10f) #Shows pop-up in new 2.0 format. EXAMPLE USAGE: PopUpAPI.Call("ShowPopUp", player, "Market", Lang("MyLangMessage", player.UserIDString), 20, 15f); PopUp API void API_ShowPopup(BasePlayer player, string text, float time = 10f, string parent = "Hud.Menu", int fontSize = 25) #(Deprecated) Shows pop-up in old 1.0 format. For older plugins. Creating PopUp Schemas bool AddNewPopUpSchema(string pluginName, JObject schema) #Allows you to call plugin to create new pop-up preset for your plugin. EXAMPLE USAGE: JObject popUpConfig = new JObject() { { "key", "Market" }, #<- Config Key value. { "anchor", "0.5 1" }, { "name", "Legacy" }, { "parent", "Hud.Menu" }, { "background_enabled", true }, { "background_color", "0.145 0.135 0.12 1" }, { "background_fadeIn", 0.5f }, { "background_fadeOut", 0.5f }, { "background_offsetMax", "180 0" }, { "background_offsetMin", "-180 -65" }, { "background_smooth", false }, { "background_url", "" }, { "background_additionalObjectCount", 1 }, #<- This is value how many details is in this schema. { "background_detail_0_color", "0.185 0.175 0.16 1" }, { "background_detail_0_offsetMax", "356 65" }, { "background_detail_0_offsetMin", "4 4" }, { "background_detail_0_smooth", false }, { "background_detail_0_url", "" }, { "text_anchor", "MiddleCenter" }, { "text_color", "0.91 0.87 0.83 1" }, { "text_fadeIn", 0.5f }, { "text_fadeOut", 0.5f }, { "text_font", "RobotoCondensed-Bold.ttf" }, { "text_offsetMax", "180 0" }, { "text_offsetMin", "-180 -65" }, { "text_outlineColor", "0 0 0 0" }, { "text_outlineSize", "0 0" } }; PopUpAPI.Call("AddNewPopUpSchema", Name, popUpConfig); { "PopUp Schematics": { "Legacy": { "Anchor Position": "0.5 1", "Panel Parent": "Hud.Menu", "Panel Family Name": "Legacy", "Text": { "Text Position - Min": "-180 -250", "Text Position - Max": "180 -50", "Font (list available on website)": "RobotoCondensed-Bold.ttf", "Text Display Time Override": -1.0, "Text Font Size Override": -1, "Text Color": "1 1 1 1", "Text Anchor": "MiddleCenter", "Outline - Color": "0 0 0 1", "Outline - Size": "0.7 0.7", "Fade In Time (in seconds)": 0.5, "Fade Out Time (in seconds)": 0.5 }, "Background": { "Enabled": false, "Background Position - Min": "-180 -250", "Background Position - Max": "180 -50", "Background Color": "1 1 1 1", "Smooth Background": false, "Background Image URL": "", "Fade In Time (in seconds)": 0.5, "Fade Out Time (in seconds)": 0.5, "Background Details": [] } }, "NoWay": { "Anchor Position": "0.5 1", "Panel Parent": "Hud.Menu", "Panel Family Name": "Legacy", "Text": { "Text Position - Min": "-100 -200", "Text Position - Max": "100 -125", "Font (list available on website)": "RobotoCondensed-Bold.ttf", "Text Display Time Override": -1.0, "Text Font Size Override": -1, "Text Color": "0.91 0.87 0.83 1", "Text Anchor": "MiddleCenter", "Outline - Color": "0 0 0 0", "Outline - Size": "0 0", "Fade In Time (in seconds)": 0.5, "Fade Out Time (in seconds)": 0.5 }, "Background": { "Enabled": true, "Background Position - Min": "-100 -200", "Background Position - Max": "100 -125", "Background Color": "0.145 0.135 0.12 1", "Smooth Background": false, "Background Image URL": "", "Fade In Time (in seconds)": 0.5, "Fade Out Time (in seconds)": 0.5, "Background Details": [ { "Background Position - Min": "4 4", "Background Position - Max": "196 71", "Background Color": "0.185 0.175 0.16 1", "Smooth Background": false, "Background Image URL": "" }, { "Background Position - Min": "-100 -120", "Background Position - Max": "300 110", "Background Color": "1 1 1 1", "Smooth Background": false, "Background Image URL": "https://images.pvrust.eu/ui_icons/PopUpAPI/noway_0.png" } ] } } } }
    Free
  17. flutes

    Vote System

    Version 1.0.5

    18 downloads

    What is Vote System ? Vote System is a sophisticated plugin designed to track player votes in real-time on various ranking sites. It offers two main functionalities: Integration with other plugins: Vote System can be paired with other plugins to enhance its features. See the list of compatible plugins. API for Developers: With a robust API, developers can create plugins that directly interact with the voting system, allowing for advanced customization. Supported Plugins Vote System is compatible with the following plugins: CustomReward: Allows players to receive rewards through a user interface after voting. Economics: Converts votes into virtual currency for players. Documentation : More informations on documentation Supported Ranking Sites Vote System currently supports the following ranking sites: rust-servers.net top-games.net top-serveurs.net
    $4.99
  18. Version 1.1.3

    149 downloads

    Provides API and Hooks which called when in-game day/night and real second/hour/day/month/year started. Has no functional by itself. Usable only as plugin dependency. Configuration { "Rust day start time (hour)": 7.5, "Rust night start time (hour)": 20.0 } API aTimeAPI.Call<bool>("IsDayInRustNow"); Hooks void OnRealSecond() // called every real second void OnRustDayStarted() // called right arter in-game day was started void OnRustNightStarted() // called right arter in-game night was started void OnNewRealHourStarted(int newHour) // called right arter new real hour was started void OnNewRealDayStarted(int newDay) // called right arter new real day was started void OnNewRealMonthStarted(int newMonth) // called right arter new real month was started void OnNewRealYearStarted(int newYear) // called right arter new real year was started
    Free
  19. Khan

    Lang API

    Version 1.0.5

    781 downloads

    Automatically translates rust item display names & descriptions to use in you're plugins. Most Recent Update for Repo is 12-16-2021 at 1pm ( Pacific Standard Time ) Features No config needed! Automatic language generations! Supports All 30 Rust Native Translations! Works With latest GUIShop beta branch, StackModifier, and EasyResearch! GitHub repository is updated when Facepunch updates which in return means as soon as your server is rebooted or you reload this plugin it will take affect! API Hooks // OnLangAPIFinished is called when LangAPI is finished processing private bool _isLangAPIReady; private void OnLangAPIFinished() { _isLangAPIReady = true; } // Added IsReady bool which will return true/false when your plugin is loaded to know if it's ready // Example usage below. private void OnServerInitialized() { if (LangAPI != null && LangAPI.IsLoaded) _isLangAPIReady = LangAPI.Call<bool>("IsReady"); } //How to properly check valid displaynames when using custom item displaynames in plugins. //Example first hook call usage method expects item.DisplayName.english ( returns true or false ) //Example second hook call usage method expects item.shortname, item.DisplayName.english, player.UserIDString string GetItemDisplayName(string shorname, string displayName, string userID) { if (LangAPI != null && LangAPI.Call<bool>("IsDefaultDisplayName", displayName)) { return LangAPI.Call<string>("GetItemDisplayName", shorname, displayName, userID) ?? displayName; } return displayName; } //Example expects the item.shortname, item.displayName.english, player.UserIDString //Return type is string LangAPI.Call<string>("GetItemDisplayName", "rifle.ak", "Assault Rilfe", player.UserIDString) //Example expects the item.shortname, item.displayDescription.english, player.UserIDString //Return type is string LangAPI.Call<string>("GetItemDescription", "rifle.ak", "High damage machine rilfe", player.UserIDString) //Added a new API bool check to detect valid item displaynames. //Retrun type is bool LangAPI.Call<bool>("IsDefaultDisplayName", "Assault Rifle") // IsReady bool will return true/false when your plugin is loaded to know if it's ready LangAPI.Call<bool>("IsReady")
    Free
  20. Steenamaroo

    GridAPI

    Version 1.0.0

    928 downloads

    Simple API for retrieving in-game grid coordinates from a Vector3 position, and vice versa. String[] GetGrid(Vector3 pos) returns the grid coordinates for the given position. object IntersectionPosFromGrid(string a, string b) returns Vector3 intersection (top left on map) for a given set of map coordinates. returns string message if input strings are not valid. object MiddlePosFromGrid(string a, string b) returns Vector3 centre of grid for a given set of map coordinates. returns string message if input strings are not valid. Object RandomPosFromGrid(string a, string b, int radius) returns Vector3 viable player position for a given set of map coordinates, within the provided radius of grid centre. returns string message if input strings are not valid. returns string message if no valid location can be found. *Useful for Tping or spawning players/npcs.
    Free
1.2m

Downloads

Total number of downloads.

5.9k

Customers

Total customers served.

87k

Files Sold

Total number of files sold.

1.7m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.