<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://newgrf-specs.tt-wiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ammler</id>
	<title>GRFSpecs - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://newgrf-specs.tt-wiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ammler"/>
	<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/wiki/Special:Contributions/Ammler"/>
	<updated>2026-05-14T09:26:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3528</id>
		<title>Action8</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3528"/>
		<updated>2014-06-25T11:25:21Z</updated>

		<summary type="html">&lt;p&gt;Ammler: /* Used ranges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Define GRFID, Name and Description&lt;br /&gt;
&lt;br /&gt;
There are many new graphic sets available to TTD players. Of course, we need to make sure that we never get sets mixed up. To make sure this will never happen you can set an ID. Another useful feature of Action 8 is the ability to include useful information into the final .grf file. Here, we explain how Action 8 works.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
Like all other pseudo-sprites, Action 8 consists of hexadecimal bits. There is no limitation in the total amount of hexadecimal bits you can use in Action 8. One term does have a limit though. Let&#039;s give an example of what an Action 8 line looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;sprite-number&amp;gt; * &amp;lt;length&amp;gt; 08 &amp;lt;version&amp;gt; &amp;lt;grf-id&amp;gt; &amp;lt;name&amp;gt; &amp;lt;description&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a short overview of what every term means:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Element&#039;&#039;&#039;!![[GRFActionsDetailed|&#039;&#039;&#039;Size&#039;&#039;&#039;]]!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;sprite-number&amp;gt;||dec||A sequential sprite number&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;length&amp;gt;||dec||The total number of bytes in the action&lt;br /&gt;
|-&lt;br /&gt;
|08||B||Action 08&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;version&amp;gt;||B||GRF version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;grf-id&amp;gt;||4*B||A unique ID for your .grf file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||S||A short text containing the name of this set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;description&amp;gt;||S||A longer description of this set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Sprite-number ===&lt;br /&gt;
&lt;br /&gt;
The number of this sprite.&lt;br /&gt;
&lt;br /&gt;
Action 8 has to be one of the first pseudosprites in the .NFO file. It is however valid to have other actions before it, except those that define new sprites or vehicle (etc.) properties.&lt;br /&gt;
&lt;br /&gt;
Actions 6, 7, 9, B, C, D (except [[GRFResourceManagement|resource management]] sprites), 10 and 14 are valid before an action 8.&lt;br /&gt;
&lt;br /&gt;
=== Length ===&lt;br /&gt;
&lt;br /&gt;
The total number of bytes in Action 8.&lt;br /&gt;
&lt;br /&gt;
=== GRF Version ===&lt;br /&gt;
&lt;br /&gt;
This should be the graphics version that your file is written for. This is the version of the [[Version_numbers#GRF_version|GRF format]], not the [[Version_numbers#Version_of_a_specific_NewGRF|version of your GRF]]!&lt;br /&gt;
It is also not the &amp;quot;[[Version_numbers#NFO_version|NFO version]]&amp;quot; you put at the top of &amp;quot;.nfo&amp;quot; files to announce the used syntax for GRFCodec.&lt;br /&gt;
&lt;br /&gt;
Valid values are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Compatibility&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#TTDPatch_version|TTDPatch version]]&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#OpenTTD_version|OpenTTD support]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|08||02..08|| - || {{ottd|1.2|r23159}}&lt;br /&gt;
|-&lt;br /&gt;
|07||02..07||2.5 beta 1 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|06||02..06||2.0.1 alpha 13 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|05||02..05||2.0r1 Stable TTDPatch + TTDPatch 2.0.1 alphas up to 12|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|04||02..04||2.0 Stable TTDPatch||{{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|01||00..01||1.9.1 alpha 28 or higher||{{ottd|no}}&lt;br /&gt;
|-&lt;br /&gt;
|00||00||1.9.1 alphas up to 27||{{ottd|no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entries for 00 and 01 are included only for completeness, and to aid with updating existing graphics. They should not be used with new graphics, because they will be incompatible with current TTDPatch and OpenTTD versions. OpenTTD 1.1.0 and later will disable NewGRFs with non-supported GRF versions.&lt;br /&gt;
&lt;br /&gt;
Make sure to set a version number no lower than the minimum version that supports all features which are used by your file.&lt;br /&gt;
&lt;br /&gt;
The compatibility column means how low a version number is supported by the given TTDPatch version, e.g. TTDPatch 2.0r1 supports graphics files with any version from 02 to 05, but not for example 01 or 06.&lt;br /&gt;
&lt;br /&gt;
Version 07 and 08 introduce a few minor semantic changes to some graphics features, i.e. the file will behave slightly differently depending on whether it&#039;s declared as version 06, 07 or 08. These changes are described in more detail in the pages for the features they affect.&lt;br /&gt;
&lt;br /&gt;
=== GRFID ===&lt;br /&gt;
&lt;br /&gt;
This is a series of 4 bytes. It&#039;s a convention to &lt;br /&gt;
* use the first &#039;&#039;&#039;three bytes&#039;&#039;&#039; for the creator&#039;s &#039;&#039;&#039;initials&#039;&#039;&#039; in ASCII code, e.g. 54 57 48 for &amp;quot;TWH&amp;quot;. &lt;br /&gt;
* The last (fourth) byte typically identies which of the author&#039;s sets this is. See the next subsection for grfID ranges that are already in use.&lt;br /&gt;
* Version numbers for NewGRFs are communicated via preceeding [[Action14]]. &lt;br /&gt;
&lt;br /&gt;
In principle, you are free what to use for the GRFID as long as you are sure it is unique, but generally it is best to follow the above guidelines. See the last subsection for locations where to find already used GRFIDs.&lt;br /&gt;
&lt;br /&gt;
Note that GRFIDs starting with FF (i.e. the first byte is FF, such as in FF123456) are reserved for internal purposes and should not be used by regular .grf files. These GRFs can&#039;t be disabled; TTDPatch displays them with a blue flag in the GRF Status Window.&lt;br /&gt;
&lt;br /&gt;
The extra newgrf file, part of OpenTTD base sets, have to have a GRFID starting with FF &amp;quot;OT&amp;quot;.&lt;br /&gt;
See the table below:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!GRFID!!purposes&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 00||n/a&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 01 .. FE FF FF FF||normal NewGRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF 00 00 00 .. FF FF FF FF||reserved&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 00 .. FF &amp;quot;OT&amp;quot; FF||extra base GRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 01|| OpenGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTD&amp;quot;|| OpenTTD (extra) base graphics: openttdd.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTT&amp;quot;|| OpenTTD (extra) base graphics: openttd.grf (OpenTTD &amp;gt;= 1.1)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTW&amp;quot;|| OpenTTD (extra) base graphics: openttdw.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF FF FF FF|| TTDPatch (extra) base graphics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used ranges ====&lt;br /&gt;
&lt;br /&gt;
The following table shows ranges of GRFIDs that are in use by several authors of NewGRFs. People choosing new GRFIDs are asked to not use a GRFID that falls within the ranges of one of the following. This list is in no way exhaustive; if you want to claim your own range, please update the table. For legacy reasons there are some broader ranges of GRFIDs reserved by some people. When you want to reserve a broader range than a variation in only the last byte, think twice and consider how long it will take you to write 255 sensible completely different NewGRFs (as the version of a single grf is encoded in the action14, thus a new ID will even hurt and kill your backward compatibility with older versions).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Range (hex)!!ASCII!!Usage&lt;br /&gt;
|-&lt;br /&gt;
|41 4E XX XX||A N _ _||FISH ship set&lt;br /&gt;
|-&lt;br /&gt;
|41 50 XX XX||A P _ _||HEQS (Heavy Equipment Set)&lt;br /&gt;
|-&lt;br /&gt;
|43 41 XX XX||C A _ _||OzTrans; 1st generation Canadian and some North American sets&lt;br /&gt;
|-&lt;br /&gt;
|43 48 XX XX||C H _ _||CHIPS Has Improved Players&#039; Stations&lt;br /&gt;
|-&lt;br /&gt;
|4A 56 XX XX||J V _ _||juzza1; Various Finnish sets&lt;br /&gt;
|-&lt;br /&gt;
|4D 65 XX XX||M e _ _||George; ECS, Long vehicles&lt;br /&gt;
|-&lt;br /&gt;
|4D 47 XX XX||M G _ _||Ammler, #openttdcoop&lt;br /&gt;
|-&lt;br /&gt;
|4E 57 XX XX||N W _ _||Norwegian projects&lt;br /&gt;
|-&lt;br /&gt;
|4F 47 2B XX||O G + _||OpenGFX+ sets&lt;br /&gt;
|-&lt;br /&gt;
|4F 7A XX XX||O z _ _||OzTrans; Various non-Canadian projects&lt;br /&gt;
|-&lt;br /&gt;
|57 42 XX XX||W B _ _||wallyweb; NewObjects, Various features, GRF development&lt;br /&gt;
|-&lt;br /&gt;
|6D 62 XX XX||m b _ _||Michael Blunck; DBsetXL, NewStations, MariCo&lt;br /&gt;
|-&lt;br /&gt;
|97 85 XX XX||? ? _ _||OzTrans; 2nd generation Canadian graphics&lt;br /&gt;
|-&lt;br /&gt;
|97 87 XX XX||? ? _ _||OzTrans; Canadian Theme Pack (under development)&lt;br /&gt;
|-&lt;br /&gt;
|F1 25 00 XX||? ? ? _||FIRS Industry Replacement Set&lt;br /&gt;
|-&lt;br /&gt;
|FB FB XX XX||? ? _ _||FooBar; Dutch sets, Transrapid/metro tracks&lt;br /&gt;
|-&lt;br /&gt;
|FF XX XX XX||? _ _ _||System reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used GRFIDs ====&lt;br /&gt;
&lt;br /&gt;
There are several places that have/show lists of GRFIDs that are definitely in use by someone. Absence of a GRFID in any of these lists is not proof that it is not used though.&lt;br /&gt;
&lt;br /&gt;
* [http://bananas.openttd.org/en/newgrf/] Bananas shows the GRFIDs of all currently active NewGRFs that are distributed by the system&lt;br /&gt;
* [http://grfcrawler.tt-forums.net/index.php?do=search&amp;amp;mode=advanced] GRFCrawler allows one to search on GRFIDs of NewGRFs in its system&lt;br /&gt;
* [http://devs.openttd.org/~rubidium/newgrf.html] OpenTTD generates a list that shows all NewGRFs that were ever used in a multiplayer game&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
This short field should contain the name of the set. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The name must be short because it should fit on one line of the [[GRFStatusWindow|GRF Status window]].&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This is a longer description of the set. Typically it contains the name of the author and a copyright notice or other attribution. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The description may be quite long, but should be short enough to fit in the description part of the [[GRFStatusWindow|GRF Status window]], or a part of it may be cut off.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Below is an example of what a real Action 8 pseudo-sprite could look like.&lt;br /&gt;
&lt;br /&gt;
 1 * 43 &#039;&#039;&#039;08&#039;&#039;&#039; 07 &amp;quot;TW&amp;quot; 01 06 &amp;quot;Tutorial Example&amp;quot; 00 &amp;quot;Changes nothing. Author: A kind person&amp;quot; 00&lt;br /&gt;
&lt;br /&gt;
Let&#039;s clarify it bit by bit. In order to understand what the bits say you could use a hexadecimal editor.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Byte&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1||&amp;lt;sprite-number&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|43||&amp;lt;length&amp;gt; of the action in bytes; start counting at 08 (&amp;lt;action&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|08||&amp;lt;action&amp;gt;: sets this pseudo-sprite to function as action 8&lt;br /&gt;
|-&lt;br /&gt;
|07||&amp;lt;version&amp;gt;: GRF format version 7 (this is the version of the used GRF format, not of your GRF)&lt;br /&gt;
|-&lt;br /&gt;
|54 57 01 06||&amp;lt;-grf-id&amp;gt;: ASCII code for TW, then the numbers 1 and 6 to indicate version 6 of TW&#039;s first set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Tutorial...&amp;quot; 00||&amp;lt;name&amp;gt;: Name of the NewGRF&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Changes...&amp;quot; 00||&amp;lt;description&amp;gt;: Description of the NewGRF&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ammler</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3527</id>
		<title>Action8</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3527"/>
		<updated>2014-06-25T11:25:00Z</updated>

		<summary type="html">&lt;p&gt;Ammler: /* Used ranges */ my range&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Define GRFID, Name and Description&lt;br /&gt;
