---
title: "System Functions"
---
# System Functions
>
>
The Ignition scripting API, which is available under the module name `system`, is full of functions that are useful when designing projects in Ignition. From running database queries, manipulating components, to exporting data, scripting functions can help. Some of these functions only work in the Gateway scope, and other only work in the Client scope, while the rest will work in any scope.
Additional information on scripting Ignition can be found in the [Scripting](platform\scripting\scripting.md) section. In this section, we cover all of the built in scripting functions available inside of Ignition. Each page will have text at the top that looks like this:
> This function is used in **Python Scripting**.
This lets you know that you are looking at a function for the Python scripting language.
You can see below there are many different categories of system functions available for your use. Each page includes examples to demonstrate the basics of each function, but it is helpful to understand scripting requirements when implementing functions. For example, some scripting functions like [system.tag.writeAsync](appendix\scripting-functions\system-tag\system-tag-writeAsync.md) don't support special characters in tag path names. Users can work around this by using [Unicode](platform\scripting\python-scripting\variables-datatypes-and-objects\strings.md#unicode-strings) to pass the tag path to the function. So, although `system.tag.writeAsync("[default]HÅ/Motor_01", 10)` will fail, `system.tag.writeAsync(u"[default]HÅ/Motor_01", 10)` will work. For an overview and syntax scripting, refer to the [Python Scripting](platform\scripting\python-scripting\python-scripting.md) section.
:::caution
Many built-in objects, such as the system library, are mutable objects. Mutable objects can be overridden within a script. For example:
```
system = "foo"
```
Doing so will prevent later lines in the script from using methods on the object. While this is expected behavior in Python, it is strongly advised to **not** override built-in objects.
:::
### Functions by Scope