YappersHQ.HitMark.Shared 1.0.1

dotnet add package YappersHQ.HitMark.Shared --version 1.0.1
                    
NuGet\Install-Package YappersHQ.HitMark.Shared -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="YappersHQ.HitMark.Shared" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="YappersHQ.HitMark.Shared" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="YappersHQ.HitMark.Shared" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add YappersHQ.HitMark.Shared --version 1.0.1
                    
#r "nuget: YappersHQ.HitMark.Shared, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package YappersHQ.HitMark.Shared@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=YappersHQ.HitMark.Shared&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=YappersHQ.HitMark.Shared&version=1.0.1
                    
Install as a Cake Tool

<div align="center"> <h1><strong>HitMark</strong></h1> <p>Attacker-only hitmarkers, floating damage numbers, and hitsounds for CS2 — a ModSharp port of cs2-HitMark.</p> </div>

<p align="center"> <a href="https://github.com/Kxnrl/modsharp-public"><img src="https://img.shields.io/badge/framework-ModSharp-5865F2?logo=github" alt="ModSharp"></a> <img src="https://img.shields.io/badge/game-CS2-orange" alt="CS2"> <img src="https://img.shields.io/gitlab/license/cs2-server-plugins/cs2-hitmark?gitlab_url=https%3A%2F%2Fgitlab.com" alt="License"> <img src="https://img.shields.io/gitlab/stars/cs2-server-plugins/cs2-hitmark?gitlab_url=https%3A%2F%2Fgitlab.com" alt="Stars"> </p>


HitMark spawns a particle hitmarker at the bullet impact point, floating per-digit damage numbers, and an optional hitsound — all rendered only for the attacker on each hit, with separate styling for headshots vs bodyshots. It's a ModSharp port of DearCrazyLeaf/cs2-HitMark.

🚀 Install

Copy the build output into your ModSharp install (<sharp> = your sharp directory):

From To
.build/modules/HitMark/ <sharp>/modules/HitMark/
.build/shared/HitMark.Shared.dll <sharp>/shared/HitMark.Shared.dll
.build/locales/hitmark.json <sharp>/locales/hitmark.json
.build/particles/ your map/workshop particle path

Restart the server (or change map) to load. Requires the LocalizerManager module (ships with ModSharp).

The repo does not bundle .vpcf particle assets — the upstream plugin doesn't ship them publicly. Damage numbers default to the particles/digits_x/digits_x.vpcf atlas; supply your own hitmark particles and point hm_headshot_particle / hm_bodyshot_particle at them.

⌨️ Commands

Per-player toggles, stored client-side:

Command Aliases Description
hitmark hm Toggle hitmark particles on/off
hitsound hm_sound Toggle hitsound on/off
dmg damage Toggle floating damage numbers on/off
hmtest — Spawn the configured hitmark particle at your crosshair (for tuning)

⚙️ Configuration

ConVars are written to <sharp>/configs/hitmark.cfg on first run (one // help line per setting); edit values there and they're re-applied on every load.

ConVar Default Meaning
hm_enabled true Master enable/disable
hm_headshot_particle "" Particle system for headshot hitmark
hm_bodyshot_particle "" Particle system for bodyshot hitmark
hm_headshot_duration 0.2 Headshot particle lifetime (seconds)
hm_bodyshot_duration 0.2 Bodyshot particle lifetime (seconds)
hm_distance 60 Crosshair projection distance (units) for the hitmark
hm_hitmark_glyph_cp 3 digits_x atlas frame (CP32, 1-indexed) used as the hitmark glyph
hm_hitmark_scale 0.04 Hitmark particle scale (CP34)
hm_hitmark_yoffset 0.0 Hitmark vertical screen offset (DataCP33 Y)
hm_hitmark_color 255 255 255 Bodyshot hitmark color R G B (CP16)
hm_hitmark_color_headshot 255 0 0 Headshot hitmark color R G B (CP16)
hm_damage_digits_enabled true Show floating damage numbers
hm_damage_particle particles/digits_x/digits_x.vpcf digits_x atlas .vpcf for damage numbers
hm_damage_ring_radius 3.5 Radius of the 8-point damage ring around the crosshair (DataCP33 units)
hm_damage_scale 0.04 Damage digit scale (CP34)
hm_damage_color 0 255 255 Damage number color R G B
hm_damage_duration 0.6 Damage number lifetime (seconds)
hm_damage_spacing 1.1 Spacing between damage digits (DataCP33 units)
hm_headshot_sound "" Sound event played to attacker on headshot (empty = off)
hm_bodyshot_sound "" Sound event played to attacker on bodyshot (empty = off)
hm_max_particles_per_player 30 Max simultaneous hitmark particles per player (0 = unlimited)

🔧 How it works

On each damage event the plugin spawns view-anchored particle systems for the attacker only — the hitmark and damage digits are driven by control points on the digits_x atlas (CP16 color, CP32 atlas frame, CP34 scale, DataCP33 placement). Headshots and bodyshots use independent particle, color, sound, and lifetime settings, and a per-player cap limits how many hitmark particles can exist at once.

🧩 Public API

Other plugins consume IHitMarkShared (resolve in OnAllModulesLoaded) to veto rendering for specific clients via the CanShowFor event:

var api = sharpModuleManager
    .GetOptionalSharpModuleInterface<IHitMarkShared>(IHitMarkShared.Identity)?.Instance;

// Return false to suppress HitMark visuals for this client.
api!.CanShowFor += client => /* your condition */ true;

📦 Build

dotnet build -c Release

Outputs .build/modules/HitMark/HitMark.dll, .build/shared/HitMark.Shared.dll, and .build/locales/hitmark.json.

🙏 Credits

Port of DearCrazyLeaf/cs2-HitMark by DearCrazyLeaf — all credit for the original concept, particle design, and feature set belongs to them. Licensed under MIT.


<div align="center"> <p>Made with ❤️ by <a href="https://gitlab.com/cs2-server-plugins">yappershq</a></p> <p>⭐ Star this repo if you find it useful!</p> </div>

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 103 8/10/2026
1.0.0 116 8/1/2026