&lt;br /&gt;
There are many new graphic sets available to TTD players. Of course, we need to make sure that we never get sets mixed up. To make sure this will never happen you can set an ID. Another useful feature of Action 8 is the ability to include useful information into the final .grf file. Here, we explain how Action 8 works.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
Like all other pseudo-sprites, Action 8 consists of hexadecimal bits. There is no limitation in the total amount of hexadecimal bits you can use in Action 8. One term does have a limit though. Let&#039;s give an example of what an Action 8 line looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;sprite-number&amp;gt; * &amp;lt;length&amp;gt; 08 &amp;lt;version&amp;gt; &amp;lt;grf-id&amp;gt; &amp;lt;name&amp;gt; &amp;lt;description&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a short overview of what every term means:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Element&#039;&#039;&#039;!![[GRFActionsDetailed|&#039;&#039;&#039;Size&#039;&#039;&#039;]]!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;sprite-number&amp;gt;||dec||A sequential sprite number&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;length&amp;gt;||dec||The total number of bytes in the action&lt;br /&gt;
|-&lt;br /&gt;
|08||B||Action 08&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;version&amp;gt;||B||GRF version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;grf-id&amp;gt;||4*B||A unique ID for your .grf file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||S||A short text containing the name of this set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;description&amp;gt;||S||A longer description of this set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Sprite-number ===&lt;br /&gt;
&lt;br /&gt;
The number of this sprite.&lt;br /&gt;
&lt;br /&gt;
Action 8 has to be one of the first pseudosprites in the .NFO file. It is however valid to have other actions before it, except those that define new sprites or vehicle (etc.) properties.&lt;br /&gt;
&lt;br /&gt;
Actions 6, 7, 9, B, C, D (except [[GRFResourceManagement|resource management]] sprites), 10 and 14 are valid before an action 8.&lt;br /&gt;
&lt;br /&gt;
=== Length ===&lt;br /&gt;
&lt;br /&gt;
The total number of bytes in Action 8.&lt;br /&gt;
&lt;br /&gt;
=== GRF Version ===&lt;br /&gt;
&lt;br /&gt;
This should be the graphics version that your file is written for. This is the version of the [[Version_numbers#GRF_version|GRF format]], not the [[Version_numbers#Version_of_a_specific_NewGRF|version of your GRF]]!&lt;br /&gt;
It is also not the &amp;quot;[[Version_numbers#NFO_version|NFO version]]&amp;quot; you put at the top of &amp;quot;.nfo&amp;quot; files to announce the used syntax for GRFCodec.&lt;br /&gt;
&lt;br /&gt;
Valid values are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Compatibility&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#TTDPatch_version|TTDPatch version]]&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#OpenTTD_version|OpenTTD support]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|08||02..08|| - || {{ottd|1.2|r23159}}&lt;br /&gt;
|-&lt;br /&gt;
|07||02..07||2.5 beta 1 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|06||02..06||2.0.1 alpha 13 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|05||02..05||2.0r1 Stable TTDPatch + TTDPatch 2.0.1 alphas up to 12|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|04||02..04||2.0 Stable TTDPatch||{{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|01||00..01||1.9.1 alpha 28 or higher||{{ottd|no}}&lt;br /&gt;
|-&lt;br /&gt;
|00||00||1.9.1 alphas up to 27||{{ottd|no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entries for 00 and 01 are included only for completeness, and to aid with updating existing graphics. They should not be used with new graphics, because they will be incompatible with current TTDPatch and OpenTTD versions. OpenTTD 1.1.0 and later will disable NewGRFs with non-supported GRF versions.&lt;br /&gt;
&lt;br /&gt;
Make sure to set a version number no lower than the minimum version that supports all features which are used by your file.&lt;br /&gt;
&lt;br /&gt;
The compatibility column means how low a version number is supported by the given TTDPatch version, e.g. TTDPatch 2.0r1 supports graphics files with any version from 02 to 05, but not for example 01 or 06.&lt;br /&gt;
&lt;br /&gt;
Version 07 and 08 introduce a few minor semantic changes to some graphics features, i.e. the file will behave slightly differently depending on whether it&#039;s declared as version 06, 07 or 08. These changes are described in more detail in the pages for the features they affect.&lt;br /&gt;
&lt;br /&gt;
=== GRFID ===&lt;br /&gt;
&lt;br /&gt;
This is a series of 4 bytes. It&#039;s a convention to &lt;br /&gt;
* use the first &#039;&#039;&#039;three bytes&#039;&#039;&#039; for the creator&#039;s &#039;&#039;&#039;initials&#039;&#039;&#039; in ASCII code, e.g. 54 57 48 for &amp;quot;TWH&amp;quot;. &lt;br /&gt;
* The last (fourth) byte typically identies which of the author&#039;s sets this is. See the next subsection for grfID ranges that are already in use.&lt;br /&gt;
* Version numbers for NewGRFs are communicated via preceeding [[Action14]]. &lt;br /&gt;
&lt;br /&gt;
In principle, you are free what to use for the GRFID as long as you are sure it is unique, but generally it is best to follow the above guidelines. See the last subsection for locations where to find already used GRFIDs.&lt;br /&gt;
&lt;br /&gt;
Note that GRFIDs starting with FF (i.e. the first byte is FF, such as in FF123456) are reserved for internal purposes and should not be used by regular .grf files. These GRFs can&#039;t be disabled; TTDPatch displays them with a blue flag in the GRF Status Window.&lt;br /&gt;
&lt;br /&gt;
The extra newgrf file, part of OpenTTD base sets, have to have a GRFID starting with FF &amp;quot;OT&amp;quot;.&lt;br /&gt;
See the table below:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!GRFID!!purposes&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 00||n/a&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 01 .. FE FF FF FF||normal NewGRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF 00 00 00 .. FF FF FF FF||reserved&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 00 .. FF &amp;quot;OT&amp;quot; FF||extra base GRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 01|| OpenGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTD&amp;quot;|| OpenTTD (extra) base graphics: openttdd.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTT&amp;quot;|| OpenTTD (extra) base graphics: openttd.grf (OpenTTD &amp;gt;= 1.1)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTW&amp;quot;|| OpenTTD (extra) base graphics: openttdw.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF FF FF FF|| TTDPatch (extra) base graphics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used ranges ====&lt;br /&gt;
&lt;br /&gt;
The following table shows ranges of GRFIDs that are in use by several authors of NewGRFs. People choosing new GRFIDs are asked to not use a GRFID that falls within the ranges of one of the following. This list is in no way exhaustive; if you want to claim your own range, please update the table. For legacy reasons there are some broader ranges of GRFIDs reserved by some people. When you want to reserve a broader range than a variation in only the last byte, think twice and consider how long it will take you to write 255 sensible completely different NewGRFs (as the version of a single grf is encoded in the action14, thus a new ID will even hurt and kill your backward compatibility with older versions).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Range (hex)!!ASCII!!Usage&lt;br /&gt;
|-&lt;br /&gt;
|41 4E XX XX||A N _ _||FISH ship set&lt;br /&gt;
|-&lt;br /&gt;
|41 50 XX XX||A P _ _||HEQS (Heavy Equipment Set)&lt;br /&gt;
|-&lt;br /&gt;
|43 41 XX XX||C A _ _||OzTrans; 1st generation Canadian and some North American sets&lt;br /&gt;
|-&lt;br /&gt;
|43 48 XX XX||C H _ _||CHIPS Has Improved Players&#039; Stations&lt;br /&gt;
|-&lt;br /&gt;
|4A 56 XX XX||J V _ _||juzza1; Various Finnish sets&lt;br /&gt;
|-&lt;br /&gt;
|4D 65 XX XX||M e _ _||George; ECS, Long vehicles&lt;br /&gt;
|-&lt;br /&gt;
|4D 47 XX XX||M G _ _||Ammler; #openttdcoop&lt;br /&gt;
|-&lt;br /&gt;
|4E 57 XX XX||N W _ _||Norwegian projects&lt;br /&gt;
|-&lt;br /&gt;
|4F 47 2B XX||O G + _||OpenGFX+ sets&lt;br /&gt;
|-&lt;br /&gt;
|4F 7A XX XX||O z _ _||OzTrans; Various non-Canadian projects&lt;br /&gt;
|-&lt;br /&gt;
|57 42 XX XX||W B _ _||wallyweb; NewObjects, Various features, GRF development&lt;br /&gt;
|-&lt;br /&gt;
|6D 62 XX XX||m b _ _||Michael Blunck; DBsetXL, NewStations, MariCo&lt;br /&gt;
|-&lt;br /&gt;
|97 85 XX XX||? ? _ _||OzTrans; 2nd generation Canadian graphics&lt;br /&gt;
|-&lt;br /&gt;
|97 87 XX XX||? ? _ _||OzTrans; Canadian Theme Pack (under development)&lt;br /&gt;
|-&lt;br /&gt;
|F1 25 00 XX||? ? ? _||FIRS Industry Replacement Set&lt;br /&gt;
|-&lt;br /&gt;
|FB FB XX XX||? ? _ _||FooBar; Dutch sets, Transrapid/metro tracks&lt;br /&gt;
|-&lt;br /&gt;
|FF XX XX XX||? _ _ _||System reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used GRFIDs ====&lt;br /&gt;
&lt;br /&gt;
There are several places that have/show lists of GRFIDs that are definitely in use by someone. Absence of a GRFID in any of these lists is not proof that it is not used though.&lt;br /&gt;
&lt;br /&gt;
* [http://bananas.openttd.org/en/newgrf/] Bananas shows the GRFIDs of all currently active NewGRFs that are distributed by the system&lt;br /&gt;
* [http://grfcrawler.tt-forums.net/index.php?do=search&amp;amp;mode=advanced] GRFCrawler allows one to search on GRFIDs of NewGRFs in its system&lt;br /&gt;
* [http://devs.openttd.org/~rubidium/newgrf.html] OpenTTD generates a list that shows all NewGRFs that were ever used in a multiplayer game&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
This short field should contain the name of the set. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The name must be short because it should fit on one line of the [[GRFStatusWindow|GRF Status window]].&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This is a longer description of the set. Typically it contains the name of the author and a copyright notice or other attribution. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The description may be quite long, but should be short enough to fit in the description part of the [[GRFStatusWindow|GRF Status window]], or a part of it may be cut off.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Below is an example of what a real Action 8 pseudo-sprite could look like.&lt;br /&gt;
&lt;br /&gt;
 1 * 43 &#039;&#039;&#039;08&#039;&#039;&#039; 07 &amp;quot;TW&amp;quot; 01 06 &amp;quot;Tutorial Example&amp;quot; 00 &amp;quot;Changes nothing. Author: A kind person&amp;quot; 00&lt;br /&gt;
&lt;br /&gt;
Let&#039;s clarify it bit by bit. In order to understand what the bits say you could use a hexadecimal editor.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Byte&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1||&amp;lt;sprite-number&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|43||&amp;lt;length&amp;gt; of the action in bytes; start counting at 08 (&amp;lt;action&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|08||&amp;lt;action&amp;gt;: sets this pseudo-sprite to function as action 8&lt;br /&gt;
|-&lt;br /&gt;
|07||&amp;lt;version&amp;gt;: GRF format version 7 (this is the version of the used GRF format, not of your GRF)&lt;br /&gt;
|-&lt;br /&gt;
|54 57 01 06||&amp;lt;-grf-id&amp;gt;: ASCII code for TW, then the numbers 1 and 6 to indicate version 6 of TW&#039;s first set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Tutorial...&amp;quot; 00||&amp;lt;name&amp;gt;: Name of the NewGRF&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Changes...&amp;quot; 00||&amp;lt;description&amp;gt;: Description of the NewGRF&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ammler</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Replace_TTD_sprites&amp;diff=2697</id>
		<title>NML:Replace TTD sprites</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Replace_TTD_sprites&amp;diff=2697"/>
		<updated>2011-10-07T07:33:34Z</updated>

		<summary type="html">&lt;p&gt;Ammler: no need to preselect the biggest file and making loading of the page that long&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavBlocksyntax}}&lt;br /&gt;
&lt;br /&gt;
Using a &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;replace&amp;lt;/code&amp;gt; block, it is possible to replace TTD&#039;s built-in sprites or for base grfs to define sprites via the &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;base_graphics&amp;lt;/code&amp;gt; block. The syntax is as follows:&lt;br /&gt;
&lt;br /&gt;
 replace(&amp;amp;lt;sprite-id&amp;amp;gt;, &amp;amp;lt;image-file&amp;amp;gt;) {&lt;br /&gt;
 	[[#real sprites|list of realsprites]]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 base_graphics(&amp;amp;lt;sprite-id&amp;amp;gt;, &amp;amp;lt;image-file&amp;amp;gt;) {&lt;br /&gt;
 	[[#real sprites|list of realsprites]]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
respectively&lt;br /&gt;
&lt;br /&gt;
The first parameter &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;&amp;amp;lt;sprite-id&amp;amp;gt;&amp;lt;/code&amp;gt; indicates the sprite number of the first sprite to replace. Sprite numbers are equal to the sprite numbers in the base graphics file. The [http://mz.openttdcoop.org/opengfx/authors/script.php?feature=spritesbyfile&amp;amp;q=  OpenGFX author overview] can be used as a reference to look up these sprite numbers. The second parameter &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;&amp;amp;lt;image-file&amp;amp;gt;&amp;lt;/code&amp;gt; specifies the image file that contains the new sprites. A series of real sprites has to be specified between the curly braces (&amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;{&amp;lt;/code&amp;gt; and &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;}&amp;lt;/code&amp;gt;). The first sprite in this list replaces the sprite with id &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;sprite-id&amp;lt;/code&amp;gt;, the second replaces &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;sprite-id + 1&amp;lt;/code&amp;gt; and so on. Sprite templates can be used as well. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 // Rail overlays for crossings&lt;br /&gt;
 replace (1005, &amp;quot;src/gfx/rails_overlays.png&amp;quot;) {&lt;br /&gt;
 		[ 20,198, 40,21, -20,  5]&lt;br /&gt;
 		[ 71,198, 40,21, -20,  5]&lt;br /&gt;
 		[117,198, 40, 7, -20,  5]&lt;br /&gt;
 		[165,198, 40, 7, -20, 21]&lt;br /&gt;
 		[216,198, 12,19,  10,  5]&lt;br /&gt;
 		[248,198, 12,19, -24, 11]&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ammler</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Graphic_files&amp;diff=2482</id>
		<title>NML:Graphic files</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Graphic_files&amp;diff=2482"/>
		<updated>2011-08-22T18:34:02Z</updated>

		<summary type="html">&lt;p&gt;Ammler: add palette doc from devzone&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NMLNavNoSubpages}}&lt;br /&gt;
&lt;br /&gt;
All graphic files must be in a format that can be loaded by the python imaging library and they must have a valid palette. You can chose either the DOS palette (recommended as it contains a few more colours) or the windows palette.&lt;br /&gt;
&lt;br /&gt;
Palette files for several editors:&lt;br /&gt;
&lt;br /&gt;
* [http://hg.openttdcoop.org/nml/raw-file/tip/docs/ttd-newgrf-dos.gpl Dos palette for GIMP]&lt;br /&gt;
* [http://hg.openttdcoop.org/nml/raw-file/tip/docs/ttd-newgrf-win.gpl Windows palette for GIMP]&lt;br /&gt;
* [http://hg.openttdcoop.org/nml/raw-file/tip/docs/ttd-newgrf-win.act Windows palette for Photoshop]&lt;br /&gt;
* (another collection of palette files on the [http://dev.openttdcoop.org/documents/1 #openttdcoop DevZone])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Windows versions do NOT support graphics in the pcx format due to missiong support within the PIL.&lt;/div&gt;</summary>
		<author><name>Ammler</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=BaseCosts&amp;diff=833</id>
		<title>BaseCosts</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=BaseCosts&amp;diff=833"/>
		<updated>2010-01-15T22:24:52Z</updated>

		<summary type="html">&lt;p&gt;Ammler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;List of all base costs&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Base Costs=&lt;br /&gt;
&lt;br /&gt;
This is a list of all base costs used by TTD.&lt;br /&gt;
&lt;br /&gt;
NFO ID is the ID to use for action 0 feature 8 property 08.&lt;br /&gt;
&lt;br /&gt;
Location is the address in the savegame structure.&lt;br /&gt;
&lt;br /&gt;
Default value is the initial value used at the game start.&lt;br /&gt;
&lt;br /&gt;
||ID|NFO ID|Location|Default|Used for&lt;br /&gt;
&lt;br /&gt;
0|&amp;lt;center&amp;gt;0&amp;lt;/center&amp;gt;|4B34|100|miscellaneous&lt;br /&gt;
&lt;br /&gt;
1|&amp;lt;center&amp;gt;1&amp;lt;/center&amp;gt;|4B3A|100|build track&lt;br /&gt;
&lt;br /&gt;
2|&amp;lt;center&amp;gt;2&amp;lt;/center&amp;gt;|4B40|95|build road&lt;br /&gt;
&lt;br /&gt;
3|&amp;lt;center&amp;gt;3&amp;lt;/center&amp;gt;|4B46|65|place signal&lt;br /&gt;
&lt;br /&gt;
4|&amp;lt;center&amp;gt;4&amp;lt;/center&amp;gt;|4B4C|275|build bridge tile&lt;br /&gt;
&lt;br /&gt;
5|&amp;lt;center&amp;gt;5&amp;lt;/center&amp;gt;|4B52|600|build rail depot&lt;br /&gt;
&lt;br /&gt;
6|&amp;lt;center&amp;gt;6&amp;lt;/center&amp;gt;|4B58|500|build road depot&lt;br /&gt;
&lt;br /&gt;
7|&amp;lt;center&amp;gt;7&amp;lt;/center&amp;gt;|4B5E|700|build ship depot&lt;br /&gt;
&lt;br /&gt;
8|&amp;lt;center&amp;gt;8&amp;lt;/center&amp;gt;|4B64|450|build tunnel unit&lt;br /&gt;
&lt;br /&gt;
9|&amp;lt;center&amp;gt;9&amp;lt;/center&amp;gt;|4B6A|200|build platform unit (per tile)&lt;br /&gt;
&lt;br /&gt;
10|&amp;lt;center&amp;gt;A&amp;lt;/center&amp;gt;|4B70|180|build platform fixed (per platform)&lt;br /&gt;
&lt;br /&gt;
11|&amp;lt;center&amp;gt;B&amp;lt;/center&amp;gt;|4B76|600|build airport tile&lt;br /&gt;
&lt;br /&gt;
12|&amp;lt;center&amp;gt;C&amp;lt;/center&amp;gt;|4B7C|200|build bus station&lt;br /&gt;
&lt;br /&gt;
13|&amp;lt;center&amp;gt;D&amp;lt;/center&amp;gt;|4B82|200|build lorry area&lt;br /&gt;
&lt;br /&gt;
14|&amp;lt;center&amp;gt;E&amp;lt;/center&amp;gt;|4B88|350|build dock, also affects &amp;amp;quot;build buoy&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
15|&amp;lt;center&amp;gt;F&amp;lt;/center&amp;gt;|4B8E|400,000|locomotive purchase&lt;br /&gt;
&lt;br /&gt;
16|&amp;lt;center&amp;gt;10&amp;lt;/center&amp;gt;|4B94|2000|waggon purchase&lt;br /&gt;
&lt;br /&gt;
17|&amp;lt;center&amp;gt;11&amp;lt;/center&amp;gt;|4B9A|700,000|aircraft purchase&lt;br /&gt;
&lt;br /&gt;
18|&amp;lt;center&amp;gt;12&amp;lt;/center&amp;gt;|4BA0|14,000|road vehicle purchase&lt;br /&gt;
&lt;br /&gt;
19|&amp;lt;center&amp;gt;13&amp;lt;/center&amp;gt;|4BA6|65,000|ship purchase&lt;br /&gt;
&lt;br /&gt;
20|&amp;lt;center&amp;gt;14&amp;lt;/center&amp;gt;|4BAC|20|plant tree&lt;br /&gt;
&lt;br /&gt;
21|&amp;lt;center&amp;gt;15&amp;lt;/center&amp;gt;|4BB2|250|raise/lower land, also affects &amp;amp;quot;build foundation&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
22|&amp;lt;center&amp;gt;16&amp;lt;/center&amp;gt;|4BB8|20|clear grass&lt;br /&gt;
&lt;br /&gt;
23|&amp;lt;center&amp;gt;17&amp;lt;/center&amp;gt;|4BBE|40|clear rough land, also affects &amp;amp;quot;build/remove object&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
24|&amp;lt;center&amp;gt;18&amp;lt;/center&amp;gt;|4BC4|200|clear rocks&lt;br /&gt;
&lt;br /&gt;
25|&amp;lt;center&amp;gt;19&amp;lt;/center&amp;gt;|4BCA|500|clear fields&lt;br /&gt;
&lt;br /&gt;
26|&amp;lt;center&amp;gt;1A&amp;lt;/center&amp;gt;|4BD0|20|remove tree&lt;br /&gt;
&lt;br /&gt;
27|&amp;lt;center&amp;gt;1B&amp;lt;/center&amp;gt;|4BD6|-70|remove track&lt;br /&gt;
&lt;br /&gt;
28|&amp;lt;center&amp;gt;1C&amp;lt;/center&amp;gt;|4BDC|10|remove signal&lt;br /&gt;
&lt;br /&gt;
29|&amp;lt;center&amp;gt;1D&amp;lt;/center&amp;gt;|4BE2|50|remove bridge tile&lt;br /&gt;
&lt;br /&gt;
30|&amp;lt;center&amp;gt;1E&amp;lt;/center&amp;gt;|4BE8|80|remove rail depot&lt;br /&gt;
&lt;br /&gt;
31|&amp;lt;center&amp;gt;1F&amp;lt;/center&amp;gt;|4BEE|80|remove road depot&lt;br /&gt;
&lt;br /&gt;
32|&amp;lt;center&amp;gt;20&amp;lt;/center&amp;gt;|4BF4|90|remove ship depot&lt;br /&gt;
&lt;br /&gt;
33|&amp;lt;center&amp;gt;21&amp;lt;/center&amp;gt;|4BFA|30|remove tunnel tile&lt;br /&gt;
&lt;br /&gt;
34|&amp;lt;center&amp;gt;22&amp;lt;/center&amp;gt;|4C00|10,000|clear water&lt;br /&gt;
&lt;br /&gt;
35|&amp;lt;center&amp;gt;23&amp;lt;/center&amp;gt;|4C06|50|remove platform tile&lt;br /&gt;
&lt;br /&gt;
36|&amp;lt;center&amp;gt;24&amp;lt;/center&amp;gt;|4C0C|30|remove airport tile&lt;br /&gt;
&lt;br /&gt;
37|&amp;lt;center&amp;gt;25&amp;lt;/center&amp;gt;|4C12|50|remove bus station&lt;br /&gt;
&lt;br /&gt;
38|&amp;lt;center&amp;gt;26&amp;lt;/center&amp;gt;|4C18|50|remove lorry area, also affects &amp;amp;quot;remove buoy&amp;amp;quot; (*) (**)&lt;br /&gt;
&lt;br /&gt;
39|&amp;lt;center&amp;gt;27&amp;lt;/center&amp;gt;|4C1E|55|remove dock&lt;br /&gt;
&lt;br /&gt;
40|&amp;lt;center&amp;gt;28&amp;lt;/center&amp;gt;|4C24|1600|remove house, also affects &amp;amp;quot;remove industry&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
41|&amp;lt;center&amp;gt;29&amp;lt;/center&amp;gt;|4C2A|40|remove road&lt;br /&gt;
&lt;br /&gt;
42|&amp;lt;center&amp;gt;2A&amp;lt;/center&amp;gt;|4C30|5600|steam engine running costs&lt;br /&gt;
&lt;br /&gt;
43|&amp;lt;center&amp;gt;2B&amp;lt;/center&amp;gt;|4C36|5200|diesel engine running costs&lt;br /&gt;
&lt;br /&gt;
44|&amp;lt;center&amp;gt;2C&amp;lt;/center&amp;gt;|4C3C|4800|electricengine running costs&lt;br /&gt;
&lt;br /&gt;
45|&amp;lt;center&amp;gt;2D&amp;lt;/center&amp;gt;|4C42|9600|aircraft running costs&lt;br /&gt;
&lt;br /&gt;
46|&amp;lt;center&amp;gt;2E&amp;lt;/center&amp;gt;|4C48|1600|road vehicle running costs&lt;br /&gt;
&lt;br /&gt;
47|&amp;lt;center&amp;gt;2F&amp;lt;/center&amp;gt;|4C4E|5600|ship running costs&lt;br /&gt;
&lt;br /&gt;
48|&amp;lt;center&amp;gt;30&amp;lt;/center&amp;gt;|4C54|1,000,000|funding industries, also affects &amp;amp;quot;stuff with local authority&amp;amp;quot;, &amp;amp;quot;build raw industry&amp;amp;quot; and &amp;amp;quot;fund town&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
49|&amp;lt;center&amp;gt;31&amp;lt;/center&amp;gt;|-|1600|remove industry|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
50|&amp;lt;center&amp;gt;32&amp;lt;/center&amp;gt;|-|40|build object|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
51|&amp;lt;center&amp;gt;33&amp;lt;/center&amp;gt;|-|40|remove object|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
52|&amp;lt;center&amp;gt;34&amp;lt;/center&amp;gt;|-|600|build rail-waypoint|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
53|&amp;lt;center&amp;gt;35&amp;lt;/center&amp;gt;|-|80|remove rail-waypoint|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
54|&amp;lt;center&amp;gt;36&amp;lt;/center&amp;gt;|-|350|build buoy|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
55|&amp;lt;center&amp;gt;37&amp;lt;/center&amp;gt;|-|50|remove buoy|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
56|&amp;lt;center&amp;gt;38&amp;lt;/center&amp;gt;|-|1,000,000|stuff with town authority|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
57|&amp;lt;center&amp;gt;39&amp;lt;/center&amp;gt;|-|250|build foundation|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
58|&amp;lt;center&amp;gt;3A&amp;lt;/center&amp;gt;|-|8,000,000|build raw industry (in case prospecting is disabled)|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
59|&amp;lt;center&amp;gt;3B&amp;lt;/center&amp;gt;|-|1,000,000|fund town|OTTD r18283||&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; if not set separately&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; yes, &amp;amp;quot;remove buoy&amp;amp;quot; is mentioned in this line, not in the line below&lt;br /&gt;
&lt;br /&gt;
Note: The newly added base costs of OTTD only apply if a base cost modifier is set for them. E.g. if NewGRF only set a base cost modifier for terraforming, but none for building foundations, the modifier for terraforming will also apply to building foundations, as that was the base cost used before the new one was added.&lt;br /&gt;
&lt;br /&gt;
Note that some values may be adjusted by certain constant factors before being used by the game, but that is a property of the place where it&#039;s used, not the base cost as such.&lt;br /&gt;
&lt;br /&gt;
Also, all constructions costs and all running costs are subject to modification by the game difficulty settings.&lt;/div&gt;</summary>
		<author><name>Ammler</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=BaseCosts&amp;diff=834</id>
		<title>BaseCosts</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=BaseCosts&amp;diff=834"/>
		<updated>2010-01-15T22:20:03Z</updated>

		<summary type="html">&lt;p&gt;Ammler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;List of all base costs&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Base Costs=&lt;br /&gt;
&lt;br /&gt;
This is a list of all base costs used by TTD.&lt;br /&gt;
&lt;br /&gt;
NFO ID is the ID to use for action 0 feature 8 property 08.&lt;br /&gt;
&lt;br /&gt;
Location is the address in the savegame structure.&lt;br /&gt;
&lt;br /&gt;
Default value is the initial value used at the game start.&lt;br /&gt;
&lt;br /&gt;
||ID|NFO ID|Location|Default|Used for&lt;br /&gt;
&lt;br /&gt;
0|0|4B34|100|miscellaneous&lt;br /&gt;
&lt;br /&gt;
1|1|4B3A|100|build track&lt;br /&gt;
&lt;br /&gt;
2|2|4B40|95|build road&lt;br /&gt;
&lt;br /&gt;
3|3|4B46|65|place signal&lt;br /&gt;
&lt;br /&gt;
4|4|4B4C|275|build bridge tile&lt;br /&gt;
&lt;br /&gt;
5|5|4B52|600|build rail depot&lt;br /&gt;
&lt;br /&gt;
6|6|4B58|500|build road depot&lt;br /&gt;
&lt;br /&gt;
7|7|4B5E|700|build ship depot&lt;br /&gt;
&lt;br /&gt;
8|8|4B64|450|build tunnel unit&lt;br /&gt;
&lt;br /&gt;
9|9|4B6A|200|build platform unit (per tile)&lt;br /&gt;
&lt;br /&gt;
10|A|4B70|180|build platform fixed (per platform)&lt;br /&gt;
&lt;br /&gt;
11|B|4B76|600|build airport tile&lt;br /&gt;
&lt;br /&gt;
12|C|4B7C|200|build bus station&lt;br /&gt;
&lt;br /&gt;
13|D|4B82|200|build lorry area&lt;br /&gt;
&lt;br /&gt;
14|E|4B88|350|build dock, also affects &amp;amp;quot;build buoy&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
15|F|4B8E|400,000|locomotive purchase&lt;br /&gt;
&lt;br /&gt;
16|10|4B94|2000|waggon purchase&lt;br /&gt;
&lt;br /&gt;
17|11|4B9A|700,000|aircraft purchase&lt;br /&gt;
&lt;br /&gt;
18|12|4BA0|14,000|road vehicle purchase&lt;br /&gt;
&lt;br /&gt;
19|13|4BA6|65,000|ship purchase&lt;br /&gt;
&lt;br /&gt;
20|14|4BAC|20|plant tree&lt;br /&gt;
&lt;br /&gt;
21|15|4BB2|250|raise/lower land, also affects &amp;amp;quot;build foundation&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
22|16|4BB8|20|clear grass&lt;br /&gt;
&lt;br /&gt;
23|17|4BBE|40|clear rough land, also affects &amp;amp;quot;build/remove object&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
24|18|4BC4|200|clear rocks&lt;br /&gt;
&lt;br /&gt;
25|19|4BCA|500|clear fields&lt;br /&gt;
&lt;br /&gt;
26|1A|4BD0|20|remove tree&lt;br /&gt;
&lt;br /&gt;
27|1B|4BD6|-70|remove track&lt;br /&gt;
&lt;br /&gt;
28|1C|4BDC|10|remove signal&lt;br /&gt;
&lt;br /&gt;
29|1D|4BE2|50|remove bridge tile&lt;br /&gt;
&lt;br /&gt;
30|1E|4BE8|80|remove rail depot&lt;br /&gt;
&lt;br /&gt;
31|1F|4BEE|80|remove road depot&lt;br /&gt;
&lt;br /&gt;
32|20|4BF4|90|remove ship depot&lt;br /&gt;
&lt;br /&gt;
33|21|4BFA|30|remove tunnel tile&lt;br /&gt;
&lt;br /&gt;
34|22|4C00|10,000|clear water&lt;br /&gt;
&lt;br /&gt;
35|23|4C06|50|remove platform tile&lt;br /&gt;
&lt;br /&gt;
36|24|4C0C|30|remove airport tile&lt;br /&gt;
&lt;br /&gt;
37|25|4C12|50|remove bus station&lt;br /&gt;
&lt;br /&gt;
38|26|4C18|50|remove lorry area, also affects &amp;amp;quot;remove buoy&amp;amp;quot; (*) (**)&lt;br /&gt;
&lt;br /&gt;
39|27|4C1E|55|remove dock&lt;br /&gt;
&lt;br /&gt;
40|28|4C24|1600|remove house, also affects &amp;amp;quot;remove industry&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
41|29|4C2A|40|remove road&lt;br /&gt;
&lt;br /&gt;
42|2A|4C30|5600|steam engine running costs&lt;br /&gt;
&lt;br /&gt;
43|2B|4C36|5200|diesel engine running costs&lt;br /&gt;
&lt;br /&gt;
44|2C|4C3C|4800|electricengine running costs&lt;br /&gt;
&lt;br /&gt;
45|2D|4C42|9600|aircraft running costs&lt;br /&gt;
&lt;br /&gt;
46|2E|4C48|1600|road vehicle running costs&lt;br /&gt;
&lt;br /&gt;
47|2F|4C4E|5600|ship running costs&lt;br /&gt;
&lt;br /&gt;
48|30|4C54|1,000,000|funding industries, also affects &amp;amp;quot;stuff with local authority&amp;amp;quot;, &amp;amp;quot;build raw industry&amp;amp;quot; and &amp;amp;quot;fund town&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
49|31|-|1600|remove industry|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
50|32|-|40|build object|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
51|33|-|40|remove object|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
52|34|-|600|build rail-waypoint|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
53|35|-|80|remove rail-waypoint|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
54|36|-|350|build buoy|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
55|37|-|50|remove buoy|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
56|38|-|1,000,000|stuff with town authority|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
57|39|-|250|build foundation|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
58|3A|-|8,000,000|build raw industry (in case prospecting is disabled)|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
59|3B|-|1,000,000|fund town|OTTD r18283||&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; if not set separately&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; yes, &amp;amp;quot;remove buoy&amp;amp;quot; is mentioned in this line, not in the line below&lt;br /&gt;
&lt;br /&gt;
Note: The newly added base costs of OTTD only apply if a base cost modifier is set for them. E.g. if NewGRF only set a base cost modifier for terraforming, but none for building foundations, the modifier for terraforming will also apply to building foundations, as that was the base cost used before the new one was added.&lt;br /&gt;
&lt;br /&gt;
Note that some values may be adjusted by certain constant factors before being used by the game, but that is a property of the place where it&#039;s used, not the base cost as such.&lt;br /&gt;
&lt;br /&gt;
Also, all constructions costs and all running costs are subject to modification by the game difficulty settings.&lt;/div&gt;</summary>
		<author><name>Ammler</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=BaseCosts&amp;diff=836</id>
		<title>BaseCosts</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=BaseCosts&amp;diff=836"/>
		<updated>2010-01-07T22:23:16Z</updated>

		<summary type="html">&lt;p&gt;Ammler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;List of all base costs&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Base Costs=&lt;br /&gt;
&lt;br /&gt;
This is a list of all base costs used by TTD.&lt;br /&gt;
&lt;br /&gt;
Number is the ID to use for action 0 feature 8 property 08.&lt;br /&gt;
&lt;br /&gt;
Location is the address in the savegame structure.&lt;br /&gt;
&lt;br /&gt;
Default value is the initial value used at the game start.&lt;br /&gt;
&lt;br /&gt;
||Number|Number|Location|Default|Used for&lt;br /&gt;
&lt;br /&gt;
0|0|4B34|100|miscellaneous&lt;br /&gt;
&lt;br /&gt;
1|1|4B3A|100|build track&lt;br /&gt;
&lt;br /&gt;
2|2|4B40|95|build road&lt;br /&gt;
&lt;br /&gt;
3|3|4B46|65|place signal&lt;br /&gt;
&lt;br /&gt;
4|4|4B4C|275|build bridge tile&lt;br /&gt;
&lt;br /&gt;
5|5|4B52|600|build rail depot&lt;br /&gt;
&lt;br /&gt;
6|6|4B58|500|build road depot&lt;br /&gt;
&lt;br /&gt;
7|7|4B5E|700|build ship depot&lt;br /&gt;
&lt;br /&gt;
8|8|4B64|450|build tunnel unit&lt;br /&gt;
&lt;br /&gt;
9|9|4B6A|200|build platform unit (per tile)&lt;br /&gt;
&lt;br /&gt;
10|A|4B70|180|build platform fixed (per platform)&lt;br /&gt;
&lt;br /&gt;
11|B|4B76|600|build airport tile&lt;br /&gt;
&lt;br /&gt;
12|C|4B7C|200|build bus station&lt;br /&gt;
&lt;br /&gt;
13|D|4B82|200|build lorry area&lt;br /&gt;
&lt;br /&gt;
14|E|4B88|350|build dock, also affects &amp;amp;quot;build buoy&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
15|F|4B8E|400,000|locomotive purchase&lt;br /&gt;
&lt;br /&gt;
16|10|4B94|2000|waggon purchase&lt;br /&gt;
&lt;br /&gt;
17|11|4B9A|700,000|aircraft purchase&lt;br /&gt;
&lt;br /&gt;
18|12|4BA0|14,000|road vehicle purchase&lt;br /&gt;
&lt;br /&gt;
19|13|4BA6|65,000|ship purchase&lt;br /&gt;
&lt;br /&gt;
20|14|4BAC|20|plant tree&lt;br /&gt;
&lt;br /&gt;
21|15|4BB2|250|raise/lower land, also affects &amp;amp;quot;build foundation&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
22|16|4BB8|20|clear grass&lt;br /&gt;
&lt;br /&gt;
23|17|4BBE|40|clear rough land, also affects &amp;amp;quot;build/remove object&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
24|18|4BC4|200|clear rocks&lt;br /&gt;
&lt;br /&gt;
25|19|4BCA|500|clear fields&lt;br /&gt;
&lt;br /&gt;
26|1A|4BD0|20|remove tree&lt;br /&gt;
&lt;br /&gt;
27|1B|4BD6|-70|remove track&lt;br /&gt;
&lt;br /&gt;
28|1C|4BDC|10|remove signal&lt;br /&gt;
&lt;br /&gt;
29|1D|4BE2|50|remove bridge tile&lt;br /&gt;
&lt;br /&gt;
30|1E|4BE8|80|remove rail depot&lt;br /&gt;
&lt;br /&gt;
31|1F|4BEE|80|remove road depot&lt;br /&gt;
&lt;br /&gt;
32|20|4BF4|90|remove ship depot&lt;br /&gt;
&lt;br /&gt;
33|21|4BFA|30|remove tunnel tile&lt;br /&gt;
&lt;br /&gt;
34|22|4C00|10,000|clear water&lt;br /&gt;
&lt;br /&gt;
35|23|4C06|50|remove platform tile&lt;br /&gt;
&lt;br /&gt;
36|24|4C0C|30|remove airport tile&lt;br /&gt;
&lt;br /&gt;
37|25|4C12|50|remove bus station&lt;br /&gt;
&lt;br /&gt;
38|26|4C18|50|remove lorry area, also affects &amp;amp;quot;remove buoy&amp;amp;quot; (*) (**)&lt;br /&gt;
&lt;br /&gt;
39|27|4C1E|55|remove dock&lt;br /&gt;
&lt;br /&gt;
40|28|4C24|1600|remove house, also affects &amp;amp;quot;remove industry&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
41|29|4C2A|40|remove road&lt;br /&gt;
&lt;br /&gt;
42|2A|4C30|5600|steam engine running costs&lt;br /&gt;
&lt;br /&gt;
43|2B|4C36|5200|diesel engine running costs&lt;br /&gt;
&lt;br /&gt;
44|2C|4C3C|4800|electricengine running costs&lt;br /&gt;
&lt;br /&gt;
45|2D|4C42|9600|aircraft running costs&lt;br /&gt;
&lt;br /&gt;
46|2E|4C48|1600|road vehicle running costs&lt;br /&gt;
&lt;br /&gt;
47|2F|4C4E|5600|ship running costs&lt;br /&gt;
&lt;br /&gt;
48|30|4C54|1,000,000|funding industries, also affects &amp;amp;quot;stuff with local authority&amp;amp;quot;, &amp;amp;quot;build raw industry&amp;amp;quot; and &amp;amp;quot;fund town&amp;amp;quot; (*)&lt;br /&gt;
&lt;br /&gt;
49|31|-|1600|remove industry|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
50|32|-|40|build object|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
51|33|-|40|remove object|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
52|34|-|600|build rail-waypoint|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
53|35|-|80|remove rail-waypoint|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
54|36|-|350|build buoy|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
55|37|-|50|remove buoy|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
56|38|-|1,000,000|stuff with town authority|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
57|39|-|250|build foundation|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
58|3A|-|8,000,000|build raw industry (in case prospecting is disabled)|OTTD r18283&lt;br /&gt;
&lt;br /&gt;
59|3B|-|1,000,000|fund town|OTTD r18283||&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; if not set separately&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; yes, &amp;amp;quot;remove buoy&amp;amp;quot; is mentioned in this line, not in the line below&lt;br /&gt;
&lt;br /&gt;
Note: The newly added base costs of OTTD only apply if a base cost modifier is set for them. E.g. if NewGRF only set a base cost modifier for terraforming, but none for building foundations, the modifier for terraforming will also apply to building foundations, as that was the base cost used before the new one was added.&lt;br /&gt;
&lt;br /&gt;
Note that some values may be adjusted by certain constant factors before being used by the game, but that is a property of the place where it&#039;s used, not the base cost as such.&lt;br /&gt;
&lt;br /&gt;
Also, all constructions costs and all running costs are subject to modification by the game difficulty settings.&lt;/div&gt;</summary>
		<author><name>Ammler</name></author>
	</entry>
</feed>