Description
Configuration: All EXP rates are fully customizable via config/battlegrowth.json, which is automatically generated with sensible defaults on first launch and self-updates if new config keys are added in future versions. Requirements: Must be installed on both client and server. How it works: Every time a Pokémon lands a hit, dodges an attack, uses a buff or debuff move, or performs a support action, it earns EXP immediately. Knocking out an opponent rewards a bonus EXP payout on top. When enough experience is accumulated, the Pokémon levels up instantly mid-battle — HP bar and stats update on the spot without waiting for the fight to conclude. Gameplay balance:
| Factor / Action | EXP Gain Rate / Mechanism | Notes |
|---|---|---|
| Calculation Anchor | Based on the expToNext of the lower-level Pokémon |
Used as the base reference for all calculations below. |
| Base Hit | 5% - 15% |
Randomly generated within this range. |
| Combo Hit | Base Hit + 1% |
Triggered when consecutive hits land without defeating the opponent. |
| Miss / Dodge | 2% |
Rewarded to the defending Pokémon for successfully dodging an attack. |
| Buff (Stat Increase) | 1.5% |
Using moves that benefit the user. |
| Debuff (Stat Reduction) | 1% |
Using moves that negatively affect the opponent. |
| Support / Misc | 0.5% |
Includes healing, weather changes, terrain setup, etc. |
| Faint Bonus | 10% - 20% |
Large bonus awarded for delivering the finishing blow. |
| Damage-Based Distribution | Attacker: Based on % of opponent HP lost |
More effective attacks grant a higher share of EXP. |
Defender: Based on % of own HP remaining |
Better survivability grants a higher share of EXP. | |
| Level Difference Scaling | ± 10% for every 10 level difference |
Differences below 10 levels do not affect EXP. |
| Budget System | Starts at 2 to 4 times expToNext |
Limits the total EXP obtainable in a battle. |
When depleted: Grants a fixed 10 EXP |
Anti-abuse system to prevent infinite EXP farming through move spam. |


