{"product_id":"bloodsplatter","title":"Tommygun Blood Splatter","description":"\u003cp\u003e\u003cstrong\u003eCounter-Strike style directional blood splatter for Rust.\u003c\/strong\u003e When a player or NPC is shot, blood is projected onto the wall and floor \u003cem\u003ebehind\u003c\/em\u003e them, along the bullet's travel direction — not a generic puff at the impact point.\u003c\/p\u003e\n\n\u003cp\u003eIt reproduces the GoldSrc\/Source engine blood model: the damage you deal picks a tier, the tier sets how many decals spray and how wide the cone spreads, and a trace finds the surface behind the victim to paint. Bigger hits leave more blood. Headshots leave bigger blood. Kills and heavy hits drop a pool beneath the body.\u003c\/p\u003e\n\n\u003cp\u003eBlood persists — it stays until it ages out (configurable, default 60 seconds) or the live-decal cap recycles it. Every constant is exposed in the config.\u003c\/p\u003e\n\n\u003cdiv style=\"position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden;\"\u003e\n\u003ciframe style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" src=\"https:\/\/www.youtube.com\/embed\/9z-cy6o8bvA\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\n\u003ch3\u003eWhy This Is Different\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDirectional, not decorative\u003c\/strong\u003e — blood lands on the surface behind the target along the shot line, the way a real exit spray would. Most \"blood\" effects are a fixed particle at the hit point.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNo spray-can burst\u003c\/strong\u003e — Rust's spray decal fires an unavoidable particle puff every time a client first sees it. This plugin pre-spawns a pool of hidden decals, lets them burst once out of sight, then only ever \u003cem\u003emoves\u003c\/em\u003e them into kill positions. The result is clean blood with none of the spray-can pop-in that a naive implementation shows on every hit.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eZero dependencies\u003c\/strong\u003e — no ImageLibrary, no client mods, no other plugins required. Drop it in.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWorks on players and NPCs\u003c\/strong\u003e — humans, scientists\/bots, and (optionally) animals, each toggled independently.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDamage tiers:\u003c\/strong\u003e low\/medium\/high hits spray 1\/2\/4 decals with widening cone noise — fully configurable thresholds, counts, and spread\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHeadshot emphasis:\u003c\/strong\u003e headshots scale the splatter larger (1.75x by default)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFloor pools:\u003c\/strong\u003e a blood pool forms under the body on kill, and optionally on any hit over a damage threshold\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCustom blood textures:\u003c\/strong\u003e ships with a CS-style blood pack (7 wall splatters + 3 floor pools) as Steam Workshop skins — swap in your own skin IDs to rebrand\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePersistent:\u003c\/strong\u003e auto-remove timer is configurable (0 = keep until the cap recycles it)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConfigurable triggers:\u003c\/strong\u003e which damage types draw blood (Bullet + Arrow by default), minimum damage, per-victim cooldown so shotgun pellets don't over-spray, and minimum spacing between decals\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDecal sizing:\u003c\/strong\u003e min\/max size range, projection depth, and surface sink so blood reads as embedded rather than floating\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eBuilt for Instanced Servers\u003c\/h3\u003e\n\u003cp\u003eArena, duel, and match servers can isolate blood per instance: the plugin asks a host plugin which \"bucket\" each player belongs to, and a player only sees blood from their own bucket. Players in one duel never see the blood from the duel next door. If no host plugin answers, every player shares one bucket and the plugin behaves like a standard server-wide blood plugin. See the developer hook below.\u003c\/p\u003e\n\n\u003ch3\u003ePerformance\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePooled decals are spawned once and reused — no per-hit entity churn\u003c\/li\u003e\n\u003cli\u003ePool warm-up is throttled across frames so it never stalls a busy server\u003c\/li\u003e\n\u003cli\u003ePools pre-warm around players and around their grid as combat moves\u003c\/li\u003e\n\u003cli\u003eOne-off fallback decals are capped (default 150) and recycled oldest-first\u003c\/li\u003e\n\u003cli\u003eIdle instance pools are reclaimed automatically to free budget\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003chr\u003e\n\u003ch3\u003ePermissions\u003c\/h3\u003e\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003ePermission\u003c\/th\u003e\n\u003cth\u003eDefault\u003c\/th\u003e\n\u003cth\u003eDescription\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003etgbloodsplatter.admin\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eManual grant\u003c\/td\u003e\n\u003ctd\u003eUse the admin console commands below\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/table\u003e\n\n\u003ch3\u003eConsole Commands\u003c\/h3\u003e\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003eCommand\u003c\/th\u003e\n\u003cth\u003eDescription\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003etgbloodsplatter.clear [bucket|all]\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eClear visible blood — all of it, or a single visibility bucket\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003etgbloodsplatter.pools\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eReport every live decal pool and its slot usage (diagnostics)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003etgbloodsplatter.debug [0|1]\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eToggle verbose decision logging at runtime (no reload needed)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/table\u003e\n\n\u003ch3\u003eDeveloper Hook (instanced servers)\u003c\/h3\u003e\n\u003cp\u003eTo isolate blood per match\/instance, implement the visibility hook in your host plugin:\u003c\/p\u003e\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003eHook\u003c\/th\u003e\n\u003cth\u003eDescription\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eOnBloodVisibilityContext(BasePlayer player)\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eReturn an \u003ccode\u003eint\u003c\/code\u003e bucket id for the player. 0 = the shared bucket (no isolation). Players only see blood spawned in their own bucket.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eOnBloodVisibilityContextDestroyed(int ctx)\u003c\/code\u003e\u003c\/td\u003e\n\u003ctd\u003eCall when an instance is torn down so its pooled blood is reclaimed immediately instead of waiting for the idle timer.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/table\u003e\n\n\u003cp\u003e\u003cstrong\u003eSupport\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFor all questions and feedback, dm me (1928tommygun) on my discord at \u003ca href=\"https:\/\/discord.fragmod.com\"\u003ediscord.fragmod.com\u003c\/a\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003cstrong\u003eLicense\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eTOMMYGUN'S EULA – BY USING THIS PLUGIN YOU AGREE TO THE FOLLOWING!\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eCode contained in this file is not licensed to be copied, shared, resold, or modified in any way.\u003c\/li\u003e\n\u003cli\u003eYou may copy the plugin freely to each server instance that your organization \u003cstrong\u003eowns\u003c\/strong\u003e.\u003c\/li\u003e\n\u003cli\u003eDo not share this plugin with other server organizations — they must purchase their own licenses.\u003c\/li\u003e\n\u003c\/ul\u003e\n","brand":"1928tommygun","offers":[{"title":"Default Title","offer_id":49239203250428,"sku":null,"price":15.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0613\/6079\/9996\/files\/01_hero.jpg?v=1783097716","url":"https:\/\/payback.fragmod.com\/products\/bloodsplatter","provider":"Tommygun's Rust Shop","version":"1.0","type":"link"}