Difference between revisions of "Native function"

From GTAMods Wiki
Jump to navigation Jump to search
m ("native" opcode)
(GTA V)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Native function is a specific parameter used in [[GTA IV]] and [[GTA V]] script engine that perform various tasks. There is a [[SCO#Opcodes|"native" opcode]] for calling natives.
+
A '''native function''' is a one of the functions exposed by the [[RAGE]] engine to be called from a [[script]]. Comparing to the [[SCM]] engine from previous GTA 3D series, which used thousands of [[opcode]]s assigned for commands both handling the scripts and performing the in-game tasks (such as manipulating peds, vehicles, displaying texts, etc), RAGE has less than [[SCO#Opcodes|100 opcodes]] only to handle the scripts itself. To retrieve the data and make any change in the game's world, a SCO script invokes an appropriate native function using a special opcode.
  
 
== GTA IV ==
 
== GTA IV ==
There are something like [[List of native functions (GTA IV)|~3000 of natives in GTA IV]]. Comparing to the scm-engine from previous GTA 3D series, which had one native to one opcode assigned, [[RAGE]] has less than 100 opcodes and they look like a real assembler, there is only one opcode for native calling. Native to call is the param of this opcode, this param is a hash of the native name.
+
There are something like [[List of native functions (GTA IV)|~3000 of natives in GTA IV]]. Their names are stored in the game's executable file until 1.0.4.0 patch, they was replaced with their hashes from 1.0.7.0 patch.
  
 
== GTA V ==
 
== GTA V ==
GTA V features ~4500 natives and almost all of these functions are in use in the original game scripts, this means that while building game's main executable only the natives required by the scripts are included (IV scripts were using only 2/3 of them). There is no original native name list in GTA V (IV had one), name hashes were used instead.
+
[[GTA V]] features [[List of native functions (GTA V)|~5200 natives]] and almost all of these functions are in use in the original game scripts, this means that while building game's main executable only the natives required by the scripts are included (IV scripts were using only 2/3 of them). There is no original native name list in GTA V, name hashes were used instead.
 +
 
 +
GTA V PC version has native hashes replaced with random 64-bit values, which may differ between patches.
  
 
== See also ==
 
== See also ==
*[[GTA V Native declarations]]
+
* {{Icon|4}} [[Scocl]] - an SCO compiler for GTA IV by {{U|Alexander Blade}}
* [[Scocl]] - a SCO compiler for GTA IV by {{U|Alexander Blade}}
 
  
 
==External links ==
 
==External links ==
 
* {{Icon|4}} {{GTAF|387783|Generic GTA 4 documentation}}
 
* {{Icon|4}} {{GTAF|387783|Generic GTA 4 documentation}}
 
* {{Icon|5}} {{GTAF|717612|Script/Native Documentation}}
 
* {{Icon|5}} {{GTAF|717612|Script/Native Documentation}}
 +
* {{Icon|5}} [http://dev-c.com/nativedb/ NATIVE DB] - GTA V native database, allows editing
  
 
{{N|5|4}}
 
{{N|5|4}}
[[Category:Mission Script]]
+
[[Category:Mission Script]][[Category:Native functions]]

Latest revision as of 17:46, 6 June 2015

A native function is a one of the functions exposed by the RAGE engine to be called from a script. Comparing to the SCM engine from previous GTA 3D series, which used thousands of opcodes assigned for commands both handling the scripts and performing the in-game tasks (such as manipulating peds, vehicles, displaying texts, etc), RAGE has less than 100 opcodes only to handle the scripts itself. To retrieve the data and make any change in the game's world, a SCO script invokes an appropriate native function using a special opcode.

GTA IV

There are something like ~3000 of natives in GTA IV. Their names are stored in the game's executable file until 1.0.4.0 patch, they was replaced with their hashes from 1.0.7.0 patch.

GTA V

GTA V features ~5200 natives and almost all of these functions are in use in the original game scripts, this means that while building game's main executable only the natives required by the scripts are included (IV scripts were using only 2/3 of them). There is no original native name list in GTA V, name hashes were used instead.

GTA V PC version has native hashes replaced with random 64-bit values, which may differ between patches.

See also

External links