Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
TC Cobble Flight is a Minecraft mod for Fabric that adds natural flight behavior to wild Flying-type Pokémon in Cobblemon. Instead of spawning stationary on the ground, eligible Pokémon will take off, soar through the air, and land dynamically based on their surroundings and type characteristics. Each Pokémon moves at its own speed and altitude, influenced by its type, weight, and individual traits. A Pidgeot will fly faster and higher than a Beautifly; a Steel/Flying type will be sluggish but persistent. Flight patterns include smooth takeoffs, gentle mid-air sway, and gradual landings — making wild Pokémon feel alive rather than static. The mod only affects wild Pokémon. Owned, battling, or otherwise occupied Pokémon are left completely untouched. Features:
Dynamic takeoff, cruising, and landing states per Pokémon Speed, altitude, and stamina scaled by type and weight Spawn position awareness — tree perches vs open sky Player proximity increases the chance of a Pokémon taking flight Whitelist/blacklist support for individual species Fully configurable via flyingspawn.json (Cloth Config)
Config:
| Key | Default | Description |
|---|---|---|
| ## Flight speed & height | ||
flightSpeedMin |
0.05 |
Minimum base horizontal flight speed |
flightSpeedMax |
0.5 |
Maximum base horizontal flight speed |
preferredHeightMin |
4.0 |
Minimum preferred cruising altitude (blocks) |
preferredHeightMax |
30.0 |
Maximum preferred cruising altitude (blocks) |
| ## Takeoff | ||
takeoff.chanceMin |
0.05 |
Minimum base probability of taking off per check |
takeoff.chanceMax |
0.18 |
Maximum base probability of taking off per check |
takeoff.bonusNearPlayer |
0.25 |
Takeoff chance bonus when a player is nearby |
takeoff.bonusOpenSpace |
0.08 |
Takeoff chance bonus when surroundings are open |
takeoff.bonusIdleLong |
0.1 |
Takeoff chance bonus after being idle for a long time |
takeoff.velocityCap |
0.2 |
Maximum upward velocity during takeoff arc |
takeoff.accelFactor |
0.6 |
Vertical acceleration multiplier during takeoff |
takeoff.hSpeedFactor |
0.4 |
Horizontal speed fraction applied during takeoff |
takeoff.doneRatio |
0.95 |
Altitude ratio of preferredHeight at which takeoff ends |
takeoffAccelBase |
0.04 |
Base value for randomised takeoff acceleration |
takeoffAccelRange |
0.06 |
Random range added on top of takeoffAccelBase |
| ## Landing | ||
landing.chanceMin |
0.01 |
Minimum base probability of landing per check |
landing.chanceMax |
0.05 |
Maximum base probability of landing per check |
landing.bonusNearGround |
0.12 |
Landing chance bonus when close to the ground |
landing.bonusFlyingLong |
0.08 |
Landing chance bonus after flying for a long time |
landing.velocityFloor |
-0.15 |
Maximum downward velocity allowed while descending |
landing.hSpeedFactor |
0.3 |
Horizontal speed fraction applied during landing |
landing.groundOffset |
0.5 |
Distance above ground at which landing is considered done |
landingDecelBase |
0.03 |
Base value for randomised landing deceleration |
landingDecelRange |
0.04 |
Random range added on top of landingDecelBase |
nearGroundBlockDist |
4 |
Block scan distance downward to detect “near ground” |
| ## Flying behavior | ||
verticalSwayMin |
0.008 |
Minimum amplitude of vertical sin-wave sway |
verticalSwayRange |
0.017 |
Random range added on top of verticalSwayMin |
directionChangeBase |
80 |
Base interval (ticks) between direction nudges |
directionChangeRange |
120 |
Random ticks added on top of directionChangeBase |
directionNudgeDegrees |
30.0 |
Max yaw change (degrees) per direction nudge |
heightCorrectionRate |
0.04 |
Proportion of height error corrected each tick |
heightCorrectionMax |
0.3 |
Hard cap on vertical correction velocity |
heightCorrectionBase |
0.03 |
Minimum correction added regardless of error size |
heightCorrectionScale |
0.15 |
Scales correction cap with distance from target height |
groundScanDepth |
50 |
Max blocks scanned downward to estimate ground Y |
flyingLongThreshold |
400 |
Ticks in FLYING state before considered “flying long” |
flyActivationRadius |
40.0 |
Max distance (blocks) to a player for flight to activate |
legendaryPatrolRadius |
30.0 |
Max patrol radius for legendaries around spawn anchor |
initialFlightScanUp |
30 |
Blocks scanned upward on spawn to clear foliage |
| ## State machine | ||
transitionCheckInterval |
60 |
Ticks between takeoff / landing probability checks |
idleLongThreshold1 |
200 |
Idle ticks to qualify for first bonusIdleLong bonus |
idleLongThreshold2 |
400 |
Idle ticks to qualify for second bonusIdleLong bonus |
logInterval |
20 |
Ticks between debug log outputs |
hopVelocityY |
0.25 |
Upward velocity applied when the Pokémon hops on ground |
| ## Spawn & proximity | ||
playerAlertRadius |
8.0 |
Radius (blocks) for detecting a nearby player (agitation) |
openSpaceThreshold |
50 |
Minimum air blocks in scan area to count as open space |
spawnObserveTicksNormal |
60 |
PERCHING duration under normal conditions (~3 s) |
spawnObserveTicksMin |
20 |
PERCHING duration when startled by high agitation (~1 s) |
| ## Agitation | ||
agitationHitIncrease |
0.4 |
Agitation added each tick the Pokémon is hurt |
agitationBattleIncrease |
0.05 |
Agitation added each tick while in battle |
agitationProximityIncrease |
0.003 |
Agitation added each tick a player is within alert radius |
agitationDecayPerTick |
0.001 |
Agitation reduced every tick (calm-down rate) |
agitationStartleThreshold |
0.5 |
Agitation level that triggers the startled state |
agitationMinToFly |
0.05 |
Minimum agitation required to attempt takeoff |
agitationTakeoffBonus |
0.3 |
Max takeoff chance bonus scaled by agitation (0–1) |
| ## Type multipliers | ||
speedMultMin |
0.7 |
Lower clamp for the combined speed multiplier |
speedMultMax |
1.3 |
Upper clamp for the combined speed multiplier |
staminaMultMin |
0.7 |
Lower clamp for the stamina (fly-duration) multiplier |
staminaMultMax |
1.5 |
Upper clamp for the stamina multiplier |
weightMultMin |
0.7 |
Lower clamp for the weight-based speed penalty |
weightMultMax |
1.2 |
Upper clamp for the weight-based speed penalty |
heightMultMin |
0.4 |
Lower clamp for the type-based height multiplier |
heightMultMax |
1.4 |
Upper clamp for the type-based height multiplier |
weightNormKg |
40.0 |
Reference weight (kg) for speed penalty normalisation |
weightDivisor |
200.0 |
Divisor scaling weight deviation into a speed factor |
typeSpeed |
17 entries |
Per-type horizontal speed multipliers |
typeStamina |
11 entries |
Per-type stamina (fly-duration) multipliers |
typeHeight |
18 entries |
Per-type preferred altitude multipliers |
| ## Lists | ||
cannotFly |
9 species |
Species blacklisted from the flying system |
forceFly |
[] |
Species whitelisted to fly regardless of canFly check |
Requirements: Fabric, Cobblemon, Cloth Config API![Review]
If more than 10,000 people download it, I will update to the neo version.(https://cdn.modrinth.com/data/cached_images/57f6cdcd4287dca88fdb4ea237106d04b433725d.gif)


