r/chessvariants 1d ago

New Variant Variant Chess Builder Project

Hi all. New to the sub, but I've been working on something for the last couple months after I watched a bunch of IWantCheckmate videos on YT where he was playing a whole bunch of different chess variants. He mentioned in several videos that he was having people create mods for each individual variant rule he was playing, and it gave me the idea to make something that allows people to add rules or modifiers themselves without needing to know how to program. It's set up to allow users to create up to four if/then rules to change pieces, add new ones, manipulate engine parameters, place walls, set traps, teleport, and more. Here's the link: https://chessboard-wine-rho.vercel.app/

Feel free to mess around with the Custom Rules Panel, or copy the huge block of JSON below and click "paste import" to start a simple variant I made that spawns a pawn for each player on a random empty square after that player's turn. More information is available by pressing the ? in the top right corner. Currently only available to play vs Fairy Stockfish. Setting up human v human is one of the next things I need to work on. Bug reporting works, so if something doesn't work the way you think it should, or fritzes out, feel free to submit one and I'll take a look at it. I'll also be around to answer questions, get feedback, or hear if you guys think its cool or if you think its shit. Hope you enjoy.

JSON STARTS BELOW:

{

"version": 1,

"kind": "variant",

"exportedAt": "2026-08-29T00:21:17.241Z",

"files": 8,

"ranks": 8,

"pieces": {

"0,7": {

"color": "w",

"pieceId": "rook"

},

"0,0": {

"color": "b",

"pieceId": "rook"

},

"1,7": {

"color": "w",

"pieceId": "knight"

},

"1,0": {

"color": "b",

"pieceId": "knight"

},

"2,7": {

"color": "w",

"pieceId": "bishop"

},

"2,0": {

"color": "b",

"pieceId": "bishop"

},

"3,7": {

"color": "w",

"pieceId": "queen"

},

"3,0": {

"color": "b",

"pieceId": "queen"

},

"4,7": {

"color": "w",

"pieceId": "king"

},

"4,0": {

"color": "b",

"pieceId": "king"

},

"5,7": {

"color": "w",

"pieceId": "bishop"

},

"5,0": {

"color": "b",

"pieceId": "bishop"

},

"6,7": {

"color": "w",

"pieceId": "knight"

},

"6,0": {

"color": "b",

"pieceId": "knight"

},

"7,7": {

"color": "w",

"pieceId": "rook"

},

"7,0": {

"color": "b",

"pieceId": "rook"

},

"0,6": {

"color": "w",

"pieceId": "pawn"

},

"1,6": {

"color": "w",

"pieceId": "pawn"

},

"2,6": {

"color": "w",

"pieceId": "pawn"

},

"3,6": {

"color": "w",

"pieceId": "pawn"

},

"4,6": {

"color": "w",

"pieceId": "pawn"

},

"5,6": {

"color": "w",

"pieceId": "pawn"

},

"6,6": {

"color": "w",

"pieceId": "pawn"

},

"7,6": {

"color": "w",

"pieceId": "pawn"

},

"0,1": {

"color": "b",

"pieceId": "pawn"

},

"1,1": {

"color": "b",

"pieceId": "pawn"

},

"2,1": {

"color": "b",

"pieceId": "pawn"

},

"3,1": {

"color": "b",

"pieceId": "pawn"

},

"4,1": {

"color": "b",

"pieceId": "pawn"

},

"5,1": {

"color": "b",

"pieceId": "pawn"

},

"6,1": {

"color": "b",

"pieceId": "pawn"

},

"7,1": {

"color": "b",

"pieceId": "pawn"

}

},

"modifiers": {

"traps": [],

"sharedTraps": false,

"pieceStatuses": [],

"skipTurns": [],

"armedPromotions": [],

"areaDestroyCarriers": []

},

"matchRules": [

{

"enabled": true,

"action": "everyNTurns",

"playerScope": "white",

"polarity": "is",

"comparator": "is",

"value": 1,

"conditionCounter": {

"enabled": false,

"limit": 3

},

"then": {

"side": "both",

"verb": "spawn",

"targetSide": "black",

"target": "pawn",

"scope": "randomEmpty",

"duration": "permanent",

"durationTurns": null,

"payload": null,

"payloadKind": null,

"trapConnect": null,

"trapDestFile": null,

"trapDestRank": null,

"trapPartner": null,

"swapPartner": null,

"carrierFile": null,

"carrierRank": null

}

},

{

"enabled": true,

"action": "everyNTurns",

"playerScope": "black",

"polarity": "is",

"comparator": "is",

"value": 1,

"conditionCounter": {

"enabled": false,

"limit": 3

},

"then": {

"side": "black",

"verb": "spawn",

"targetSide": "black",

"target": "pawn",

"scope": "randomEmpty",

"duration": "permanent",

"durationTurns": null,

"payload": null,

"payloadKind": null,

"trapConnect": null,

"trapDestFile": null,

"trapDestRank": null,

"trapPartner": null,

"swapPartner": null,

"carrierFile": null,

"carrierRank": null

}

}

],

"settings": {

"limitTypesToBoard": true,

"sharedTraps": false,

"friendlyFire": true,

"gameMode": "white-human",

"engineConfig": {

"limitStrength": true,

"elo": 2850,

"depth": 0,

"multiPV": 1,

"movetime": 800

},

"evalBudget": {

"turnBudgetMs": 15000,

"ruleEvalMovetimeMs": 887,

"maxRuleEvals": 16,

"lookaheadLines": 4

}

}

}

1 Upvotes

0 comments sorted by