<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://newgrf-specs.tt-wiki.net/index.php?action=history&amp;feed=atom&amp;title=NML%3ANewGRF_compatibility</id>
	<title>NML:NewGRF compatibility - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://newgrf-specs.tt-wiki.net/index.php?action=history&amp;feed=atom&amp;title=NML%3ANewGRF_compatibility"/>
	<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:NewGRF_compatibility&amp;action=history"/>
	<updated>2026-05-25T14:54:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:NewGRF_compatibility&amp;diff=2448&amp;oldid=prev</id>
		<title>FooBar: add nav template</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:NewGRF_compatibility&amp;diff=2448&amp;oldid=prev"/>
		<updated>2011-08-21T16:58:09Z</updated>

		<summary type="html">&lt;p&gt;add nav template&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:58, 21 August 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{NMLNavNoSubpages}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the course of writing a NewGRF you probably will release not only one version but you may want to provide a bug fix version or versions which add additional features to your existing NewGRF. There are various pitfalls though when it comes to keeping a NewGRF compatible with its previous versions. This page tries to list some of the most common pitfalls and changes to a NewGRF which break compatibility&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the course of writing a NewGRF you probably will release not only one version but you may want to provide a bug fix version or versions which add additional features to your existing NewGRF. There are various pitfalls though when it comes to keeping a NewGRF compatible with its previous versions. This page tries to list some of the most common pitfalls and changes to a NewGRF which break compatibility&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:NewGRF_compatibility&amp;diff=2347&amp;oldid=prev</id>
		<title>FooBar: content of nml r1625</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:NewGRF_compatibility&amp;diff=2347&amp;oldid=prev"/>
		<updated>2011-08-21T12:11:18Z</updated>

		<summary type="html">&lt;p&gt;content of nml r1625&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In the course of writing a NewGRF you probably will release not only one version but you may want to provide a bug fix version or versions which add additional features to your existing NewGRF. There are various pitfalls though when it comes to keeping a NewGRF compatible with its previous versions. This page tries to list some of the most common pitfalls and changes to a NewGRF which break compatibility&lt;br /&gt;
&lt;br /&gt;
==Dangerous changes==&lt;br /&gt;
&lt;br /&gt;
* Removing or changing the ID of an existing vehicle, house, industry, airport, station or industry tile or objectIf you haven&amp;#039;t defined explicitly any IDs: always add new items to the end of the list, the new vehicle is the last vehicle of that type, the new tiletype the last tiletype, the new industry the last industry; don&amp;#039;t comment out an existing one or re-sort the items&lt;br /&gt;
* Removing or changing a label of a railtype which was provided in an earlier version&lt;br /&gt;
* Changing the track / non-track status of a station tile&lt;br /&gt;
* Limiting vehicle properties, most notably the availability, capacities, cargo refit, climates, track type, powered status... (extending availability or adding additional cargos, increasing capacity,... is safe, though)&lt;br /&gt;
* Changing the length of a vehicle (e.g. from 7/8 to 8/8 or similar).&lt;br /&gt;
&lt;br /&gt;
==How to avoid breaking compatibility==&lt;br /&gt;
&lt;br /&gt;
Tips: when you need to change a vehicle (or other thing, works also with tiles, industries objects and houses and alike) such that you break compatibility there is a way to avoid breaking compatibility:&lt;br /&gt;
&lt;br /&gt;
* Copy the vehicle which shall be changed and add it as a new vehicle with a new, so-far unused ID&lt;br /&gt;
* Set the climate availability of the existing vehicle to 0.&lt;br /&gt;
&lt;br /&gt;
This will make sure that existing savegames with the old vehicle will keep using it, but it won&amp;#039;t be available for purchase anymore and the fixed vehicle will be available instead.&lt;br /&gt;
&lt;br /&gt;
==What to do when you have or want to break compatibility==&lt;br /&gt;
&lt;br /&gt;
Make use of the grf version and minimum_compatible_version in order to set your grf version and the (minimum) version of your newgrf which you&amp;#039;re backward compatible to; set the minimum compatible version to the current version of your NewGRF when you need to break compatibility.&lt;/div&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
</feed>