Your script,
extended.

Glovium Modules are drop-in blocks you bolt onto any Rayfield-based project. Request a key, pull a module, and it lands right inside your existing UI. No rewrites, no boilerplate, no visual drift.

module.lua
-- drop into your script local module = request({ Url = "modules.aptfxx.dev", Method = "GET", Headers = { ["Authorization"] = "Bearer MODULE_KEY", ["Accept"] = "application/json" } }) getgenv().ModuleWindow = rayfieldWindow getgenv().RequestedModule = "autofarm" loadstring(module.Body)()

What you're plugging into

/ 04 Capabilities
01

Rayfield-native

Modules speak Rayfield natively. They inherit your window, theme, and layout instead of spawning a second UI on top of yours.

02

Keyed access

Each script gets its own key. The endpoint stays stable, and your integration keeps working even as modules grow behind it.

03

One-line delivery

A single request and a single loadstring. No vendored files, no repo to clone, nothing to keep in sync.

04

Modular by default

Each module does one job. Pull in what you need, leave the rest. No monolith, no dead weight shipped alongside it.

Getting a module key

/ 03 Access

Email the maintainer step 01

Send a short note to invokexpression@duck.com describing your script and where the module would sit inside it. Keys are issued per script, not per person.

Receive your MODULE_KEY step 02

You'll get a reply with a bearer key that identifies your integration. Treat it like a password, since it's tied to your project, not your machine.

Drop in the snippet step 03

Paste the block below into your script, swap MODULE_KEY for the key you received, and the module runs inside your Rayfield window.

The fetch block

/ Lua + Rayfield
LUA module-fetch.lua
-- Swap MODULE_KEY for your issued key before running. -- RequestedModule picks which module to load into ModuleWindow. local module = request({ Url = "modules.aptfxx.dev", Method = "GET", Headers = { ["Authorization"] = "Bearer MODULE_KEY", ["Accept"] = "application/json" } }) getgenv().ModuleWindow = rayfieldWindow getgenv().RequestedModule = "autofarm" loadstring(module.Body)()
Your rayfieldWindow must exist before the module runs, since modules attach to it rather than creating their own window. Set RequestedModule to the module name you want (for example "autofarm") before calling the loadstring.