Bloodstained Altars dedicated to the fickle goddess Kali can be found scattered throughout the caves.
So long as Kali isn't too unhappy with you, you can earn favor by leaving stunned or dead bodies as offerings upon the altar. This increases your hidden 'favor rating' which will incrementally earn you useful rewards as it rises, including items and health.
However, destroying an altar (or even just allowing an altar to be destroyed) will anger Kali, reducing your favor and causing her to inflict dire punishments upon you that will increase in severity if you continue to offend her.
The amount of favor won from a sacrifice depends on the 'value' of the offering.
Generally, more dangerous enemies are worth more, and Kali prefers them stunned, rather than dead: 
- In practice, the Shopkeeper's stun time is usually too short to allow him to be sacrificed alive, but it's possible - albeit risky - to lure him above an altar and stomp him so he lands stunned upon it.
- If a Mantrap eats a Shopkeeper, if you're fast enough you can place the stunned mantrap on the altar. Both will be sacrificed at once, giving you 14 Favor. This is usually very dangerous, as Shopkeepers will explode out from inside Mantraps alive and angry.
- You will gain no favor at all if Kali is already very angry at you, which occurs when your favor with her is -8 or less.
- Despite being quite powerful, Vampires and Mantraps are worth the least favor because of the very little blood they contain.
Corpses that cannot be sacrificed
- The player character (the Spelunker or the Tunnel Man) will leave a corpse when killed, but obviously these can't be used for sacrificing - unless the player is playing as a Damsel, sacrificing Spelunker NPCs.
- Alien Lord are too heavy to carry and immobile whilst alive, so therefore cannot be placed on an Altar for sacrifice.
- The corpses of Fire Frog always explode before Kali accepts them as sacrifices.
- Skeletons and Piranha Skeletons won't be accepted as sacrifices as they contain no blood.
As you gain favor, Kali will reward you for your devotion.
Rewards are given incrementally, with greater rewards given for higher levels of favor
At 8 Favor, you gain a random Accessory from the following selection:
- Kali will never give you an item you already own.
- Having a jetpack will prevent the Cape from appearing, but having the Udjat Eye will not prevent the Spectacles from appearing.
- If you already have every item on the list, then you are rewarded with a jetpack.
- If you already have a jetpack as well, you will be given a bomb box instead.
At 32 favor, Kali will fill your bag up to 99 Bombs.
- If you already have 80+ bombs you will be given an extra 4 to 8 HP instead.
Finally, for every additional 16 favor you earn above that, you gain an extra 4 to 8 HP.
If a sacrificial altar is destroyed for any reason, Kali will blame you for it and you will lose 16 favor. On top of this, you also receive a punishment:
- The first time an altar is destroyed, the head of Kali's statue will burst open and release 6 Spider at once.
- The second time an altar is destroyed, Kali will attach a Ball and Chain to your leg. The ball can be dropped in lava to destroy it, but it will come back upon starting the next level.
- For destroying a third altar (and any more after that), Kali will make the entire level dark and immediately summon the Ghost.
If the level is already dark and the Ghost has already appeared, then the 'Spider' punishment will be used instead.
- Altars feature in many Roguelikes (such as Nethack and ADOM) in which any enemy over the altar could be sacrificed, dead or alive. As such, Spelunky's altars are most similar to those in ADOM.
- The Ball and Chain punishment is seen in Nethack, with similar implications such as the need to carry it, and its potential use as a projectile.
- An altar and an idol can be found side by side on a floor
- Source Code, object 'oEnemy', method 'create', default favor stat.
Object 'oManTrap', 'oCaveman', 'oYeti', 'oHawkman', 'oShopkeeper', 'oDamsel' Method 'create'
- Source Code, object 'oEnemy', method 'step'
- source code, object 'sSacAltarLeft', method 'destroy'