Skip to content

Repository files navigation

HitMark

Attacker-only hitmarkers, floating damage numbers, and hitsounds for CS2 — a ModSharp port of cs2-HitMark.

ModSharp CS2 License Stars


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.


Made with ❤️ by yappershq

⭐ Star this repo if you find it useful!

About

Attacker-only hitmarkers, floating damage numbers and hitsounds for CS2 (ModSharp).

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages