game_systems returns a list of pp_cfg objects representing several game systems and pieces. to_subpack and to_hexpack will attempt to generate matching (piecepack stackpack) subpack and (piecepack) hexpack pp_cfg R6 objects respectively given a piecepack configuration.

game_systems(style = NULL, round = FALSE, pawn = "token")

to_hexpack(cfg = getOption("piecepackr.cfg", pp_cfg()))

to_subpack(cfg = getOption("piecepackr.cfg", pp_cfg()))



If NULL (the default) uses suit glyphs from the default “sans” font. If "dejavu" it will use suit glyphs from the "DejaVu Sans" font (must be installed on the system).


If TRUE the “shape” of “tiles” and “cards” will be “roundrect” instead of “rect” (the default).


If "token" (default) the piecepack pawn will be a two-sided token in a “halma” outline, if "peg-doll" the piecepack pawn will be a “peg doll” style pawn, and if "joystick" the piecepack pawn will be a “joystick” style pawn. Note for the latter two pawn styles only pawn_top will work with grid.piece.


List of configuration options


Contains the following game systems:

checkers1, checkers2

Checkers and checkered boards in six color schemes. Checkers are represented by a piecepackr “bit”. The “board” “face” is a checkered board and the “back” is a lined board. Color is controlled by suit and number of rows/columns by rank. checkers1 has one inch squares and checkers2 has two inch squares.

chess1, chess2

Chess pieces and checkered boards in six color schemes. Chess pieces are represented by a “bit” (face). The “board” “face” is a checkered board and the “back” is a lined board. Color is controlled by suit and number of rows/columns by rank. chess1 has one inch squares and chess2 has two inch squares.


Traditional six-sided pipped dice in six color schemes (color controlled by their suit).

dominoes, dominoes_black, dominoes_blue, dominoes_green, dominoes_red, dominoes_white, dominoes_yellow

Traditional pipped dominoes in six color schemes (dominoes and dominoes_white are the same). In each color scheme the number of pips on the “top” of the domino is controlled by their “rank” and on the “bottom” by their “suit”.


A companion piecepack with a special suit scheme. See


Go stones and lined boards in six color schemes. Go stones are represented by a “bit” and the board is a “board”. Color is controlled by suit and number of rows/columns by rank Currently the "stones" look like "checkers" which is okay for 2D diagrams but perhaps unsatisfactory for 3D diagrams.


A hexagonal extrapolation of the piecepack designed by Nathan Morse and Daniel Wilcox. See


Standard 16mm x 16mm x 10mm “meeples” in six colors represented by a “bit”.


A public domain game system invented by James "Kyle" Droscha. See Configuration also contains the following piecepack accessories:

piecepack dice cards

An accessory proposed by John Braley. See

piecepack matchsticks

A public domain accessory developed by Dan Burkey. See

piecepack pyramids

A public domain accessory developed by Tim Schutz. See

piecepack saucers

A public domain accessory developed by Karol M. Boyle at Mesomorph Games. See

playing_cards, playing_cards_colored, playing_cards_tarot

Poker-sized card components for various playing card decks:


A traditional deck of playing cards with 4 suits and 13 ranks (A, 2-10, J, Q, K) plus a 14th "Joker" rank.


Like playing_cards but with five colored suits: red hearts, black spades, green clubs, blue diamonds, and yellow stars.


A (French Bourgeois) deck of tarot playing cards: first four suits are hearts, spades, clubs, and diamonds with 14 ranks (ace through jack, knight, queen, king) plus a 15th "Joker" rank and a fifth "suit" of 22 trump cards (1-21 plus an "excuse").


A piecepack with the standard French'' playing card suits. See \url{}.} \item{subpack}{A mini piecepack. Designed to be used with the \code{piecepack} to make piecepack stackpack'' diagrams. See

See also

pp_cfg for information about the pp_cfg objects returned by game_systems.


cfgs <- game_systems() names(cfgs)
#> [1] "checkers1" "checkers2" #> [3] "chess1" "chess2" #> [5] "dice" "dominoes" #> [7] "dominoes_black" "dominoes_blue" #> [9] "dominoes_green" "dominoes_red" #> [11] "dominoes_white" "dominoes_yellow" #> [13] "dual_piecepacks_expansion" "go" #> [15] "hexpack" "meeples" #> [17] "piecepack" "playing_cards" #> [19] "playing_cards_colored" "playing_cards_tarot" #> [21] "playing_cards_expansion" "subpack"
if (require("grid")) { # standard dice grid.newpage() grid.piece("die_face", x=1:6, default.units="in", rank=1:6, suit=1:6, op_scale=0.5, cfg=cfgs$dice) # dominoes grid.newpage() colors <- c("black", "red", "green", "blue", "yellow", "white") cfg <- paste0("dominoes_", rep(colors, 2)) grid.piece("tile_face", x=rep(4:1, 3), y=rep(2*3:1, each=4), suit=1:12, rank=1:12+1, cfg=cfg, default.units="in", envir=cfgs, op_scale=0.5) # various piecepack expansions grid.newpage() df_tiles <- data.frame(piece_side="tile_back", x=0.5+c(3,1,3,1), y=0.5+c(3,3,1,1), suit=NA, angle=NA, z=NA, stringsAsFactors=FALSE) df_coins <- data.frame(piece_side="coin_back", x=rep(4:1, 4), y=rep(4:1, each=4), suit=c(1,4,1,4,4,1,4,1,2,3,2,3,3,2,3,2), angle=rep(c(180,0), each=8), z=1/4+1/16, stringsAsFactors=FALSE) df <- rbind(df_tiles, df_coins) pmap_piece(df, cfg = cfgs$playing_cards_expansion, op_scale=0.5, default.units="in") grid.newpage() pmap_piece(df, cfg = cfgs$dual_piecepacks_expansion, op_scale=0.5, default.units="in") }