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
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
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.iniandBepInEx\next toULTRAKILL.exe), run the game once, then copy this package'sJohnFister.dllandassetsfolder intoBepInEx\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.