Ryanlt-ConfettiHeadshots icon

ConfettiHeadshots

Confetti and a party sound when a player is killed by a headshot, like Halo's Confetti skull. Client side, heard and seen only by players who run the mod.

Last updated 5 days ago
Total downloads 17
Total rating 1 
Categories Mods
Dependency string Ryanlt-ConfettiHeadshots-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

HoldfastModding-BepInExPack_Holdfast-5.4.2305 icon
HoldfastModding-BepInExPack_Holdfast

BepInEx pack for Holdfast: Nations At War. Preconfigured and ready to use.

Preferred version: 5.4.2305
Ryanlt-RyLib-1.2.0 icon
Ryanlt-RyLib

Shared UI library for Holdfast client mods. Lets several mods add P menu tabs, a shared Mods tab, a battle map, player and kill log actions, key hints and world or minimap markers without colliding.

Preferred version: 1.2.0

README

Confetti Headshots

Latest release License

A BepInEx client mod for Holdfast: Nations At War, based on the Confetti skull from Halo. When a player is killed by a headshot, confetti bursts from their head and a party sound plays where they fell.

How it works

  • A kill counts when a shot to the head kills the player.
  • Every headshot kill within MaxDistance of your camera sets it off, whoever fired. Only my kills limits it to your own.
  • The sound plays from the victim's head through the same mixer and range as the game's headshot sound. The game's effects volume and hearing distance apply to it.
  • The confetti tumbles and drifts as it falls, settles on the ground or a deck, and is gone after about four seconds.
  • Only players running the mod see and hear it. Nothing changes for anyone else.

Install

Install Confetti Headshots with r2modman or Thunderstore Mod Manager and start the game from the manager. BepInEx and RyLib are installed with it.

To install by hand:

  1. Install BepInExPack_Holdfast into the game folder and start the game once.
  2. Download ConfettiHeadshots.dll from the latest release and RyLib.dll from the RyLib release.
  3. Copy them to BepInEx\plugins\ConfettiHeadshots\ConfettiHeadshots.dll and BepInEx\plugins\RyLib\RyLib.dll in the game folder.

Settings

The settings are under Mods > Confetti Headshots in the P menu, and in BepInEx\config\com.ryannlt.confettiheadshots.cfg. Hovering over a setting shows what it does. Test bursts confetti and plays the sound 3 meters in front of your camera.

Setting Default Effect
Enabled true Turns the mod on or off.
OnlyMyKills false Only your own headshot kills set it off.
Volume 1 Volume of the party sound, from 0 to 1, on top of the game's effects volume. 0 mutes it.
ConfettiAmount 80 Pieces of confetti in each burst, up to 300. 0 turns the confetti off.
MaxDistance 150 Headshot kills farther than this from your camera, in meters, are skipped.

Changes to the config file apply within a second without a restart.

Did it work?

BepInEx\LogOutput.log shows this on launch:

[Info   :ConfettiHeadshots] Ready.

The first burst adds lines for the confetti shader, the sound, and the game sound settings it copied:

[Info   :ConfettiHeadshots] confetti uses the Universal Render Pipeline/Particles/Unlit shader.
[Info   :ConfettiHeadshots] party sound loaded: 112896 samples at 44100 Hz, 1 channel(s).
[Info   :ConfettiHeadshots] party sound uses the game's headshot sound settings: mixer Weapons, Custom rolloff, 10 to 120 m.

Building

Requirements:

  • The game.
  • BepInEx installed in an r2modman profile.
  • RyLib cloned next to this repo and built, so ..\RyLib\RyLib.dll exists.
  • A .NET SDK, for the compiler.
powershell -ExecutionPolicy Bypass -File .\build.ps1

build.ps1 compiles the mod with Sounds\party.wav embedded and copies it to BepInEx\plugins\ConfettiHeadshots\ in the Dev profile. -NoDeploy builds without copying and -ProfileName <name> picks another profile. package.ps1 writes a Thunderstore zip to Package\.

License

MIT. The party sound is a royalty-free sound effect.