How liquids work
Liquids are cellular automata. The rules appear to be as follows:
 Falling liquid
Liquids that are suspended above an open area by one block thick of material will seep through the material and drip to the floor. Lava particles that are seeping do not cause damage or start fires. This makes digging upwards safer, since you can tell if you are near a pool of water/lava.
 Liquid level
Each liquid block has a level value. Source blocks have a level of 0, and the maximum level depends on liquid type.
- Water: 7
- Lava: 3 (7 in The Nether.)
Note: The "level" value increases as the water is further from the source. A high level value means that the water is actually physically downhill.
 Still liquids
To keep track of which blocks are actively flowing, Water and Lava each have a pair of block IDs. For water, there is Water (8) and Still Water (9). Still Water will stay in place until it receives a block update. Water updates periodically and will change itself to Still Water when it cannot spread any further.
Updating a block next to Still Water will turn it back to Water so it can spread some more.
If you edit either type of liquid block into your inventory, they will spread when placed, since placing a block causes updates.
 Liquid block update cases
The state of a liquid block only updates in certain cases:
- On creation
- If one of the 6 neighbouring blocks' state changes.
- If its own level changes
State changes that cause an update include:
- Adding or removing a block
- A neighbouring block's level changes
- A redstone wire switches on or off
 Liquid block update process
When a liquid block updates, it performs the following checks.
- Check inward flow
- If there is a liquid block of the same type above, set level to 1
- Otherwise, reduce or increase level in steps of 1 so that it is 1 higher than the one of its 4 neighbouring block with the lowest level*
- If level is increased past the max level, replace liquid block with air block.
- Level cannot be decreased below 1
* This does not affect source blocks (level = 0)
- Check outward flow
- This only happens for liquid blocks of less than the max level value
- Determine the shortest distance to a fall, but only scan 5 blocks distance*
- If any of the directions tied for shortest have an air block, convert that air block to a liquid block with a level of 1 more than the current block)*
* This means that lava will flow towards a drop that it cannot reach.
 Source creation
A water block is converted into a source block if both of the following conditions hold:
- it is bordered by at least 2 water source blocks on the same horizontal level.
- the block underneath is a solid block or (as of Minecraft 1.5) a water source block.
Lava source blocks cannot be created.
 Mixing of liquids
If a liquid flows into a block occupied by another liquid, then the block turns into a solid block according to the following rules:
- If Water flows into a Lava source block, then Obsidian is produced.
- If Lava flows downward into Water, then Stone is produced.
- if Water flows horizontally into downwards flowing Lava, nothing happens.
- Otherwise, Cobblestone is produced.
When determining the shortest distance to a drop, other liquid blocks are assumed to be equal to air.
As of Beta 1.9 pre-release 1, liquid that is suspended above an open area by one block thick of material will seep through the material and drip to the floor. Lava that falls onto water will produce stone. Prior to 1.9 pre-release, the water would be replaced with falling lava.
In Beta 1.9 Pre-release 5, a lava block could be converted into a source block if the following conditions were met:
- it is bordered by 4 lava sources in a cross-like arrangement
- the 4 sources are on the same horizontal level as it
- there is a solid, opaque block underneath it
As of Minecraft 1.0, lava source blocks cannot be created.
- Natural springs of both liquids can be found in Extreme Hills biomes. They can also appear as small pools at the surface or in underground caves.