GRFv9
Introduction
This page describes work so far, design considerations and other items of interest for a potential version 9 of the GRF specification (GRFv9), or equivalent specification evolution.
This page is a not a guarantee that any such changes will be occur in future, or that any such future work will closely match that described here.
Existing Work
GRFv9 PRs (closed) https://github.com/OpenTTD/OpenTTD/pull/13309 (NML: https://github.com/OpenTTD/nml/pull/357)
Design Considerations
The current GRF specification has several areas which are not ideal and could be improved in a subsequent specification version.
This section should list current pain points and non-idea specification aspects, and where possible suggest improvements or general design principles for future additions. This section is non-exhaustive.
(The list below does not include those already addressed in https://github.com/OpenTTD/OpenTTD/pull/13309, see above).
Concurrent Action2 ID Limit
GRFs are currently limited to 256 simultaneous action2 IDs. This is a common pain point for NewGRF authors. NewGRF authors are encouraged to needlessly duplicate action2s (e.g. by use of templating mechanisms) to mitigate this, this results in larger GRF files which has a negative impact on content distribution and run-time performance. Moving to 16 bit Action2 IDs would remove this problem without imposing significant technical difficult.