Skip to content

V3.0 (b259): non-host client UI hard-locks on QuickStack — LockRequestLocal never resolves, stackInProgress never reset #33

Description

@ursaloper

Summary

On game V 3.0.0 (b259), pressing the QuickStack hotkey as a client (non-host) on a dedicated server hard-locks the player UI. The backpack window can no longer be closed and the game must be killed (Alt+F4 / SIGTERM). No exception is thrown.

The hotkey fires correctly and containers are discovered — the flow stops right after the lock request.

Environment

Game V 3.0.0 (b259)
QuickStack 1.7.5 (prebuilt QuickStack.dll from master, commit "Fixed quick lock issue when initially starting the game", 2026-06-27)
Role Client, joining a dedicated server (I am not the host)
Server Vanilla — QuickStack is NOT installed server-side
Client OS Linux (Steam Proton)
EAC Disabled
Other mods 0_TFP_Harmony, AGF-NoEAC-AutoRun, CraftFromContainersV3.0. Reproduced with QuickStack as the only non-Harmony mod as well.

Steps to reproduce

  1. Join a dedicated server as a client (not the host).
  2. Stand next to a base with many player-placed storage containers (34 in range here).
  3. Make sure no container window is open.
  4. Press the QuickStack hotkey (LeftAlt + X, default).

Observed

Client log:

INF [MODS]     Loaded Mod: QuickStack (1.7.5)
INF [QuickStack] Loaded config in 13 ms
INF [MODS]     Initialized code in mod 'QuickStack'
...
INF [QuickStack] Found 34 nearby suitable containers

After Found 34 nearby suitable containers nothing further is logged. Items are never stashed, and the backpack UI becomes unresponsive — it cannot be closed and the game has to be force-killed. No exception is present anywhere in the log.

Expected

Either the items are stashed, or the operation aborts gracefully without locking the UI.

Analysis

QuickStack.RequestQuickStack():

if (stackInProgress != StackType.None)
    return;

TEFeatureStorage[] containers = GetNearbyContainers();

if (containers.Length == 0)
    return;

stackInProgress = StackType.QuickStack;
LockManager.Instance.LockRequestLocal(containers);

stackInProgress is set and LockRequestLocal is called, but the Postfix on LockManager.LockResponse never seems to run. As a result stackInProgress is never reset back to StackType.None, the stash step never executes, and the UI stays in the locked state.

This matches community reports that a non-host client freezes on QuickStack in multiplayer and can only recover with Alt+F4. Possibly related to #27 (which was filed against 1.7.1).

Note that master already contains "Added quick lock for all inventory types and added potential fix for multiplayer issue" (2026-06-27) — that is the exact build used here, so the issue persists after that change.

Question

Is a client-only install supposed to be supported in multiplayer? The README suggests copying the mod into the dedicated server's Mods folder for multiplayer. If the server-side component is mandatory for LockRequestLocal to be answered, could the client detect this and bail out (log + reset stackInProgress) instead of leaving the UI unusable?

Happy to provide full logs or test any patch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions