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

Forums

  • CF Hub
    • Announcements
  • Member Hub
    • General
    • Show Off
    • Requests
  • Member Resources
    • For Hire
  • 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 19 results

  1. Version 0.1.12

    314 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. P.S. If you're using Vanish from umod, you need to replace with this: Vanish.cs 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 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. { "Frequency(in ms) for calculating the number of bars. For example, 500 means 2 times per second, 300 approximately 3 times per second.": 500, "Update interval of the bar state in seconds for invisible players": 0.5, "UI. Bar - Left to Right": true, "UI. Bar - Offset Between": 2, "UI. Bar - Default Height": 26, "UI. Main - Default Color": "#505F75", "UI. Main - Default Transparency": 0.7, "UI. Main - Default Material(empty to disable)": "", "UI. Image - Default Color": "#6B7E95", "UI. Text - Default Size": 12, "UI. Text - Default Color": "#FFFFFF", "UI. Text - Default Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "UI. SubText - Default Size": 12, "UI. SubText - Default Color": "#FFFFFF", "UI. SubText - Default Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "UI. Progress - Default Color": "#89B840", "UI. Progress - Default Transparency": 0.7, "UI. Progress - Default OffsetMin": "25 2.5", "UI. Progress - Default OffsetMax": "-2.5 -2.5", "Version": { "Major": 0, "Minor": 1, "Patch": 12 } } 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", "MsgLessThanOneMinute": "< 1m" } RU: { "MsgDays": "д", "MsgHours": "ч", "MsgMinutes": "м", "MsgSeconds": "с", "MsgLessThanOneMinute": "< 1м" } 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."); } There are 5 methods: CreateBar DeleteBar 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; ProgressBar - Similar to the default 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. var parameters = new Dictionary<string, object> { { "Id", "MyID" }, //<string>Unique identifier for the bar in your plugin. ***This is a required field. { "BarType", "Default" }, //<string>Type of the bar. There are 5 types: Default, Timed, TimeCounter, ProgressBar and TimedProgressBar. { "Plugin", Name }, //<string>Name of your plugin. ***This is a required field. { "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", "MySuperIcon" }, //<string>Name of the image saved in the ImageLibrary or a direct link to the image if ImageLibrary is not used. { "Image_Sprite", "assets/icons/gear.png" }, //<string>The name of the sprite to be used as the image. Empty to use the URL("Image"). { "Is_RawImage", false }, //<bool>Which type of image will be used? True - CuiRawImageComponent. False - CuiImageComponent. { "Image_Color", "#6B7E95" }, //<string>HTML Hex color of the bar image. { "Text", "MyText" }, //<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. { "SubText", "MyText" }, //<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", DateTimeOffset.UtcNow.AddSeconds(6).ToUnixTimeSeconds() }, //<double>Used if the bar type is Timed, TimeCounter or TimedProgressBar. { "Progress", (float)amount / 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", "-2.5 -2.5" } //<string>Progress OffsetMax: "*right* *top*". }; AdvancedStatus?.Call("CreateBar", player, parameters); //Calling the CreateBar method with the passing of BasePlayer/playerID and a dictionary containing the required parameters. DeleteBar: Used to remove the bar for a player. To call the DeleteBar 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. AdvancedStatus?.Call("DeleteBar", player, barID, Name);//Calling the DeleteBar method with the passing of BasePlayer/playerID, ID of the bar and 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. 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
  2. Version 0.1.1

    13 downloads

    The plugin is designed for collecting and sending information to the database for subsequent display on the website through direct MySQL queries or API(post query). The plugin has the capability to work with the database through an API. This is implemented in case the database and game server are located on different hosts, and the database host restricts queries beyond localhost. Currently, the data is only sent to the database, but in the future, the capability to retrieve information from the database will be added. P.S. This plugin works only with the MySQL type. Collecting: Server information; Player information; Team information; Clan information(in future); Report(F7) information. Sending data through: direct MySQL; via API(POST query) to MySQL. { "Time in seconds for updating data in the database(0 to disable)": 300.0, "Enable Database Logs": true, "Data loading 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", "Current Server ID": 0, "List of deployed names": {}, "Version": { "Major": 0, "Minor": 1, "Patch": 0 } }
    $14.99
  3. Version 0.1.0

    15 downloads

    A plugin creating a trigger box around monuments to track entry and exit of players and entities from it. The list of all monuments can be viewed in the localization. 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 monuments; The ability to automatically regenerate boundaries for monuments on wipe; The ability to manually create boundaries for monuments; The ability to track the entrance and exit of players and entities in a monument; 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 upon detecting a wipe?": true, "List of bounds points of monuments(generated during initialization)": {}, "Wipe ID": null, "Version": { "Major": 0, "Minor": 1, "Patch": 0 } } 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 } } EN: { "MsgMonumentCreated": "Key {0} created at coordinates {1}. You need to specify the required data in the configuration file and reload the plugin.", "MsgMonumentRecreated": "The boundaries of the monuments have been successfully recreated!", "MsgMonumentCreateNoPosition": "You did not specify the position or specified it incorrectly!", "MsgMonumentKeyNotFound": "Key {0} not found!", "MsgMonumentNotFound": "{0} was not found!", "MsgMonumentShow": "{0} is located at coordinates: {1}", "MsgMonumentShowList": "Found and displayed {0} monuments with key {1}", "MsgMonumentShowNoPlayer": "Monument display works only for players!", "airfield_1": "Airfield", "arctic_research_base_a": "Arctic Research Base", "bandit_town": "Bandit Camp", "compound": "Outpost", "desert_military_base_a": "Abandoned Military Base", "desert_military_base_b": "Abandoned Military Base", "desert_military_base_c": "Abandoned Military Base", "desert_military_base_d": "Abandoned Military Base", "excavator_1": "Giant Excavator Pit", "ferry_terminal_1": "Ferry Terminal", "fishing_village_a": "Large Fishing Village", "fishing_village_b": "Fishing Village", "fishing_village_c": "Fishing Village", "gas_station_1": "Oxum's Gas Station", "harbor_1": "Large Harbor", "harbor_2": "Small Harbor", "junkyard_1": "Junkyard", "launch_site_1": "Launch Site", "lighthouse": "Lighthouse", "military_tunnel_1": "Military Tunnel", "mining_quarry_a": "Sulfur Quarry", "mining_quarry_b": "Stone Quarry", "mining_quarry_c": "HQM Quarry", "nuclear_missile_silo": "Missile Silo", "oilrigai": "Oil Rig", "oilrigai2": "Large Oil Rig", "powerplant_1": "Power Plant", "radtown_small_3": "Sewer Branch", "satellite_dish": "Satellite Dish", "sphere_tank": "The Dome", "stables_a": "Ranch", "stables_b": "Large Barn", "station-sn-0": "Tunnel Station", "station-sn-1": "Tunnel Station", "station-sn-2": "Tunnel Station", "station-sn-3": "Tunnel Station", "station-we-0": "Tunnel Station", "station-we-1": "Tunnel Station", "station-we-2": "Tunnel Station", "station-we-3": "Tunnel Station", "supermarket_1": "Abandoned Supermarket", "swamp_a": "Wild Swamp", "swamp_b": "Wild Swamp", "swamp_c": "Abandoned Cabins", "trainyard_1": "Train Yard", "underwater_lab_a": "Underwater Lab", "underwater_lab_b": "Underwater Lab", "underwater_lab_c": "Underwater Lab", "underwater_lab_d": "Underwater Lab", "warehouse": "Mining Outpost", "water_treatment_plant_1": "Water Treatment Plant", "entrance_bunker_a": "Bunker Entrance", "entrance_bunker_b": "Bunker Entrance", "entrance_bunker_c": "Bunker Entrance", "entrance_bunker_d": "Bunker Entrance", "cave_small_easy": "Small Cave", "cave_small_medium": "Medium Cave", "cave_small_hard": "Medium Cave", "cave_medium_easy": "Medium Cave", "cave_medium_medium": "Medium Cave", "cave_medium_hard": "Medium Cave", "cave_large_medium": "Medium Cave", "cave_large_hard": "Medium Cave", "cave_large_sewers_hard": "Large Cave", "ice_lake_1": "Ice Lake", "ice_lake_2": "Ice Lake", "ice_lake_3": "Large Ice Lake", "ice_lake_4": "Small Ice Lake", "power_sub_small_1": "Substation", "power_sub_small_2": "Substation", "power_sub_big_1": "Large Substation", "power_sub_big_2": "Large Substation", "water_well_a": "Water Well", "water_well_b": "Water Well", "water_well_c": "Water Well", "water_well_d": "Water Well", "water_well_e": "Water Well" } RU: { "MsgMonumentCreated": "Ключ {0} создан по координатам {1}. Вам необходимо в конфиг файле указать необходимые данные и перезагрузить плагин.", "MsgMonumentRecreated": "Границы монументов успешно пересозданы!", "MsgMonumentCreateNoPosition": "Вы не указали позицию, либо указали ее не правильно!", "MsgMonumentKeyNotFound": "Ключ {0} не найден!", "MsgMonumentNotFound": "{0} не найден!", "MsgMonumentShow": "{0} расположен по координатам: {1}", "MsgMonumentShowList": "Найдено и отображено {0} монументов с ключом {1}", "MsgMonumentShowNoPlayer": "Отображение монументов работает только для игроков!", "airfield_1": "Аэропорт", "arctic_research_base_a": "Арктическая база", "bandit_town": "Лагерь бандитов", "compound": "Город", "desert_military_base_a": "Заброшенная военная база", "desert_military_base_b": "Заброшенная военная база", "desert_military_base_c": "Заброшенная военная база", "desert_military_base_d": "Заброшенная военная база", "excavator_1": "Гигантский экскаватор", "ferry_terminal_1": "Паромный терминал", "fishing_village_a": "Большая рыбацкая деревня", "fishing_village_b": "Рыбацкая деревня", "fishing_village_c": "Рыбацкая деревня", "gas_station_1": "Заправка", "harbor_1": "Большой порт", "harbor_2": "Порт", "junkyard_1": "Свалка", "launch_site_1": "Космодром", "lighthouse": "Маяк", "military_tunnel_1": "Военные туннели", "mining_quarry_a": "Серный карьер", "mining_quarry_b": "Каменный карьер", "mining_quarry_c": "МВК карьер", "nuclear_missile_silo": "Ракетная пусковая шахта", "oilrigai": "Нефтяная вышка", "oilrigai2": "Большая нефтяная вышка", "powerplant_1": "Электростанция", "radtown_small_3": "Канализационный отвод", "satellite_dish": "Спутниковая тарелка", "sphere_tank": "Сфера", "stables_a": "Ранчо", "stables_b": "Большой амбар", "station-sn-0": "Станция метро", "station-sn-1": "Станция метро", "station-sn-2": "Станция метро", "station-sn-3": "Станция метро", "station-we-0": "Станция метро", "station-we-1": "Станция метро", "station-we-2": "Станция метро", "station-we-3": "Станция метро", "supermarket_1": "Супермаркет", "swamp_a": "Болото", "swamp_b": "Болото", "swamp_c": "Заброшенные хижины", "trainyard_1": "Железнодорожное депо", "underwater_lab_a": "Подводная лаборатория", "underwater_lab_b": "Подводная лаборатория", "underwater_lab_c": "Подводная лаборатория", "underwater_lab_d": "Подводная лаборатория", "warehouse": "Склад", "water_treatment_plant_1": "Очистные сооружения", "entrance_bunker_a": "Вход в бункер", "entrance_bunker_b": "Вход в бункер", "entrance_bunker_c": "Вход в бункер", "entrance_bunker_d": "Вход в бункер", "cave_small_easy": "Маленькая пещера", "cave_small_medium": "Средняя пещера", "cave_small_hard": "Средняя пещера", "cave_medium_easy": "Средняя пещера", "cave_medium_medium": "Средняя пещера", "cave_medium_hard": "Средняя пещера", "cave_large_medium": "Средняя пещера", "cave_large_hard": "Средняя пещера", "cave_large_sewers_hard": "Большая пещера", "ice_lake_1": "Замерзшее озеро", "ice_lake_2": "Замерзшее озеро", "ice_lake_3": "Большое замерзшее озеро", "ice_lake_4": "Маленькое замерзшее озеро", "power_sub_small_1": "Подстанция", "power_sub_small_2": "Подстанция", "power_sub_big_1": "Большая подстанция", "power_sub_big_2": "Большая подстанция", "water_well_a": "Колодец с водой", "water_well_b": "Колодец с водой", "water_well_c": "Колодец с водой", "water_well_d": "Колодец с водой", "water_well_e": "Колодец с водой" } recreate - Recreating boundaries for all monuments. show - Displaying monument boundaries by key or ID. Example: 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 OnEnterMonument void OnEnterMonument(string monumentID, BasePlayer player, string type) Called when a BasePlayer enters any monument void OnEnterMonument(string monumentID, BaseEntity entity, string type) Called when a BaseEntity enters any monument OnExitMonument void OnExitMonument(string monumentID, BasePlayer player, string type, string reason) Called when a BasePlayer exits any monument void OnExitMonument(string monumentID, BaseEntity entity, string type, string reason) Called when a BaseEntity exits any monument void OnEnterMonument(string monumentID, BasePlayer player, string type) { Puts($"{player.displayName} entered to {monumentID}({type})"); } void OnEnterMonument(string monumentID, BaseEntity entity, string type) { Puts($"Entity({entity.net.ID}) entered to {monumentID}({type})"); } void OnExitMonument(string monumentID, BasePlayer player, string type, string reason) { Puts($"{player.displayName} left from {monumentID}({type}). Reason: {reason}"); } void OnExitMonument(string monumentID, BaseEntity entity, string type, string reason) { Puts($"Entity({entity.net.ID}) left from {monumentID}({type}). Reason: {reason}"); } There are 12 types of monuments: SafeZone: Bandit Camp, Outpost, Fishing Village, Ranch and Large Barn. RadTown: 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: Oil Rig and Underwater Lab. RadTownSmall: Lighthouse, Oxum's Gas Station, Abandoned Supermarket and Mining Outpost. TunnelStation MiningQuarry: Sulfur Quarry, Stone Quarry and HQM Quarry. BunkerEntrance Cave Swamp IceLake PowerSubstation WaterWell There are 14 methods: GetMonumentDisplayName: Used to retrieve the nice name of the monument, considering the player's language. To call the GetMonumentDisplayName method, you need to pass 3 parameters. The first one is the monument ID as a string. The second one is a player ID as either a string or a ulong. You can provide 0 or empty string to get default(eng) language. The third one(optional) is the suffix display as a bool. (string)MonumentsWatcher?.Call("GetMonumentDisplayName", monumentID, player.userID, true); (string)MonumentsWatcher?.Call("GetMonumentDisplayName", monumentID, player.UserIDString, true); GetMonumentType: Used to retrieve the monument type. To call the GetMonumentType method, you need to pass 1 parameter. It is the monument ID as a string. (string)MonumentsWatcher?.Call("GetMonumentType", monumentID); GetMonumentPosition: Used to retrieve the position of the monument. To call the GetMonumentPosition method, you need to pass 1 parameter. It is the monument ID as a string. (Vector3)MonumentsWatcher?.Call("GetMonumentPosition", monumentID); GetMonumentsList: Used to retrieve a list of all available monuments. (List<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 a list of all available monuments by type. To call the GetMonumentsByType method, you need to pass 1 parameter. It is the monument type as a string. (List<string>)MonumentsWatcher?.Call("GetMonumentsByType", "SafeZone"); GetMonumentPlayers: Used to retrieve a list of players in the monument. To call the GetMonumentPlayers method, you need to pass 1 parameter. It is the monument ID as a string. (List<BasePlayer>)MonumentsWatcher?.Call("GetMonumentPlayers", monumentID); GetMonumentEntities: Used to retrieve a list of entities in the monument. To call the GetMonumentEntities method, you need to pass 1 parameter. It is the monumentID as a string. (List<BaseEntity>)MonumentsWatcher?.Call("GetMonumentEntities", monumentID); GetPlayerMonument: Used to retrieve the ID of the monument in which the player is located. If the player is not in any monument, an empty string will be returned. To call the GetPlayerMonument method, you need to pass 1 parameter. It is a player ID as an ulong. (string)MonumentsWatcher?.Call("GetPlayerMonument", player.userID); GetEntityMonument: Used to retrieve the ID of the monument in which the entity is located. If the entity is not in any monument, an empty string will be returned. To call the GetEntityMonument method, you need to pass 1 parameter. It is an entity as a BaseEntity. (string)MonumentsWatcher?.Call("GetEntityMonument", entity); IsPosInMonument: Used to check if the specified position is within the monument. To call the IsPosInMonument method, you need to pass 2 parameters. The first one is the monument ID as a string. The second one is a Vector3 position. (bool)MonumentsWatcher?.Call("IsPosInMonument", monumentID, pos); IsPlayerInMounument: Used to check if the player is in the monument. To call the IsPlayerInMounument method, you need to pass 2 parameters. The first one is the monument ID as a string. The second one is a player as a BasePlayer or player ID as a ulong. (bool)MonumentsWatcher?.Call("IsPlayerInMounument", monumentID, player); (bool)MonumentsWatcher?.Call("IsPlayerInMounument", monumentID, player.userID); IsEntityInMounument: Used to check if the entity is in the monument. To call the IsEntityInMounument method, you need to pass 2 parameters. The first one is the monument ID as a string. The second one is a entity as a BaseEntity. (bool)MonumentsWatcher?.Call("IsEntityInMounument", monumentID, entity); 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. The first one is the monument ID as a string. The second one is a player as a BasePlayer. The third one(optional) is the display duration as a float. MonumentsWatcher?.Call("ShowBounds", monumentID, player, 15f);
    $1.99
  4. DezLife

    XDFriends

    Version 4.0.7

    5 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
  5. KpucTaJl

    PveMode

    Version 1.1.9

    1,426 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
  6. Version 1.1.3

    1,246 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
  7. Mals

    RustFriends

    Version 13.1.3

    733 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
  8. Version 1.0.0

    368 downloads

    Discord Core adds some basic connections between your RUST and Discord server. It allows you to display player count, Discord to Game chat and send message to server or connected players. Features Allows you to connect user's RUST account to Discord account. Allows to send private messages to connected players. You can grant discord/game role to players who connected accounts. You can create Discord to RUST chat and display messages from RUST in Discord channel. Can display your player count in bot status. Allows you to send private and server messages through API. Important Notice To make this plugin works, you need to have Discord Extension and pre-made Discord Bot. Full tutorial how to make it is available on Discord Extension web page. The bot needs to be connected to only one server! Commands /discord - Generates or shows your discord connection code. (Editable in config) How to connect? To connect your Steam account to Discord, you need to generate the code through /discord command and send the code as a private message to your previously created bot. For Developers 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. Default Configuration (Version 1.0.0) { "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
  9. Version 1.1.1

    226 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
  10. flutes

    Vote System

    Version 1.0.5

    16 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
  11. Version 1.0.5

    590 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
  12. Version 1.0.1

    172 downloads

    Redeem Storage API allows you to move all your plugin item sources to one inventory. It can reduce your multiple storage containers to one and remove requirement of having free space in inventory. The plugin doesn't have any real functionality by its own. Requires some plugin that uses this API. Features 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. For Developers void AddItem(ulong userId, string name, Item item, bool popUp = false) - Moves the previously created item to the desired inventory of the player. Default Configuration (Version 1.0.0) { "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 }, "shop": { "Default Redeem Inventory (only one)": false, "PopUp Message (configurable in lang file)": true, "Redeem Only In Safezone": false, "Redeem Only If Authed": false } } }
    Free
  13. ThePitereq

    PopUp API

    Version 2.0.3

    1,250 downloads

    PopUp API moves all notifications into one minimalistic plugin. Very useful during actions in player's inventory when chat is invisible. New 2.0 Version have fully customizable pop-ups with infinite designs to be created. ImageLibrary plugin is required only, if you use images in your pop-ups. Features You can create infinite amount of customized pop-ups. You can show pop-ups to players with use of built-in command. Details support. You can add many panel/image details to your pop-up background. Create pop-up presets in your plugins. You can hook the function in your own plugin to create a new preset with a simple JObject hook. Commands showpopup <userId> <configName> <time> <fontSize> "<text>" - Show's pop-up with set preset to desired player. showpopup * <configName> <time> <fontSize> "<text>" - Show's 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! ^^ For Developers 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); Default Configuration (Version 2.0.0) { "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 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 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
  14. Version 1.0.0

    45 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
  15. Version 1.1.3

    2,503 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
  16. Version 1.1.3

    145 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
  17. Khan

    Lang API

    Version 1.0.5

    733 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
  18. Version 1.0.3

    360 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
  19. Steenamaroo

    GridAPI

    Version 1.0.0

    897 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.1m

Downloads

Total number of downloads.

5.5k

Customers

Total customers served.

78.6k

Files Sold

Total number of files sold.

1.5m

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.