About BoatControl
BoatControl is a Rust server plugin that completely enhances boat handling. When taking the helm, a user-friendly CUI interface appears, allowing players to raise/lower sails and anchors, start/stop engines, and switch navigation direction forward or backward.
The plugin also supports automatic reloading when the player has ammunition, cannon firing with configurable cooldown (or bypass via permission), and toggling all torches and lanterns without fuel consumption. Additionally, players can control navigation using W/S and fire cannons with the left mouse click.
Want to try it before you buy it?
You can try it by accessing the Staging server: connect staging.rustspain.com (provided the server is online, as it's my test server).
Video Update 1.0.0
Features
Displays a CUI interface when taking the helm that allows you to:
- Raise / lower sails.
- Raise / lower anchors.
- Turn engines on / off.
- Change the navigation direction forward / backward (engines and sails reverse accordingly).
- Reload (if the player has ammunition in their inventory, with a permission to bypass this).
- Fire cannons with a cooldown (or without it if you have the bypass permission).
- Turn all torches and lamps on/off (In the settings you can decide whether you want them to consume fuel or not).
- Allows enabling boat editing anywhere.
- Blocks edit mode within safe zones.
- Blocks the ability to activate the anchor within safe zones.
- Allows you to view the list of authorized players (similar to BetterTC).
-
Sail Configuration System:
- Displays a window similar to the config menu showing all sails placed on the boat.
- Each sail shows its health amount below it.
- Added a button that allows upgrading sails by levels (thrust power). Everything is configurable, including upgrade costs (in-game resources, RP, or Economy). This allows admins to add as many levels as they want in the config.
-
Engine Configuration System:
- Displays a window similar to the config menu showing all engines placed on the boat.
- Each engine shows its fuel amount and health below it.
- Added the ability to refuel engines using fuel from the player’s inventory.
- Added another button that allows upgrading engines by levels (fuel efficiency and engine power). Everything is configurable, including upgrade costs (in-game resources, RP, or Economy). This allows admins to add as many levels as they want in the config.
- Important: There is a maximum speed limit in the game. I have been testing ways to increase the speed, but I still need to continue researching and testing to find the best way to increase it.
-
Automatic repair system:
- If damage is received during repair, it will stop.
- If the player runs out of materials in their inventory, it will stop.
- If the player disconnects, it will also stop.
- Note: The boat health system is unusual and does not work like a normal building, so the system simulates repairs at different points on the boat depending on the percentage of health lost. That is why you will not hear the actual damaged entity being repaired.
-
BetterTC Integration:
- If you have BetterTC installed with version 1.6.2 or higher, the automatic Wallpaper placement system will be enabled.
- Facepunch will add wallpaper support for Boats starting in March; you can test it meanwhile on staging.
You can also change the navigation direction using the W and S keys, and fire the cannons with the left mouse click.
I'm open to further improving this plugin over time. If you'd like to see any features integrated, please mention them in the discussion section.
Ideas I've tried but haven't been able to implement:
- Modifying the build area (net size) to make it larger. It doesn't seem possible to change this.
- Making the engines work without fuel consumption. I managed to do this in an initial test, but then FacePunch changed something and it's no longer possible. I'll try to see if I can adjust fuel consumption to make it more economical.
- The maximum number of engines and sails cannot be increased. Or at least not easily; it could be done with commands and strange contraptions, but it wouldn't be entirely convenient.
Permissions
- boatcontrol.use – Enables the functionality for the player when mounting the boat’s helm.
- boatcontrol.bypassammo – Allows you to fire cannons without using real ammunition from your inventory. Free ammo! (not recommended to give to regular players)
- boatcontrol.bypasscannoncooldown – Allows you to fire cannons with no cooldown. Maximum bombardment!
- boatcontrol.edit allows enabling boat editing anywhere.
- boatcontrol.cannonuse If the player doesn’t have it enabled, the option to control cannons won’t appear in the interface. Not having this permission will not block manual/vanilla use.
- boatcontrol.authlist Shows the list of players authorized to the Boat, similar to BetterTC.
- boatcontrol.deleteauth Allows authorized players to remove player permissions individually.
- boatcontrol.sailconfig Allows players to open and manage the Sail Configuration menu for boats.
- boatcontrol.sailupgrade Allows players to upgrade sails (thrust power) according to the configured upgrade levels.
- boatcontrol.engineconfig Allows players to open and manage the Engine Configuration menu for boats.
- boatcontrol.engineupgrade Allows players to upgrade engines (fuel efficiency and engine power) according to the configured upgrade levels.
- boatcontrol.wallpaper Allows players to use the wallpaper placement system on boats. (Requires BetterTC version 1.6.2 or higher.)
- boatcontrol.repair Allows players to use the automatic boat repair system.
- boatcontrol.repair.nocost Allows players to repair boats without consuming materials
- Dynamic repair permissions (speed adjustment) Allows admins to grant specific permissions defined in the config to adjust boat speed limits.
Commands
It currently has no chat or console commands.
Configuration
DEFAULT CONFIGURATION
{
"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": {
"Enable Light Toggle Key (R)": true,
"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.0",
"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
}
},
{
"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
}
},
{
"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
}
},
{
"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
}
}
],
"Currency Type (Resources, ServerRewards, Economics)": "ServerRewards"
}
}
For any problem, doubt, suggestion or assistance do not hesitate to contact me by Discord ninco90

