Quest is a modular client framework for creating mods, cheats, and tools for AdventureQuest 3D. It empowers developers to patch game behavior, inject custom UI, and build tools using a clean and extensible API.
- Features
- Installation
- How It Works
- Using the GUI Library
- Example: Basic Window
- Opening Windows
- Creating a Menu Entry
- Directory Structure (Recommended)
- Building Your First Plugin
- FAQ
- 🔌 Modular Plugin System – Build and hot-load mods via a structured plugin architecture.
- 🧠 Harmony Patching – Modify the behavior of in-game methods with IL patches.
- 💬 Command System – Register custom commands and handlers.
- 🎨 Custom GUI Framework – Create responsive, themed in-game UI with a fluent interface.
- 🛠️ Hot Reloading – Develop and test your UI/tools in real time.
- Download and install the latest version of AdventureQuest 3D.
- Get the latest Quest release from the Releases page.
- Extract Quest into the AQ3D installation folder (or any location).
- Launch the game using
Launcher.exe.
Quest injects itself into AQ3D's process and exposes a fully managed runtime for developing real-time plugins. Using Harmony for patching and a built-in GUI engine, Quest allows you to seamlessly extend or alter the game's behavior and interface.
Quest provides a powerful and themed GUI system designed specifically for AQ3D.
- Grid layout system with smart wrapping and column spans
- Consistent dark theme
- Dynamic element creation (labels, inputs, buttons, text areas)
- Lambda bindings for input and event logic
- Centralized window management via
QuestUIManager
using Library.Quest.Attributes;
using Library.Quest.Window;
using Library.Quest.Window.Elements;
[QuestWindow("Simple Example", "MyWindowId", 300, 150, true)]
public class SimpleExampleWindow : QuestWindow
{
private string _inputText = "";
private LabelElement _resultLabel;
public SimpleExampleWindow() : base("Simple Example", "MyWindowId", 300, 150, true)
{
SetGridLayout(3, 1);
RenderControls();
}
private void RenderControls()
{
InputField("Enter text here", value => _inputText = value);
Button("Process", OnButtonClicked);
_resultLabel = Label("Results will appear here");
}
private void OnButtonClicked()
{
_resultLabel.SetText($"You entered: {_inputText}");
}
}To open your window from anywhere in your code:
using Library.Quest.Managers;
QuestUIManager.Open("MyWindowId");Windows are automatically managed by ID and won’t reopen duplicates.
You can define interface menu items that appear in Quest’s mod UI:
using Library.Quest.Attributes;
using Library.Quest.Managers;
[InterfaceMenuItem("My Window")]
public class MyWindowMenuItem
{
[MenuItemClicked]
public void Show()
{
QuestUIManager.Open("MyWindowId");
}
}/YourPlugin
│
├── PluginMain.cs # Entry point for your mod
├── Windows/
│ └── SimpleExampleWindow.cs # Custom QuestWindow implementations
├── Commands/
│ └── YourCommand.cs # Register command handlers
└── UI/
└── MenuItems.cs # Menu integrations
To write a Quest plugin:
- Create a class with
[QuestPlugin]attribute. - Register your windows, commands, or event hooks in
OnLoad(). - Use
QuestUIManagerand other systems to control behavior.
Need help? Check the Wiki (coming soon).
Q: Is this allowed by AQ3D?
A: Use Quest at your own risk. It is not endorsed or supported by Artix Entertainment.
Q: Can I create bots/macros with this?
A: Yes, Quest gives you full access to game memory and methods. How you use it is up to you.
Q: How do I update?
A: Download the latest release and replace the files in your Quest directory.
