← Назад к ресурсам

Cobblemon KubeJS

Cobblemon KubeJS exposes Cobblemon data and events to KubeJS scripts.

Modrinth game-mechanics

Описание

# 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.