-
Notifications
You must be signed in to change notification settings - Fork 0
Making a custom difficulty
kyfex edited this page Feb 3, 2026
·
1 revision
If you want to create a run with custom restrictions/abilities, you want to create a custom difficulty.
First, make sure you've set up your development environment. Make sure you've also created a mod; once both are done, you can move forward to making your custom deck :3
To make a custom difficulty, there are 1 (or more) files you need:
- A
DifficultyResourceat<mod folder>/overwrites/data/difficulties_data/<YourName-YourMod-YourDifficulty>.tres - If you want an image for the difficulty selection screen, it should be at
<mod_folder>/overwrites/ui/diff_images/<your deck name>.png - If you want an icon for the player card in the shop, it should be at
<mod_folder>/overwrites/ui/deck_diffs_icons/<your deck name>-diff.png
Next, you want to make sure those files are loaded into the game. In your mod_main.gd inside the _init() function, CUE.take_over any necessary files. (See Making a custom ball for how to use CUE.take_over.)
Next, edit the DifficultyResource with your desired properties. Here's a cheatsheet for what the properties do:
Cheatsheet
-
name: The translation key of your difficulty's name. To keep things organized, it should be of the formDIFF_<your deck name>_NAME -
description: The translation key of your difficulty's description. To keep things organized, it should be of the formDIFF_<your deck name>_DESC -
numRounds: The number of rounds you need to win in order to win the run -
scoreRequirementModifier: The percentage over 100 that the required score to beat a round is modified by. For example, if this value was25, each round's required score would be 125% of the default round required score. -
shotsModifier: How many extra shots the player gets per round. Can be negative -
maxHp: The amount of hearts on the table and the amount of losses the player gets after losing the run -
onlySetBalls: If this difficulty restricts the run to only the deck's set -
hasCocktailBar: If the player can access the cocktail bar during this run -
cursedBallAmount: If 0, no cursed balls. If 1, 1 cursed ball every 3 rounds. If 2, every round has a cursed ball and every third round has 2 cursed balls. -
difficultyImage: A texture that shows on the difficulty selection screen -
difficultyIcon: An icon that shows on the player card in the shop -
can_be_chosen: If the difficulty shows up in the deck selection screen -
available_in_demo: If this difficulty can be selected in the demo -
requires_achievement: The achievement the player needs to have before this difficulty is unlocked and selectable -
id: The id of this difficulty. It should be the same as the difficulty's filename (minus the .tres of course) -
main_color: The background color of this difficulty in the deck selection screen