From Spring


Grass is entirely optional, but can be customized via map parameters and adds a nice touch to your map.

Mapdev-grass.png Mapdev-grass-example.png
Example Grass Disribution In Game Result



local mapinfo = {
   smf = {
        grassmapTex = "",
   resources = {
      grassBladeTex = "",
      grassShadingTex = "",
   grass = {
      bladeWaveScale = 1.0,
      bladeWidth = 0.32,
      bladeHeight = 4.0,
      bladeAngle = 1.57,
      bladeColor = {0.59, 0.81, 0.57},

Blade Wave Scale

Defaults to 1. It specifies how much the blades will wave in the wind. Higher makes them wave more.

Blade Height

Default is 4. Defines the length of the blade of grass in elmos.

Blade Angle

Default is pi/4. It defines how much each blade of grass curves.

Blade Color

does nothing when blade texture is set.

Distribution Image

Formerly Feature Map. Grass distribution is defined by blue pixels, the more blue the pixel is (the closer to blue 255 it is), the thicker grass will be at that location.

File Location The distribution map is an intermediary file compiled into the SMF/SMT files using MapConv or MapConvNG, it can also be specified in the mapinfo.lua
File Format Any that Mapconv programs support
Colour Depth 8bpp
Channels Greyscale
Spring Map Size* pixels = Spring Map Size * 16
2 32
4 64
6 96
... ...
32 512
* must be multiples of 2

Shading Image

  • If a shading image is not present, the minimap will be used in its place.
File Location ./maps/
File Format PNG, TGA
Colour Depth 8bpp
Channels RGB
Resolution Any, recommended powers of two, will be stretched over the terrain.
File:Grassmap Map example.jpeg‎ ‎
Example Result

Blade Texture

Specify a texture for the individual grass blades. The grass blades go from top to bottom, vertically.

File Location ./maps/
File Format PNG, TGA
Colour Depth 8bpp
Channels RGB (alpha does nothing here)
Resolution Any
Grass_blade_tex_testing.png Grass_blade_tex_ingame.PNG
Example Result

Forum Discussions