Making a self-referencing sector



Self-referencing sectors are the most well-known and widely used approach for creating invisible floors and deep water effects.

Implementation
Create a sector for the region in which you want the effect to take place. This should be defined with the flats, light-levels and heights of the desired appearance. For example, in the case of deep water, This sector should define the water level.

Create a sub-sector with the flats, light-levels and heights of the desired effect. Using the deep water example, this sector would define the height of the player's feet.

Alter the sidedefs of the sub-sector so that both sides reference the sub-sector. This is now a self-referencing sector.

Limitations

 * Depending on your node-builder, the effected region may be limited to the sub-sector or the parent sector, or may depend on the player's direction of travel. In the example PWAD below, if you walk onto the raised section next to where the invisible floor is, the player will be at 8px off the ground. If you now walk onto the invisible floor, you will be 32px off the ground. You will remain at this height until you either leave the parent sector, or approach the 32px real sector at the other end.


 * In the deep water example, sprites are not occluded by the flat. So, if you place an item in the water, it will be drawn at the height of the self-referencing sector but on top of the water-flat.

Seen-in

 * Doomsday of UAC (invisible floors)

Example

 * [[Media:Selfref.wad | Example of this technique]] (file info).