From Brotato Wiki

(add section for DebugService)
(fix tier 2 lowest cost)
Line 114: Line 114:
|-
|-
|{{Color|color=tier2|text=Tier 2}}
|{{Color|color=tier2|text=Tier 2}}
|48
|40
|65
|65
|-
|-

Revision as of 23:52, 26 December 2022

< Back to Modding


This page has notes that modders may find useful.


Apps

Decompile

To decompile Brotato for modding, use GDRETools, which can be downloaded here.

Godot

You'll need to download Godot to edit the decompiled project. Jonus has an excellent video here that covers the basics of modding, and will show you how to customise weapons and characters, and change item appearances. You can also read the documentation for Godot here.

Steam Errors

The standard version of Godot will have lots of errors related to the Steam API when you try to run it via Godot, due to it lacking inbuilt support for Steam's SDK. Instead, you can use an alternate version of Godot that has been compiled to include Steam support, called GodotSteam. Make sure you read GodotSteam's docs on exporting, because there are some limitations and caveats (eg. you can't use the "Export with Debug" option, and you need to set up your export templates manually).

Balancing

When balancing new items, the vanilla Items list is a great point of reference for their costs and effect strength. Sorting by tier can also be very helpful, as it shows where there might be gaps in vanilla's base items.

Characters with Negative Stats

If you're creating an effect that converts one negative stat to a different positive one (like Retromation's Hoodie.png Retromation's Hoodie), keep in mind that many Characters start with huge decreases to certain stats:

Negative stat characters
Character Negative Stats Value
Brawler Range -50
Ranged Damage -50
Crazy Dodge -30%
Mage Ranged Damage -100
Melee Damage -100
Engineering -50
Chunky Life Steal -100
Lucky Attack Speed -60%
Mutant Items Price -50%
Loud Harvesting -95% (-3 per wave)
Pacifist Damage -100%
Engineering -100
Saver Items Price -50%
Sick HP Regeneration -100
Ghost Armor -100
Speedy Armor while standing still -100
Doctor Attack Speed -100%
Artificer Damage -100%
Masochist Damage -100%

Item Costs

Item costs for each tier in vanilla are as follows:

Tier Min Max
Tier 1 12 30
Tier 2 40 65
Tier 3 65 85
Tier 4 80 120

DebugService

You can use DebugService to add items and weapons to a run for testing. There's lots of other options too.

Option Type Default Effect Notes
debug_weapons array [] Weapons to add at the start of each wave. Unlike debug_items, these weapons are always added. Great for testing tier stacking.

Not helpful if you only want 1 instance of the weapon though.

debug_items array [] Items to add once, at the start of the next wave. Can add multiple of the same item
starting_wave int 1 Sets initial wave. Supports 1 - 21
starting_gold int 30 Sets initial materials
invulnerable bool false Disables your hurtbox Prevents things like Bull's effect from triggering
instant_waves bool false Waves only last 1 second Great for testing shops
add_all_items bool false Adds every item to your character Can be combined with debug_items to stack them
add_all_weapons bool false Adds every weapon Can go over your character's weapon limit
unlock_all_chars bool false Unlocks all characters Temporary
unlock_all_challenges bool false Unlocks all challenges Permanent
unlock_all_difficulties bool false Unlocks all danger levels Temporary
no_weapons bool false Removes all weapons Triggers at the start of each wave

Note: DebugLoader lets you edit these settings via JSON, which can be useful for testing outside of the Godot editor.

Effects

See Modding Effects for a list of all the effects available in vanilla.

Translations

Mini guide by Aequitas (source on Discord):

  1. Create your CSV translation file
  2. Drag it into your project's file system
  3. Select the Import tab (screenshot here) and click reimport -- the .en.translation files should be created
  4. Go to Project > Project Settings > Localization (tab)
  5. Click add, and add your custom.en.translation file

Here's how your CSV should look:

Guide-Translations 1.png

See the Godot Docs for more info.

Multi Mod

If you're building a mod, creating it to work with dami's Multi Mod might be worth considering. It lets you add your mod pack to any compatible mod (eg. Invasion/dami's Arsenal). It lets you create custom characters, weapons, and items, and release your mod as a small standalone file (usually <3mb).

The only caveat is that you can't touch vanilla code, and can't currently add new weapon classes or challenges.

Weapon Cooldowns

Calculating the displayed cooldown text is tricky. The formula for Ranged weapons is easy to calculate, but the Melee formula is complex and takes many things into consideration. For this reason, Darkly77 made an cooldown text calculator, here:

Cooldown Calculator

GitHub

There's a GitHub organisation for Brotato repos here. It is maintained by Darkly77, KANA, and dami, who are all active on the Space Potatoes Discord.

It's not recommended to host a full Brotato project on GitHub, because you'd be making all of Brotato's source code public. But you can host just your modded files (eg Darkly77's Invasion), or even just host the downloads for your mod (eg. KANA's mod releases)

Hosting your downloads on GitHub has a few advantages:

  • You can create versioned README and CHANGELOG files to track your mod's changes.
  • You can create separate releases, which track the release date.
  • You can view download stats with this tool.
Modding [T]
Wiki Modding  •  Notes  •  Effects  •  Vanilla Items
Godot Download  •  Docs  •  GDRETools  •  GodotSteam  •  Jonus' Tutorial
Misc BrotatoMods  •  Cooldown Calculator