Question: How do you use variables in GameMaker?


Variables in GameMaker are used to store data that can change during the play of a game. They can hold numbers, strings, arrays, structs, and more. Here's an overview of how to use them effectively.

Declaring Variables

In GameMaker, you declare a variable by assigning it a value. For instance:

var health = 100;

This code creates a local variable health with a value of 100.

Global Variables

Global variables are accessible from anywhere in your game. You create one using the global keyword:

global.highScore = 0;

Instance Variables

Instance variables belong to instances of objects. You don't need to declare them explicitly; simply assign a value to them within an object's events:

// In the Create Event of an object speed = 4; direction = 90;

Variable Scope

The scope of a variable determines where it can be accessed:

  • Local Variables: Exist only within the script or event they are declared in.

    var localVariable = "I'm local";
  • Instance Variables: Belong to an instance of an object and are available to all events within that object.

    // This variable is accessible in any event for this instance this.instanceVariable = "I belong to an instance";
  • Global Variables: Accessible from any instance or script.

    global.globalVariable = "I am global";


Arrays are used to store lists of values. You can create and access array elements like so:

var inventory = ["sword", "shield", "potion"]; inventory[1] = "axe"; // Replacing "shield" with "axe"

Structs (Available from GameMaker Studio 2.3 onwards)

Structs allow for more complex data structures:

player = { name: "Hero", health: 100, position: { x: 50, y: 100 } };

To access struct members, use the dot operator:

var playerName =; // Retrieves the name "Hero" -= 10; // Subtracts 10 from player's health

Using Variables Wisely

When using variables, make sure to keep their scope as limited as necessary. This helps prevent bugs and keeps your code clean and readable. Also, naming your variables descriptively will make it easier to understand what they represent when you or someone else reads your code in the future.

In summary, understanding variables in GameMaker is essential for developing games that store and manipulate data throughout gameplay. With proper use of variable types and scopes, you can create dynamic and engaging games.

Was this content helpful?

White Paper

Free System Design on AWS E-Book

Download this early release of O'Reilly's latest cloud infrastructure e-book: System Design on AWS.

Free System Design on AWS E-Book

Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.