Mod

Joinqueue

Quick rating

Joinqueue

No reviews yet

Async Join Queue for NeoForge 1.21.1/1.21.8. Prevents crashes and TPS drops during mass logins by holding players in a thread-safe queue. Admits players at a stable rate. Features a custom position screen. Required on both server and client.

No Theme
No Genre
QoL & Tweaks
Server Utility
Mod Loaders
NeoForge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

About

Project Details

Type
Mod
Latest Version
joinqueue_1.21.8 Hotfix
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

About

Description

JoinQueue

Versions: NeoForge 1.21.1 & 1.21.8


Prevents server crashes and TPS drops caused by many players joining at the same time (e.g., after a restart or during events). The mod puts connecting players into a waiting line during the Configuration Phase, preventing the Main Thread from overloading.

Features

  • Activation: With default settings the queue is always active (queue_activation_threshold = 0). Set a threshold to only activate above a given online player count. It also force-activates during the grace period after a server restart (default 60s) or whenever TPS drops below 8.0.
  • TPS Check: Players are only released while the server is stable (TPS ≥ 8.0) and the queue is not paused. Releasing stops automatically during heavy lag.
  • Release Rate: Players are let in on a timer — by default every 2s (normal) and every 1s (VIP), configurable via ticks_between_joins / ticks_between_joins_vip.
  • Manual Control: Admins can use /joinqueue pause and /joinqueue resume to stop or start the login process manually, or /joinqueue toggle to enable/disable the whole mod.
  • Priority & Bypass:
    • Staff members bypass the queue entirely.
    • VIP players are moved to the front of the queue and released on a faster timer.
  • Server-Full Handling: When the server reaches its vanilla player cap, normal players are held in the queue (with a "Server is full" message) until a slot opens, instead of being rejected at the network layer. Staff bypass the limit and VIPs may join over it.
  • Async Chunk Loading: Loads spawn chunks on background threads (radius configurable, default 3) before a player joins to prevent main-thread freezes. A hold_back_ms safety ceiling (default 1500ms) guarantees release even if chunks are slow.
  • Queue Screen: Shows players their live position in line, the total queue size, and a custom (configurable) message, including a separate message when the queue is paused.
  • Minimum Wait & Size Cap: Optional min_queue_seconds forces every player to wait a minimum time, and max_queue_size can cap how many players the queue holds.

Commands

All commands require permission level 2 (OP). Changes are saved automatically and take effect immediately.

Command Description
/joinqueue status Shows master switch, release state, server-ready state, TPS, queue size, threshold and staff/VIP counts.
/joinqueue toggle Enables or disables the entire mod (master switch).
/joinqueue pause Pauses the queue (players accumulate but are not released).
/joinqueue resume Resumes releasing players.
/joinqueue reload Reloads the configuration from config/joinqueue.json.
/joinqueue staff <add|remove> <player> Adds or removes a player from the Staff (bypass) list.
/joinqueue vip <add|remove> <player> Adds or removes a player from the VIP (fast-queue) list.
/joinqueue list <staff|vip> Lists all members of the Staff or VIP list.

Technical Details

  • Runs entirely in the Configuration Phase, before the player fully joins the world.
  • Uses ConcurrentLinkedDeque and AtomicInteger for thread-safe performance.
  • TPS is measured via a rolling 40-tick ring buffer using nanoTime.
  • Extends the server keep-alive timeout (15s → 2min) via a Mixin so queued players are never kicked while waiting.
  • Released players that never complete the join handshake are dropped after 15s so the line never stalls.
  • Compatible with Arclight/hybrid servers (chunk preloading is safely skipped there).
  • Required on both server and client.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~3,000
Downloads
Last Updated
Created
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync