By
VORON
in Plugins
APBoatSpeed — Custom boats with adjustable speed
Overview
APBoatSpeed adds customizable boats (Rowboat, RHIB, Tugboat, and Kayak placeholder)
to your Rust server, allowing per-boat speed multipliers,
item or direct spawn modes, and a modern UI with images, statuses, and cooldown timers.
The plugin supports RU/EN localization and keeps boats linked to each player
to prevent duplicates from being spawned.
Key Features
Custom boat types: Rowboat, RHIB, Tugboat — each with its own speed multiplier and permission.
Two delivery modes: as an inventory item (emulated via kayak with a unique Skin ID)
or directly spawned near the player.
Smart water spawning: adjusts spawn distance for large boats (RHIB/Tug).
Player-linked boats: ensures one boat per type per player; old boats are removed automatically.
Stored in oxide/data/APSystem/APBoatSpeed/PlayerBoats.json.
Localization: English and Russian (auto-detected from player language).
Floating name above boats: configurable distance, color, size, and height.
Cooldown system: global and per-boat cooldowns displayed in UI.
Commands (default)
/boat <name> [amount] — gives a boat item or spawns it (depending on config).
Additional actions:
/boat <name> 1 spawn — force spawn near the player
/boat <name> 1 destroy — destroy player’s boat of that type
/boat <name> 1 toitem — return boat to inventory item
/boatlist — list all available boats with their speed multipliers
/boatui — open graphical user interface
Commands can be customized in the config (BoatCommand, ListCommand, UICommand).
Permissions
apboatspeed.use — allows using plugin commands
apboatspeed.admin — admin-level access
Per-boat permissions:
apboatspeed.speedster
apboatspeed.turbo
apboatspeed.speedrhib
apboatspeed.rocketrhib
apboatspeed.speedtugboat
apboatspeed.fasttugboat
apboatspeed.turbotugboat
Config
{
"Configuration Version": {
"Major": 0,
"Minor": 0,
"Patch": 128
},
"Command Settings": {
"Command to get boat": "boat",
"Command to list boats": "boatlist",
"Show receive message": true,
"Automatically place boat in water": true,
"Water search radius (meters)": 50.0,
"Boat spawn distance from player (meters)": 8.0,
"Give cooldown (seconds)": 5.0,
"Spawn cooldown (seconds)": 3.0
},
"Display Settings": {
"Show boat name": true,
"Minimum display distance (meters)": 2.0,
"Maximum display distance (meters)": 15.0,
"Display update interval (seconds)": 0.2,
"Text color (R G B A)": "0 1 1 1",
"Font size": 14,
"Height above boat (meters)": 2.0
},
"UI Settings": {
"UI open command": "boatui",
"Panel background color": "0.1 0.1 0.1 0.95",
"Button color": "0.15 0.15 0.15 0.95",
"Text color": "0.969 0.922 0.882 1",
"Active button color": "0.2 0.6 0.8 1",
"Panel position AnchorMin": "0.3 0.2",
"Panel position AnchorMax": "0.7 0.8"
},
"Custom Boats": [
{
"Name": "speedster",
"Display Name": "Speedster Rowboat",
"Base Type": "rowboat",
"Speed Multiplier": 1.0,
"Permission": "apboatspeed.speedster",
"Enabled": true,
"Give Mode": "Item",
"Base Item for Emulation": "kayak",
"Unique Skin ID": 3594815869,
"Give Cooldown (seconds)": 15.0,
"Spawn Cooldown (seconds)": 10.0,
"Image File Name (without extension)": "speedster"
},
{
"Name": "turbo",
"Display Name": "Turbo Rowboat",
"Base Type": "rowboat",
"Speed Multiplier": 2.0,
"Permission": "apboatspeed.turbo",
"Enabled": true,
"Give Mode": "Item",
"Base Item for Emulation": "kayak",
"Unique Skin ID": 3594816585,
"Give Cooldown (seconds)": 10.0,
"Spawn Cooldown (seconds)": 7.0,
"Image File Name (without extension)": "turbo"
},
{
"Name": "speedrhib",
"Display Name": "Speed RHIB",
"Base Type": "rhib",
"Speed Multiplier": 1.0,
"Permission": "apboatspeed.speedrhib",
"Enabled": true,
"Give Mode": "Item",
"Base Item for Emulation": "kayak",
"Unique Skin ID": 3594816888,
"Give Cooldown (seconds)": 5.0,
"Spawn Cooldown (seconds)": 3.0,
"Image File Name (without extension)": "speedrhib"
},
{
"Name": "rocketrhib",
"Display Name": "Rocket RHIB",
"Base Type": "rhib",
"Speed Multiplier": 2.0,
"Permission": "apboatspeed.rocketrhib",
"Enabled": true,
"Give Mode": "Item",
"Base Item for Emulation": "kayak",
"Unique Skin ID": 3594817179,
"Give Cooldown (seconds)": 7.0,
"Spawn Cooldown (seconds)": 5.0,
"Image File Name (without extension)": "rocketrhib"
},
{
"Name": "speedtugboat",
"Display Name": "Speed Tugboat",
"Base Type": "tugboat",
"Speed Multiplier": 0.5,
"Permission": "apboatspeed.speedtugboat",
"Enabled": true,
"Give Mode": "Item",
"Base Item for Emulation": "kayak",
"Unique Skin ID": 3594817448,
"Give Cooldown (seconds)": 4.0,
"Spawn Cooldown (seconds)": 2.0,
"Image File Name (without extension)": "speedtugboat"
},
{
"Name": "fasttugboat",
"Display Name": "Fast Tugboat",
"Base Type": "tugboat",
"Speed Multiplier": 1.5,
"Permission": "apboatspeed.fasttugboat",
"Enabled": true,
"Give Mode": "Item",
"Base Item for Emulation": "kayak",
"Unique Skin ID": 3594817649,
"Give Cooldown (seconds)": 6.0,
"Spawn Cooldown (seconds)": 4.0,
"Image File Name (without extension)": "fasttugboat"
},
{
"Name": "turbotugboat",
"Display Name": "Turbo Tugboat",
"Base Type": "tugboat",
"Speed Multiplier": 2.5,
"Permission": "apboatspeed.turbotugboat",
"Enabled": true,
"Give Mode": "Item",
"Base Item for Emulation": "kayak",
"Unique Skin ID": 3594817910,
"Give Cooldown (seconds)": 6.0,
"Spawn Cooldown (seconds)": 4.0,
"Image File Name (without extension)": "turbotugboat"
}
],
"Localization Settings": {
"Message Prefix": "<color=#00ff00>[APBoatSpeed]</color>"
}
}
Installation & UI Images
Upload the plugin file to oxide/plugins.
Run the server to generate the config.
Place PNG images for each boat in:
oxide/data/APSystem/APBoatSpeed/Images/
(file name without extension = ImageFileName in config).
The plugin will automatically upload images to FileStorage and display them in the UI.