Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

228 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prophunt

A full-featured Prop Hunt game mode for Counter-Strike 2, built on ModSharp.

ModSharp CS2 Stars


Prophunt turns CS2 into Prop Hunt: hiders disguise as map props and freeze in place while seekers hunt them down before the round timer runs out. It ships as a small suite of ModSharp plugins — a fat Prophunt.Core game-mode engine plus optional modules for ranks, stats, a points shop, achievements, a player HUD, and more — so you can run only the pieces you want. The game mode is a ModSharp re-implementation of the classic SourceMod Prop Hunt mode.

🧱 Modules

The repo builds 13 plugins. Prophunt.Core is required; the rest are optional and load independently.

Module What it does
Prophunt.Core Round flow, hider/seeker logic, prop disguises, freezing, taunts, third-person camera. Required.
Prophunt.Database Shared database provider (SQLite / MySQL / PostgreSQL) consumed by stats/ranks.
Prophunt.Stats Per-player and per-map stats tracking, recent-round log.
Prophunt.Ranks Premier-style rank (0–99999) with ELO-style deltas and scoreboard rank.
Prophunt.Ranks.StatsExtension Bridges rank data into the stats module.
Prophunt.Achievements Unlockable achievements with toast notifications.
Prophunt.PlayerHUD Center-screen HUD (countdown, hiders left, help text, point changes).
Prophunt.HidingSpots Per-map curated prop / hiding-spot models.
Prophunt.Shop Points shop with built-in hider and seeker items.
Prophunt.Shop.Flash Example external shop item — Flashbang.
Prophunt.Shop.Decoy External shop item — Reveal Decoy.
Prophunt.Shop.Tracker External shop item — Hider Tracker.
Prophunt.Streamer Streamer-mode privacy helpers.

🚀 Install

Build (see Build), then copy the build output into your ModSharp install (<sharp> = your sharp directory):

From To
.build/modules/<Module>/ <sharp>/modules/<Module>/
.build/shared/<Module>.Shared/ <sharp>/shared/<Module>.Shared/
.build/configs/prophunt/ <sharp>/configs/prophunt/
.build/soundevents/soundevents/ <sharp>/soundevents/soundevents/
.build/locales/prophunt.json <sharp>/locales/prophunt.json

Copy only the modules you want — Prophunt.Core is the minimum. Stats/ranks/achievements additionally need Prophunt.Database. The *.Shared interface assemblies must live in <sharp>/shared/ so cross-plugin consumers can resolve them.

Then exec the server cfg from your server.cfg:

exec prophunt.cfg

Restart the server (or change map) to load.

⌨️ Commands

Every command is exposed as a chat command and as a ms_<name> console command. Chat aliases and admin permissions are configured in configs/prophunt/commands.jsonc.

Public

Command Aliases Description
!top top10, leaderboard Top 10 leaderboard
!rank stats Your rank and stats
!mapstats Stats for the current map
!recent lastround Recent round results
!achievements ach Your achievements
!wp ws Shop / weapon-points menu
!hud Toggle the HUD
!hide prop, model Open the prop/model selection menu
!tp thirdperson, third Toggle third-person camera
!freeze Freeze in place as a prop
!taunt t, whistle, w Play a taunt
!ct seek Join the seeker team
!whoami Show your current role
!rotatestep rotstep, rstep Cycle prop rotation step size
!pickprop Pick the prop you're aiming at (when enabled)

Admin-gated

Command Aliases Permission
!adminprop prophunt:pick_any
!resetstats prophunt:admin
!setrank prophunt:admin
!givepoints prophunt:admin
!givereroll giverer, giverr prophunt:admin
!setrerolls setreroll prophunt:admin
!phtaunt forcetaunt, ftaunt prophunt:admin
!phreroll forcereroll, freroll prophunt:admin
!phtoggletaunts disableforcetaunts, tauntstoggle prophunt:admin
!listmodels, !scanmodels, !propinfo, !gotoprop, !propdebug prophunt:debug

⚙️ Configuration

Tunables are ModSharp auto-exec ConVars (prefix ph_), written to a generated cfg on first run. A selection:

ConVar Default Meaning
ph_enabled true Enable Prophunt
ph_hide_time 30 Hide time in seconds before seekers are released
ph_auto_freeze_time 10 Seconds of no movement before auto-freeze
ph_min_players 2 Minimum players to start a round
ph_hider_models 5 Random models shown in the selection menu
ph_hider_rerolls 3 Max rerolls per round (RELOAD key)
ph_prop_damage 25 Base damage per hit on props
ph_player_prop_pick false Allow any hider to pick any prop via !pickprop
ph_points_seeker_kill 20 Points for killing a hider
ph_forced_taunt_enabled true Scheduled forced taunts during hunting
ph_forced_taunt_period 60 Seconds between scheduled forced taunts
ph_chat_prefix [PropHunt] Chat prefix (supports {color} placeholders)

Many more cover wall-freeze geometry, hider/seeker speeds, taunt economy and overload, third-person camera, HUD elements, and glow visibility — see Prophunt.Core/Configuration/ProphuntConfiguration.cs for the full list with ranges. Per-map prop sets live in configs/prophunt/maps/.

🔧 How it works

At round start players split into hiders (T) and seekers (CT). Hiders pick a prop model and can freeze in place to blend in; seekers are held for ph_hide_time seconds, then released to find and destroy the disguised hiders before the round timer expires. A taunt economy nudges hiders to reveal their position (scheduled and forced taunts, with an overload punishment for spamming). Stats, ranks, achievements, and the points shop are layered on as separate plugins that talk to Prophunt.Core through shared interfaces. Outstanding gameplay parity items vs. the original mode are tracked in docs/TODO.md.

🧩 Public API

Modules talk to each other through *.Shared interface assemblies, resolved in OnAllModulesLoaded. For example, an external shop item plugin consumes the shop service:

var shop = sharpModuleManager
    .GetOptionalSharpModuleInterface<IShopService>(IShopService.Identity)?.Instance;

Prophunt.Shop.Flash, Prophunt.Shop.Decoy, and Prophunt.Shop.Tracker are working examples of registering custom shop items against this API. Other shared contracts: IProphuntShared, IRankService, IStatsService, IAchievementService, and IDatabaseProvider.

📦 Build

dotnet build Prophunt/Prophunt.slnx -c Release

Outputs land under Prophunt/.build/:

  • modules/<Module>/<Module>.dll — the loadable plugins
  • shared/<Module>.Shared/ — shared interface assemblies
  • configs/, soundevents/, locales/ — runtime assets

🙏 Credits

A ModSharp re-implementation of the classic SourceMod Prop Hunt game mode (originally by Zipcore), with gameplay reference from community Prop Hunt VScript implementations.


Made with ❤️ by yappershq

⭐ Star this repo if you find it useful!

About

Prop Hunt gamemode suite for CS2 — core engine plus ranks, stats, shop and HUD modules.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages