About APBoatSpeed
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.
