Pebble's Cobblemon Spawn Events
Pebble's Spawn Events modification for Minecraft version 1.20.1, compatible with Fabric and Forge.
System Requirements
For the mod to work, you need to install Fabric Language Kotlin (or Kotlin For Forge) and Architectury API.
Main Features
Create dynamic and customizable Pokemon spawn events with a random selection system for players and Pokemon based on assigned weights. The random player selection algorithm tries to avoid repeated events for the same participants if more than 2 players are online.
Commands
/spawnevent- opens the events interface with the current active event and history of all previous ones/spawnevent reload- reloads event configuration (requires operator privileges)
Important Notes
Some interactions, for example with the CobbleClear mod, may produce unexpected results. It is recommended to add Pokemon species from events to the whitelist to exclude automatic cleanup.
Settings
On first launch, a configuration folder config/pebbles-spawnevents is created with the following files:
config.json
{
"enabled": true,
"minPlayers": 1, // Minimum number of players to start events
"spawnInterval": 1 // Interval between events in minutes
}
event-history/event-history-config.json - event status display settings
{
"enabled": true,
"capturedStatus": "<green>Captured",
"killedStatus": "<red>Killed",
"despawnedStatus": "<yellow>Despawned",
"unknownStatus": "<gray>Unknown"
}
event-history/event-history-screen.json - event interface customization
{
"title": "<blue>Legendary Spawn History",
"liveSpawnSlot": 4,
"liveSpawnLores": [
"{pokemon}",
"<gray>Spawned near <aqua>{player_name.spawned}</aqua> in {dimension} <red>{time_passed}</red> ago",
"<gray>Biome: <yellow>{biome}"
],
"historySlots": [18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],
"historyLores": [
"{pokemon}",
"<gray>Spawned near <aqua>{player_name.spawned}</aqua> in {dimension} <red>{time_passed}</red> ago",
"<gray>Biome: <yellow>{biome}",
"Status: {status} by {player_name.acted}"
],
"navForwardSlots": [
37
],
"navForwardStack": {
"displayName": "<aqua>Next Page",
"material": "minecraft:arrow",
"amount": 1,
"nbt": "",
"lore": [
"<yellow>Click to view next page"
]
},
"navBackSlots": [
36
],
"navBackStack": {
"displayName": "<aqua>Previous Page",
"material": "minecraft:arrow",
"amount": 1,
"nbt": "",
"lore": [
"<yellow>Click to view previous page"
]
},
"emptySlotStack": {
"displayName": "<gray>",
"material": "minecraft:gray_stained_glass_pane",
"amount": 1,
"nbt": "",
"lore": [
""
]
}
}
spawns/ - folder with spawn events. On first launch, an example with Zapdos is created. Weight determines the probability of appearance - for example, with weights Zapdos (1), Moltres (1) and Articuno (2), the chances will be 25%, 25% and 50% respectively.
Example Zapdos configuration:
{
"pokemonProperties": "zapdos lvl=50 special_attack_iv=31",
"broadcast": {
"spawn": "<blue>The mythical entity, <yellow>Zapdos</yellow>, has been spotted in <light_purple>{biome}!\n<gray>It will be available for the next <green>{duration}</green> minutes.</gray>\n\n<blue>Closest player: <aqua>{player_name.spawned}</aqua>",
"despawn": "<blue>The mythical entity, <yellow>Zapdos</yellow>, has despawned.</blue>",
"capture": "<blue>The mythical entity, <yellow>Zapdos</yellow>, has been captured by <aqua>{player_name.acted}</aqua>!</blue>",
"kill": "<blue>The mythical entity, <yellow>Zapdos</yellow>, has been killed by <aqua>{player_name.acted}</aqua>!</blue>"
},
"spawnWeight": 1,
"despawnTimerMinutes": 10,
"sound": "minecraft:entity.lightning_bolt.thunder"
}