-
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.
Everything in the mod.json is optional and will default to what it is in the base game, so anything you don't edit can be safely deleted from the file.
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 allows you to set a minimum version of Wordle DS required to load your mod. This must be set to "v2.1.0"
to use some of the newly added features:
- Average time in stats menu
- Share message menu
- Movable toggles in settings
This must be set to "v2.2.0"
to use the new settings redesign with a Game Options page.
If you don't change anything that requires it and your mod isn't known to be broken in older versions it's recommended to leave this out.
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
.
ℹ️ Added in v2.1.0
These are the customizable strings in the sharable results. time
and timeHour
are used for the timer, with timeHour
being used if it took over an hour to complete. streak
is used for the current streak and streakLoss
is used the day you break your streak. It's recommended to start these strings with a space.
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.
ℹ️ Added in v2.1.0
⚠️ RequiresminVersion
≥"v2.1.0"
Allows you to set where the toggles should be drawn and the touch positions for the toggles and buttons. Requires arrays in the format: [X, Y, Width, Height]
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 inconsistencies 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.
If you need help, please create a discussion here on GitHub