Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

What does this statement do?

What does this statement even do:

_G

I mean I know it means global, but what does it mean/do to a game when ran?

2 answers

It doesn't do anything on its own, however, when you use it like this:

_G.GlobalVariable = 1

You can use _G.GlobalVariable in every Script / LocalScript depending on which is it used in. Example: Script 1: workspace.GoodScript

_G.GlobalVariable = 1

Script 2: workspace.OtherScript

print(_G.GlobalVariable) -- Prints "1"

Other example: Script 1: workspace.BadScript

GlobalVariable = 1

Script 2: workspace.OtherBadScript

print(GlobalVariable) -- prints "nil"

_G is a variable (not a statement).

It's equatable to other variables like math or table, in that all it is is a predefined table.

The initial value of _G is the same across all threads & scripts, so modifying a value in the table _G in one script will also modify that key in all others (Limitations: LocalScript on any single client share one separate _G, the server has one separate _G)


Simple example of use:

In one script, NameSetter

_G.zombieName = "Dave";

In all of the zombies in a place:

while not _G.zombieName do
	wait(1);
end
script.Parent.Name = _G.zombieName;

Even though the second script never defines/changes _G.zombieName, the set from NameSetter will affect all of the zombies, and give them the value for their name.

This discussion is preserved as it was. New answers, comments, and votes are closed.