Ungodly Ravenfield Installation guide

10 The mods

Ungodly Ravenfield Gore

Blood that never fades. Limbs that come off. Bodies that burst. Corpses that stay on the field after their owner respawns. Pools that spread, and blood sprayed across the wall behind the man you just shot.

And — unusually for a gore mod — it does less work per frame than the blood system it replaces.

Version
1.0.1

Hotkey
F4 in a match

Settings
85 across 9 tabs

File
UngodlyRavenfieldGore.dll

Download v1.0.1 Drive mirror How to install

Permanent blood#

Ravenfield stores decals in a ring buffer and silently paints over the oldest splatter once it runs out of room. The buffer size comes from the graphics quality dropdown, and even on maximum quality you get roughly sixteen thousand marks before the battlefield starts quietly cleaning itself.

This mod replaces that storage with chunked buffers that keep allocating instead of overwriting. Blood from the first minute of a match is still there in the last.

Harbour, after the fightGameplay
Harbour, after the fight Blood laid down on the jetty minutes earlier, still exactly where it landed. In stock Ravenfield most of this would have been painted over by the time the fight moved on.

It is also faster than the base game#

This is not a "gore mod that costs you frames" trade, and the reason is a genuine inefficiency in the stock system.

Ravenfield's decal system re-uploads its entire vertex, normal and UV arrays to the GPU on any frame where a single new decal appeared — roughly three quarters of a megabyte per frame during a firefight, for the sake of one new quad. The chunked design here only re-uploads the one chunk that actually changed, and never re-uploads UVs at all, because the UV pattern is constant and assigned once at chunk creation. Index buffers are 32-bit, which is what removes the 65,535-vertex ceiling the stock code is boxed into.

Blood droplets get the same treatment. Ravenfield creates one GameObject per droplet, each with a MonoBehaviour whose Update() runs every frame until it destroys itself. This mod uses flat arrays and a single loop — no GameObjects, no components, no allocation after startup — and renders through Graphics.DrawMeshInstanced, drawing up to 1,023 droplets per call.

Dismemberment, built from scratch#

Ravenfield has no dismemberment system at all, so this one is built from nothing. The interesting part is how, because the obvious approaches all fail on this particular game.

A soldier renders through a SkinnedMeshRenderer driven by a bone hierarchy. This mod takes a copy of that renderer's mesh and deletes the triangles belonging to the severed limb, identified from the mesh's own bone weights. A vertex belongs to the limb when at least half its skin weight sits on the severed bone or any of its descendants, and a triangle is dropped only when all three of its vertices qualify — which leaves the transitional ring attached and reads as a flat capped stump rather than a hole punched in the shoulder.

The skeleton is never written to. Not once.

Why that matters — the 1.0.1 fix#

Version 1.0.0 removed a limb by collapsing its bone's scale to almost zero, dragging every vertex weighted to that bone into the joint. That reasoning is correct for a passive skeleton, and wrong for Ravenfield's, because Ravenfield uses powered ragdolls.

Every ragdoll bone carries a rigidbody, a configurable joint and a collider, and the game actively drives each joint every frame with a spring of 1000. Give one of those transforms a near-zero scale and its local matrix becomes effectively singular: the joint anchors collapse, the collider degenerates, and a spring of 1000 computes corrective torque from a basis that no longer has meaningful axes. PhysX answers with NaN and enormous forces, and the bone is thrown to a vast coordinate.

The skinned mesh then does exactly what it is designed to do — interpolate between the bones it was handed — and stretches the soldier from his body all the way out to that runaway bone. That was the map-spanning sheet and the needle-thin spikes across the sky in 1.0.0.

It is also completely reversible, which matters because Ravenfield reuses the same actor object forever. The original mesh is recorded and restored on respawn, so a soldier who lost an arm is whole again when he comes back. Cut variants are cached per skin and per set of severed bones, so a whole match typically builds a handful.

Corpses that stay#

Bodies normally vanish on respawn because the corpse and the newly spawned soldier are the same object — Ravenfield allocates every actor once at match start and reuses it forever.

This mod snapshots the ragdoll at the last moment the pose still exists, using SkinnedMeshRenderer.BakeMesh(). The snapshot becomes a standalone corpse at the same world transform with the same materials, and the game is then free to recycle the actor as it always did.

What is on each tab#

