WhiteThunder
Allows players to deploy boomboxes onto RC drones

Supported Games
GameServerKingsGameServerKings
works with

Features

  • Allows players with permission to deploy boomboxes onto RC drones
  • Redirects damage from the boombox to the drone

Known issues

Since the March 2023 Rust update, drones now sway in the wind, but attached entities do not sway. This causes undesirable visuals to players observing a drone that is being controlled. There is no known fix at this time.

Permissions

  • droneboombox.deploy -- Allows the player to deploy a boombox onto a drone using the droneboombox command.
  • droneboombox.deploy.free -- Allows using the droneboombox command for free (no boombox item required).
  • droneboombox.autodeploy -- Drones deployed by players with this permission will automatically have a boombox, free of charge.
    • Not recommended if you want to allow players to deploy other attachments such as auto turrets since they are incompatible.

Commands

  • droneboombox -- Deploys a boombox onto the drone the player is looking at, consuming a boombox item from their inventory unless they have permission for free boomboxes.

Configuration

Default configuration:

{
  "TipChance": 25
}
  • TipChance (0 - 100) -- Chance that a tip message will be shown to a player when they deploy a drone, informing them that they can use the /droneboombox command. Only applies to players with the droneboombox.deploy permission who do not have the droneboombox.autodeploy permission.

Localization

{
  "Tip.DeployCommand": "Tip: Look at the drone and run <color=yellow>/droneboombox</color> to deploy a boombox.",
  "Error.NoPermission": "You don't have permission to do that.",
  "Error.NoDroneFound": "Error: No drone found.",
  "Error.BuildingBlocked": "Error: Cannot do that while building blocked.",
  "Error.NoBoomboxItem": "Error: You need a boombox to do that.",
  "Error.AlreadyHasBoombox": "Error: That drone already has a boombox.",
  "Error.IncompatibleAttachment": "Error: That drone has an incompatible attachment.",
  "Error.DeployFailed": "Error: Failed to deploy boombox.",
  "Error.CannotPickupWithCassette": "Cannot pick up that drone while its boombox contains a cassette."
}

Recommended compatible plugins

Drone balance:

  • Drone Settings -- Allows changing speed, toughness and other properties of RC drones.
  • Targetable Drones -- Allows RC drones to be targeted by Auto Turrets and SAM Sites.
  • Limited Drone Range -- Limits how far RC drones can be controlled from computer stations.

Drone fixes and improvements:

Drone attachments:

  • Drone Lights -- Adds controllable search lights to RC drones.
  • Drone Turrets -- Allows players to deploy auto turrets to RC drones.
  • Drone Storage -- Allows players to deploy a small stash to RC drones.
  • Drone Boombox (This plugin) -- Allows players to deploy boomboxes to RC drones.
  • Ridable Drones -- Allows players to ride RC drones by standing on them or mounting a chair.

Screenshots

Boombox on a drone

Developer API

DeployableBoomBox API_DeployBoombox(Drone drone, BasePlayer player)
  • Deploys a boombox onto the specified drone
  • Returns the boombox entity if successfully deployed
  • Returns null if the boombox was not deployed, due to it already having an incompatible attachment, or due to another plugin blocking it

Developer Hooks

OnDroneBoomboxDeploy

bool? OnDroneBoomboxDeploy(Drone drone, BasePlayer optionalDeployer)
  • Called when a boombox is about to be deployed onto a drone
  • Returning false will prevent the boombox from being deployed
  • Returning null will result in the default behavior

Note: The BasePlayer argument will be null if the container is being deployed automatically (not via the droneboombox command).

OnDroneBoomboxDeployed

void OnDroneBoomboxDeployed(Drone drone, StorageContainer stash, BasePlayer optionalDeployer)
  • Called after a boombox has been deployed onto a drone
  • No return behavior

Note: The BasePlayer argument will be null if the container was deployed automatically (not via the droneboombox command).

OnEntityBuilt

This is an Oxide hook that is normally called when deploying a boombox or other deployable. To allow for free compatibility with other plugins, this plugin calls this hook whenever a boombox is deployed onto a drone for a player.

  • Not called when a boombox is deployed via the API without specifying a player
  • The Planner can be used to get the player or the boombox item, while the GameObject can be used to get the deployed boombox
void OnEntityBuilt(Planner planner, GameObject go)
MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.