# Function Library
The Assistant's function library lets you write shorter, simpler code by automatically sharing helpful
#macro statements to the files where they're used.
// Old window = 3 window_timer = 0 // New set_window(3)
To use functions in the library, you only need to use them as if they were already available. The Assistant notices, and provides them at the bottom of the file.
To share one of your defines across files, navigate to the
assistant/user_inject that was created. All defines in gml
files in that directory will be available everywhere, just like the Assistant library.
If you already supply a define in a file, the Assistant will not provide it. This lets you override the library on a per-file basis.
- Documentation for the library can be found in the sidebar under this page.
- Source code for the library can be found in the
assistant/.injectfolder that the Assistant will make in the root of your project.
The Assistant will regularly check for updates and add new functions to the library.
There are three kinds of update:
- Patch updates fix bugs or make existing functions more flexible, in a way that should never be able to break existing code.
- Minor updates add new functions. This could potentially break code if you have a variable with the same name as a new function, so it is disabled by default.
- Major updates change functions, or remove old depreciated functions. This can easily break existing projects, so it is disabled by default.
You can change the types of updates you'll receive in
assistant/assistant_config.yaml, which would automatically be
created for you.