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.

Combat Systems

Planted Charges, Mines, and Proximity Devices

Build remote charges, claymores, bouncing betties, and other planted explosives without mixing them into the support-caller docs.

Duck Shot supports a full planted-device lane, and it covers more than one fantasy.

The example files already show three distinct families:

  • remote charges like C4.yml
  • directional proximity devices like CLAYMORE.yml
  • pop-up mines like BOUNCING_BETTY.yml

These all use some of the same planting mechanics, but they should not be authored as if they are the same item.

What the plant system actually does

At the public-authoring level, the planted-device workflow usually starts here:

YAML
projectile:
  type: THROWN_DISPLAY
  explosion:
    plant:
      enabled: true

That turns the item into something that can:

  • land and remain in the world
  • arm or wait
  • show a planted display model
  • detonate on timer, input, or proximity
  • optionally be picked back up

The three main planted-device patterns

Remote charge

Best example:

  • C4.yml

Use when:

  • the player should choose when the blast happens
  • planting location matters
  • retrieving or packing the charge matters

Directional proximity mine

Best example:

  • CLAYMORE.yml

Use when:

  • the item should watch a lane
  • facing direction matters
  • the detonation should feel forward-focused

Pop-up mine

Best example:

  • BOUNCING_BETTY.yml

Use when:

  • the device should spring up before it explodes
  • the danger should read in every direction
  • the planted item is supposed to punish movement through the area

The core planted-device knobs

fuse_ticks

This changes the whole interaction model.

  • negative values are used for remote-detonation patterns
  • positive values are good for armed timers or short trigger delays

sticky

Use this when the charge should stay attached to the contacted surface.

ground_only

Good for mines and anti-personnel devices that should not end up on walls or ceilings.

persistent

Use this carefully. Most fast-session devices should clean themselves up instead of staying forever.

pack_up_delay_ticks

How long the player has to commit before picking the device back up.

display

This decides what the planted device actually looks like in the world:

  • item or block display mode
  • model data
  • scale
  • surface alignment
  • ground-centering
  • throw-facing orientation

proximity

This is the heart of mines and trigger devices:

  • radius_blocks
  • fov_degrees
  • check_interval_ticks
  • ignore_owner
  • require_line_of_sight

Those knobs decide whether the device feels fair, twitchy, directional, or too easy to dodge.

Copyable remote-charge pattern

Use this when you want a true planted charge with manual detonation.

YAML
projectile:
  type: THROWN_DISPLAY
  speed: 1.15
  gravity: true
  explosion:
    power: 4.0
    break_blocks: false
    plant:
      enabled: true
      fuse_ticks: -1
      sticky: true
      held_model_data_idle: 2
      held_model_data_armed: 3
      auto_detonate_after_ticks: 36000
      pack_up_delay_ticks: 8
      pack_look_range_blocks: 6.0
      display:
        mode: ITEM_DISPLAY
        material: COPPER_INGOT
        custom_model_data: 2
        scale: 0.9
        align_to_surface: true
        face_throw_direction: true

Why this works:

  • the charge stays readable in hand and in world
  • the player controls detonation timing
  • pickup and cleanup behavior stay explicit

Copyable directional-mine pattern

Use this when you want a planted lane-control device instead of a manual charge.

YAML
projectile:
  type: THROWN_DISPLAY
  speed: 0.55
  gravity: true
  explosion:
    power: 4.0
    break_blocks: false
    plant:
      enabled: true
      fuse_ticks: 10
      sticky: true
      ground_only: true
      cleanup_after_ticks: 6000
      proximity:
        enabled: true
        radius_blocks: 6.0
        fov_degrees: 120.0
        check_interval_ticks: 5
        ignore_owner: true
        require_line_of_sight: true

Why this works:

  • the facing direction matters
  • the trigger window is readable
  • the device feels like a lane trap, not a universal blast

Copyable pop-up-mine pattern

Use this when the device should jump before detonation.

YAML
projectile:
  type: THROWN_DISPLAY
  speed: 0.55
  gravity: true
  explosion:
    power: 4.0
    break_blocks: false
    plant:
      enabled: true
      fuse_ticks: 10
      sticky: true
      ground_only: true
      proximity:
        enabled: true
        radius_blocks: 4.0
        fov_degrees: 360.0
        check_interval_ticks: 5
        bounce_height: 1.3
        bounce_delay_ticks: 10
        bounce_spin_degrees_per_tick: 24.0

Why this works:

  • the device has a readable pop-up identity
  • the blast reads differently from a claymore
  • the behavior stays understandable from the config

Directional vs omnidirectional devices

Use directional proximity when:

  • you want careful placement to matter
  • the item is supposed to hold a lane
  • flanking should still work

Use omnidirectional proximity when:

  • the device is supposed to punish anyone entering the radius
  • the bounce or airburst moment is part of the fantasy

Pack-up and cleanup matter more than people think

Planted devices feel much better when the player can understand:

  • how to pick them back up
  • how far away they can do it
  • when they self-clean
  • what happens on owner death or quit

Those are not tiny admin details. They are part of the live-server experience.

Do not confuse planted devices with support callers

Some support items also use planted logic, but the purpose is different.

Example:

  • AIRSTRIKE_MARKER.yml uses planted behavior to anchor a support effect

That does not make it a mine or charge. It is still a support caller and should be documented that way.

Common mistakes

Making every planted explosive remote

If the item is supposed to be a mine, let the world or enemy movement trigger it.

Forgetting owner safeguards

Ignoring owner-death or owner-quit behavior can leave devices stranded in ugly ways.

Making proximity too broad

Big radius plus wide FOV plus fast polling often makes a mine feel unfair.