Skip to content

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

Setup

To make a custom difficulty, there are 1 (or more) files you need:

  • A DifficultyResource at <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.)

Properties

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 form DIFF_<your deck name>_NAME
  • description: The translation key of your difficulty's description. To keep things organized, it should be of the form DIFF_<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 was 25, 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

Clone this wiki locally