Build: every tool pinned (JDK, packwiz, Gradle plugins, Python packages), exports normalised, tools/check_reproducible.py proves two clean builds are byte-identical. Server-side balance: a server can load config/cobblesurvival/datapack.zip in place of the jar's data, /reload applies it, tools/server_update.py packages it and refuses when a client change is needed. JEI drop pages are sent by the server. Code-held balance numbers moved to tuning/server.json. Performance: spark in the pack (server only), tools/perf_test.py with fake players whose chunks really are active, docs/performance.md. Adrian's feedback: default keys R, U, J, §; drop pages link to Cobblemon Info and show real chances; bosses only hurt in battles; battle XP halved; channels between the islands low level; temperature ×3 with insulation doubled; hazards start at once; no item dots on the map; a wild attack starts a battle; the starter only faints; quest book on join with a basics page and an HMs page; regional forms obtainable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
128 lines
4.0 KiB
JSON
128 lines
4.0 KiB
JSON
{
|
|
"lastSavedVersion": "1.8.4",
|
|
"maxPokemonLevel": 100,
|
|
"maxPokemonFriendship": 255,
|
|
"announceDropItems": true,
|
|
"defaultDropItemMethod": "on-entity",
|
|
"dropAfterDeathAnimation": false,
|
|
"ambientPokemonCryTicks": 1080,
|
|
"defaultKeyItems": [],
|
|
"defaultBoxCount": 40,
|
|
"pokemonSaveIntervalSeconds": 30,
|
|
"storageFormat": "nbt",
|
|
"preventCompletePartyDeposit": false,
|
|
"mongoDBConnectionString": "mongodb://localhost:27017",
|
|
"mongoDBDatabaseName": "cobblemon",
|
|
"maxVerticalCorrectionBlocks": 64,
|
|
"minimumLevelRangeMax": 10,
|
|
"enableSpawning": true,
|
|
"worldSpawningBlocklist": [],
|
|
"minimumDistanceBetweenEntities": 8.0,
|
|
"maxNearbyBlocksHorizontalRange": 4,
|
|
"maxNearbyBlocksVerticalRange": 2,
|
|
"maxVerticalSpace": 8,
|
|
"spawningZoneDiameter": 8,
|
|
"spawningZoneHeight": 16,
|
|
"ticksBetweenSpawnAttempts": 20.0,
|
|
"minimumSpawningZoneDistanceFromPlayer": 16.0,
|
|
"maximumSpawningZoneDistanceFromPlayer": 64.0,
|
|
"maximumSpawnsPerPass": 8,
|
|
"exportSpawnConfig": false,
|
|
"savePokemonToWorld": true,
|
|
"exportStarterConfig": false,
|
|
"autoUpdateShowdown": true,
|
|
"defaultFleeDistance": 32.0,
|
|
"allowExperienceFromPvP": true,
|
|
"experienceShareMultiplier": 0.5,
|
|
"awardExperienceToFaintedPokemon": false,
|
|
"awardExperienceOnBattleLoss": false,
|
|
"luckyEggMultiplier": 1.5,
|
|
"allowSpectating": true,
|
|
"experienceMultiplier": 1.0,
|
|
"predationChance": 0.05,
|
|
"pokemonPerChunk": 1.0,
|
|
"pokeSnackPokemonPerChunk": 2.0,
|
|
"passiveStatuses": {
|
|
"cobblemon:poison": "180-300",
|
|
"cobblemon:poisonbadly": "180-300",
|
|
"cobblemon:paralysis": "180-300",
|
|
"cobblemon:frozen": "180-300",
|
|
"cobblemon:sleep": "180-300",
|
|
"cobblemon:burn": "180-300"
|
|
},
|
|
"infiniteHealerCharge": false,
|
|
"maxHealerCharge": 6.0,
|
|
"secondsToChargeHealingMachine": 3600.0,
|
|
"defaultFaintTimer": 1000000000,
|
|
"faintAwakenHealthPercent": 0.2,
|
|
"healPercent": 0.0,
|
|
"healTimer": 60,
|
|
"baseApricornTreeGenerationChance": 0.1,
|
|
"displayEntityLevelLabel": true,
|
|
"displayEntityNameLabel": true,
|
|
"displayNameForUnknownPokemon": false,
|
|
"displayEntityLabelsWhenCrouchingOnly": false,
|
|
"shoulderMountArmorOffsetBlacklist": [],
|
|
"shinyRate": 8192.0,
|
|
"fossilMachineAlphaChance": 20,
|
|
"fossilMachineShinyChance": 100,
|
|
"honeySlatherAlphaChance": 100,
|
|
"honeySlatherShinyChance": 4000,
|
|
"shinyNoticeParticlesDistance": 24.0,
|
|
"captureCalculator": "cobblemon",
|
|
"playerDamagePokemon": true,
|
|
"pokemonIntrinsicSizeMin": 0.95,
|
|
"pokemonIntrinsicSizeMax": 1.05,
|
|
"babyPokemonLevelDuration": 9,
|
|
"babyPokemonSizeMultiplier": 0.9,
|
|
"minimumRidingScale": 0.75,
|
|
"appleLeftoversChance": 0.025,
|
|
"maxRootsInArea": 9,
|
|
"bigRootPropagationChance": 0.5,
|
|
"energyRootChance": 0.25,
|
|
"maxDynamaxLevel": 10,
|
|
"teraTypeRate": 20.0,
|
|
"defaultPasturedPokemonLimit": 16,
|
|
"pastureBlockUpdateTicks": 40,
|
|
"pastureMaxWanderDistance": 32,
|
|
"pastureMaxPerChunk": 4.0,
|
|
"maxInsertedFossilItems": 2,
|
|
"walkingInBattleAnimations": false,
|
|
"battleWildMaxDistance": 12.0,
|
|
"tradeMaxDistance": 12.0,
|
|
"battlePvPMaxDistance": 32.0,
|
|
"battleSpectateMaxDistance": 64.0,
|
|
"maxPokedexScanningDetectionRange": 10.0,
|
|
"unlockAllMoveDexMovesByDefault": false,
|
|
"infiniteTmUses": false,
|
|
"hideUnimplementedPokemonInThePokedex": false,
|
|
"summaryPokemonFollowCursor": true,
|
|
"partyPortraitAnimations": "NEVER_ANIMATE",
|
|
"pcProfileAnimations": "ANIMATE_SELECTED",
|
|
"summaryProfileAnimations": "ANIMATE_SELECTED",
|
|
"animateBattleTiles": false,
|
|
"thirdPersonViewBobbing": true,
|
|
"invertPitch": false,
|
|
"invertYaw": false,
|
|
"xAxisSensitivity": 1.0,
|
|
"yAxisSensitivity": 1.0,
|
|
"swapXAndYAxes": false,
|
|
"disableRoll": false,
|
|
"displayControlSeconds": 0,
|
|
"infiniteRideStamina": false,
|
|
"rememberRidingCamera": false,
|
|
"enableInFlightDismounting": false,
|
|
"enableDebugKeys": false,
|
|
"despawnerNearDistance": 32.0,
|
|
"despawnerFarDistance": 96.0,
|
|
"despawnerMinAgeTicks": 600,
|
|
"despawnerMaxAgeTicks": 3600,
|
|
"monitorAlphaRate": 40,
|
|
"monitorShinyRate": 200,
|
|
"typeGemMaxConnected": 16,
|
|
"typeGemMinGrowth": 8,
|
|
"typeGemGrowthChance": 0.1,
|
|
"typeGemInitialExpansionCycles": 100,
|
|
"typeGemTickChance": 1.0
|
|
}
|