Difference between revisions of "Global"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>Threedee
m (→‎Scripting: Added a note that global variables must be passed into the script via properties.)
(Revise Keyword Redirects (in this case, add a link))
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<small>For the use in functions, see [[Function_Reference#Function_Header|Function Reference]]</small>
A [[Global]] Variable is a numeric value stored by the game. Globals are often used to pass data between [[:Category:Papyrus|Scripts]] and [[:Category:Condition_Functions|Condition Functions]] or other code-driven systems.
A [[Global]] Variable is a numeric value stored by the game. Globals are often used to pass data between [[:Category:Papyrus|Scripts]] and [[:Category:Condition_Functions|Condition Functions]] or other code-driven systems.


==Global Dialog==
==Global Dialog==
Globals can be found in an Object Window under ''Miscellaneous / Global''.
*'''ID:''' The Form's Editor ID.
*'''ID:''' The Form's Editor ID.
*'''Variable Type:''' The data type used to store the value (Short, Long, or Float).
*'''Variable Type:''' The data type used to store the value (Short, Long, or Float).
Line 10: Line 13:
** If checked, the '''Value''' of this Global is not expected to change during gameplay, and will not be saved with save game data.
** If checked, the '''Value''' of this Global is not expected to change during gameplay, and will not be saved with save game data.
** If unchecked, the '''Value''' is expected to change, and will be saved.
** If unchecked, the '''Value''' is expected to change, and will be saved.


==Accessing Global Variables==
==Accessing Global Variables==
===Scripting===
===Scripting===
To access global variables in Papyrus scripts, the global variable must be passed into the script as a property. Then one needs to use the functions [[GetValue]] and [[SetValue]]
To access global variables in Papyrus scripts, the global variable must be passed into the script as a property. Then one needs to use the functions [[GetValue]] and [[SetValue]]
GlobalVariable Property GameHour  auto
 
  .......
GlobalVariable Property GameHour  auto
  float myhour = GameHour.Getvalue()
  GameHour.Setvalue(10)
  float myhour = GameHour.GetValue()
  GameHour.SetValue(10)


===Console===
===Console===
Line 27: Line 30:
  show GameHour ; same effect as GetGlobalValue GameHour
  show GameHour ; same effect as GetGlobalValue GameHour


{{languages|Global}}
[[Category:Miscellaneous]]
[[Category:Miscellaneous]]
[[Category:Object Classes]]
[[Category:Object Classes]]

Latest revision as of 14:30, 18 December 2021

For the use in functions, see Function Reference

A Global Variable is a numeric value stored by the game. Globals are often used to pass data between Scripts and Condition Functions or other code-driven systems.

Global Dialog[edit | edit source]

Globals can be found in an Object Window under Miscellaneous / Global.

  • ID: The Form's Editor ID.
  • Variable Type: The data type used to store the value (Short, Long, or Float).
    • Internally, all Globals are stored as 32-bit floating-point numbers. There is no difference between Short and Long.
    • The technical implementation of floating-point numbers means that they are inaccurate at very large or very small values (for example, all numbers from 2000000000 to 2000000064 are stored as 2000000000).
  • Value: The initial value of the Global.
  • Constant:
    • If checked, the Value of this Global is not expected to change during gameplay, and will not be saved with save game data.
    • If unchecked, the Value is expected to change, and will be saved.

Accessing Global Variables[edit | edit source]

Scripting[edit | edit source]

To access global variables in Papyrus scripts, the global variable must be passed into the script as a property. Then one needs to use the functions GetValue and SetValue

GlobalVariable Property GameHour  auto

float myhour = GameHour.GetValue()
GameHour.SetValue(10)

Console[edit | edit source]

In the Console global variables can be adressed directly:

set GameHour to 10
GetGlobalValue GameHour
show GameHour ; same effect as GetGlobalValue GameHour


Language: English  • 日本語