Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moonhook Logo

Moonhook V4

C++20 Stars License

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.

UI Preview

Moonhook V4 Main Menu Moonhook V4 Main Menu
Moonhook V4 Main Menu

The colors, gradients and banners are randomized.

Features

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 / .luauc files into the Plugins/ folder
  • Register custom options into the main menu, Webhooks panel, or Bots panel
  • Full access to the moonhook API: HTTP requests, Webhook & Bot objects, console I/O, JSON encode/decode

Plugin API

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)

Building

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 Release

The compiled binary and libcurl DLL will be placed in the build output directory.

Usage

  1. Build the project (see above) or download moonhookv4.exe from the GitHub Releases.
  2. (Optional) Drop any .lua / .luau plugin files into a Plugins/ folder next to the executable.
  3. Run the executable.
  4. Follow the on-screen prompts to select the Webhooks panel, Bots panel, or any loaded plugin options.

Credits

  • V4 Rewrite: Jasper (@U-238Consumer) and Tobias(@Tobobb)
  • V1 and V2: Tobias (@Tobobb)