Grimdark Ladder

How Grimdark Ladder Works

Grimdark Ladder is a local competitive operating system for Warhammer 40k: find opponents, schedule games, exchange lists, report confirmed results, and run clubs, leagues, and tournaments inside one shared product.

The platform is strongest when you think of it as one connected loop: discover opponents, lock in a game, play, confirm the result, then let that result flow into the right record layer.

For Stores

Find A Game

Availability is the scheduling layer

Post windows when you can start a game, then scope them to the public, your circle, selected clubs, or selected leagues.

Browse orders by real context

Shared communities and location matter. Circle, clubs, leagues, and city all help surface useful opponents first.

Accepted slot challenges book the game

When a challenge based on an availability slot is accepted, that slot is booked and the game appears on each player’s home schedule in local time.

Build Your Record

Confirmed results drive progression

One player submits the result and the opponent confirms it. Elo only changes after confirmation.

Multiple match-start paths exist

Players can challenge directly, challenge from availability, initialize by username, or use QR pre-game onboarding at the table.

Threat Detection sits inside the loop

Threat Tokens can be spent before a ranked game for rules transparency on the opponent’s list. It is preparation, not coaching.

Run A Community

Clubs are the persistent home

Clubs support member lists, feed posts, available games, invite controls, QR join, co-owners, and club-specific visibility.

Leagues add seasonal rules

Separate League Elo, eligibility requirements, organizer approvals, registration lock, lifecycle controls, and player management all live on organizer pages.

Tournaments handle event day

Registration, lists, rounds, result confirmation, standings, and drop management exist without needing a separate bracket tool.

The Player Loop

1

Create your profile

Sign in, choose your username, and optionally set location and email preferences in Settings.

2

Find the opponent

Use clubs, leagues, circle, direct challenge, or the availability browser to identify a real game instead of relying on loose chat coordination.

3

Schedule or initialize

Challenge from an availability slot, challenge directly, or initialize pre-game by username or QR so list exchange can start immediately.

4

Play and confirm

After the game, submit the result. The opponent confirms it. The result then updates the right system layer.

5

Let the record propagate

Global Elo, Club ELO, League Elo, and tournament standings are related but distinct. Each one updates only where that game is meant to count.

The Home Dashboard

Current challenges and chat

Accepted challenges keep a lightweight chat thread, and that thread persists into initialized match flow instead of splitting into a separate tool.

Local-time schedule

Scheduled games from accepted availability challenges show on the home schedule in each viewer’s local timezone.

Player operating surface

The signed-in homepage is not just a landing page. It is where players see what is pending, what is scheduled, and what needs action.

QR And Pre-Game

At-table onboarding

Player Card can generate a live QR code tied to your loadout so an opponent can scan and join the pre-game flow on the spot.

New players can start at the table

A scanned QR flow can lead a new player through sign-in, quick setup, list selection, and into the same pre-game exchange.

Threat analysis connects here

Threat Detection can use the initialized roster flow so the pre-game step is part of the product, not an external document exchange.

Ratings And Records

The Elo formula

Expected score for player A against player B:

E = 1 / (1 + 10^((Rb - Ra) / 400))

New rating after the game:

R' = R + K × (S - E)

Ra and Rb are the current ratings of the two players. S is the actual score (1 for a win, 0 for a loss). E is the expected score — the probability of winning based on the rating gap. K = 32 controls how much each game can move the rating. The result is rounded to the nearest integer.

Global Elo

The main ladder rating. Confirmed ranked play moves this number and builds your long-term public competitive record.

Club ELO

Optional per-club rating starting at 1000 for each member. Clubs can also require organizer approval before a confirmed match affects Club ELO.

League Elo

Separate season-specific rating starting at 1000. It follows league rules for counted matches, valid opponents, and repeat-opponent caps.

Tournament standings

Event standings are event-specific. They are not the same as ladder ratings, even though tournament flow can still interact with match history where supported.

How Leagues Actually Work

Invite-only by design

Players join through organizer-generated codes rather than an open public join flow.

Optional join gates

A league can require Discord connection before join, and can also require players to lock one army during setup.

Rule enforcement lives in the system

Minimum counted matches, minimum valid opponents, same-opponent caps, and optional per-player counted-match caps are live settings.

Lifecycle matters

Start League and End League determine when League Elo should count, and registration can be locked separately once the field is set.

Organizer Controls

Club organizer tools

Invite codes, global code rotation, player management, co-owner controls, Club ELO settings, match approvals, and Discord dispatch configuration.

League organizer tools

Pending approvals, scheduling opportunities, activity logs, availability rankings, player removal, lifecycle controls, and separate league settings.

Discord support

Clubs and leagues can require Discord on join, and can also push weekly Discord dispatches once the bot is connected to the chosen server and channel.

Fair Play Protections

Result confirmation

Ranked results do not move ratings until the opponent confirms them.

Challenge and repeat controls

Duplicate pending match states, same-day stale challenges, and repeated-opponent abuse are constrained by product rules.

Organizer review layers

Leagues and Club ELO can require organizer approval so local structures are not forced to accept every submitted result automatically.

Use The Whole Loop

Grimdark Ladder is not just a ladder and not just a league tool. It is strongest when scheduling, pre-game prep, confirmed results, clubs, leagues, and tournaments all reinforce the same player history.

View Leaderboard