Water in SRB2 is a type of floor over floor. To create water, you need to make both a control sector outside of the main map and a target sector inside the map where the water will appear. Choose one of the linedefs in the control sector as the control linedef, give it one of the water linedef types (see below) and tag it to the target sector. The ceiling of the control sector is the surface of the water, and the floor is the bottom. If you want to create rivers, lakes or pools, the water block should be placed inside a pit, because otherwise it will appear as a literal block of water floating in the air. If the Repeat Midtexture flag is checked on the control linedef, it will generate a water ripple effect on the surface of the water.
The texture used for the control linedef is the texture used on the side of the block. You can use a waterfall texture such as
GFALL1 here to make the edge of the block look like falling water. Place another water block next to it at a lower level to create a waterfall. If the sides of your water block will not be visible (for example in a pool), it's a good idea to use one of the "No Sides" water types to make it slightly faster to render.
The following linedef types are available for water FOFs (the articles linked below contain example WADs and detailed information on how to set them up):
- Linedef type 120: FOF: Water, Opaque
- Linedef type 121: FOF: Water, Translucent
- Linedef type 122: FOF: Water, Opaque, No Sides
- Linedef type 123: FOF: Water, Translucent, No Sides
- Linedef type 124: FOF: Goo Water, Translucent
- Linedef type 125: FOF: Goo Water, Translucent, No Sides
For translucent water types, you can specify the degree of translucency in the front upper texture of the FOF control linedef, using a value between
#000 (invisible) and
#255 (fully opaque). If no front upper texture is specified,
#128 is used as the default value. It is generally recommended to use the translucent water types as they look more realistic. In very rendering-intensive levels, opaque water may be useful because it obscures the other side of the surface from the player's view, allowing the game to skip rendering it. However, opaque water should never be used if there are things below the water surface that the player needs to be able to see, such as hazards or death pits.
Water should normally be combined with a colormap to give it a blue tint. To add a colormap, create a new control sector, give one of its linedefs type 606 and tag it to the water FOF's control sector. The color is set in the linedef's front upper texture as a color code in the format
BB are two hexadecimal digits controlling the intensity of red, green and blue, respectively, and
A is a letter between A and Z controlling the overall intensity of the colormap, with A being the weakest and Z the strongest. The water in Greenflower Zone uses the colormap #40A0FFJ, which is also commonly used in custom maps for normal water. The water in Arid Canyon Zone is darker, using #0004FFJ instead.
Normally, the colormap fades towards black as the brightness of the water sector decreases. However, some liquid types use a different color to fade to, creating a fog effect. The fade color can be specified in the colormap linedef's front lower texture, using the same
#RRGGBBA color code.
Liquids other than water are made simply by changing the textures and colormap. If the liquid is painful, apply the damage sector effect to the water's FOF control sector.
- Goo water: Use linedef type 124 or linedef type 125 for the goo physics. The official SRB2 maps use translucent water with a translucency of
#020and #CF7FCFZ for the colormap.
- Lava: Apply Damage (Fire) for the fire damage. The official SRB2 maps use #FF7F00Z for the colormap. Unlike other liquids, put #FF7F00Z on both the upper and lower texture of the colormap control linedef to create the fog effect inside the lava.
- Old THZ slime: Damage (Water) is used for slime damage. The old SRB2 maps from v2.0 and before used #E000E0S for the colormap, but #FF00FFS is also a good option.
- Green acid: Some custom maps use green acid as a substitute for the old THZ slime, using Damage (Water) as the damage effect. The usage of the Instant Kill effect for acid, as seen in Mystic Realm's Nitric Citadel Zone, for example, is now generally frowned upon and should be avoided. The commonly used colormap for acid uses #999999D for the upper texture and #00FF00Z for the lower texture.
Water textures and flats
|FWATER1||CFALL1||Greenflower Zone water||#40A0FFJ or #0004FFJ|
|VIOFLR||TFALL1||Techno Hill Zone goo||#CF7FCFZ|
|CHEMG01||v2.0 Techno Hill Zone slime||#E000E0S or #FF00FFS|
|LWATER1||LFALL1||Deep Sea Zone water||#40A0FFJ|
|RLAVA1||RVZFALL1||Red Volcano Zone lava||#FF7F00Z (upper and lower texture)|
|LAVA1||SFALL1||v1.09.4 Red Volcano Zone lava|
|GOOP01||AFALL1||Acid|| #999999D (upper texture) |
#00FF00Z (lower texture)