For Loop GDScript Tutorial – Complete Guide

Welcome to this comprehensive tutorial on ‘for loops’ in GDScript. If you are an aspiring game developer looking to sharpen your programming skills or a seasoned coder aiming to venture into game development, this guide is perfect for you. We’ll take an exciting journey on the fundamental concept of ‘for loops’ in GDScript, the core scripting language within the Godot game engine.

What is a ‘For Loop’ in GDScript?

In the world of programming, a ‘for loop’ is a control flow statement used to repeat a block of code for a specified number of times. It is a critical component in every game developer’s arsenal as it aids in making our code repetitive and predictable, thereby enabling the creation of complex gaming mechanics with ease.

Why GDScript?

GDScript is the native scripting language of the Godot engine. Being a high-level, dynamically typed language, it is designed to be easy to learn and use, particularly suitable for beginners. With a syntax very similar to Python, one of the most user-friendly languages around, GDScript simplifies the daunting task of getting started with game development programming.

Why Should You Learn ‘For Loop’ in GDScript?

Grasping the concept of a ‘for loop’ in GDScript is a significant step towards mastering game development. It is extremely useful in running repeated tasks efficiently, reducing redundant code, and keeping our game logic clean. For instance, in a platformer game, a ‘for loop’ can elegantly handle a character’s multiple jumps or handle the behavior of a swarm of enemy units. Thus, understanding and mastering it is truly a game-changer.

CTA Small Image

Basic Syntax of ‘For Loop’ in GDScript

The basic syntax of a ‘for loop’ in GDScript is very similar to that in Python:

for variable in range:
    # code block to be executed

The ‘range’ function generates a sequence of numbers that our loop can iterate through, and ‘variable’ is the loop variable that takes each value in the sequence sequentially. The code block within the loop is executed for each value that ‘variable’ takes.

Here’s an example:

for i in range(5):

This will output the numbers 0 to 4. It’s important to note that ‘range’ starts from 0, and ends at the number provided minus 1.

‘For Loop’ With List in GDScript

‘For loops’ can also be used to iterate through items in a list.

var fruit_list = ["apple", "banana", "cherry"];
for i in fruit_list:

This will print every fruit in the ‘fruit_list’.

‘For Loop’ With Step Parameter in GDScript

The ‘range’ function in GDScript can be used with two additional parameters: start and step. Here’s the syntax:

for variable in range(start, end, step):
    # code block to be executed

Let’s plug in some values and see how it works:

for i in range(0, 10, 2):

This will print all the even numbers between 0 to 10.

Note that ‘start’ is inclusive while ‘end’ is exclusive in the ‘range’ function.

Nested For Loops in GDScript

Like other programming languages, ‘for loops’ can also be nested in GDScript. This is particularly useful for iterating over multi-dimensional arrays, or for implementing complex algorithms.

for i in range(0,3):
    for j in range(0,3):
        print("i: ", i, " j: ", j)

This snippet will print pairs of i and j for all possible combinations within the range of 0 to 2.

Advanced Use of ‘For Loops’ in GDScript

Now that we’ve covered the basic syntax and use of ‘for loops’ in GDScript, let’s explore some more complex and practical examples, to truly show the versatility and power of this important tool in game development.

Counting Down with ‘For Loops’

It is also possible to use ‘for loops’ in GDScript to count downwards. Here’s how you can do it:

for i in range(5,0,-1):

This will output the numbers 5 to 1 in descending order.

Iterating over Dictionaries

‘For loops’ can be used to iterate over keys in a dictionary, which is a collection of key-value pairs.

var student_grades = {"Sam": 85, "Alex": 92, "Charlie": 78};
for name in student_grades:
    print("Student: ", name, " Grade: ", student_grades[name]);

This will print the name of each student along with their respective grade.

‘For Loop’ with an ‘If Condition’

You can use an ‘if condition’ within a ‘for loop’ for more complex control flow. Let’s consider an example where we only want to print numbers in a range that are divisible by 3:

for i in range(1, 20):
    if i % 3 == 0:

