Moonhook V4 is a complete rewrite of Moonhook V3 in C++. It retains all of the original Discord utility and automation features while adding a Luau plugin system that lets you extend and add new options without touching the core codebase.
This is the new official Moonhook V4 repository. Our GitHub organization has been suspended, and all repositories were deleted with it.
The colors, gradients and banners are randomized.
Webhooks
- Send messages (plain text)
- Multi-threaded webhook spamming
- Update webhook name and avatar (from file or URL)
- Delete webhooks
Bots (Requires Bot Token and Guild ID)
- Delete all channels
- Spam create channels
- Delete all roles
- Spam create roles
- Multi-threaded message spam (via webhooks in every channel)
- Ban everyone
- Full server nuke (parallel channel/role deletion & creation + message spam)
Plugins (Luau scripting)
- Drop
.lua/.luau/.luac/.luaucfiles into thePlugins/folder - Register custom options into the main menu, Webhooks panel, or Bots panel
- Full access to the
moonhookAPI: HTTP requests, Webhook & Bot objects, console I/O, JSON encode/decode
Plugins are written in Luau and have access to the global moonhook table:
| Function / Field | Description |
|---|---|
moonhook.Option(name, type, fn) |
Register a new menu option. type: moonhook.MAIN_MENU_OPTION, WEBHOOKS_OPTION, or BOTS_OPTION |
moonhook.Request({Url, Method, Headers, Body}) |
Make an HTTP request; returns {Success, StatusCode, StatusMessage, Headers, Body} |
moonhook.log(text) |
Print a log line to the console |
moonhook.error(text) |
Print an error line to the console |
moonhook.input(prompt) |
Prompt the user for a string |
moonhook.int_input(prompt) |
Prompt the user for an integer |
moonhook.wait(ms) |
Sleep for ms milliseconds |
moonhook.pause() |
Wait for the user to press Enter |
moonhook.encode(table) |
Encode a Lua table to a JSON string |
moonhook.decode(str) |
Decode a JSON string into a Lua table |
moonhook.readfile(path) |
Reads a file's content into a string |
moonhook.writefile(path, content) |
Writes content into a file |
moonhook.appendfile(path, content) |
Appends text to a file |
moonhook.makefolder(path) |
Creates a folder |
moonhook.delfolder(path) |
Deletes a folder |
moonhook.MAIN_MENU_OPTION |
Option type constant (0) — adds to the main menu |
moonhook.WEBHOOKS_OPTION |
Option type constant (1) — adds to the Webhooks panel |
moonhook.BOTS_OPTION |
Option type constant (2) — adds to the Bots panel |
Webhook options receive a ctx table with ctx.url and ctx.new(url) to create a Webhook object.
Bot options receive a ctx table with ctx.token, ctx.guild_id, and ctx.new(token) to create a Bot object.
NOTE: all filesystem functions are restricted to work only inside of ./Plugins/Workspace
Example plugin:
moonhook.Option("My Custom Option", moonhook.WEBHOOKS_OPTION, function(ctx)
local hook = ctx.new(ctx.url)
moonhook.log("Sending hello...")
hook:send("Hello from my plugin!")
end)Requirements: CMake 3.15+, a C++20 compiler (MSVC or GCC/Clang), and an internet connection (dependencies are fetched automatically).
cmake -B build
cmake --build build --config ReleaseThe compiled binary and libcurl DLL will be placed in the build output directory.
- Build the project (see above) or download
moonhookv4.exefrom the GitHub Releases. - (Optional) Drop any
.lua/.luauplugin files into aPlugins/folder next to the executable. - Run the executable.
- Follow the on-screen prompts to select the Webhooks panel, Bots panel, or any loaded plugin options.
- V4 Rewrite: Jasper (@U-238Consumer) and Tobias(@Tobobb)
- V1 and V2: Tobias (@Tobobb)



