m4nfo uses many different data types for its different properties and functions. Using data types helps the user to apply abstraction and to ignore the details of representation.
Each data type defines the set of values a variable (or a function by use of its parameters) may assume. There are either unstructured ("simple") data types as well as structured data types. The latter are to be composed from the former type.
| Type | Value range |
| Char | <ASCII_char> | <UTF-8_char> |
| Boolean | [yes, no] | [TRUE, FALSE] |
| Nibble | [0 .. 15] |
| Cargo-ID | [0 .. 31] |
| Byte | [0 .. 255] |
| signed-Byte | [-127 .. 128] |
| Word | [0 .. 65535] |
| Dword | [0 .. 4294967295] |
| Industry-ID | [0 .. 36] (TTDPatch) [0 .. 63] (OTTD) |
| Station-ID, Object-ID, Veh-ID[*] | [0 .. 255] |
| Industrytile-ID | [0 .. 255] (TTDPatch) [0 .. 511] (OTTD) |
| Basecost-ID | [0 .. 48] (TTDPatch) [0 .. 65] (OTTD) |
| House-ID | [0 .. 254] (TTDPatch) [0 .. 511] (OTTD) |
| Bridge-ID | [0 .. 10] (TTDPatch) [0 .. 12] (OTTD) |
| Text-ID | [0 .. 1023] |
| Sound-ID | [0 .. 65535] [**] |
[*] TTD/TTDPatch/OTTD <r12924:
Since OpenTTD r13482, IDs greater than 255 are allowed, up to a theoretical limit of 65535. Any engine defined which is not in the original range listed will have no default properties, including the name.
Since OpenTTD r25835, object-IDs have been increased to 64,000.
[**] Sound-IDs 0 .. 72 are TTD original sounds
| Type | Value range | Usage |
| Range | <Nibble> .. <Nibble> | <Byte> .. <Byte> | <Word> .. <Word> | a range of consecutive numbers |
| Enum | <Byte> | Enumerated type |
| String | {<Char>} | Definition of names and other texts |
| Label | <Char>*4 | Definition of (class) labels for stations, cargoes and railtypes |
| Date | ([1 .. 31] - [1 .. 12] - <Word>) | (<Word> / [1 .. 12] / [1 .. 31]) | Definition of dates |
| Coordinate | <Nibble>, <Nibble> | Coordinate: x-value, y-value |
| Unit-term | <Word> [km/h, KM/H, mph, MPH] | Definition of speed |
| <Word> [hp, HP, ps, PS, kw, KW] | Definition of power | |
| <Word> [t, T, tnl, TNL, tnsh, TNSH, kg (*), KG (*)] | Definition of weight | |
| <Byte> [kn, KN, kp, KP, lbf, LBF] | Definition of tractive effort | |
| <Byte> [%] | Definition of percent values (refitcost, canalspeed, ..) | |
| Feature | [_TRAIN, _ROADVEHICLE, _SHIP, _STATION, _CANAL, _BRIDGE, _HOUSE, _GLOBAL, _CARGO, _SOUND, _OBJECT, _RAILTYPE, _AIRCRAFT, _INDUSTRYTILE, _INDUSTRY] | Definition of TTD feature to use |
| TileType | [0, 2, 4, 6] | TTD station tile types |
| EngineType | [STEAM, DIESEL, ELECTRIC, MONORAIL, MAGLEV, WAGON] | Definition of engine types |
| Callback | Feature-specific, see there | Definition of callbacks |
| CargoClass | [TRVL, POST, EXPRESS, VALUE, BULK, PGOODS, LIQUID, REEF, HAZARD, SHELTER, WEIGHT] | Definition of cargo classes |
| CargoType | [PASS, COAL, WATR, MAIL, OIL, LVST, GOOD, GRAI, WHEA, MAIZ, WOOD, IORE, CORE, STEL, PLAS, VALU, GOLD, DIAM, SPECIAL, MENU] | Definition of original TTD cargo types. For custom cargo types (ECS, FIRS) see here. |
| Climate | [INACTIVE, TEMPERATE, ARCTIC, TROPIC, TOYLAND] | Definition of climate |
| Effect | [NONE, NOPOWER, steam(), diesel(), electric()] | Engine effect |
| List | <par_1>, <par_2>, ..., <par_n> | List definition, may contain structured types |
| TownZone | [TZ_OUTSKIRTS, TZ_PERIPHERY, TZ_RESIDENTIAL, TZ_COMMERCIAL, TZ_CENTRE] | Definition of town zones |
| House-size | [SINGLE, DOUBLEX, DOUBLEY, QUAD] | Definition of house sizes |
| Language-ID | [ALL, CZ, D, E, F, HR, I, KR, N, NL, H, PL, RUS, S, SRB, UK, US] | Definition of languages |
(*) = road vehicles only