premium banner
Full control over how often any Pokémon (not only Legendaries) can be captured and more!

Description

🌟 Introduction

Do you miss your legendary Pokémon feeling truly unique?

Limited Legends brings back the rarity by letting you set hard limits on how many times each Pokémon can be captured — or whether they must be fought first — ensuring that catching one feels truly special.

Every feature is configurable. For example, you could use this mod only for its spawn notifications!


✨ Features

🛑 Per Pokémon Limits
Prevent the capturing of legendary and mythic Pokémon (or any others) once their configurable capture limit has been reached.

🚧 Per Player Limits
Limit the number of Legendaries a single player can own — either overall or per species.

🥊 Fight Before Capturing
Require players to weaken certain Pokémon in battle before they can attempt to catch them.

⬆️ Catch rate penalties: Makes catching higher level Pokémon more difficult!

📄 Customizable Config
Enable/disable any feature and apply them to any Pokémon you want!
(Default: Legendaries + Mythics)

🚫 Optional Spawn Blocking
Don’t just stop captures — block the Pokémon from spawning entirely!

📣 Optional Spawn Messages
Announce to all players whenever a limited Pokémon spawns.

🔍 Tracking Commands

  • /limitedlegends check <player> → See which limited Pokémon a player owns.
  • /limitedlegends find <species> → Find all players who own a specific Pokémon.
  • /limitedlegends limit → Check how many limited Pokémon you can catch.
  • /limitedlegends list → See which limited Pokémon have been caught yet.

⚙️ Installation

  1. Install Cobblemon and any dependencies.
  2. Drop LimitedLegends.jar into your /mods folder.
  3. Start the game or server to generate the config file.
  4. Edit /config/limitedlegends.json to customize your settings.
  5. If added to an existing world or after updating, run: /limitedlegends backfill
  6. Go hunt truly unique Pokémon!

💡 Note: The Fabric version requires fabric-language-kotlin.


🔧 Config

📂 limitedlegends.json

**"SetGlobalLimits"**
> Enable/Disable _GlobalLimitPerSpecies_ below.

**"GlobalLimitPerSpecies"**
> Only this many of each Pokémon in _LimitedPokémon_ and _SpecificLimits_ can be captured before any capture attempt fails.

**"SetLimitsPerPlayer"**
> Enable/Disable _MaxLimitedPerPlayer_ below.

**"MaxLimitedPerPlayer"**
> Only this many of each Pokémon in _LimitedPokémon_ and _SpecificLimits_ can be captured per player.

**"SetCopiesLimit"**
> Enable/Disable _MaxCopiesPerPlayer_ below.

**"MaxCopiesPerPlayer"**
> Only this many Pokémon in _LimitedPokémon_ and _SpecificLimits_ can be caught per player.

**"DisableSpawning"**
> Enable/Disable whether _LimitedPokemon_ should still spawn after their limit has been reached.

**"RequireSubjugation"**
> Prevents players from capturing Pokémon until they’ve first been weakened in battle.

**"RequireSubjugationForAll"**
> If enabled, all Pokémon need to be subjugated before catching them.

**"MinCaptureHPThreshold"**
> Pokémon must be below this HP % to be caught _(range: 0.01 = 1% and 1.0 = 100%)_

**"BonusCatchRate"**
> Bonus catch rate modifier if HP is under the threshold.

**"AllowMasterBall"**
> Lets Master Balls bypass subjugation requirements.

**"AllowOriginBall"**
> Lets Ancient Origin Balls bypass subjugation requirements.

**"AllowQuickBall"**
> Lets Quick Balls bypass subjugation requirements.

**"AllowSafariBall"**
> Lets Safari Balls bypass subjugation requirements.

**"EnableCatchRateModifiers"*
> Enables _PenaltyPerLevel_, _FlatPenalty_ and _MinCatchRate_.

**"PenaltyPerLevel"**
> Percentage by which the catch rate decreases for each level the Pokémon is higher than the player's highest one.
> Range: 0.00 - 1.00

**"FlatPenalty"**
> Percentage by which the catch rate decreases as soon as a Pokémon has a higher level than the player's highest one. _(range: 0.00 - 1.00)_
> Range: 0.00 - 1.00

**"MinCatchRate"**
> Percentage of the original catch rate that should always remain even if the level difference is greater.
> Range: 0.00 - 1.00

**"EnableCaptureMessage"**
> Whether a message should be sent to all players whenever a LimitedPokemon has been caught.

**"EnableReleaseMessage"**
> Whether a message should be sent to all players whenever a LimitedPokemon has been released.

**"EnableSpawnMessage"**
> Enable/Disable whether spawns of _LimitedPokemon_ should be broadcasted

**"LOGGER"**
> Enables/Disables log messages.

**"LimitAllPokemon"**
> If enabled, all capture restrictions apply to every Pokémon species.

**"LimitedPokemon"**
> A list of Pokémon IDs to which the above options should apply
> Format: "cobblemon:<species>", "cobblemon:<species>"

**"SpecificLimits"**
> Set limits for individual species which will override _GlobalLimitPerSpecies_
> Format: "cobblemon:<species>: <limit>", "cobblemon:<species>: <limit>"