This will output the numbers 3, 6, 9, etc., all the way up to 18, which are the numbers divisible by 3 within the range.

‘For Each’ Loop

In GDScript, you can also use a ‘for each’ loop to iterate through arrays, similar to Python. Here is an example:

var arr = [1,2,3,4,5]
for i in arr:

This will print all the numbers in the array one by one.

‘For Loop’ in a Function

‘For loops’ can also be used within a function. Consider a function that prints the squares of numbers in a given range:

func print_squares(end):
    for i in range(1, end+1):

If we call this function with an argument of 5 (print_squares(5)), it will output the squares of 1 through 5, which are 1, 4, 9, 16, and 25.

Constructing Complex Behavior with Nested Loops

Nested loops offer the capability to build more robust systems and mechanics in your game. For instance, we could iterate through a 2D array, which can represent various aspects of a game, such as a grid-based map.

var map = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in range(map.size()):
    for j in range(map[i].size()):
        print("Cell [%d][%d]: %d" % [i, j, map[i][j]])

This would output each cell’s contents and their coordinates in the console.

Using a ‘For Loop’ to Load Resources

Another powerful aspect of using loops in game development is the ability to automate tasks such as loading resources.

var textures = [];
for i in range(10):
    var texture = preload("res://assets/texture_" + str(i) + ".png");

This example will preload a series of 10 textures and store them inside an array for later use, reducing the redundancy and potential for errors when loading multiple resources.

Animating with ‘For Loop’

Animation and movement are key aspects of almost all games. A ‘for loop’ can be used to create movement frames for a character or create timelines for game sequences.

var sprite_frames = [];
for i in range(0, 100, 10):
    var frame = load("res://sprites/player/walk" + str(i) + ".png");

This example loads different frames of a walking animation into an array to be played back later, creating a smooth walking animation for a character.

‘For Loop’ with Enumeration in GDScript

A ‘for loop’ can work with an enumerator to access the index while iterating over an array or list – a common requirement in game development.

var arr = ["apple", "banana", "cherry"]
for i in arr.size():
    print("Element ", i, " : ", arr[i])

This would output the index and the corresponding element in the array.

‘For Loop’ to Manipulate Strings

‘For loops’ can also be useful when working with strings, for example, to modify, format, or parse them.

var str = "GDScript is awesome"
for i in str.length():
    if (str[i] == " "):

This snippet will replace every space in the string with underscores, demonstrating how you can manipulate and control strings using loops.

Understanding the ins and outs of ‘for loops’ in GDScript is vitally important in your journey as a game developer. We hope this tutorial motivates you to dive deeper into mastering GDScript and the Godot Engine.

Where to Go Next

Through this tutorial, you’ve gained a solid understanding of ‘for loops’ in GDScript, which plays a pivotal role in game development using Godot. But your journey doesn’t stop here. The world of programming and game development is vast, and there’s plenty more to discover and learn.

We recommend you to continue your learning journey with Zenva, where you can find beginner to professional courses in programming, game development, and AI. With over 250 supported courses to boost your career, you can learn coding, create games, and earn certificates. For a more focused learning experience, we suggest our Godot Game Development Mini-Degree, a comprehensive collection of courses that teach students how to build cross-platform games using the Godot 4 engine. Developed by professionals and designed for beginners and experienced developers alike, these courses are project-based with live coding lessons and quizzes, offering a hands-on approach.

Also, for a wider range of topics, check out our Godot Courses. Remember, with Zenva, you can level up your skills from beginner to professional, at your own pace.


Stepping into the world of game development is an exhilarating experience. With concepts like ‘for loops’ in GDScript, you can bring your creative imagination to life, creating unique gaming experiences for your audience. The depth of possibilities is truly limitless in this dynamic field, and with each concept mastered, you unlock a new realm of potential.

Begin your journey with us at Zenva, immerse yourself in our comprehensive and project-based Godot Game Development Mini-Degree, and explore the thrilling world of game development. With hands-on lessons, quizzes, and professional guidance, we’re here to guide you every step of the way. Happy learning!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.