Ghost's Utilities (GhostUtil for short) is a large Lua library full of modules for all-in-one use, containing functions of which you may find useful for executing common tasks in Psych Engine.
GhostUtil adds support to backwards compatibility by adding newer reflect functions from Psych Engine 1.0.0 to lower versions ranging from 0.6.3 to 0.7.3 with the support from the reflect extension. It also adds newer Psych Engine features like startTween and runHaxeFunction to 0.6.3.
The library is equipped with the outdate-handler.lua module of which could automatically handle the class pathing between 0.6.3 and the 0.7.0 overhaul update. Added support is for functions like addHaxeLibrary, setPropertyFromClass and getPropertyFromClass. Although, it is only limited towards the changes made in Psych Engine's Source Code and nothing from changes in other Haxelibs, like Flixel.
Additionally, GhostUtil has easier methods on adding shaders to cameras (shader.addCameraFilter), manipulating the game's application with simple tweens (window.startTween), and more! There's also a simple-to-use semi-advanced modcharting tool for you chaotic modcharters out there who uses Lua.
GhostUtil also adds the capability to make and add community extensions (as seen for GhostUtil's reflect.lua extension) for others to integrate their own library into GhostUtil's environment.
- 0.6.3, 0.7.3 (requires
reflectextension) - 1.0.4
(These results are only tested from our limited unit tests, it may not be as accurate.)
- 0.7.1h
- below 0.6.3
Important
Before downloading, please check if the current Psych Engine version you're using is supported for GhostUtil usage.
1. To use GhostUtil, drag-n-drop the ghostutil folder into your PsychEngine folder.

2. Afterwards, drag-n-drop the callbackhandler.lua script into mods/scripts.

3. Next, to actually use GhostUtil inside your scripts, simply import one of the module using the require function.
-- you can name the variable to your liking. -- replace "module" with the corresponding module name (e.g. util, color, modchart). local gmodule = require 'ghostutil.module'
Caution
In Psych Engine 0.6.3, some modules may only be available after onCreate is called.
1. Import one of GhostUtil's module.
local util = require 'ghostutil.util'
2. Call a method from the corresponding module.
local util = require 'ghostutil.util' util.setPosition('dad', 100, 200)Result:
dad's positions is set to (100, 200)
a. Documentation:
GhostUtil provides an extensive documentation for every function from each respective module.
Check it out here: - GhostUtil Docs.
b. Issues:
If any errors were to occur while using GhostUtil, please check first to confirm if the error itself is from or caused by GhostUtil itself. Otherwise, the issue would be closed.
For a better and faster response, you should give additional information as to how the error occured or what you last did to make it throw an error.
Warning
Before reporting any issues to Gamebanana / GitHub Issues / Lua Script Forum, please do check the Wiki first for a more detailed documentation about GhostUtil's modules.
c. Bug Reports:
If any bugs is found within the utility, make sure to report it in the Github Issue section. I would greatly appreciate if you'd provide more information to give a better response/solution towards your problem. Sorry in advanced for the inconvinience.
Note that I will be closing issues that's caused in the aforementioned incompatible Psych Engine versions.
Maybe you thought my work was cool, and wanted to support me in some kind of other way?
Well now you can with Ko-fi!
If you ever donated or supported me, I want to say all my thanks to you guys who supports me. I genuinely can't thank you guys enough for the support you all give for my tiny projects. Thank you again :)
a Lua Library made by GhostglowDev; for Psych Engine
© 2025 GhostglowDev — Ghost's Utilities
Licensed under the MIT License.
