So basically, I was playing in my friend's minecraft world. My friend had died minutes before, so I tried getting his stuff and bringing it back to him. I was really far away from where we lived, so I was a little nervous that I would die. This was all so fast to process, but I was killing a zombie, then a creeper came behind me and blew up. I most likely would have died, but when the creeper exploded I got 4 absorption hearts. I was really confused, so I tried looking it up on google. But I couldn't find much, so I thought it'd be best if I asked here. Thanks to anyone who can help :). I also added my reaction to what happened, I was really confused LMAO.
The only Absorption sources are golden apples and Totems of Undying, so I'd think you had a Totem of Undying in the offhand and just didn't notice. That'd make even more sense if you weren't wearing enough armor to avoid dying to the creeper.
Rollback Post to RevisionRollBack
Watch out for the crabocalypse. Some say the day will never come. But it will.
Feel free to drop by for a chat whenever.
If you'd like to talk with me about other games, here are a few I play.
Team Fortress 2
Borderlands series (Borderlands 2 is my favorite game, ever. TPS combat is a lot of fun and makes up for the lower-quality story, in my opinion)
Elder Scrolls series
Warframe (IGN is something like That_One_Flesh_Atronach)
Pokémon series (HGSS forever)
Left 4 Dead 2 (Boomer files always corrupt though)
SUPERHOT (SUPERHOT is the most innovative shooter I've played in years!)
Dead Rising series (Dead Rising 2 is one of my favorite games, and the 3rd was a lot of fun. 1st has poor survivor AI and the 4th is bad)
Just Cause series
Come to think of it, I mainly play fighting-based games.
According to a comment the damage calculation is flawed such that you gain health when you take damage twice during the same tick and the second attack is weaker than the first attack (normally the game allows damage to bypass damage immunity if the second attack deals more damage than the first attack, with the difference applied; somehow, this bug lets the negative difference through and it actually heals you and appears as absorption hearts even though you don't have the effect (basically the game's way of showing the additional health).
If the creeper had absorption then it would make a area cloud where everybody in that area gets absorption
This is very highly unlikely since the only way to get Absorption in Survival is from golden apples or totems of undying, neither of which can be made into splash/lingering potions, so the only other possibility is the use of commands; much more likely, it is the bug I mentioned before, which is caused by some weird bug with the way Bedrock Edition handles damage (in Java Edition there is a mechanic where if you take damage while damage-immune (red) the damage will not be completely blocked unless it is weaker than the initial attack; e.g. taking 1 damage followed by 3 damage will deal a total of 3 damage, 2 (3 - 1) for the second attack. Somehow, in Bedrock when the second source of damage is less it applies it to your health; e.g. 3 damage followed by 1 damage gives you 2 health which appears as absorption hearts)
Code from 1.6.4 that shows how damage is handled; the first part handles damage taken while damage-immune and rejects it if it is less than the previous damage taken. Bedrock probably omits "if (par2 <= this.lastDamage) return false;" so it passes a negative damage to "damageEntity":
Also, I can see how you get Absorption from taking negative damage; the last two lines handle Absorption in such a way that if the damage is negative it will add it (e.g. -2 damage becomes "getAbsorptionAmount - (-2 - 0)", with the negatives canceling out to become +2):
If the problem in Bedrock is really just a single line fix then it is just crazy that Mojang hasn't fixed it yet (then again, there is a long list of bugs with similarly simple fixes that haven't been fixed, some with much bigger impacts on gameplay, like how Blast Protection is rendered half-useless due to not actually reducing knockback, which has been around since at least 1.6.4 and maybe since it was added; or strongholds in Bedrock failing to generate end portals, likely due to the omission of a simple loop that Java uses to ensure one is generated, this one is actually closed as intended, as is the failure to fix fossils overwriting end portals (won't fix, despite having been fixed in Java). There's also actually a second safeguard in the 1.6.4 code; "applyPotionDamageCalculations" returns 0 if the calculated damage is 0 or less (probably to handle negative status effects, including Protection enchantments), which will then be passed to the absorption calculations, so even if "damageEntity" is called with a negative damage it won't try to add it to absorption.