
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.
Weapon Authoring
Learn the actual weapon-file structure, support files, and player-side feedback systems.
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.
Combat Systems
Tune firing, impacts, special utility items, and the Particles v2 effect stack.
Server Operations
Handle permissions, runtime tools, integrations, and real troubleshooting on live servers.
Duck Shot does not just support "right click to shoot." It also has a real input layer for utility items, alternate actions, and support tools.
This is the page to read when you want an item to:
- toggle a flashlight
- cycle fire mode
- open a Sky Select flow
- plant a device
- consume itself like a med kit or injector
Start with the global input rules
Before you tune one special item, make sure the plugin-wide input rules already make sense in config.yml.
The most important global knobs are:
reload_triggerinput.pick_block.*input.extra_methods.swap_hands.*input.extra_methods.drop.*input.interactable_guard.*input.semi_policyinput.hold_group_millisinput.aim_toggle_debounce_millis
Why this matters:
- if middle mouse is disabled globally, a middle-mouse alt action will feel dead
- if the interactable guard is too aggressive, utility items can feel like they randomly fail
- if reload and alternate-input lanes are fighting over the same key, the item will feel confusing even when the YAML is valid
The weapon-side alt action block
Duck Shot supports a per-item alternate action block under input.bindings.alt_action.
Real example file from G17_FLASHLIGHT.yml:
input:
bindings:
alt_action:
bind: PICK_BLOCK_MMB
action: TOGGLE_FLASHLIGHT
cooldown_ticks: 4Interpretation:
- pressing middle mouse while holding the weapon does not just do a generic click
- it calls a specific alternate behavior
- the short cooldown prevents spam or accidental double toggles
Supported alternate binds
From the current Duck Shot source, the supported alternate bind values are:
PICK_BLOCK_MMBPICK_BLOCK_DATA_CTRL_MMBSWAP_HANDS_FDROP_Q
Good rule of thumb:
- use
PICK_BLOCK_MMBfor premium alternate actions like flashlights or fire-mode cycling - use
SWAP_HANDS_ForDROP_Qonly when that control lane is not already busy on your server
Supported alternate actions
The built-in alternate action values are:
TOGGLE_FLASHLIGHTCYCLE_FIRE_MODEOPEN_SKY_SELECTPLACE_PLANTABLE
That is why the alt-action system is useful across multiple item families:
- firearms can cycle modes or toggle tactical modules
- support tools can open target selection
- stations and devices can plant cleanly without turning into awkward fake guns
When to use an alt action vs a separate item
Use an alt action when the player should feel like they are still using one item with multiple functions.
Good examples:
- a pistol with an attached flashlight
- a rifle that cycles between
SEMI,BURST, andAUTO - a target designator that opens a call-in interface
Use a separate item when the behavior is really a different tool.
Good examples:
- med kit vs firearm
- airstrike marker vs sidearm
- deployable station vs rifle
If the player would describe it as "one tool with a secondary function," alt action is usually the right fit.
If the player would describe it as "a different piece of equipment," make it a separate item.
Consumables are first-class Duck Shot items
Duck Shot includes a real consumable system. It is not just a fake gun with show_ammo: false.
Example example:
consumable:
enabled: true
warmup_ticks: 20
cooldown_ticks: 20
consume_item: true
allow_self: true
allow_others: true
target_range: 3.0
heal_hearts: 4.0
effects:
- type: REGENERATION
duration_ticks: 60
amplifier: 0This gives you a proper support-item workflow:
- begin use
- wait through a warmup
- heal or apply effects
- consume the item if appropriate
- enforce a cooldown
The consumable knobs that matter most
warmup_ticks
This is the commitment window before the item resolves.
- lower values feel snappy and arcade-like
- higher values make the player commit and create punish windows in combat
cooldown_ticks
This controls how quickly the same item can be used again.
- low cooldowns feel like spam tools
- higher cooldowns make the item feel more tactical
consume_item
If true, the stack or item is actually spent.
Use this for:
- single-use injectors
- one-time emergency kits
- disposable battlefield support items
Turn it off for:
- reusable tools with cooldown-based balance
allow_self and allow_others
These decide whether the item is self-use only or can help teammates too.
That matters a lot for role design:
- med injector for yourself
- bandage usable on an ally
- support tool for both
target_range
This is one of the clearest "feel" knobs in the whole consumable stack.
- shorter range makes the item feel deliberate and intimate
- longer range turns it into more of a battlefield support tool
heal_hearts, full_heal, and absorption
These decide what kind of sustain item you are really building.
Use:
heal_heartsfor predictable direct healingfull_healfor rare or admin-heavy rescue tools- absorption for temporary buffer instead of raw permanent healing
Potion-style follow-up effects
Duck Shot consumables can also add potion effects after the heal resolves.
That is where support items stop being "just health" and start becoming class tools.
Good examples:
- a med kit that heals and adds a short regeneration tail
- a combat stim that sacrifices raw healing for speed or resistance
- a revive-style injector that grants brief absorption
A clean support-item recipe
Bandage
Use when:
- the player should stabilize quickly
- healing is modest
- the item is common
Recommended feel:
- short warmup
- short cooldown
- small heal
- maybe one gentle regeneration effect
Med kit
Use when:
- the player should stop and commit
- the reward is stronger
- the item should feel more valuable
Recommended feel:
- longer warmup
- larger direct heal
- stronger cooldown
Team injector
Use when:
- the player is supporting another person
- range and ally-permission matter
- self-use is optional, not mandatory
Recommended feel:
allow_others: true- real
target_range - action-bar text that clearly says what the item does
Action-bar readability for utility items
Do not let consumables pretend to be rifles.
The example file gets this right:
action_bar:
enabled: true
show_ammo: false
template: '<gray>{weapon}</gray> <dark_gray>|</dark_gray> {aux}'
aux_text: '<gray>RMB consume</gray>'That is a good pattern because it tells the player what the item is for immediately.
Good aux_text examples:
RMB consumeRMB heal allyMMB toggle lightMMB cycle fireRMB place / MMB confirm
A user-friendly alt-action recipe
If you are building a tactical pistol with a flashlight:
- keep the core firearm setup normal
- bind
input.bindings.alt_action - point it to
TOGGLE_FLASHLIGHT - expose clear action-bar or lore guidance
- keep the cooldown short so it feels responsive
If you are building a support designator:
- do not overload the base fire loop unless you really need to
- use a clear alternate action or dedicated flow
- make the action-bar text explain the next step
- keep confirm and cancel behavior obvious
Common mistakes
Making an alt action do too much
If middle mouse changes fire mode, toggles optics, and opens another flow depending on state, the item stops feeling readable.
Using the wrong bind lane for your server
If your server already trains players to use Q for reload, do not reuse it for a second critical action on a different item family unless that design is extremely deliberate.
Forgetting the player-side hint
Even a perfect config feels broken if the player never learns the control.
Building consumables like fake firearms
If a support item still looks like a gun HUD, players have to mentally translate what the item is doing instead of understanding it instantly.

