You are viewing a potentially older version of this package. View all versions.
dedneves-BLOODLINK-0.112.0 icon

BLOODLINK

Multiplayer co-op for ULTRAKILL: LAN/direct IP, Unity Relay join codes, synchronized combat, V1 customization and optional friendly fire. Experimental.

Date uploaded a day ago
Version 0.112.0
Download link dedneves-BLOODLINK-0.112.0.zip
Downloads 5
Dependency string dedneves-BLOODLINK-0.112.0

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

BLOODLINK

Hell was never meant to be cleared alone.

BLOODLINK is an experimental multiplayer co-op mod for ULTRAKILL. Bring your friends into the campaign through LAN/direct IP or Unity Relay join codes.

Watch the showcase

Features

  • Co-op rooms for up to four players.
  • LAN discovery, direct IP connections and Unity Relay join codes.
  • Synchronized players, enemies, combat, breakable objects and level progression.
  • Shared checkpoints, respawning, spectator mode and recovery during encounters.
  • V1 color customization, presets and an interactive model preview.
  • Optional friendly fire controlled by the host.
  • Teammate HUD with names, health bars and death status.

Version: 0.112.0 / network protocol: 56. Every player must use this same version.

Install with a mod manager

  1. Install BLOODLINK in an ULTRAKILL profile using Thunderstore Mod Manager or r2modman.
  2. Allow the manager to install the BepInEx dependency.
  3. Launch the game using the manager's modded launch option.
  4. Select MULTIPLAYER in the main menu or press F7.

The package includes the mod's runtime libraries and a minimal BepInEx configuration enabling HideManagerGameObject = true, which is required by this mod's scene lifecycle. If you keep an existing BepInEx configuration, ensure that this option is enabled under [Chainloader] in your active profile's BepInEx/config/BepInEx.cfg.

Play together

Unity Relay

The host selects HOST WITH UNITY RELAY, then shares the join code. Other players enter it in RELAY JOIN CODE and select JOIN RELAY ROOM. Relay needs an internet connection and the configured Unity services to be available.

Direct IP or LAN

The host creates a room. Other players enter the host address and matching UDP port, or use FIND LAN ROOMS on the same network. The default port is 27015. Direct connections across the internet require a reachable host address and network configuration.

In the level

Press READY when the requested level has finished loading. Use F7 to open the multiplayer menu. The host can toggle FOGO AMIGO in HOST SETTINGS. Customization is available in the V1 appearance tab.

Experimental release

Synchronization, encounter recovery and spectator behavior are still being refined. Some bosses, scripted sequences, doors or custom levels may behave differently in multiplayer. The included build passed local protocol/transport checks; those checks do not verify all gameplay or visual behavior inside Unity.

If you report a problem, include the mod version, level, host/client role, what happened and the relevant BepInEx/LogOutput.log from the affected profile.

Manual installation

Install BepInEx 5 x64 first, close the game, then copy the contents of this package's BepInEx/ folder into the game's BepInEx folder. This Thunderstore package depends on the BepInEx pack for the loader; it does not contain a second copy of winhttp.dll or doorstop_config.ini.

Included libraries

LiteNetLib and the Unity Transport, Authentication, QoS and Relay libraries are included alongside the plugin. See THIRD-PARTY-NOTICES.txt for the supplied dependency notices.

BLOODLINK is an unofficial community mod and is not affiliated with ULTRAKILL's developers.

CHANGELOG

Changelog

0.114.0

  • Add museum chess VS PLAYER alongside VS BOT, with host-authoritative seats/turns, native legal moves, selectable promotion, ordered history and resync. Host is white; the guest is black; additional players spectate.
  • Recover players across the closed gate plane, including curved approaches and sliding doors. Capture closed blocker geometry and refresh anchors for new boss encounters even when an earlier door remains locked.
  • Make Restart Checkpoint recover living players as well as respawn dead players. Clients request a host-selected encounter/checkpoint destination; movement authority explicitly permits recovery. Do not restart the shared scene or arena music.
  • Replace continuous global projectile discovery with lifecycle registration and one initial scan. Send enemy projectile snapshots at 20 Hz with existing swept hit checks and interpolation. Reuse local weapon references and avoid unused host projectile request serialization.
  • Exclude dedicated projectile/chess objects early from generic scene mutation tracking.
  • Protocol 58: every participant must update. No runtime reflection added.
  • Verified by build, codec/policy checks and local UDP sessions. Museum panel layout, native chess visuals, arena geometry and actual FPS still require in-game validation.

0.113.2

  • Preserve reliable native hit effects independently of newer enemy pose/health snapshots; replay blood and dismemberment using the original limb, force and explosion flags.
  • Publish fatal hits after native damage completes instead of sending a bare death ahead of their gore event. Late impacts can affect existing corpses without restoring their health or AI.
  • Queue impacts until the replica resolves, with a bounded per-enemy backlog and one-time consumption. Protocol remains 57.
  • Automated build/protocol regression tested; visual blood and gib behavior still requires an in-game retest.

0.113.1

  • Keep replica AI disabled after death; cancel pending local AI invokes/coroutines when taking ownership and suppress replica animation attack events.
  • Complete the native body death when an authoritative death has already marked the identity dead but the body has not entered its death state. Completed corpses do not replay death callbacks.
  • Protocol remains 57. Tested with automated regression checks; the reported encounter still requires an in-game retest.

0.113.0

  • Client-initiated campaign exits are validated by the host and applied to the party, including the elevator's second pit and continue request.
  • Exit falls and scene transitions no longer trigger out-of-bounds recovery; abandoned solo position offsets are disabled for co-op transitions.
  • Arena recovery uses host-selected floor positions and actual locked gates, with bounded periodic checks and retry after room activation.
  • Enemy deaths are host-authoritative, sent reliably and scoped to their source map. Older damage packets cannot override newer health/phase snapshots.
  • Suppress live client enemy physics/controllers while retaining confirmed native corpse handling.
  • Add a conservative wave verifier for identifiable ordinary enemies; bosses, special deaths and missing/inactive objects are not force-counted.
  • Protocol 57; all players must update. No runtime reflection added.
  • Verified by build and local protocol/UDP regression tests. Unity scene geometry, elevator presentation and every boss encounter still require in-game testing.

0.112.5

  • Internal maintenance release: production code now uses direct, compile-time typed access to ULTRAKILL and Unity Gaming Services members instead of runtime reflection.
  • Rebuilt and repackaged with the current runtime libraries. Plugin build remains 0.112.0; network protocol remains 56.
  • No intentional gameplay, UI or synchronization changes. Every player must use the same plugin build and protocol.

0.112.4

  • Thunderstore package version bump for a new upload; plugin build and network protocol are unchanged (0.112.0 / 56).

0.112.0

  • Initial Thunderstore packaging of the existing 0.112.0 build, protocol 56.
  • Added the required root metadata and full third-party license notices.
  • Co-op connections through direct IP/LAN and Unity Relay.
  • Player, enemy, combat, object and progression synchronization.
  • Encounter-aware respawn recovery and protection against room optimization unloading multiplayer areas.
  • Optional host-controlled friendly fire for weapon fire and punches.
  • Compact teammate HUD with a raised white portrait frame and red health bar.
  • Interactive V1 customization and spectator support.
  • Packaging includes runtime libraries and the required scene-lifecycle configuration.

This package remains experimental; not all campaign encounters have been validated in multiplayer.