Ungodly Ravenfield Gore — the Blood tabIn-game panel
Ungodly Ravenfield Gore — the Blood tab Press F4 in a match. The counters along the bottom show droplets in the air, chunks, bodies, stored stains and current frame time — so you can see the cost of a setting as you move it.
TabCovers
GeneralMaster switch, hotkey, panel scale, the live counters and the Wipe Blood / Clear Gore buttons
BloodDrops per hit, drop size, lifetime, launch speed, spread, weight, mist puffs and size, extra blood from heavy damage
PermanenceDecal chunk count and memory ceiling, surface fit checking, how long the history runs before oldest-first recycling begins
ImpactsWall spray, arterial spray, bullet-hole cratering, impact mist, damage-scaled blood volume
GoreDismemberment thresholds, full body burst, chunk counts and variants, gib blood trails, stump bleeding
CorpsesLeaving bodies behind after respawn, corpse limits and lifetime, blood pools that spread under a resting body
RagdollsForce multipliers separated into general hits, the killing blow, and explosions
ScreenDamage vignette and screen-space blood effects
PerformanceMaximum drops in flight, droplet collision interval, blood detail distance, and the adaptive governor

Every numeric setting has a slider and a typed number field, plus a per-setting reset arrow. The search box spans all nine tabs at once. Live counters along the bottom show droplets in the air, chunks, bodies, stains stored, decal buffer fill percentage and current frame time — so you can watch the cost of a setting as you move it.

Everything else it adds#

Wall spray

A cone of raycasts out the far side of the victim, putting a red starburst on whatever was behind them. The highest impact-per-cost feature in the mod.

Arterial spray

Follows the body as it falls, painting a trail down a hillside rather than a single mark where the hit landed.

Blood pools

Spread outward under a resting body on a square-root curve, tracking the ragdoll so they form where it came to rest rather than where it was hit.

Damage-scaled blood

Ravenfield stops adding blood past about 160 damage, so a tank shell and a rifle round produce identical mess. This adds the difference back in proportion.

Procedural gibs

Flying chunks are meshes generated at runtime — low-resolution spheres displaced by a deterministic hash, in four variants so a bursting body does not repeat the same silhouette fourteen times. No asset bundle, so nothing breaks when Ravenfield updates its engine.

An adaptive governor

Watches real frame time and quietly scales back droplets and chunk spawning when the game is struggling, then restores them when it recovers. It never touches stains, corpses or pools — only the expensive moving parts.

Island assaultGameplay
Island assault Blood marking a contested approach. Everything visible here persists for the rest of the match.

Honest limitations#

Written up here rather than left to be discovered:

  • "Permanent" means "until the buffer is genuinely exhausted." With the default 24 chunks that is roughly fifty thousand stains per blood colour. Past that it recycles oldest-first rather than refusing to draw blood, and says so once in the log. Raise Maximum decal chunks for a longer history.
  • Dismemberment is cosmetic. It does not change hitboxes, damage or AI behaviour in any way. A soldier missing both legs is exactly as dangerous as one who is not.
  • Limb cutting needs a readable mesh. Deleting triangles requires CPU-side access to the mesh data. If a custom skin's mesh is not readable, the mod logs that once and leaves the body whole — the kill still throws a chunk, a blood burst and a bleeding stump, so it does not look like nothing happened. That is deliberate: every fallback that would still remove the limb involves mutating the skeleton, which is exactly the thing 1.0.1 exists to stop doing.
  • Accessory hiding is proximity-based. A helmet is hidden when its bounds centre sits within 28 cm of the severed joint. Reliable for heads, where essentially all Ravenfield accessories live, but an unusually large custom accessory anchored near a shoulder could be hidden by an arm coming off.
  • Chunks are physics objects. Blood droplets that strike a chunk are absorbed without leaving a stain, because the mod deliberately refuses to paint decals onto moving rigidbodies. Correct behaviour, but it does mean a pile of gore slightly shadows the ground beneath it.
  • Corpse meshes are baked at unit scale. If a future update or a custom skin applies a non-unit scale to the ragdoll renderer, corpses could come out the wrong size. Turn off Leave bodies behind after respawn if you ever see that.

What was verified, and what was not#

Reconnaissance
Done against the real decompiled Assembly-CSharp from the shipped game — 1,844 files — rather than against assumptions.
Patch targets
All 54 Harmony targets, accessed fields, called methods and Unity API members machine-checked with Mono.Cecil against the real assemblies. All 54 resolve.
Overlap
Patch-target overlap with the AI and Enhanced mods was checked explicitly and is zero.
Config
The shipped .cfg is generated by parsing the settings source, so the file, the panel and the plugin cannot disagree about defaults, ranges or descriptions.
Not verified
The mod had not been run inside Ravenfield at the time of writing, because that requires the game and a GPU. Everything above is static verification — treat your first launch as the real test, and the BepInEx console will report exactly which hooks applied.

Troubleshooting → Downloads