promotional bannermobile promotional banner

SmartQueue

Smart Queuing Module Based on the NeoForge Platform
Back to Files

smartqueue-1.7.0-NeoForge-1.21.1.jar

File namesmartqueue-1.7.0-NeoForge-1.21.1.jar
Uploader
SkyDreamLGSkyDreamLG
Uploaded
Aug 8, 2026
Downloads
0
Size
1.6 MB
Mod Loaders
NeoForge
File ID
8602583
Type
R
Release
Supported game versions
  • 1.21.5
  • 1.21.4
  • 1.21.3
  • 1.21.2
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:smartqueue-1639943:8602583"

Learn more about Curse Maven

What's new

Changelog – Queue System Fixes

Lock & Release Logic

  • Fixed tryAdmitLocked() not advancing proportional state (proportionalVipPhase / proportionalPhaseCount) when releasing a locked player; added advanceProportionalState() to synchronise state and prevent VIP indefinite priority.
  • Fixed tryAdmitLocked() not checking normal slot limits (canAdmitNormal()) for regular players; normal players must now pass slot checks before being released.
  • Fixed reconnected normal players not being slot-checked in admitFirstFrom(priorityQueue); added admitFirstPriorityChecked() to skip reconnected players who cannot enter.
  • Improved getNextAdmitEntry() to prioritise lockedEntry and added canAdmitNormal() checks in both proportional and traditional branches, ensuring prediction matches actual admission.

Anti-Imbalance Counter Lifecycle

  • Fixed skippedNormalCount not resetting to zero after queue emptied; now resets on onServerTick when no players are queued.
  • Fixed counter only decrementing via admitOldestAny(); changed to decrement uniformly at the admit() entry (all normal-admission paths now apply).

lockedEntry Lifecycle

  • Fixed cleanupDisconnected alternate disconnection cleanup path not clearing lockedEntry; added null assignment.
  • Fixed sendStatus lock condition only checking null, which left expired DISCONNECTED-state locks active; changed to check lockedEntry == null || lockedEntry.state != WAITING.

Client Display & Prompts

  • Added QueuePayloads.blocked field; in sendStatus(), marks blocked when a regular player is first in line but cannot enter due to slot restrictions.
  • Client QueueScreen detects blocked and shows a yellow hint: "First in line, but waiting for an available slot…" (language file updated accordingly).
  • Fixed misleading Staff-only slot display (e.g., "Active players: 3 / 3 (Non-Staff: 3, Staff+1)"); now shows total cap and breakdown, e.g., "Active players: 3 / 4 (3+1)".

Certainty Indicators

  • "Next" indicators in status display now distinguish certainty:
    • Green >> : certain to enter (only one type is queued, or both types can enter).
    • Yellow ? : uncertain (VIP and Normal are both queued but normal slots are full); across queues, priority order is used to select candidates, with at most one VIP candidate and one Normal candidate marked yellow globally.
  • isNextAdmitCertain() fully accounts for lockedEntry, VIP/Normal distinctions in priority queues, and DISCONNECTED exclusion.

Dispatch Simulation Infinite Loop

  • Fixed simulation dispatch entering an infinite loop up to max iterations when canAdmitNormalNow is false and VIP queue is empty; changed to directly add remaining normal players to dispatch list when no VIP is available to switch.

This mod has no additional files