-
Notifications
You must be signed in to change notification settings - Fork 12
mod.json
The mod.json
file controls most of the behavior of Wordle DS. For more general details on modding Wordle DS please see the modding page.
Note that JSON is extremely picky about formatting, a single comma out of place will make your whole mod.json fail to load, if you have issues try loading your mod.json using a JSON formatter/validator and it can likely fix it for you or at least point towards the issue.
In the repo there are several example mods, each of which has a mod.json. The No spoilers mod.json is recommended as a basis for other mods as it contains all editable values set to their default values except the choices
array has been cleared as to avoid accidentally spoiling future words for yourself. If you are confused on how the choices
array should be, there is also the Default example which contains everything and is exactly the same as the base game.
This is maximum guesses the player is allowed. It can be any integer number between 1 and 6.
This is the offset of the day 1 from the official Wordle. To calculate this value subtract the day you want from the current Wordle day. For example if the current Wordle is 309 and you want the current day to be 150 in your mod, 309 - 150 = 159 so your wordleOffset
would be 159
.
Note that Wordle started on day 0, not day 1, so the first item in your choices
array will be for day 0. If you need your mod to start on day 1 instead then take the last item of your choices
array and move it to the front, it will still be the same number as the word list loops at the end.
For the current day to be the first day (day 0) simply use the current Wordle day number.
This is the name used in the share.txt
file and the QR code with the days results.
These are the various messages used in Wordle DS. Their use should be self explanatory from their values, but note that the %d
and %s
variables in some of them must not be changed. If you need to reorder them then do %n$s
or %n$d
where n
is the position in the original order. (ex. "%d%s letter must be %s"
-> "%3$s be must letter %2$s%1$d"
would reverse the order of the words in that string)
In nthMustBeX
the first %s
is the numbers entry in numberSuffixes
.
These are the emoji used in the emoji grid, they can be any strings of text and are not actually required to be emoji however keeping them the same width is recommended.
greenAlt
and yellowAlt
are used when the player has high contrast mode enabled.
These are the words and colors to be used in the how to menu. There must be no more than 3 words with a maximum length of 9 letters each. The colors must be a single array with the same number of items as all of the words combined. Each color must be green
, yellow
or white
. white
tiles will not flip over.
These are the messages displayed when the player wins the day's game. If there are fewer victory messages than maxGuesses
then the last victory message will be used for everything after its position.
These are the suffixes to append to numbers when printing the hard mode nthMustBeX
string, to allow for translation into other languages. The suffix corresponding to the number will be used if provided, otherwise default
will be used. There is no need for suffixes beyond maxGuesses
.
This is the order of the letters as they appear in the keyboard keys and letter tiles images.
This is the layout to use for the keyboard, all possible letters along with "\n"
(enter) and "\b"
(backspace) must be included for the mod to be fully playable.
The array items are structured as arrays containing the X coordinate, Y coordinate, and letter of each key. The X coordinates range from 0 to 255 (inclusive) and the Y coordinates are 0 to 191 (inclusive).
These are the palettes to use for the letter tiles and the fonts respectively. They are in the DS's native BGR15 format, you can use a converter such as this web app to convert to normal HTML style hex colors. They can be either strings allowing for hexadecimal (0x####
) or normal JSON numbers in base 10. The highContrast
arrays are used when the player is using high contrast mode.
These are the word lists to use for the game. Wordle DS uses two lists, choices
is the words that are valid guesses in the order they will be used and guesses
is the words that are allowed to be guessed but will never be a correct answer. It is recommended to shuffle choices
and avoid looking at the result afterwards so you can play your own mod without spoilers.
The words in these arrays must be all capital letters, this is to prevent inconstancies when expanding beyond ASCII as the C++ case functions only apply to ASCII. If you have a lowercase word list you can easily convert it to uppercase using Python ([x.upper() for x in wordList]
), JavaScript (wordList.map(r => r.toUpperCase()))
), etc or just find replacing each letter in a text editor.
In the repo there are several example mods, each of which has a mod.json. The No spoilers mod.json is recommended as a basis for other mods as it contains all editable values set to their default values except the choices
array has been cleared as to avoid accidentally spoiling future words for yourself. If you are confused on how the choices
array should be, there is also the Default example which contains everything and is exactly the same as the base game.
If you need help, please create a discussion here on GitHub