Factorio.com|Forums|Wiki|Mod Portal|API Docs

# Factorio Runtime Docs Version 2.0.77

# LuaGui - Runtime Docs

## Class LuaGui

The root of the GUI. This type houses the root elements, `top`, `left`, `center`, `goal`, and `screen`, to which other elements can be added to be displayed on screen.

Every player can have a different GUI state.

## Members

player | :: R LuaPlayer | The player who owns this gui.
The player who owns this gui.
children | :: R dictionary[string → LuaGuiElement] | The children GUI elements mapped by name <> element.
The children GUI elements mapped by name <> element.
top | :: R LuaGuiElement | The top part of the GUI. [...]
The top part of the GUI. [...]
left | :: R LuaGuiElement | The left part of the GUI. [...]
The left part of the GUI. [...]
center | :: R LuaGuiElement | The center part of the GUI. [...]
The center part of the GUI. [...]
goal | :: R LuaGuiElement | The flow used in the objectives window. [...]
The flow used in the objectives window. [...]
screen | :: R LuaGuiElement | For showing a GUI somewhere on the entire screen. [...]
For showing a GUI somewhere on the entire screen. [...]
relative | :: R LuaGuiElement | For showing a GUI somewhere relative to one of the game GUIs. [...]
For showing a GUI somewhere relative to one of the game GUIs. [...]
valid | :: R boolean | Is this object valid? [...]
Is this object valid? [...]
object_name | :: R string | The class name of this object. [...]
The class name of this object. [...]

## Attributes

### player :: Read LuaPlayer

The player who owns this gui.

### children :: Read dictionary[string → LuaGuiElement]

The children GUI elements mapped by name <> element.

### top :: Read LuaGuiElement

The top part of the GUI. It is a flow element inside a scroll pane element.

### left :: Read LuaGuiElement

The left part of the GUI. It is a flow element inside a scroll pane element.

### center :: Read LuaGuiElement

The center part of the GUI. It is a flow element.

### goal :: Read LuaGuiElement

The flow used in the objectives window. It is a flow element. The objectives window is only visible when the flow is not empty or the objective text is set.

### screen :: Read LuaGuiElement

For showing a GUI somewhere on the entire screen. It is an empty-widget element.

### relative :: Read LuaGuiElement

For showing a GUI somewhere relative to one of the game GUIs. It is an empty-widget element.

### valid :: Read boolean

Is this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be `false`. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.

### object_name :: Read string

The class name of this object. Available even when `valid` is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.

Class used in

- LuaGuiElement::gui
- LuaPlayer::gui
- LuaStyle::gui