Water design
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.
Water types
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.
Colormap
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 #RRGGBBA
, where RR
, GG
and 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 color #40A0FFJ, which is also commonly used in custom maps for normal water.
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. The water in Deep Sea Zone uses this feature, combining the base color #008587R with the fade color #1B1B34F.
Other liquids
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
#032
and #B76FB7Z for the colormap. - Lava: Apply Damage (Fire) for the fire damage. The official SRB2 maps use #FF7F00Z on both the upper and lower texture of the colormap control linedef to create the fog effect inside the lava. Unlike other liquids, lava uses the opaque water types.
- 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: Techno Legacy Zone uses 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 is generally frowned upon and should be avoided. The acid color used in Techno Legacy Zone is #00FF00Z.
Water textures and flats
The following is a list of textures and flats available for water and other liquids, along with their typical usage and commonly used colormaps:
Flats | Textures | Usage | Colormap | ||
---|---|---|---|---|---|
FWATER1 | CFALL1 | Greenflower Zone water | #40A0FFJ or #0004FFJ | ||
GFALL1 | |||||
VIOFLR | TFALL1 | Techno Hill Zone goo | #CF7FCFZ | ||
CHEMG01 | v2.0 Techno Hill Zone slime | #E000E0S or #FF00FFS | |||
DSWATER1 | DSWATER2 | Deep Sea Zone water | #008587R (basecolor) #1B1B34F (fadecolor) | ||
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) | ||
SURF01 | OFALL1 | Generic water | |||
BWATER01 | |||||
WATER0 |
See also
- Pusher tutorial – For creating currents and waterslides inside the water.
- Tagging