Yaki's Wishlist
-
Ganja
By The_Kiiiing in Plugins
This plugin allows players to gather weed from hemp plants and craft joints using a mixing table. There are different types of weed where each type can be found in a different biome. Joints can be crafted at a mixing table and will give the player configurable buffs and healing with each tier having different effects.
Features:
Fully customizable Different types of weed Configurable effects for each type Custom crafting UI integrates in the mixing table UI Configurable recipes for mixing table Yield amount and chance configurable for each type Ideal for Roleplay Servers
New in v2.0.15: Advanced modifiers
Advanced modifiers allow you to use any tea/pie modifier that's currently in the game. I did not test all of them so there is a chance that some modifiers might not work as expected.
List of modifiers:
Wood_Yield, Ore_Yield, Radiation_Resistance, Radiation_Exposure_Resistance, Max_Health, Scrap_Yield, MoveSpeed, ObscureVision, Warming, Cooling, CoreTemperatureMinAdjustment, CoreTemperatureMaxAdjustment, Crafting_Quality, VisionCare, MetabolismBooster, Harvesting, DigestionBoost, FishingBoost, Collectible_DoubleYield, Farming_BetterGenes, HorseGallopSpeed, HorseDungProductionBoost, Comfort, Clotting, HunterVision, Radiation,
Configuration Example:
"Advanced modifiers (only works for joints)": [ { "Name (case sensitive! see plugin description for all modifiers)": "Warming", "Duration (seconds)": 60.0, "Value": 10.0 } ]
New in v2.0.10: Give command
Server owners can use this command to give weed or joints to themselves or a certain player. The identifier has to be specified in the config file for every type of weed or joint.
ganja.give <weed|joint> <identifier> <amount> <player?>
Permission:
ganja.give - Required to use ganja.give command
New in v2.0.0: Fully configurable crafting:
With Version 2.0.0 the crafting system has been integrated in the mixing table. Joints can now be crafted by using the right ingredients in the right slot. The crafting recipes are fully configurable. New recipes can also be added.
New in v1.0.8: Loot Table integration:
This plugin now supports the custom item api of Loot Table and Stack Size GUI, so you can easily add weed to the loot table. When both plugins are installed on the server, the weed items will show up in the custom items tab of Loottable (right image):
Different tiers:
Depending on the biome, you will receive different tiers of weed, the biomes can also be changed in the config. By default, tier2 weed can be gathered in the snow biome, tier1 in the desert and tier0 everywhere else.
Names, droprates, and boosts can also be configured individually for each tier.
Controls:
With a joint selected in the hot bar:
Right click to ignite / extinguish a joint When joint is bruning: left click to use a joint
Permissions:
Permissions can be disabled in the config, making gathering and crafting accessible to everyone regardless of permissions.
ganja.craft - Required to craft joints ganja.gather - Required to obtain weed
Biome masks:
The biome mask is a simple 4-bit number that determines where a certain tier of weed can be found. Each biome has its own number; add these numbers together to select multiple biomes. The numbers for each biome are as follows:
1 - Arid 2 - Temperate 4 - Tundra 8 - Arctic 16 - Jungle 32 - Deep Sea For example: Low Quality Weed has the biome mask 6 by default (see configuration below). That means it can be found in the Temperate and the Tundra biome.
Configuration:
{ "Weed configuration": [ { "Drop chance when harvesting (1 = 100%)": 0.4, "Drop amount when harvesting": { "min": 1, "max": 3 }, "Biome mask (see description for details)": 6, "Gene configuration": { "h": { "Minimum amount for a chance to yield": 1, "Minimum amount for guaranteed yield": 3, "Maximum amount (-1 = no limit, set to 0 to disable gathering from plants with that gene)": -1 } }, "Disable gathering from collectable hemp": false, "Disable gathering from growable hemp": false, "Item identifier (used with ganja.give command)": "low_quality", "Custom item name (null = default name)": "Low Quality Weed", "Item short name": "sticks", "Item skin id": 2661029427 }, { "Drop chance when harvesting (1 = 100%)": 0.3, "Drop amount when harvesting": { "min": 1, "max": 3 }, "Biome mask (see description for details)": 1, "Gene configuration": { "h": { "Minimum amount for a chance to yield": 1, "Minimum amount for guaranteed yield": 3, "Maximum amount (-1 = no limit, set to 0 to disable gathering from plants with that gene)": -1 } }, "Disable gathering from collectable hemp": false, "Disable gathering from growable hemp": false, "Item identifier (used with ganja.give command)": "med_quality", "Custom item name (null = default name)": "Medium Quality Weed", "Item short name": "sticks", "Item skin id": 2661031542 }, { "Drop chance when harvesting (1 = 100%)": 0.1, "Drop amount when harvesting": { "min": 1, "max": 2 }, "Biome mask (see description for details)": 8, "Gene configuration": { "h": { "Minimum amount for a chance to yield": 1, "Minimum amount for guaranteed yield": 3, "Maximum amount (-1 = no limit, set to 0 to disable gathering from plants with that gene)": -1 } }, "Disable gathering from collectable hemp": false, "Disable gathering from growable hemp": false, "Item identifier (used with ganja.give command)": "high_quality", "Custom item name (null = default name)": "High Quality Weed", "Item short name": "sticks", "Item skin id": 2660588149 } ], "Crafting Recipes": [ { "Ingredient Slots": { "0": { "Amount": 1, "Item short name": "note", "Item skin id": 0 }, "1": { "Amount": 1, "Item short name": "sticks", "Item skin id": 2661029427 }, "2": { "Amount": 1, "Item short name": "sticks", "Item skin id": 2661029427 } }, "Produced Item": { "Amount": 1, "Custom item name (null = default name)": "Low Quality Joint", "Item short name": "horse.shoes.basic", "Item skin id": 2894101592 }, "Identifier (used with ganja.give command)": "low_quality", "Is joint": true, "Boosts (only works for joints)": { "Wood boost percentage (1 = 100%)": 0.4, "Wood boost duration (seconds)": 20.0, "Ore boost percentage (1 = 100%)": 0.0, "Ore boost duration (seconds)": 0.0, "Scrap boost percentage (1 = 100%)": 0.0, "Scrap boost duration (seconds)": 0.0, "Max Health percentage (1 = 100%)": 0.0, "Max Health duration (seconds)": 0.0, "Healing per use": 1.0, "Health regeneration per use": 0.0, "Poisoning per use(a negative value will decrease poisoning)": 0.0, "Radiation poisoning per use (a negative value will decrease radiation)": 0.0, "Bleeding per use (a negative value will decrease bleeding)": 0.0, "Calories per use (a negative value will decrease calories)": 0.0, "Hydration per use (a negative value will decrease hydration)": 0.0, "Joint durability (seconds)": 120.0, "Joint durability loss per hit (seconds)": 10.0 }, "Advanced modifiers (only works for joints)": [ { "Name (case sensitive! see plugin description for all modifiers)": "Warming", "Duration (seconds)": 60.0, "Value": 10.0 } ] }, { "Ingredient Slots": { "0": { "Amount": 1, "Item short name": "note", "Item skin id": 0 }, "1": { "Amount": 1, "Item short name": "sticks", "Item skin id": 2661031542 }, "2": { "Amount": 1, "Item short name": "sticks", "Item skin id": 2661031542 } }, "Produced Item": { "Amount": 1, "Custom item name (null = default name)": "Medium Quality Joint", "Item short name": "horse.shoes.basic", "Item skin id": 2894101290 }, "Identifier (used with ganja.give command)": "med_quality", "Is joint": true, "Boosts (only works for joints)": { "Wood boost percentage (1 = 100%)": 0.0, "Wood boost duration (seconds)": 0.0, "Ore boost percentage (1 = 100%)": 0.8, "Ore boost duration (seconds)": 20.0, "Scrap boost percentage (1 = 100%)": 0.0, "Scrap boost duration (seconds)": 0.0, "Max Health percentage (1 = 100%)": 0.0, "Max Health duration (seconds)": 0.0, "Healing per use": 4.0, "Health regeneration per use": 0.0, "Poisoning per use(a negative value will decrease poisoning)": 0.0, "Radiation poisoning per use (a negative value will decrease radiation)": 0.0, "Bleeding per use (a negative value will decrease bleeding)": 0.0, "Calories per use (a negative value will decrease calories)": 0.0, "Hydration per use (a negative value will decrease hydration)": 0.0, "Joint durability (seconds)": 120.0, "Joint durability loss per hit (seconds)": 10.0 }, "Advanced modifiers (only works for joints)": [ { "Name (case sensitive! see plugin description for all modifiers)": "Warming", "Duration (seconds)": 60.0, "Value": 20.0 } ] }, { "Ingredient Slots": { "0": { "Amount": 1, "Item short name": "note", "Item skin id": 0 }, "1": { "Amount": 1, "Item short name": "sticks", "Item skin id": 2660588149 }, "2": { "Amount": 1, "Item short name": "sticks", "Item skin id": 2660588149 } }, "Produced Item": { "Amount": 1, "Custom item name (null = default name)": "High Quality Joint", "Item short name": "horse.shoes.basic", "Item skin id": 2893700325 }, "Identifier (used with ganja.give command)": "high_quality", "Is joint": true, "Boosts (only works for joints)": { "Wood boost percentage (1 = 100%)": 0.0, "Wood boost duration (seconds)": 0.0, "Ore boost percentage (1 = 100%)": 0.0, "Ore boost duration (seconds)": 0.0, "Scrap boost percentage (1 = 100%)": 1.0, "Scrap boost duration (seconds)": 30.0, "Max Health percentage (1 = 100%)": 0.3, "Max Health duration (seconds)": 30.0, "Healing per use": 8.0, "Health regeneration per use": 0.0, "Poisoning per use(a negative value will decrease poisoning)": 0.0, "Radiation poisoning per use (a negative value will decrease radiation)": 0.0, "Bleeding per use (a negative value will decrease bleeding)": 0.0, "Calories per use (a negative value will decrease calories)": 0.0, "Hydration per use (a negative value will decrease hydration)": 0.0, "Joint durability (seconds)": 120.0, "Joint durability loss per hit (seconds)": 10.0 }, "Advanced modifiers (only works for joints)": [ { "Name (case sensitive! see plugin description for all modifiers)": "Cooling", "Duration (seconds)": 60.0, "Value": 10.0 } ] } ], "Require permission for crafting": true, "Require permission for gathering": true, "Disable built-in stack fix (set to true if you have problems with item stacking/splitting)": false, "Automatically extinguish joint when unequiping it": true } -
BoatControl
Rust / Server Plugins
BoatControl
Modular Boat ManagementRust Plugin
Take the helm. Control the ship. Command the cannons.
Bring navigation, cannons, lighting and boat management together in a clear interface at the helm. Manage sails and engines, upgrade performance, repair the boat and customize its setup with permission-controlled features.
Helm controls
Navigation, anchors and lighting
Cannon crew
Aim, reload and fire from the helm
Boat progression
Upgrades, repairs and customization
01 / Video demos
See BoatControl in action
Video demo
Watch on YouTube
Video Update 1.0.0
Watch on YouTube
02 / Helm & navigation
One interface for the whole boat
The control interface appears when a player with boatcontrol.use mounts a modular boat’s steering wheel.
BoatControl helm control bar
Raise or lower the sails and anchors. Start or stop the engines. Switch between forward and reverse navigation; engines and sails adjust accordingly. Use W and S to change direction when keyboard direction control is enabled. Hold R to open the boat’s radial menu when enabled, and release it to close the menu. Live boat information
Display boat health, mass, power, power-to-mass ratio and speed in knots. Players can unlock and move the information window; its saved position is retained. Administrators can configure window colors, dimensions and placement, or disable the information window.
Boat information and controls while steering
03 / Cannons & crew
Coordinate your fire from the helm
Reload cannons using cannon ammunition from the player’s inventory. A separate permission bypasses ammunition costs. Fire through the interface or left mouse click when enabled. Configure the firing cooldown, or bypass it through a permission. Aim cannons in configurable angle steps and select numbered crew groups to control which crew-operated cannons are targeted. Assign or remove NPC cannon crew through the interface. Configure crew names, health, outfits and skins, maximum crewed cannons, toggle cooldown and whether corpses are created. Configure whether cannons need a mounted operator before remote aiming and firing. Cannon control and crew interface
boatcontrol.cannonuse controls access to BoatControl’s cannon interface. It does not disable manual, vanilla cannon use. Assign ammunition and cooldown bypasses carefully. 04 / Lighting
Switch the boat’s lights together
Toggle configured torches, lanterns, candle sets, jack-o’-lanterns and Chinese lanterns together from the boat controls. Configure supported item shortnames, the toggle cooldown and whether lights require fuel.
Boat lighting controlled from the helm
Optional fuel-free lighting applies to supported lights. It does not make boat engines operate without fuel. 05 / Boat editing
Edit away from a fixed boat-building area
Grant boatcontrol.edit to access boat editing from the controls. Configure a damage cooldown before editing and block editing inside safe zones when desired. Editing also requires a Boat Building Station item in the player inventory, a boat moving at no more than 2 m/s, and no other active station owned by that player.
Boat editing through BoatControl
Safe-zone restriction for boat editing
Larger building stations
Major update — new features in 1.2.0, with station resizing available from 1.2.3.
Scale the boat-building station created by the edit option with Building Station Scale. This supports a larger construction area for custom boat builds.
Expanded boat-building station
For larger ships, adjust the game block-count limit separately if needed. Set a limit of 500 blocks with the following server variable:
playerboat.maxblockcount 500 Safe-zone anchor protection
Optionally prevent anchor activation inside safe zones.
Anchor restriction inside safe zones
Safe-zone anchor protection example
06 / Authorization
See who can access the boat
Open the list of authorized players from the helm. Grant the separate deleteauth permission to allow authorized users to revoke individual authorizations.
Boat authorized-player list
07 / Sail configuration
Upgrade thrust and customize sail size
View all sails installed on the boat, including their health. Use configurable upgrade levels to change thrust. Starting with version 1.2.3, sail upgrades can also increase or decrease sail size according to your configured scale multiplier.
Sail configuration and health
Sail upgrade levels and costs
Additional sail upgrade interface example
Sails with different configured size multipliers
Define the number of upgrade levels, display names and costs. Select resources, ServerRewards points or Economics money as the upgrade currency. 08 / Engine configuration
Manage fuel, health and engine upgrades
View installed engines with their health and current fuel. Refuel them from the player’s inventory through the refueling menu. Configure upgrade levels that improve engine power and reduce fuel consumption through an efficiency multiplier.
Engine configuration and refueling
Engine upgrade levels and costs
Choose resources, ServerRewards points or Economics money for upgrade costs. Engine and sail upgrade levels are saved in the plugin’s data, and boatcontrol.upgrade.nocost can waive upgrade charges.
Upgrades modify power and thrust, and the plugin adjusts boat drag for upgraded propulsion. Final speed still depends on the game’s boat physics; power multipliers do not guarantee an equal multiplier to maximum speed. 09 / Automatic repairs
Repair using materials from the player’s inventory
Configure repair costs per block/component and a cooldown after recent damage. Set repair frequency through permission profiles; a larger interval repairs more slowly. Repairs stop if new damage is received, the player runs out of materials or the player disconnects. Grant boatcontrol.repair.nocost to waive repair materials. Automatic boat repair system
Boat health differs from ordinary building health. The repair system simulates repair points according to lost health, so the repair sound may come from a different point than the damaged component.
10 / Wallpaper & impact physics
Customize the interior and naval combat
BetterTC wallpapers
With BetterTC 1.6.2 or later installed, BoatControl provides access to its automatic boat wallpaper placement interface. Grant boatcontrol.wallpaper to make this feature available.
Automatic boat wallpaper placement through BetterTC
Cannon impact physics
Enable configurable force on boats hit by cannon damage. Adjust the impact force and enable diagnostic logging when needed.
11 / Permissions & access
Choose what each player can control
Permission Purpose boatcontrol.use Enable BoatControl when mounting the helm. boatcontrol.edit Access boat editing away from a fixed building area, subject to configured restrictions. boatcontrol.bypassAmmo Bypass cannon ammunition consumption. boatcontrol.bypasscannoncooldown Fire cannons without the configured cooldown. boatcontrol.cannonuse Access the cannon control interface; manual vanilla use remains available. boatcontrol.authlist View authorized players. boatcontrol.deleteauth Revoke individual boat authorizations. boatcontrol.sailconfig Open the sail configuration menu. boatcontrol.sailupgrade Upgrade sails using the configured levels. boatcontrol.engineconfig Open the engine configuration and refueling menus. boatcontrol.engineupgrade Upgrade engines using the configured levels. boatcontrol.upgrade.nocost Waive engine and sail upgrade costs. boatcontrol.wallpaper Access boat wallpapers through BetterTC 1.6.2 or later. boatcontrol.repair Access automatic boat repairs. boatcontrol.repair.nocost Repair without consuming materials. boatcontrol.vip Example profile in the repair-frequency configuration; configurable, not a boat speed-limit permission. Additional repair-frequency profile names are registered from the configuration. They adjust repair intervals, not the boat’s maximum speed.
Normal use is through the CUI and keyboard controls; no chat command is required. The plugin also registers console actions used by its interface.
Utility console action Purpose boatcontrol.resetuiposition Player console: reset your saved information-window position. boatcontrol.clearorphancrew Console: remove orphaned cannon crew. 12 / Requirements & configuration
Configure the controls for your server
Rust server using Oxide or Carbon. On Oxide, install ImageLibrary; Carbon uses its built-in Image Module. Install BetterTC 1.6.2 or later for automatic wallpapers. Install ServerRewards or Economics only when using their upgrade currencies. Optional Notify or UINotify integration supplies configured notifications; chat alerts are also configurable. Configure keyboard controls, cannon aiming and cooldowns, crew behavior, supported lights, impact physics, GUI, safe-zone restrictions, repairs, station scale and upgrade levels. The example below uses the supplied costs and profiles, with current keys and sail-scale options from BoatControl 1.2.5. It is an example, not a replacement for the configuration generated by your installed version. 13 / Configuration example
Controls, costs and upgrade profiles
{ "Enable WASD Direction": true, "Enable Cannon Fire Key (Left Mouse Button)": true, "Cannon Aim Step (degrees per click)": 5.0, "Cannon Fire Cooldown": 5.0, "Cannon Crew": { "Enable": true, "Names": [ "Seaman", "Deckhand", "Bosun", "Gunner", "Quartermaster", "Navigator", "Sailor", "Crewman", "Mate", "Boatswain", "Cannoneer", "Buccaneer", "Mariner", "Sea Dog", "Old Salt" ], "Health": 100.0, "MaxCannons": 0, "Wear": { "burlap.shirt": 1380044819, "burlap.trousers": 1380047706, "burlap.shoes": 2215057317, "hat.boonie": 965553937 }, "RequireOperate": true, "ToggleCrewCooldown": 30.0, "NoCorpse": true }, "Lights": { "Light Toggle Cooldown": 1.0, "Require Fuel For Lights": false, "Light Items (shortnames)": [ "tunalight", "lantern", "torchholder", "largecandles", "smallcandles", "jackolantern.angry", "jackolantern.happy", "chineselantern", "chineselanternwhite" ] }, "Impact Force Physics": { "Enable Impact Physics": true, "Impact Force (default: 100, range: 50-500)": 100.0, "Enable Debug Logging": false }, "Alert Chat": true, "Alert Notify Plugin": false, "Notify: select what notification type to be used": { "error": 0, "info": 0 }, "Color Prefix Chat": "#f74d31", "GUI": { "GUI Windows Belt": { "BG Color Primary": "0.10 0.15 0.10 1", "BG Color Secundary": "0.2 0.30 0.2 0.80", "Button Active Color": "0.2 0.6 0.2 0.80", "Button Inactive Color": "0.2 0.30 0.2 0.80", "OffsetMin": "-200 15", "OffsetMax": "181 79", "AnchorMin": "0.5 0", "AnchorMax": "0.5 0" }, "GUI Windows Info": { "BG Color Primary": "0.10 0.10 0.10 0.8", "BG Color Secundary": "0.2 0.30 0.2 0.80", "Button Active Color": "0.2 0.6 0.2 0.80", "Button Inactive Color": "0.2 0.30 0.2 0.80", "OffsetMin": "-115 -100", "OffsetMax": "115 100", "AnchorMin": "0.902 0.8104", "AnchorMax": "0.902 0.8104" }, "GUI Windows Cannons Menu": { "BG Color Primary": "0.10 0.15 0.10 1", "BG Color Secundary": "0.2 0.30 0.2 0.80", "Button Active Color": "0.2 0.6 0.2 0.80", "Button Inactive Color": "0.2 0.30 0.2 0.80", "OffsetMin": "-140 85", "OffsetMax": "140 185", "AnchorMin": "0.5 0", "AnchorMax": "0.5 0" } }, "Show Info Window": true, "Boat Edit Damage Cooldown (seconds)": 30.0, "Block Anchor in Safe Zone": true, "Block Boat Edit in Safe Zone": true, "Config Version": "1.2.5", "Repair Cooldown After Recent Damage (seconds)": 30.0, "Cooldown Frequency Repair (larger number is slower)": { "boatcontrol.use": 2.0, "boatcontrol.vip": 1.0 }, "Repair Costs (ItemShortName: Amount per block/component)": { "lowgradefuel": 4, "wood": 75 }, "Engine Upgrades": { "Enable Engine Upgrades": true, "Upgrade Levels": [ { "Level": 1, "Display Name": "Tier 1", "Fuel Efficiency Multiplier (1.0 = normal, 0.5 = half fuel consumption)": 0.9, "Power Multiplier (1.0 = normal, 2.0 = double power)": 2.0, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 100, "lowgradefuel": 50 }, "ServerRewards Points": 0, "Economics Money": 0.0 } }, { "Level": 2, "Display Name": "Tier 2", "Fuel Efficiency Multiplier (1.0 = normal, 0.5 = half fuel consumption)": 0.8, "Power Multiplier (1.0 = normal, 2.0 = double power)": 4.0, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 250, "lowgradefuel": 100, "metal.fragments": 300 }, "ServerRewards Points": 0, "Economics Money": 0.0 } }, { "Level": 3, "Display Name": "Tier 3", "Fuel Efficiency Multiplier (1.0 = normal, 0.5 = half fuel consumption)": 0.65, "Power Multiplier (1.0 = normal, 2.0 = double power)": 8.0, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 500, "lowgradefuel": 200, "metal.fragments": 500, "metal.refined": 25 }, "ServerRewards Points": 0, "Economics Money": 0.0 } }, { "Level": 4, "Display Name": "Tier 4", "Fuel Efficiency Multiplier (1.0 = normal, 0.5 = half fuel consumption)": 0.65, "Power Multiplier (1.0 = normal, 2.0 = double power)": 16.0, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 1000, "lowgradefuel": 300, "metal.fragments": 1500, "metal.refined": 100 }, "ServerRewards Points": 0, "Economics Money": 0.0 } } ], "Currency Type (Resources, ServerRewards, Economics)": "Resources" }, "Sail Upgrades": { "Enable Sail Upgrades": true, "Upgrade Levels": [ { "Level": 1, "Display Name": "Tier 1", "Thrust Multiplier (1.0 = normal, 2.0 = double thrust)": 1.5, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 75, "cloth": 100 }, "ServerRewards Points": 10, "Economics Money": 0.0 }, "Scale Multiplier (1.0 = normal size, 1.5 = 50% bigger)": 1.2 }, { "Level": 2, "Display Name": "Tier 2", "Thrust Multiplier (1.0 = normal, 2.0 = double thrust)": 2.0, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 150, "cloth": 200, "leather": 50 }, "ServerRewards Points": 15, "Economics Money": 0.0 }, "Scale Multiplier (1.0 = normal size, 1.5 = 50% bigger)": 1.4 }, { "Level": 3, "Display Name": "Tier 3", "Thrust Multiplier (1.0 = normal, 2.0 = double thrust)": 2.5, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 300, "cloth": 300, "leather": 100, "metal.fragments": 200 }, "ServerRewards Points": 20, "Economics Money": 0.0 }, "Scale Multiplier (1.0 = normal size, 1.5 = 50% bigger)": 1.6 }, { "Level": 4, "Display Name": "Tier 4", "Thrust Multiplier (1.0 = normal, 2.0 = double thrust)": 3.0, "Upgrade Cost": { "Resource Costs (ItemShortName: Amount)": { "scrap": 600, "cloth": 500, "leather": 200, "metal.fragments": 500 }, "ServerRewards Points": 30, "Economics Money": 0.0 }, "Scale Multiplier (1.0 = normal size, 1.5 = 50% bigger)": 1.8 } ], "Currency Type (Resources, ServerRewards, Economics)": "ServerRewards" }, "Enable Boat Pie Menu Key (R)": true, "Building Station Scale (1.0 = normal, 2.0 = double size)": 1.0 } 14 / Current limitations
Plan your boat setup around the game
Engine efficiency is configurable; engines still require fuel. The plugin does not provide a supported increase to the maximum number of engines or sails. Larger construction stations are supported; the game’s separate block-count setting still applies. Final speed depends on boat physics and the installed game version. 15 / Try it & support
Try the setup and share your ideas
You can try the plugin on the RustSpain Staging test server when it is online. It is a test server, so availability is not guaranteed.
connect staging.rustspain.com For questions, suggestions or assistance, contact ninco90 on Discord. Feature suggestions are also welcome in the product discussion.
- #boat
- #controller
- (and 8 more)
-
Reputation Master
Adds a reputation system, similar to the well-known Infestation Survivor Stories(The WarZ).
More information on how the plugin works can be found at the bottom in the "Principle of work" section.
The ability to create an unlimited number of reputations. The only condition is that their value ranges must not overlap; The ability to flexibly customize the bar for each reputation; The ability to automatically reset reputations upon detecting a wipe; The ability to set a prefix for reputations; The ability to show your reputation by waving to players; The ability to see a player's reputation when aiming at them with scope items. Unfortunately, the reputation will also be displayed if a player is in certain bushes; The ability to see the reputation of all players in the bandit zone; The ability to prohibit players with a certain reputation from entering safe zones (except for the bandit zone). Also, notifying players about it; The ability to set fake reputations to confuse players.
reputationmaster.vip - Provides the ability to set a fake rank value. reputationmaster.admin - Provides the ability to set or reset reputation value to other players.
{ "Chat command": "rep", "Is it worth enabling GameTips for messages?": true, "Is it worth using the AdvancedStatus plugin?": true, "List of language keys for creating language files": [ "en" ], "Is it worth using ddraw to display reputation? NOTE: To use, an administrator flag is required, which is granted before rendering and revoked immediately after issuing the command": true, "Is it worth displaying reputation when aiming at a player with a scope(ddraw should be enabled)? NOTE: The player's reputation may be displayed in certain bushes": true, "Is it worth resetting reputations upon detecting a wipe?": true, "Is it worth forbidding bandits from visiting safe zones(except for Banditcamp)?": true, "The time in seconds during which a bandit can stay in the safe zone(except for Banditcamp) before being killed, making their loot available to everyone": 10.0, "The prefab name for the effect when a bandit is killed in the safe zone. An empty string disables the effect": "assets/prefabs/misc/xmas/advent_calendar/effects/open_advent.prefab", "Assigning reputation for NPCs(Disabled, ForVanilla, ForAll)": "ForAll", "Minimum random reputation value for NPCs": -1000.0, "Maximum random reputation value for NPCs": 1000.0, "Is it worth enabling self-defense for NPCs?": false, "The time in seconds during which self-defense will be active for a lawman after being attacked by another lawman": 900, "The minimum value limit for fake reputation": -10000.0, "The maximum value limit for fake reputation": 10000.0, "UI. Position - Left to Right": true, "UI. Position - AnchorMin": "1 0.9", "UI. Position - AnchorMax": "1 0.9", "UI. Position - OffsetMin": "-208 -15", "UI. Position - OffsetMax": "-16 15", "UI. Reputation Positive Value Image - URL": "https://gitlab.com/IIIaKa/images/-/raw/main/ReputationMaster/ReputationMaster_Positive.png", "UI. Reputation Negative Value Image - URL": "https://gitlab.com/IIIaKa/images/-/raw/main/ReputationMaster/ReputationMaster_Negative.png", "UI. Added Value Sound - Prefab Name. An empty string disables the effect": "assets/bundled/prefabs/fx/notice/item.select.fx.prefab", "Wipe ID": null, "Version": { "Major": 0, "Minor": 1, "Patch": 6 } } Note:
To use ddraw, an administrator flag is required, which is granted before rendering and revoked immediately after issuing the command. The player's reputation may be displayed in certain bushes.
[ { "Name": "Assassin", "Prefix": "⁎✧⁎ ", "MinValue": -3.40282347E+38, "MaxValue": -1000.0, "Reward": 20.0, "LawmanPenalty": 0.0, "AllowSafeZone": false, "BarSettings": { "Text_Transparency": 1.0, "SubText_Transparency": 1.0, "Order": 20, "Height": 26, "Main_Color(Hex or RGBA)": "#FF341E", "Main_Transparency": 0.6, "Main_Material": "", "Image_Url": "https://gitlab.com/IIIaKa/images/-/raw/main/ReputationMaster/ReputationMaster_Assassin.png", "Image_Local(Leave empty to use Image_Url)": "ReputationMaster_Assassin", "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "", "Image_IsRawImage": false, "Image_Color(Hex or RGBA)": "#FF341E", "Image_Transparency": 1.0, "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9", "Image_Outline_Transparency": 0.0, "Image_Outline_Distance(Leave empty to disable). Example '0.75 0.75'": null, "Text_Size": 14, "Text_Color(Hex or RGBA)": "#FF341E", "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Text_Offset_Horizontal": 0, "Text_Outline_Color(Hex or RGBA)": "#000000", "Text_Outline_Transparency": 1.0, "Text_Outline_Distance(Leave empty to disable)": null, "SubText_Size": 12, "SubText_Color(Hex or RGBA)": "#FF341E", "SubText_Font": "RobotoCondensed-Bold.ttf", "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5", "SubText_Outline_Transparency": 0.0, "SubText_Outline_Distance(Leave empty to disable)": null } }, ... { "Name": "Civilian", "Prefix": "", "MinValue": -4.99, "MaxValue": 9.99, "Reward": 1.0, "LawmanPenalty": -1.0, "AllowSafeZone": true, "BarSettings": { "Text_Transparency": 1.0, "SubText_Transparency": 1.0, "Order": 20, "Height": 26, "Main_Color(Hex or RGBA)": "#5EC0CA", "Main_Transparency": 0.6, "Main_Material": "", "Image_Url": "https://gitlab.com/IIIaKa/images/-/raw/main/ReputationMaster/ReputationMaster_Civilian.png", "Image_Local(Leave empty to use Image_Url)": "ReputationMaster_Civilian", "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "", "Image_IsRawImage": false, "Image_Color(Hex or RGBA)": "#5EC0CA", "Image_Transparency": 1.0, "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9", "Image_Outline_Transparency": 0.0, "Image_Outline_Distance(Leave empty to disable). Example '0.75 0.75'": null, "Text_Size": 14, "Text_Color(Hex or RGBA)": "#5EC0CA", "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Text_Offset_Horizontal": 0, "Text_Outline_Color(Hex or RGBA)": "#000000", "Text_Outline_Transparency": 1.0, "Text_Outline_Distance(Leave empty to disable)": null, "SubText_Size": 12, "SubText_Color(Hex or RGBA)": "#5EC0CA", "SubText_Font": "RobotoCondensed-Bold.ttf", "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5", "SubText_Outline_Transparency": 0.0, "SubText_Outline_Distance(Leave empty to disable)": null } }, ... { "Name": "Paragon", "Prefix": "⋆☆⋆ ", "MinValue": 1000.0, "MaxValue": 3.40282347E+38, "Reward": 20.0, "LawmanPenalty": -125.0, "AllowSafeZone": true, "BarSettings": { "Text_Transparency": 1.0, "SubText_Transparency": 1.0, "Order": 20, "Height": 26, "Main_Color(Hex or RGBA)": "#0AFBFB", "Main_Transparency": 0.6, "Main_Material": "", "Image_Url": "https://gitlab.com/IIIaKa/images/-/raw/main/ReputationMaster/ReputationMaster_Paragon.png", "Image_Local(Leave empty to use Image_Url)": "ReputationMaster_Paragon", "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "", "Image_IsRawImage": false, "Image_Color(Hex or RGBA)": "#0AFBFB", "Image_Transparency": 1.0, "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9", "Image_Outline_Transparency": 0.0, "Image_Outline_Distance(Leave empty to disable). Example '0.75 0.75'": null, "Text_Size": 14, "Text_Color(Hex or RGBA)": "#0AFBFB", "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Text_Offset_Horizontal": 0, "Text_Outline_Color(Hex or RGBA)": "#000000", "Text_Outline_Transparency": 1.0, "Text_Outline_Distance(Leave empty to disable)": null, "SubText_Size": 12, "SubText_Color(Hex or RGBA)": "#0AFBFB", "SubText_Font": "RobotoCondensed-Bold.ttf", "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5", "SubText_Outline_Transparency": 0.0, "SubText_Outline_Distance(Leave empty to disable)": null } } ] MinRange, MaxRange - Range of values for the group rank; Name - Name of the rank; Reward - Reward for killing or reviving(divided by 2) a player in this rank. If the initiating player has IsLawman = true, the value will be positive, otherwise, it will be negative; LawmanPenalty - Penalty for a peaceful player of this rank, for killing another peaceful player. If the target did not initiate this pvp first; AllowSafeZone - Is this rank allowed to visit Safe Zones (except Bandit Camp)? The "Forbid bandits from visiting the SafeZone (except for Banditcamp)" config should be set to true. Path: *SERVER*\oxide\data\ReputationMaster\ReputationRanks.json
EN: { "CmdNotAllowed": "You do not have permissions to use this command!", "CmdPlayerNotFound": "Player '{0}' not found! You must provide the player's name or Id.", "CmdNpcNotFound": "Npc '{0}' not found or has an invalid entity type! You must provide the npc's network Id.", "CmdEntityNotFound": "Entity not found! Try getting closer to the entity.", "CmdMultiplePlayers": "Multiple players found: {0}", "CmdAdmin": "Available admin commands:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>netId</color> - Get the netId of the entity you are looking at.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *floatValue* *nameOrId*</color> - Set reputation for the specified player.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *floatValue* self</color> - Set reputation for yourself.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *floatValue* npc *netId* force(optional)</color> - Set reputation for the specified npc. The last argument controls forced assignment.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *floatValue* *nameOrId*</color> - Set fake reputation for the specified player.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *floatValue* self</color> - Set fake reputation for yourself.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *floatValue* npc *netId* force(optional)</color> - Set fake reputation for the specified npc. The last argument controls forced assignment.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>info *nameOrId*</color> - Show full reputation information for the specified player.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>info self</color> - Show full reputation information for yourself.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset *nameOrId*</color> - Reset reputation for the specified player.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset self</color> - Reset your reputation.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset all</color> - Reset reputation for all players.\n\n--------------------------------------------------", "CmdMain": "Available commands:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *floatValue*</color> - Set fake reputation for yourself.\n\n--------------------------------------------------", "CmdSetNpcFailed": "Failed to set reputation for npc '{0}'! Try adding the 'force' argument for forced assignment.", "CmdSetNpc": "Npc '{0}' has received a new reputation value: {1}({2})!", "CmdSetPlayer": "Player '{0}' has received a new reputation value: {1}({2})!", "CmdFakeNpcFailed": "Failed to set fake reputation for npc '{0}'! Try adding the 'force' argument for forced assignment.", "CmdFakeNpc": "Npc '{0}' has received a new fake reputation value: {1}({2})!", "CmdFakeSelf": "A new fake reputation value has been successfully set: {0}({1})!", "CmdFakePlayer": "Player '{0}' has received a new fake reputation value: {1}({2})!", "CmdNetId": "The NetID of the entity you are looking at: '{0}'({1}).", "CmdInfoPlayer": "Player '{0}' reputation:\n<color=#D1AB9A>Reputation:</color> {1} ({2})\n<color=#D1AB9A>Fake Reputation:</color> {3} ({4})\n<color=#D1AB9A>Last Helper:</color> {5}\n\n--------------------------------------------------", "CmdInfoNPC": "NPC '{0}' reputation:\n<color=#D1AB9A>Reputation:</color> {1}({2})\n<color=#D1AB9A>Fake Reputation:</color> {3}({4})\n<color=#D1AB9A>Last Helper:</color> {5}\n\n--------------------------------------------------", "CmdResetTarget": "{0}'s reputation has been successfully reset!", "CmdResetSelf": "Your reputation has been successfully reset!", "CmdResetAll": "{0} reputations have been successfully reset!", "MsgReputation": "Reputation", "MsgShowPlayerReputation": "Player '{0}' reputation: {1}({2})", "MsgNewReputation": "Congratulations! You have received the reputation '{0}'!", "MsgSelfDefense": "You attacked a peaceful player '{0}'({1}) first. If they kill you within {2} minutes, they will not receive a penalty", "MsgSelfDefenseNoPenalty": "You killed a peaceful player '{0}'({1}). However, since they attacked you first, you will not be penalized", "MsgLawmanEnterBanditZone": "You have entered the Bandit Camp! Stay vigilant, this place is full of thugs!", "MsgLawmanLeaveBanditZone": "You have left the Bandit Camp! We recommend avoiding this area!", "MsgBanditEnterBanditZone": "Welcome to the Bandit Camp! We are glad to have you back!", "MsgBanditLeaveBanditZone": "You have left the Bandit Camp! We hope to see you again soon!", "MsgBanditEnterSafeZone": "You are not welcome here! If you do not leave this place, you will be killed in {0} seconds!", "MsgBanditLeaveSafeZone": "Do not come back here! People like you belong in the Bandit Camp!" } RU: { "CmdNotAllowed": "У вас недостаточно прав для использования этой команды!", "CmdPlayerNotFound": "Игрок '{0}' не найден! Вы должны указать имя или ID игрока.", "CmdNpcNotFound": "Нпц '{0}' не найден, либо не верный тип сущности! Вы должны указать Id нпц.", "CmdEntityNotFound": "Сущность не найдена! Попробуйте подойти ближе к объекту.", "CmdMultiplePlayers": "Найдено несколько игроков: {0}", "CmdAdmin": "Доступные админ команды:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>netId</color> - Получить netId сущности, на которую вы смотрите.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *дробноеЗначение* *имяИлиАйди*</color> - Установить репутацию указанному игроку.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *дробноеЗначение* self</color> - Установить репутацию себе.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>set *дробноеЗначение* npc *netId* force(опционально)</color> - Установить репутацию указанному npc. Последний аргумент принудительно задаёт значение.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *дробноеЗначение* *имяИлиАйди*</color> - Установить ложную репутацию указанному игроку.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *дробноеЗначение* self</color> - Установить себе ложную репутацию.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *дробноеЗначение* npc *netId* force(опционально)</color> - Установить ложную репутацию указанному npc. Последний аргумент принудительно задаёт значение.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>info *имяИлиАйди*</color> - Показать полную информацию о репутации указанного игрока.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>info self</color> - Показать полную информацию о своей репутации.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset *имяИлиАйди*</color> - Сбросить репутацию указанному игроку.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset self</color> - Сбросить свою репутацию.\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>reset all</color> - Сбросить репутацию всем игрокам.\n\n--------------------------------------------------", "CmdMain": "Доступные команды:\n\n<color=#D1CBCB>/rep</color> <color=#D1AB9A>fake *дробноеЗначение*</color> - Установить себе ложную репутацию.\n\n--------------------------------------------------", "CmdSetNpcFailed": "Не удалось установить репутацию нпц '{0}'! Попробуйте добавить аргумент 'force' для принудительной установки.", "CmdSetNpc": "Нпц '{0}' получил новое значение репутации: {1}({2})!", "CmdSetPlayer": "Игрок '{0}' получил новое значение репутации: {1}({2})!", "CmdFakeNpcFailed": "Не удалось установить ложную репутацию нпц '{0}'! Попробуйте добавить аргумент 'force' для принудительной установки.", "CmdFakeNpc": "Нпц '{0}' получил новое значение ложной репутации: {1}({2})!", "CmdFakeSelf": "Новое значение ложной репутации успешно установлено: {0}({1})!", "CmdFakePlayer": "Игрок '{0}' получил новое значение ложной репутации: {1}({2})!", "CmdNetId": "NetID сущности, на которую вы смотрите: '{0}'({1}).", "CmdInfoPlayer": "Репутация игрока '{0}':\n<color=#D1AB9A>Репутация:</color> {1}({2})\n<color=#D1AB9A>Ложная репутация:</color> {3}({4})\n<color=#D1AB9A>Последний помощник:</color> {5}\n\n--------------------------------------------------", "CmdInfoNPC": "Репутация нпц '{0}':\n<color=#D1AB9A>Репутация:</color> {1}({2})\n<color=#D1AB9A>Ложная репутация:</color> {3}({4})\n<color=#D1AB9A>Последний помощник:</color> {5}\n\n--------------------------------------------------", "CmdResetTarget": "Репутация '{0}' успешно сброшена!", "CmdResetSelf": "Ваша репутация успешно сброшена!", "CmdResetAll": "Успешно сброшено {0} репутаций!", "MsgReputation": "Репутация", "MsgShowPlayerReputation": "Репутация игрока '{0}': {1}({2})", "MsgNewReputation": "Поздравляем! Вы получили репутацию '{0}'!", "MsgSelfDefense": "Вы первым атаковали мирного игрока '{0}'({1}). Если он вас убьет в течении {2} минут, то не получит штрафа", "MsgSelfDefenseNoPenalty": "Вы убили мирного игрока '{0}'({1}). Но так как он первым вас атаковал, вас не накажут", "MsgLawmanEnterBanditZone": "Вы пришли в Лагерь Бандитов! Будьте бдительны, здесь полно разных отморозков!", "MsgLawmanLeaveBanditZone": "Вы покинули Лагерь Бандитов! Советуем обходить это место!", "MsgBanditEnterBanditZone": "Добро пожаловать в Лагерь Бандитов! Мы рады вашему возвращению!", "MsgBanditLeaveBanditZone": "Вы покинули Лагерь Бандитов! Надеемся на скорое ваше возвращение!", "MsgBanditEnterSafeZone": "Вам здесь не рады! Если вы не покинете это место, то вас убьет через {0} секунд!", "MsgBanditLeaveSafeZone": "Больше сюда не возвращайтесь! Таким как вы место в Лагере Бандитов!" }
fake *floatValue* - Set a fake reputation. Permission "reputationmaster.vip" required; netId - Get the netId of the entity you are looking at. Permission "reputationmaster.admin" required; set *floatValue* *nameOrId* - Set reputation for the specified player. Permission "reputationmaster.admin" required; set *floatValue* self - Set reputation for yourself. Permission "reputationmaster.admin" required; set *floatValue* npc *netId* force(optional) - Set reputation for the specified npc. The last argument controls forced assignment. Permission "reputationmaster.admin" required; fake *floatValue* *nameOrId* - Set fake reputation for the specified player. Permission "reputationmaster.admin" required; fake *floatValue* self - Set fake reputation for yourself. Permission "reputationmaster.admin" required; fake *floatValue* npc *netId* force(optional) - Set fake reputation for the specified npc. The last argument controls forced assignment. Permission "reputationmaster.admin" required; info *nameOrId* - Show full reputation information for the specified player. Permission "reputationmaster.admin" required; info self - Show full reputation information for yourself. Permission "reputationmaster.admin" required; reset *nameOrId* - Reset reputation for the specified player. Permission "reputationmaster.admin" required; reset self - Reset your reputation. Permission "reputationmaster.admin" required; reset all - Reset reputation for all players. Permission "reputationmaster.admin" required. Example:
/rep fake 150 /rep fake -40 iiiaka /rep set 23 iiiaka /rep set npc 64 4032
ReputationValueUpdated: Called after the player's reputation value has changed. Works only for players that are not NPCs.
void ReputationValueUpdated(ulong userID, string repName, float repValue) { Puts($"{userID} updated a reputation value to {repValue}. Current reputation rank is {repName}."); }
ReputationUpdated: Called after the player receives a new reputation rank. Works only for players that are not NPCs.
void ReputationUpdated(ulong userID, string oldRep, string newRep, bool isLawman, bool allowSafeZone, float repValue) { Puts($"{userID} has updated their rank from {oldRep} to {newRep}. Is peaceful: {isLawman}\nSafe Zones: {allowSafeZone}\nReputation Value: {repValue}"); }
[PluginReference] private Plugin ReputationMaster;
There are 4 api methods:
GetReputationValue:
Used to retrieve the reputation value, real or fake. Returns null on failure.
To call the GetReputationValue method, you need to pass 2 parameters:
userID as a ulong; realRep as a bool. What reputation value to get, real or fake? This parameter is optional.
(float)(ReputationMaster?.Call("GetReputationValue", player.userID, true) ?? 0f);
GetReputationName:
Used to retrieve the reputation name, real or fake. Returns an empty string on failure.
To call the GetReputationName method, you need to pass 2 parameters:
userID as a ulong; realRep as a bool. What reputation name to get, real or fake? This parameter is optional.
(string)(ReputationMaster?.Call("GetReputationName", player.userID, true) ?? string.Empty);
SetReputationValue:
Used to retrieve the reputation name, real or fake. Returns a false on failure.
To call the SetReputationValue method, you need to pass 3 parameters:
Available options: userID as a ulong or a string; player as a BasePlayer. newValue as float; realRep as a bool. What reputation value to get, real or fake? This parameter is optional.
(bool)(ReputationMaster?.Call("SetReputationValue", player.UserIDString, 150f, true) ?? false);//(string)userID (bool)(ReputationMaster?.Call("SetReputationValue", player.userID, 150f, true) ?? false);//(ulong)userID (bool)(ReputationMaster?.Call("SetReputationValue", player, 150f, true) ?? false);//(BasePlayer)player ***recommended option***
SetReputationValues:
Used to retrieve the reputation name, real or fake. Returns a false on failure.
To call the SetReputationValues method, you need to pass 3 parameters:
Available options: userID as a ulong or a string; player as a BasePlayer. value as float; fakeValue as a float.
(bool)(ReputationMaster?.Call("SetReputationValues", player.UserIDString, 150f, 50f) ?? false);//(string)userID (bool)(ReputationMaster?.Call("SetReputationValues", player.userID, 150f, 50f) ?? false);//(ulong)userID (bool)(ReputationMaster?.Call("SetReputationValues", player, 150f, 50f) ?? false);//(BasePlayer)player ***recommended option***
You can create as many reputation ranks as you want, but there are only two main groups:
Lawmen(peaceful or civilians); Outlaws(bandits). Each kill has a different scores depending of the reputation rank of the victim and attacker. For exampe, if you are a Civilian, you will receive:
Paragon: -20 Vigilant: -15 Guardian: -10 Lawman: -4 Deputy: -3 Constable: -2 Civillian: -1 Thug: +2 Outlaw: +3 Bandit: +4 Hitman: +10 Villain: +15 Assassin: +20 Reviving:
For reviving a player, you will receive a reward divided by 2. If the target is a lawman, the reward will be positive, else if a target is a bandit, it will be negative. Also, this is the only way out of bandit rank for bandits.
Outlaw:
When you reach the outlaw reputation, you have no more back! Except for reviving a peaceful player.
You can kill other bandits but still counting as negative reputation! So, after you reach the outlaw reputation rank, scores by killing a player of a certain reputation will be as follows(negative reward value) :
Paragon: -20 Vigilant: -15 Guardian: -10 Lawman: -4 Deputy: -3 Constable: -2 Civillian: -1 Thug: -2 Outlaw: -3 Bandit: -4 Hitman: -10 Villain: -15 Assassin: -20 Lawman:
The scores will be as follows for each kill a outlaw reputation ranks(positive reward value) :
Assassin: +20 Villain: +15 Hitman: +10 Bandit: +4 Outlaw: +3 Thug: +2 But for killing a peaceful player, you will receive penalties based on your rank. A list of penalties for each reputation rank:
Paragon: -125 Vigilante: -60 Guardian: -40 Lawman: -15 Deputy: -2 Constable: -1 Civilian: -1
There is also a self-defense system that works as follows: If a peaceful player initiates an attack on another peaceful player, a timer of 15 minutes(sets from config) is activated, during which the victim can kill the attacker without penalties.
So, it's very hard to become a lawman, and it's very easy to get out from lawman.
- #rust
- #reputation
- (and 25 more)
-
Recoil Viewer
Rust / Server Plugins
Recoil Viewer
Player MonitoringRecoil & Training
See the pattern. Follow the shots. Review the context.
Monitor a player’s recoil on your screen while spectating or selecting them by name or SteamID. View shot statistics, accuracy and player information alongside the pattern, or let permitted players view their own recoil while training.
Live recoil
Track shooting as it happens
Spectator tools
Player details, belt view and TP
Optional integrations
AimTrain, ZoneManager and Arkan
01 / Video demo
See Recoil Viewer in action
This video demonstrates an older version of the plugin. The current interface and available features may differ.
Watch on YouTube
02 / Live monitoring
Follow recoil and shooting information
Display the weapon pattern and the player’s recoil as they shoot. Track shots, hits and headshots, with an optional hit-accuracy bar. Recognize the active weapon automatically. Unsupported items display a customizable language-file message. Show the player’s name, SteamID and optional Rust Premium Status for recordings and reports. Display standing or crouched stance, and optionally clear the display when the weapon is reloaded. Support multiple administrators viewing players at the same time. Collect shooting and hit information for players currently being viewed. 03 / Spectator & belt view
Keep the player’s actions in view
Use Recoil Viewer while spectating, including first-person spectating, or select a player directly with the chat command. With the appropriate permission, the belt panel shows items carried by other players the monitored player is looking at.
Configure belt-target distance, view angle and abrupt direction-change thresholds. The TP button returns you to the monitored player; EXIT lets you leave spectator mode quickly.
First-person spectating with recoil and target belt information
Recoil Viewer does not supply AdminESP or AdminRadar. World-space player markers visible in a demonstration require a separate plugin. The target belt panel is part of Recoil Viewer. 04 / Training & integrations
Open the viewer when it is needed
Self-view and AimTrain
Players with recoilviewer.player can toggle their own recoil display. With AimTrain installed and training integration enabled, permitted players automatically enter and leave the viewer as they enter or leave the training area.
ZoneManager
List the ZoneIDs where the self-view should activate. Players with recoilviewer.zonemanager automatically open or close the viewer when entering or leaving those configured zones.
Arkan NoRecoil alerts
Enable Arkan integration and use /recoil arkan to opt in to automatic viewing when Arkan reports a NoRecoil violation. This requires recoilviewer.admin and recoilviewer.autoarkan. Use the command again to turn alert tracking off.
05 / Additional panels
Optional monitoring panels in version 1.6.2
The reviewed local 1.6.2 build also includes an optional real date/time display using server-local time, mount-pose information and a ground-state panel. Availability depends on the installed plugin version.
The ground-state panel can show native ground/air flags, distance to nearby support and the duration of an inconsistent state. Configure its support tolerance and warning delay; the panel is disabled by default.
06 / Supported weapons
Nine supported automatic weapons
Item shortname Weapon rifle.ak Assault Rifle rifle.lr300 LR-300 smg.mp5 MP5 smg.2 Custom SMG smg.thompson Thompson lmg.m249 M249 hmlmg HMLMG minigun Minigun t1_smg Handmade SMG Pattern availability depends on the data file supplied with the plugin. Upload the matching pattern data when weapons or patterns are updated.
07 / Permissions
Control access to each viewing mode
Permission Purpose recoilviewer.player Toggle your own recoil display with /recoil. recoilviewer.admin Select other players and access administrator commands. recoilviewer.spectate Automatically open the viewer while spectating when enabled. recoilviewer.training Automatic self-view in AimTrain areas when enabled. recoilviewer.zonemanager Automatic self-view in configured ZoneManager zones. recoilviewer.autoarkan Opt in to automatic viewing from Arkan NoRecoil alerts. recoilviewer.beltinfo Show the belt of players the monitored player is looking at. recoilviewer.tp Show the TP button for the monitored player when configured. 08 / Chat & F1 commands
Select a player or control automatic viewing
Command Purpose /recoil <name|SteamID> Chat: select another player; partial names are supported. Requires recoilviewer.admin. /recoil Chat: toggle your own viewer, or close the active viewer. Requires recoilviewer.player. /rc Chat: request the nearest player. Requires recoilviewer.admin. /recoil arkan Chat: toggle Arkan alert tracking. Requires admin and autoarkan permissions, plus enabled integration. recoil F1: close an active viewer. Requires recoilviewer.admin. recoil off F1: close the viewer and temporarily disable automatic spectator viewing. recoil arkan F1: toggle Arkan alert tracking when enabled and permitted. recoil <name|SteamID> Documented F1 target syntax; use the chat equivalent in the reviewed build (see note below). After using recoil off, select a player again with /recoil <name|SteamID> in chat to restore automatic spectator viewing.
Console targeting note: the reviewed build returns before handling player names in the F1 target command. Use chat to select players until this console path is corrected. 09 / Installation & pattern data
Upload the weapon patterns included in the ZIP
Copy the included weapon-pattern data file to oxide/data/ or carbon/data/, preserving its name and folder structure. The reviewed plugin reads RecoilViewer.json from the server’s data directory.
If new weapons are added or a recoil pattern changes, upload the updated pattern data again. Installing the plugin script alone does not provide the matching pattern file. 10 / Configuration
Customize the display and automatic activation
Enable or disable spectating, AimTrain, ZoneManager and Arkan integrations. Replace the example ZoneIDs with zones from your own server. Customize positions, backgrounds, buttons, text sizes, colors and recoil-point symbols. Configure shot counters, the accuracy bar, stance colors, premium checks and belt-target checks. On 1.6.2, configure optional server-local date/time and ground-state information. The following example preserves the supplied settings and includes the optional panels from the reviewed local 1.6.2 build. Edit the configuration generated by your installed version.
{ "Use Spectate": true, "Use Arkan (Mod External: Arkan)": true, "Use Training (Mod External: AimTrain)": true, "Use ZoneManager (Mod External: ZoneManager)": true, "Active Zones (ZoneID)": [ "91109370", "1013570" ], "Clean when reloading weapon": true, "Target Check (Belt Viewer)": { "Enabled": true, "Max Distance (Default 300)": 300.0, "Angle of view (Default 20)": 20.0, "Threshold of abrupt change in degrees (Default 10)": 10.0, "Minimum time between sudden changes (Default 10)": 10.0 }, "Windows Config": { "Show Shooting Info": true, "Show SteamID": true, "Show Button TP": true, "Position AnchorMin": "0.810 0.571", "Position AnchorMax": "0.992 0.895", "Background Color": "0.0 0.0 0.0 0.75", "Button: Close Background Color": "0.87 0.0 0.0 0.9", "Button: TP Background Color": "0.3 0.5 0.3 0.9", "Button: exit Background Color": "0.5 0.3 0.3 0.7", "Show Real Date and Time (Server Local Time)": false }, "Text Display": { "Weapon - AnchorMin": "0.14 0.91", "Weapon - AnchorMax": "0.5 0.98", "Weapon - Size": 12, "Weapon - Color": "0.8 0.8 0.8 1", "Player Name - AnchorMin": "0.14 0.84", "Player Name - AnchorMax": "0.75 0.94", "Player Name - Size": 10, "Player Name - Color": "1 1 1 0.8", "No Pattern - Size": 15, "No Pattern - Color": "1 0 0.38 1" }, "Info Display": { "Shoots Counter": { "Icon AnchorMin": "0.03 0.78", "Icon AnchorMax": "0.08 0.83", "Text AnchorMin": "0.1 0.870", "Text AnchorMax": "0.4 0.960", "Font Size": 12, "Font Color": "0.8 0.8 0.8 0.7" }, "Hit Counter": { "Icon AnchorMin": "0.03 0.705", "Icon AnchorMax": "0.08 0.755", "Text AnchorMin": "0.1 0.815", "Text AnchorMax": "0.4 0.885", "Font Size": 11, "Font Color": "0.8 0.8 0.8 0.7" }, "HeadShoot Counter": { "Icon AnchorMin": "0.03 0.64", "Icon AnchorMax": "0.08 0.69", "Text AnchorMin": "0.1 0.75", "Text AnchorMax": "0.4 0.82", "Font Size": 11, "Font Color": "0.8 0.8 0.8 0.7" }, "Accuracy Display": { "Show Bar": true, "BG Color 30%": "0.00 0.52 0.29 0.72", "BG Color 60%": "0.97 0.51 0.14 0.72", "BG Color 80%": "0.97 0.06 0.20 0.72", "Font Color": "0.9 0.9 0.9 0.7" } }, "Pattern Weapons": { "Sets the point of the pattern": "•", "Point Size": 14, "Point Color": "1 0 0.38 1", "Point Fire Color": "0.63 0.98 0.63 1.0" }, "Recoil Player": { "Sets the point of the recoil": "⦿", "Point Size": 14, "Point Color": "1 1 1 1" }, "Stance Display": { "Ducked Color": "1 0.85 0 1", "Standing Color": "0.6 1 0.6 1" }, "Premium Check": true, "Ground State Panel": { "Enabled": false, "Support Tolerance (meters)": 0.2, "Warning After (seconds)": 2.0 } } Original Recoil Viewer product artwork
11 / Support
Questions or a feature suggestion?
Contact ninco90 on Discord for questions, suggestions or assistance.
Custom configuration tailored to your server is available for an additional fee.
