Intro
This section contains some frequently asked questions about the library.
Who is gooey for?
gooey is best suited for developers making prototypes, jam games or small game projects, with non-diegetic interfaces. Bear in mind gooey is a hobby project (not a professional one) by manta ray.
What export platforms are supported?
Theoretically all of them. However, gooey has only been unit-tested on Windows, GX.games and Android at the moment.
Note that, due to bugs in the HTML5 runner, HTML5 is supported only through Gamemaker's WASM Build Export (i.e. build for GX.games but choose the "export to ZIP" option) introduced in Gamemaker 2024.11.
Does gooey support live reloading/editing?
Not natively. However, it's completely compatible (and highly recommended) with YellowAfterlife's mind-blowing GMLive extension.
Why doesn't gooey have feature ___?
I made gooey mainly for my own use, with the scope intended, and decided to share it with the community. I do have a backlog and I add more features from time to time, but these will mainly be convenience and QoL additions rather than big things.
Can I fork it / improve it?
Absolutely, go grab the code from the Github repository and fire away! Do send me your pull requests if you think your feature/bug fix/improvement is useful for the community!
Why is this called gooey?
GUI is an homophone with gooey. Compare here and here.
What license does gooey have?
The library is licensed under MIT (https://choosealicense.com/licenses/mit/). Do whatever you please with it, just don't blame me if things go awfully wrong :)
Note that ScribbleDX's license is also MIT and and Kenney's UI asset pack is CC0. Always check the latest licenses from Scribble (and Kenney's assets).
Is gooey compatible with Gamemaker's UI layer system?
No - they work fundamentally differently. The UI layer system introduced in 2025 works with objects (as well as text and sprites) and lets you create interfaces interactively at design time1. gooey on the other hand works with constructors and is suited to create interfaces at runtime.
What are some important things to know about the library?
- gooey is built for Gamemaker 2023+. If you don't have this version, you should probably look elsewhere.
- gooey is based on JujuAdams's Scribble for rendering text. Scribble is actually included in the local package file. The file will be periodically updated as new versions of Scribble come out. If you change/update Scribble in your project, please change the following macro variable to allow some methods to work:
- gooey is not fully optimized and will probably never be.
- gooey's setters and getters do not currently have a lot of input validation, so bear in mind that exception handling will be harder right now.
- gooey is designed for, and currently aimed at, mouse or touch only games, so it doesn't currently handle controller or keyboard navigation natively at the moment, and probably never will.
- gooey uses the GUI layer to draw GUI, so it's mainly for non-diegetic UI.
- gooey is 100% sprite based. You cannot draw UI components with primitives or basic shapes using gooey.
Can I use a shader to draw a UI with gooey?
Yes - apply the shader before the
-
it also supports functions to modify them at runtime, however the main idea is to allow developers to create the UI in the room editor ↩