Описание
# Cobblemon KubeJS Bridge
Bring Cobblemon data, events, storage queries, administrative utilities, and
client-side Pokedex displays into KubeJS.
Cobblemon KubeJS Bridge lets modpack developers build custom progression,
quests, rewards, commands, interfaces, battle systems, and server mechanics
using JavaScript.
## Features
### Cobblemon events
Listen to server-side events such as:
- Pokedex progress changes
- Pokemon scans and captures
- Pokemon sent, recalled, fainted, gained, healed, or released
- Experience gain and level-up
- Evolution completion
- Battle victory and defeat
- Battle escape and forfeit
```js
CobblemonEvents.pokemonCaptured(event => {
event.player.tell(
`You caught ${event.species} at level ${event.level}!`
)
})
```
### Pokedex API
Query a player's Pokedex progress:
- Check whether a species was seen or caught
- Count total seen or caught species
- Count progress by elemental type
- Read individual species progress
```js
var caughtFire = CobblemonJS.pokedex.countCaughtByType(
player,
'fire'
)
```
### Species API
- Validate species IDs
- List implemented species
- Read species types
- Validate elemental types
- Find all species of a type
Both short and namespaced IDs are supported:
```js
CobblemonJS.species.exists('charizard')
CobblemonJS.species.exists('cobblemon:charizard')
```
### Party and PC API
Read safe Pokemon snapshots from a player's party and PC:
- Search Pokemon by UUID
- Count Pokemon by species or type
- Keep party, PC, box, and slot information
- Read level, HP, nature, ability, moves, IVs, EVs, status, held item, and more
```js
var party = CobblemonJS.pokemon.getParty(player)
var pokemon = CobblemonJS.pokemon.getByUuid(player, pokemonUuid)
```
### Administrative utilities
Trusted server scripts can:
- Give a Pokemon to a player
- Heal a player's party
- Spawn a Pokemon near a player
- Spawn a Pokemon at explicit coordinates without assigning an owner
```js
CobblemonJS.admin.givePokemon(
player,
'charizard level=50 shiny=true'
)
CobblemonJS.admin.spawnPokemon(
player.serverLevel,
'rayquaza level=70',
100,
80,
-50
)
```
### Client-side Pokedex synchronization
The server synchronizes a read-only Pokedex cache to the owning client. Client
scripts can use it for live tooltips and other interfaces without requesting
data from the server every frame.
```js
CobblemonClientJS.pokedex.countSeen()
CobblemonClientJS.pokedex.countCaught()
CobblemonClientJS.pokedex.countCaughtByType('fire')
```
The included examples contain a tested dynamic spyglass tooltip.
## Requirements
- Cobblemon
- KubeJS
- Rhino, as required by KubeJS
- Java 21
Install the bridge on both the client and server when using the synchronized
client Pokedex API.
## Loader support
NeoForge is currently supported.
Fabric support is not available yet. The Fabric module is only a compile-time
stub and does not expose events, APIs, or client synchronization.
## Documentation and examples
The project includes:
- Complete API documentation
- Every function's parameters and return values
- Full event field reference
- Pokemon and move data model reference
- Server and client script examples
- Troubleshooting instructions
# Links
- [Documentation](https://rapidmesck.gitbook.io/cobblemon-kubejs/)
- [Source Code](https://github.com/RapidMesck/cobblemon_kubejs)
- [Issue Tracker](https://github.com/RapidMesck/cobblemon_kubejs/issues)
## Notes
- Pokemon snapshots returned to scripts are read-only.
- Administrative methods mutate gameplay state and should only be exposed
through trusted scripts with appropriate permission checks.
- Pokedex counts represent unique implemented species, not duplicate captures.
- Unknown species, types, malformed UUIDs, and invalid spawn properties produce
descriptive script errors.
- Replacing the mod jar or networking code requires a full restart.