Fix landing balloons freezing mid-air when player exits before ground contact#125
Open
Eldrinn-Elantey wants to merge 2 commits intomasterfrom
Open
Fix landing balloons freezing mid-air when player exits before ground contact#125Eldrinn-Elantey wants to merge 2 commits intomasterfrom
Eldrinn-Elantey wants to merge 2 commits intomasterfrom
Conversation
…ts mid-air Two related bugs caused landing balloons to freeze in place permanently when the player exited the entity before its first ground contact on Mars. 1. tickInAir() was guarded by `if (this.worldObj.isRemote)`, meaning gravity and motion updates only ran on the client side. During a normal descent the riding client drives position packets and the server follows. Once the rider dismounts mid-air, no client sends position updates for the entity, so the server-side balloon freezes indefinitely. Fix: remove the isRemote guard so physics run on both sides. 2. allowDamageSource() blocked all damage while groundHitCount == 0. With no passenger, groundHitCount never increments, making the balloon permanently indestructible. Fix: restrict the invulnerability window to an active ridden descent only (groundHitCount == 0 && riddenByEntity != null). Once the passenger leaves before landing the balloon becomes damageable, letting the player retrieve their inventory manually.
|
Is there an existing bug report for this issue? (It's fine if there isn't, but I want to make sure we don't leave orphaned issues behind.) |
Author
|
I encountered this problem myself and heard about it from other players. When creating PR, I wanted to find an issue on this topic but couldn't find one. Perhaps people didn't consider it a serious problem and didn't create an issue. Even though the balls remain, this doesn't prevent you from taking the rocket from them. |
Nikolay-Sitnikov
previously approved these changes
Mar 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When landing on Mars, the player is placed inside
EntityLandingBalloonswhich bounces to a stop on the surface. If the player exits the entity
before the first ground contact, the balloons freeze permanently near
the surface and cannot be destroyed by any means, leaving the rocket
inventory inside inaccessible.
Root cause
Two bugs in
EntityLandingBalloons:tickInAir()if (worldObj.isRemote). Server never updatedmotionY, so the entity had no authoritative downward velocity once the rider left.allowDamageSource()falsewhenevergroundHitCount == 0. Without a passenger this counter never increments, making the balloon permanently invulnerable.Fix
tickInAir()— removed theisRemoteguard. Gravity now runs on theserver as well, so the balloon continues its descent regardless of whether
a player is riding it.
allowDamageSource()— narrowed the invulnerability condition togroundHitCount == 0 && riddenByEntity != null(active ridden descentonly). A balloon abandoned mid-air becomes damageable so the player can
break it and recover the inventory at their own discretion.
What was intentionally NOT changed
The balloon is never destroyed automatically and its inventory is never
dropped without player interaction. The rocket stored inside is safe until
the player chooses to break the balloon.