offmylawn-JohnFister icon

JohnFister

Play ULTRAKILL as John Fister, Fister's bare-fists brawler: his body, third-person camera, full move set, effects and sounds. F7 toggles back to V1.

Last updated 2 hours ago
Total downloads 93
Total rating 0 
Categories Gameplay AI Generated
Dependency string offmylawn-JohnFister-1.0.9
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305

README

John Fister for ULTRAKILL

Play ULTRAKILL as John Fister, the bare-fists brawler from Fister. This BepInEx plugin replaces V1 with John's six-box body and outfit, a third-person camera, his movement and his full bare-fists move set, with the original effects and sounds. It runs Fister's own player simulation at 60 Hz (translated line by line and pinned to Fister's numbers by its acceptance tests), and maps its punches, launches and parries onto ULTRAKILL's enemies.

Requirements

  • ULTRAKILL (Steam, current build).
  • BepInEx 5 for Mono (BepInExPack 5.4.2305 from Thunderstore, the community standard). r2modman / Thunderstore Mod Manager installs it for you.

Install

  • Mod manager (recommended): install "JohnFister" with r2modman or Thunderstore Mod Manager and start the game through it.
  • Manual: install BepInExPack into the ULTRAKILL folder (winhttp.dll, doorstop_config.ini and BepInEx\ next to ULTRAKILL.exe), run the game once, then copy this package's JohnFister.dll and assets folder into BepInEx\plugins\JohnFister\.

Turn it on and off

John Fister mode is on when a level starts. (Not in the new-player intro and tutorial, the menus or the credits: those need V1, and John comes back in the first level.) Press F7 to switch back to V1 and F7 again to be John. Switching back restores V1 completely: first-person camera, arms, weapons, weapon icons, dash/jump/slide, gravity and the stamina bar.

While John Fister is on:

  • the camera is behind and above John, looking exactly along your aim (the game's own crosshair is the aim);
  • V1's weapons, arms, hook and weapon icons are put away, and jump, dash, slide and slam do nothing;
  • the stamina bar shows John's punch charge (three bars = full charge);
  • two thin arcs around the crosshair show the parry (left, blue) and grab (right, yellow) cooldowns: each fills from the bottom as it recharges and flashes when the move is ready again; nothing is drawn while both are ready. (Fister itself only flashes the ready moment in these colours; the arcs are this port's addition);
  • the camera never goes through walls or ceilings: it is pulled in front of anything behind John (and lowered under low ceilings), eases back out, and John turns see-through when it gets close to him. The screen centre is still the aim at any camera distance;
  • your health bar is John's health (Fister's 200 HP is ULTRAKILL's 100; enemies hit as hard as usual).

Controls

John uses your own ULTRAKILL bindings (rebinding and gamepads carry over):

Action Binding
Move Movement keys (WASD)
Aim Mouse / right stick The screen centre is the aim
Fist Fire 1 (left mouse) Tap for a quick jab. Hold to charge, release to punch
Parry Fire 2 (right mouse) Blocks a hit; reflects projectiles; heals you
Grab / throw / air tech Punch key (F), or Fire 1 + Fire 2 together
Toggle John Fister F7 Configurable
Pick up / place / throw items Punch key (F) near a skull, key, torch... Same key as grab: items in reach come first

There is no jump, sprint key, block or stamina. Everything comes from the fist and the parry:

  • Charged sprint: hold the fist until the arm flashes (1 s) and keep holding while you run.
  • Parry jump: look at the ground and parry. This is how you climb ledges.
  • Ground-punch hop: release a full charge while looking at your feet.
  • Rocket punch: release a full charge while looking up.
  • Uppercut: a strong punch while looking up at an enemy in front of you; an airborne enemy dies instantly.
  • Air kick: your strongest hit (more damage and launch than a full punch). Release a full charge in the air while looking level or down. Hold the crosshair on an enemy for 3 s first to lock on (the aim line turns red); the kick then homes in. Kicking through an enemy projectile is a parry: it flies back at its shooter (heal, flash, style and the instant charge, as a parry) and John recoils off it.
  • Dive bomb: release a full charge in the air while looking straight down. The landing shockwave launches everything around you.
  • Critical fist: hold the charge for 7 s; the release is a dash punch with ten times the force. Do not hold it for 10 s: you self-destruct.
  • Railing: tap the fist, then press it again within 0.35 s and hold while standing still (the aim line shows the direction). Release after 1 s or more to dash; the longer the charge, the faster. Hold parry for 1 s during the dash for a mega boost. Parry just before hitting a wall to reverse.
  • Grab: a lunge that catches an enemy and throws it hard where you aim; a thrown body that hits other enemies knocks them over and damages them. Grab in the air and look straight down to piledrive. Throwable: Filth, Stray, Schism, Soldier, Stalker, Drone, Providence, Streetcleaner, Mannequin and rats (small Cancerous Rodent). Everything else (Virtue, Puppet, Swordsmachine, Cerberus, Hideous Mass, Malicious Face, Mindflayer, Gutterman, Guttertank, Ferryman, Turrets, Idols, Minotaur, bosses...) cannot be lifted: the grab lands as a stagger hit instead.
  • Instant charge: after a full punch that lands, a parry, an air-kick or railing hit, a connecting dive, a ground-punch hop, a throw that hits someone, or a kill, John's punching arm flickers gold and the stamina bar is full: the next press is a full-charge punch at once (for 5 s).
  • Parry: parry a projectile and it flies back at whoever fired it, whichever way you are facing. It is ULTRAKILL's own parry (double speed, parried-projectile damage, heal, flash, style); the projectile then homes on its shooter. If the shooter is already dead it goes to the nearest enemy in front of John, otherwise straight along your aim. Hitscan shots and beams are parried only where ULTRAKILL itself allows it. Parry a melee swing to throw the attacker back with a hard knockdown.
  • Ragdoll: when John is knocked flying, parry just before hitting a wall to bounce off it, or press grab with a direction to air-tech out.

Items, switches and level progress

  • Skulls, keys, soap, torches and other carriable items: aim at the item and press the Punch key (F) to pick it up (it appears in John's hand). Press F at an altar or socket to place it, or anywhere else to throw it (items the game itself cannot drop, like skulls, stay in hand until placed). This uses ULTRAKILL's own item code, so altars, skull doors and level scripts work as usual. With no item or socket in reach, F is Fister's grab.
  • Weak walls and breakable props break on any punch; tougher ones need a charged punch.
  • Parry targets (objects that react to V1's punch parry) react to John's parry.
  • Doors open as usual (they need no input).
  • End of level: when John drops into the final pit, the game's own ending (the fall, the results screen, Fire 1 to continue) runs with V1, and the next level starts as John again. Fire 1 also works as usual for the results screen, restarting after death, shop terminals and in-world buttons.
  • Not covered in Fister mode: whiplash hook points, targets that only react to bullets (coins, shoot-only switches) and cannonball parries. Press F7 to switch to V1 for those, then F7 again.

How Fister fights in ULTRAKILL

  • Punches hurt on contact (ULTRAKILL style), on top of Fister's own damage: a full-charge punch deals 5 at once, which kills or nearly kills the common husks; a tap jab chips (about 0.55) and shoves the enemy back about 3 u; the charge in between climbs steeply. Heavy enemies (Swordsmachine, Cerberus, Hideous Mass, Mindflayer, Gutterman...) lose at least 30% of their health to a full punch, bosses at least 10%; the critical fist (7 s charge) deals three times as much. Every connecting punch has ULTRAKILL's hit-stop and punch impact and earns style (JAB, PUNCH, HAYMAKER, CRITICAL PUNCH).
  • Survivors are launched hard (a full punch sends them about 40 u/s, across a room), and take Fister's collision damage when they hit a wall, the floor or another enemy. A launched enemy flies by Fister's ragdoll rules and gets back up when it settles.
  • Ragdolls: an enemy John launches, grabs or throws goes limp (its own ragdoll: the animation stops and the limbs flop), hangs limp while held, flies limp when thrown, lies where it lands, then gets back up at that spot and fights on. If it dies while limp, ULTRAKILL's own death ragdoll takes over. Ragdolling: Filth, Stray, Schism, Soldier, Streetcleaner. Enemies whose models have no ragdoll joints are launched and thrown the same way but fly as a rigid body: Stalker, Mannequin, Drone, Virtue, Providence and rats (Cancerous Rodent). (Enemies that cannot be launched at all take the stand-in below.) Weak enemies such as Filth usually die from a full punch, so you see the get-up mostly after lighter hits, grabs and throws.
  • Enemies ULTRAKILL never knocks back (bosses, Swordsmachines, Hideous Masses, Malicious Faces, Guttermen and other anchored or teleporting enemies) take the punch's contact damage, are interrupted (staggered) and shoved a little. Kicks, dives and grabs on them land as an impact worth at most half a full punch.
  • A full-strength punch on an enemy below 20% health is a finisher: it dies and flies.
  • Kills go through the game's own damage, so they count for the style meter.

Settings

BepInEx\config\offmylawn.johnfister.cfg (created on first run; editable while the game is closed):

Section Setting Default
General StartAsJohnFister true Start levels as John
General ToggleKey F7
Audio Volume 1.0 John's sounds, on top of the game's SFX volume
Camera ScreenShake true Fister's hit shake (the game's screen-shake setting also scales it)
Combat PunchDamage 5 Contact damage of a full-charge punch (V1's feedbacker deals 1; a Filth has 0.5 HP)
Combat JabDamageFraction 0.08 Share of it a tap deals (the charge climbs to 1 with its square)
Combat HeavyPunchFraction 0.3 Heavy enemies: least share of their health a full punch takes
Combat BossPunchFraction 0.1 Bosses: least share of their health a full punch takes
Combat CriticalPunchMultiplier 3 Critical fist contact damage multiplier
Combat AirKickDamage 7.5 Contact damage of an air kick (1.5x a full punch)
Combat AirKickHeavyFraction 0.45 Heavy enemies: least share of their health an air kick takes
Combat AirKickBossFraction 0.15 Bosses: least share of their health an air kick takes
Combat AirKickLaunch 0.6 Air kick launch (x Fister's; never slower than a full punch's)
Combat HitStop true ULTRAKILL's hit-stop, camera kick and punch impact on connecting punches
Combat DamageScale 0.15 Collision damage: enemy health per Fister damage point (Fister's damage is for a 200 HP brawler)
Combat LethalSelfMoves true Self-destruct, mega-boosted railing into a wall and parried dives kill John, as in Fister
Combat WhiffKnockdowns false Fister's knockdown when an air kick hits a wall or a dive hits nobody
Combat InstantChargeOnKill true Kills give the instant full charge (a port addition)
Combat RagdollOnHit true Launched, grabbed and thrown enemies go limp and get back up (off: they fly rigid)
Room scale (see below) Per-move distance multipliers

Room scale

Fister's arenas are open fields; ULTRAKILL's arena rooms are about 18-31 units across and 23-120 long, with 15-30 unit ceilings. The moves that throw John or an enemy far are scaled down to fit (the simulation itself is untouched; these multiply the distance each move covers):

Move (setting) Fister at body scale Default here
Parry jump rise (ParryJumpLaunch 1.0) 11.1 u 11.1 u (clears ledges above V1's 9.7 u jump)
Parry jump forward (ParryJumpHorizontal 0.6) 36 u 23 u
Ground-punch hop (GroundPunchHopLaunch 0.85) rise 8.8 u, 60 u rise 6.4 u, 51 u
Rocket punch (RocketPunchTravel 0.6) rise 55 u rise 36 u
Air kick (AirKickTravel 0.45) 122 u/s, 126 u 55 u/s, 89 u
Dive (DiveTravel 0.7) 48 u/s 38 u/s
Railing (RailingTravel 0.5) 102 u/s (2 s charge) to 283 u/s (10 s) 51 to 142 u/s
Mega boost (MegaBoostTravel 0.75) 225 u/s 77 u/s
Railing wall bounce (RailingWallReverseLaunch 0.3) 113 u/s 34 u/s
Railing reversed with a parry (RailingParryReverseLaunch 0.5) twice the approach speed the approach speed
Ragdoll wall parry (WallParryLaunch 0.5) rebound = impact speed 50% (about 85% of 1.0.3's carry; below about 0.47 the landing slide no longer starts and the carry drops to about 2 u)
Mid-air surface parries (SurfaceParryLaunch 0.7) 70%
Parry timing (section "Parry timing": SurfaceParryBuffer 0.3, SurfaceParryLate 0.1) press up to 0.16 s (in flight) / 0.25 s (ragdolled) before the contact up to 0.3 s before; up to 0.1 s after for the in-flight floor and wall parry
Critical fist dash (CriticalDashTravel 0.7) 70%
Charged sprint (ChargedSprintTravel 1.0) 31 u/s after 2 s unchanged
Enemy launches (EnemyLaunch 0.9) full punch 47 u/s 42 u/s
Jab shove (JabShove 2.0) twice Fister's stagger shove
Throws (ThrowLaunch 1.0; ThrowGroundFriction 3.0; ThrowMaxTravel 40) 32 u/s, 69 u in the open 32 u/s, 45 u in the open (walls stop it sooner)

For reference V1 walks at 16.5 u/s and jumps 9.7 u; John walks at 11.8 u/s and is V1's height, hat included.

Known gaps against the original

  • Finishers kill and launch the enemy instead of playing Fister's finisher animations.
  • No Fist Bump of Doom or railing clash (two-Fister moves), no instant-charge lightning drawn around the arm (the arm tint is), no landing-slide scuff marks and no railing burnout streaks.
  • Fister's own crosshair is not drawn (ULTRAKILL's is already small).
  • John's ragdoll is Fister's simulated six-box ragdoll; ULTRAKILL's death screen takes over when he dies.
  • Platformer-mode sections (where the game swaps V1 for its third-person platformer character) use the game's character.
  • Enemies that teleport or animate their own physics are never launched, only staggered (stand-in impact).
  • No whiplash: hook points, bullet-only switches and cannonball parries need V1 (F7).

Credits

  • John Fister, his moves, art and sounds: Fister by offmylawn (all rights held by Fister's owner, used with permission for John Fister ports).
  • "Yeehaw" hat: Jerald McShmerald.
  • Brawler badge: Jaegero.
  • ULTRAKILL by Arsi "Hakita" Patala / New Blood Interactive. This is an unofficial fan mod.
  • Built on BepInEx and Harmony.

License

Code: MIT (see LICENSE). Art, models and sounds: owned by Fister's owner, licensed for use in this mod only.