Skip to main content
Duck Shot wiki

Wiki

Duck Shot Wiki

Public setup, weapon authoring, combat systems, particles, admin help, and troubleshooting for Duck Shot.

Getting Started

Start here for installation, first boot, and your first working Duck Shot weapon.

Example Library and Pack Planning

Separate the public starter pack, the deeper example library, and your own server-only content so the docs stay honest and useful.

Server Operations

Handle permissions, runtime tools, integrations, and real troubleshooting on live servers.

Server Operations

Ecosystem Bridges, Airdrops, WorldGuard, and Vehicle MC

Understand the real cooperation path between Duck Shot, Airdrops, WorldGuard, and Vehicle MC without mixing those concerns into one giant weapon file.

integration bridges, Airdrops, WorldGuard, and Vehicle MC

Duck Shot already exposes real ecosystem hooks. The plugin is not isolated to one folder of weapon files. It can cooperate with other systems when you wire the support files correctly.

The main public bridge file is integrations.yml, and the default config already shows three important lanes:

  • MCWAR Airdrops cooperation
  • WorldGuard safety guards
  • the wider combat path that cooperates with Vehicle MC

The global integration file

At the top level, integrations.yml is intentionally safe to ship even when the other plugin is absent.

YAML
airdrops:
  enabled: true
  plugin_names:
    - "MCWAR-Airdrops"
  default_mode: RANDOM_WEIGHTED
 
world_guard_guards:
  enabled: true
  plugin_names:
    - "WorldGuard"

That matters because Duck Shot fails open or disables the bridge gracefully instead of breaking the whole weapon stack when the integration target is not installed.

Airdrops integration

The default config already shows a real Airdrops bridge:

YAML
airdrops:
  enabled: true
  plugin_names:
    - "MCWAR-Airdrops"
  default_mode: RANDOM_WEIGHTED
  default_crate_type: ""
  actionbar_feedback:
    enabled: true
    template: "<gold>Airdrop Called</gold> <gray>{mode}</gray> <white>{crate}</white>"
    duration_ticks: 45

Interpretation:

  • Duck Shot can detect the airdrops plugin by name
  • a weapon can opt into multiple trigger modes
  • the bridge can show player feedback without you building that UI by hand

Weapon-level Airdrops behavior

The actual weapons can opt into the bridge individually.

Airstrike marker style integration

YAML
integrations:
  airdrops:
    enabled: false
    mode: CALLIN_TORCH
    crate_type: ""
    trigger_on_block_hit: true
    trigger_on_entity_hit: true
    require_tagged_projectile: true
    suppress_duckshot_impact_flow: true

Interpretation:

  • the weapon can be an Airdrops trigger item
  • block hit and entity hit can both be valid triggers
  • you can require a tagged projectile for safety
  • you can either keep or suppress the normal Duck Shot impact path

Flare-gun style integration

YAML
integrations:
  airdrops:
    enabled: true
    mode: CALLIN_FLAREGUN
    trigger_on_block_hit: true
    trigger_on_entity_hit: true
    require_tagged_projectile: true
    suppress_duckshot_impact_flow: false

This is the stronger public pattern when you want:

  • normal flare visuals
  • but upgraded crate-call behavior when the loaded ammo is the right tagged item

WorldGuard guards

The WorldGuard side is a true safety layer, not a cosmetic integration.

The example structure:

YAML
world_guard_guards:
  enabled: true
  register_custom_flags: true
  default_allow_if_unset: true
  ignore_player_bypass: false
  flags:
    use_weapon: "duckshot-use-weapon"
    shoot: "duckshot-shoot"
    explosion_block_damage: "duckshot-explosion-block-damage"
    projectile_entity_damage: "duckshot-projectile-entity-damage"

This lets you separate:

  • whether a weapon can be used at all
  • whether shooting is allowed
  • whether explosions may break blocks
  • whether projectile impacts can hurt entities
  • whether impact FX can spawn

That is exactly the kind of split you want on a production server.

Duck Shot and Vehicle MC cooperation

The cross-plugin contract continues on the Vehicle MC side in duckshot_bridge.yml.

Vehicle MC's current bridge file exposes:

YAML
duckshotBridge:
  enabled: true
  doubleHitGuardTicks: 4
  duckshotToVehiclemc:
    readProjectiles: true
    readExplosions: true
    readPlantedAndLoose: true
    defaultExplosionDamage: 45.0
    defaultExplosionRadius: 4.0
  vehiclemcToDuckshot:
    enabled: true
    routeExplosiveWeapons: true

Interpretation:

  • Duck Shot projectiles can be read into vehicle damage
  • Duck Shot explosive objects can damage vehicles
  • Vehicle MC can route armed-vehicle behavior back into the wider combat stack

This is why the two plugins should be documented as cooperating systems, not as unrelated downloads.

Use Duck Shot for:

  • weapon authoring
  • projectile behavior
  • airstrike marker logic
  • support items and call-in tools

Use Vehicle MC for:

  • vehicle instance state
  • vehicle HP and components
  • driver and passenger workflow
  • vehicle-specific UI and service infrastructure

Use the bridge when:

  • the gunfire must affect vehicles
  • the vehicle should behave like part of the same combat ecosystem

Common design mistakes

Turning every integration into one giant weapon file

Keep global discovery and safety in integrations.yml, then let the individual weapon opt in only where it needs to.

Mixing region safety into weapon content

WorldGuard permissions belong in the guard file, not buried across a hundred weapons.

Forgetting feedback

If an Airdrops trigger succeeds, show the player something. The example action-bar feedback block is already designed for that.

Suggested order

  1. enable the global bridge in integrations.yml
  2. confirm the target plugin name is correct
  3. wire one weapon into the bridge
  4. test both block-hit and entity-hit behavior
  5. add region guards before public rollout