DUXPLIMA Documentation

The deck and rules

The 108 cards, what each does, scoring, and the last-card call.

The deck

108 cards, built at runtime.

CardCountPer colour
04One each
1 to 972Two each
Skip8Two each
Reverse8Two each
Draw two8Two each
Wild4Colourless
Wild draw four4Colourless

Four colours: red, yellow, green and blue. That is the standard composition, and the reason a 0 is rarer than a 5.

Playing a card

A card is playable when it matches the top card by colour or by number or symbol. A wild is always playable and sets the colour.

If you have nothing playable you draw. What happens then depends on House rules.

The action cards

CardEffect
SkipThe next player loses their turn
ReverseDirection of play flips
Draw twoThe next player draws two and loses their turn
WildChoose the colour
Wild draw fourChoose the colour, next player draws four and loses their turn

In a two-player game a reverse acts as a skip, which is standard and worth knowing when a table empties down to two.

Points

Number cards   their face value
Action cards   20
Wilds          50

Points are scored by the winner from the cards left in everybody else's hands. That is why a hand full of wilds is a liability: it is the strongest hand to play and the most expensive to be caught with.

Points is one of the leaderboard stats, so a player who wins big hands ranks above one who wins narrow ones.

Starting hands

StartingHand = 7,
Seats = 4,
MinPlayers = 2,

Seven cards each, up to four players, minimum two to start.

Raising StartingHand makes games longer and reduces the chance of an early finish. Lowering it below five makes the last-card call happen almost immediately.

The last card

With one card left a player must call it. The window is short:

Timing = {
    LastWindowSeconds = 3,
},

Three seconds from playing your second-to-last card. Miss it and you take the penalty:

ResultMessages.LastPenalty = "Missed Last Card! +2",

Two cards. This is what makes the endgame tense, and it is switchable: see HouseRules.LastCallout in House rules.

The turn timer

Timing = {
    MoveSeconds = 25,
    ClockTickRate = 0.25,
},

Twenty-five seconds per turn. The clock ticks four times a second so the countdown looks smooth rather than jumping.

Winning

The first player to empty their hand wins the game, scores the points from every other hand, and the table resets after Timing.ResetDelay seconds.

A player who leaves mid-game is removed from the hand and the game continues if enough players remain. Below MinPlayers, the game ends.

The rules are testable

Shared/CC/Rules.luau, Engine.luau, Deck.luau and Cards.luau use no Roblox API and ship with specs:

require(game.ReplicatedStorage.uxrColorCardsSystem.CC._spec.Run)()

If you change a house rule's behaviour, change it there and run those.