Our Projects

Explore our game modifications, frameworks, and development tools

OmegaWare Framework

📦 Framework • 💻 C++View Repository

The Foundation of Everything

The OmegaWare Framework is our flagship project and the backbone of all our game modification tools. What started as a simple helper library has evolved into a comprehensive framework that streamlines the entire development process for game cheats and modifications.

OmegaWare Framework interface

The framework's main interface showcasing the modular design and user-friendly controls.

Why We Built This

After working on multiple game modification projects, we noticed we were constantly rewriting the same foundational code - memory manipulation, process injection, UI systems, and debugging tools. The OmegaWare Framework was born out of the need to standardize these components and create a reusable foundation.

Core Architecture

The framework is built around a modular architecture that separates concerns and allows for easy extension. The main directory structure includes:

  • Features/ - Core feature implementations and examples
  • Memory/ - Memory management, pattern scanning, and manipulation
  • GUI/ - ImGui-based user interface system
  • Hooks/ - Function hooking and interception
  • Interfaces/ - Engine-specific interfaces (Unity, Unreal, etc.)
  • Utils/ - Utility functions and helper classes
  • Config/ - Configuration management
  • Localization/ - Multi-language support
C++Features/Feature.hpp
#pragma once
#include "pch.h"

class BaseFeature
{
public:
	BaseFeature()
	{
		RegisterFeature(this);
	};

	/**
	 * Called upon menu creation. Create any and all
	 * menu elements for this feature here.
	 */
	virtual bool SetupMenu() { return true; };

	/**
	 * Called once upon startup for hooking or variable
	 * initialization.
	 */
	virtual bool Setup() { return true; };

	/**
	 * Called once upon shutdown to handle cleanup such as
	 * restoring hooks.
	 */
	virtual void Destroy() {};

	/**
	 * Called at the start of every frame for input handling.
	 */
	virtual void HandleInput() {};

	/**
	 * Called once every frame.
	 */
	virtual void Render() {};

	/**
	 * Called 10 times per second in the main thread.
	 */
	virtual void Run() {};

	/**
	 * Called every frame while the menu is open to update any
	 * menu elements.
	 */
	virtual void HandleMenu() {};

	/**
	 * Returns the name of this feature for logging purposes.
	 */
	virtual std::string GetName() = 0;

private:
	static void RegisterFeature(BaseFeature* pFeature)
	{
		Framework::g_vecFeatures.emplace_back(pFeature);
	}
};

This feature system provides a comprehensive lifecycle management approach with dedicated methods for different phases of execution - from initialization and menu setup to per-frame updates and cleanup. Each feature automatically registers itself with the framework upon construction.

Multi-Engine Support

C++FrameworkConfig.hpp
// Engine Configuration
#define FRAMEWORK_UNREAL        // Unreal Engine 4/5 support
// #define FRAMEWORK_UNITY      // Unity Engine support  
// #define FRAMEWORK_OTHER      // Generic engine support

// Rendering Backend Configuration
#define FRAMEWORK_RENDER_DYNAMIC    // Auto-detect rendering backend
// #define FRAMEWORK_RENDER_D3D11   // Force DirectX 11
// #define FRAMEWORK_RENDER_D3D12   // Force DirectX 12

// Framework Version
#define FRAMEWORK_VERSION "6.8.6"

// Architecture
#ifdef _WIN64
    #define FRAMEWORK_X64
#endif

This configuration system allows the framework to adapt to different game engines and rendering backends automatically or through manual specification.

What Makes It Special

  • Multi-Engine Support: Native support for Unity, Unreal Engine 4/5, and generic engines
  • Dynamic Rendering: Auto-detection of DirectX 11/12 backends or manual configuration
  • Xmake Build System: Modern build system with cross-platform support and easy dependency management
  • Modular Architecture: Clean separation of concerns with dedicated directories for each component
  • Safety First: Built-in exception handling and safe memory operations
  • Localization Ready: Multi-language support built into the core framework
  • Active Development: Currently at version 6.8.6 with regular updates and improvements
  • Community Driven: Open source with contributions from team members like Good Evening

The framework serves as the foundation for all our game modification projects, providing a consistent API and development experience across different game engines and rendering backends. Its modular design allows developers to pick and choose components based on their specific needs while maintaining compatibility and performance.

Deep Rock Galactic Enhancement

🎮 Game Mod • 💻 C++

Rock and Stone, Enhanced

Deep Rock Galactic's cooperative mining gameplay gets supercharged with this comprehensive enhancement suite. Built on our OmegaWare Framework, this project demonstrates advanced Unreal Engine manipulation for first-person shooter modifications, featuring sophisticated aimbot systems, ESP overlays, and magic bullet mechanics.

Magic bullet system demonstration showing projectiles curving mid-flight to hit targets automatically.

Magic Bullet System

C++Features/Aimbot/MagicBullet.cpp
void Aimbot::HandleInput() {
    if (!bEnabled) return;
    
    Unreal* pUnreal = Cheat::unreal.get();
    CG::APlayerCameraManager* pCameraManager = pUnreal->GetPlayerCameraManager();
    if (!pCameraManager) return;
    
    CG::ABP_PlayerCharacter_C* pDRGPlayer = static_cast<CG::ABP_PlayerCharacter_C*>(pUnreal->GetAcknowledgedPawn());
    if (!IsValidObjectPtr(pDRGPlayer)) return;
    
    CG::UInventoryComponent* pInventoryComponent = pDRGPlayer->InventoryComponent;
    if (!IsValidObjectPtr(pInventoryComponent)) return;
    
    CG::AItem* pItem = pInventoryComponent->GetEquippedItem();
    if (!IsValidObjectPtr(pItem)) return;
    
    CG::AAmmoDrivenWeapon* pWeapon = static_cast<CG::AAmmoDrivenWeapon*>(pItem);
    if (!IsValidObjectPtr(pWeapon) || !pItem->IsA(CG::AAmmoDrivenWeapon::StaticClass()))
        return;
    
    CG::UWeaponFireComponent* pWeaponFire = pWeapon->WeaponFire;
    if (!IsValidObjectPtr(pWeaponFire)) return;
    
    CG::FVector vecCameraLocation = pCameraManager->GetCameraLocation();
    
    if (!bAutoFire && !keyAimbot.IsDown() && !keyAimbot.IsToggled())
        return;
    
    // Process enemy targets
    Mutex.lock();
    for (CG::AEnemyPawn* pActor : apEnemyPawns) {
        if (!IsValidObjectPtr(pActor) || pActor->InternalIndex <= 0)
            continue;
        
        CG::UEnemyHealthComponent* pHealthComponent = pActor->Health;
        if (!IsValidObjectPtr(pHealthComponent) || pHealthComponent->IsDead() || 
            !pHealthComponent->canTakeDamage)
            continue;
        
        CG::FVector vecAimLocation, vecExtent;
        pActor->GetActorBounds(true, &vecAimLocation, &vecExtent, false);
        
        // Magic bullet: Fire from target location instead of camera location
        pWeaponFire->Fire(
            bMagicBullet ? vecAimLocation : vecCameraLocation,
            CG::FVector_NetQuantizeNormal((vecAimLocation - vecCameraLocation).Unit()),
            true
        );
        
        if (!bMultiTarget) {
            Mutex.unlock();
            return;
        }
    }
    Mutex.unlock();
}

This magic bullet system works by calling the `WeaponFire->Fire()` function directly with modified parameters. When magic bullet is enabled, we invoke the fire function with the projectile origin set to the target location rather than the weapon muzzle, creating the illusion that bullets curve mid-flight to hit targets.

ESP and Visual Enhancements

C++Features/ESP/ESP.cpp
void ESP::Render() {
    if (!bEnabled) return;
    
    Unreal* pUnreal = Cheat::unreal.get();
    CG::APawn* pDRGPlayer = pUnreal->GetAcknowledgedPawn();
    if (!pDRGPlayer) return;
    
    // Convert color settings to ImGui format
    ImU32 uiEnemiesBox = ImGui::ColorConvertFloat4ToU32(*reinterpret_cast<ImVec4*>(stEnemies.clrBox));
    ImU32 uiEnemiesBoxOutline = ImGui::ColorConvertFloat4ToU32({ 0.f, 0.f, 0.f, stEnemies.clrBox[3] });
    
    // Process all actors in the game world
    for (FNames::ActorInfo_t stInfo : pUnreal->ActorList) {
        switch (stInfo.iLookupIndex) {
        case FNames::EnemyPawn:
        case FNames::EnemyDeepPathfinderCharacter:
        case FNames::ParasiteEnemy:
        case FNames::CaveLeech:
        case FNames::SharkEnemy:
        case FNames::SpiderEnemy:
        {
            if ((iESPMaxDistance && stInfo.flDistance > iESPMaxDistance) || 
                !IsValidObjectPtr(stInfo.pActor))
                break;
            
            CG::AFSDPawn* pPawn = reinterpret_cast<CG::AFSDPawn*>(stInfo.pActor);
            if (!IsValidObjectPtr(pPawn)) break;
            
            CG::UHealthComponent* pHealthComponent = 
                reinterpret_cast<CG::UHealthComponent*>(pPawn->GetHealthComponent());
            if (!IsValidObjectPtr(pHealthComponent) || pHealthComponent->IsDead())
                break;
            
            bool bIsEnemy = pPawn->GetAttitude() >= CG::EPawnAttitude::Hostile;
            if ((bIsEnemy && !stEnemies.bEnabled) || (!bIsEnemy && !stFriendlies.bEnabled))
                break;
            
            // Get actor bounds for box calculation
            CG::FVector vecLocation, vecExtent;
            stInfo.pActor->GetActorBounds(true, &vecLocation, &vecExtent, false);
            
            ImRect rectBox{};
            if (!GetBoxFromBBox(vecLocation, vecExtent, rectBox, 
                bIsEnemy ? stEnemies.bAccurateBox : stFriendlies.bAccurateBox))
                break;
            
            // Render bounding box, name, distance, health bar
            // ... rendering code continues
            break;
        }
        case FNames::BP_Collectible_Simple_C:  // Resources
        case FNames::Gem:                      // Gems
        case FNames::BP_AlienEgg_C:           // Alien eggs
        {
            // Handle objectives and collectibles with different rendering logic
            break;
        }
        }
    }
}

The ESP system leverages Unreal Engine's persistent world system to enumerate actors and categorize different entity types. Rather than using the game's native actor enumeration, we access the world's actor list directly and filter by class names.

Multi-Language Support

The cheat includes comprehensive localization support for multiple languages including English, German, and Polish, making it accessible to Deep Rock Galactic's international player base.

OmegaWare Meteor Addons

🎮 Minecraft • ☕ JavaView Repository

Extending Minecraft's Possibilities

While most of our projects focus on C++, this addon mod showcases our versatility in Java development. Built for the Meteor Client, this addon brings advanced automation and utility features to technical/anarchy Minecraft gameplay.

Demonstration of the Better Baritone Build module creating large-scale mapart builds with automated material management.

Better Baritone Build Module

The standout feature of our addon is the Better Baritone Build module, which revolutionizes large-scale building in Minecraft by integrating deeply with Baritone's API. This module enables almost 100% AFK-able building for massive projects like mapart construction.

Key Features

  • Container Indexing & Storage: Automatically scans and catalogs the contents of chests, shulkers, and barrels
  • Intelligent Material Management: Tracks required materials and locates them across linked storage containers
  • Automated Restocking: Pauses builds to fetch materials from storage and automatically resumes construction
  • Event-Driven Architecture: Sophisticated queue system manages pathfinding, interaction, and building tasks
  • Persistent Configuration: Saves linked storages and home positions across sessions
JavaBetter Baritone Build - Core Logic
// Storage Registry - Indexes and manages container contents
public static class Storage {
    public BlockPos blockPos;
    public List<ItemStack> inventory;
    
    public boolean hasItem(Item item) {
        for (ItemStack stack : inventory) {
            if (stack.getItem().equals(item)) {
                return true;
            }
        }
        return false;
    }
}

// Event Registry - Manages build automation workflow  
public static class Event {
    public enum EventType {
        Resume,         // Resume building after material fetch
        PathToPos,      // Navigate to storage location
        InteractWithBlock, // Open container
        FetchItems      // Retrieve required materials
    }
    public EventType type;
    public boolean bWaitOnPath;
    public Runnable callback;
}

// Intelligent material fetching from Baritone messages
@EventHandler
private void onMessageReceive(ReceiveMessageEvent event) {
    String msg = event.getMessage().getString();
    if (!msg.contains("[baritone]")) return;
    
    // Parse Baritone's material requirements: "10x block{minecraft:black_concrete}"
    if (msg.matches("\\d+x block\\{minecraft:[a-z_]+}.*")) {
        String blockCount = parts[0].replace("x", "").trim();
        int count = Integer.parseInt(blockCount);
        int stacks = (int) Math.ceil(count / 64.0);
        
        // Extract block name and find corresponding item
        String blockName = blockMessage.substring(blockMessage.indexOf(':') + 1);
        Item item = Registries.ITEM.get(Identifier.of(blockName)).asItem();
        
        // Check if we have this item in linked storage
        StorageRegistry.Storage storage = StorageRegistry.INSTANCE.findItem(item);
        if (storage != null) {
            FetchRegistry.INSTANCE.add(new FetchRegistry.Material(item, stacks + extraStacks.get()));
            EventRegistry.INSTANCE.push(new Event(EventType.FetchItems, true, 
                () -> StorageRegistry.INSTANCE.findItemAndPath(item)));
        }
    }
}

The module works by parsing Baritone's material requirement messages, automatically locating the needed items in linked storage containers, and executing a sophisticated workflow to fetch materials and resume building. This enables truly autonomous large-scale construction projects.

TSR Clans KitBot Integration

JavaTSR KitBot API Integration
public class TSRKitBotModule extends Module {
    private static final String apiUrl = "https://req.tsr-clan.org";
    private static String apiKey = null;
    
    // Available kit types with configurable quantities
    private final Setting<Integer> pvpKit = sgKits.add(new IntSetting.Builder()
        .name("kit-pvp").description("Number of PvP kits to order")
        .defaultValue(0).min(0).sliderMax(27).build());
    
    private final Setting<Integer> mapartKit = sgKits.add(new IntSetting.Builder()
        .name("kit-mapart").description("Number of mapart kits to order")  
        .defaultValue(0).min(0).sliderMax(27).build());
    
    // Discord-based authentication linking
    public static boolean getIsLinked() {
        if (apiKey != null && !apiKey.isEmpty()) return true;
        
        JsonObject payload = new JsonObject();
        payload.addProperty("minecraft_username", mc.player.getName().getString());
        payload.addProperty("discord_id", DiscordIPC.getUser().id);
        
        Http.Request request = Http.post(apiUrl + "/meteor/link")
            .header("Content-Type", "application/json")
            .bodyJson(payload.toString());
            
        HttpResponse<JsonObject> response = request.sendJsonResponse(JsonObject.class);
        // Handle authentication and API key retrieval
    }
    
    // Place kit orders with the clan bot
    private void placeOrder() {
        JsonObject payload = new JsonObject();
        payload.addProperty("minecraft_username", mc.player.getName().getString());
        payload.addProperty("request_type", kitTotal > 1 ? "credits" : "normal");
        
        JsonArray kitOrders = new JsonArray();
        if (pvpKit.get() > 0) {
            JsonObject pvpOrder = new JsonObject();
            pvpOrder.addProperty("kit", "pvp");
            pvpOrder.addProperty("quantity", pvpKit.get());
            kitOrders.add(pvpOrder);
        }
        // Add other kit types...
        
        payload.add("kit_orders", kitOrders);
        
        Http.Request request = Http.post(apiUrl + "/order")
            .header("x-api-key", apiKey)
            .bodyJson(payload.toString());
    }
}
  • Kit Ordering: Order up to 27 different kit types (PvP, building, mapart, etc.)
  • Discord Authentication: Links Minecraft account with Discord for secure API access
  • Order Management: Track order status, queue position, and cancel orders
  • Credit System: Transfer tokens between players and check balances
  • Real-time Updates: Monitor delivery status and receive notifications

Technical Innovation

Both modules demonstrate sophisticated integration with external APIs and game systems. The Better Baritone Build module showcases event-driven programming and complex state management, while the TSR KitBot integration demonstrates secure API authentication and real-time communication with external services.

Crush Crush Enhancement

🎮 Game Mod • 💻 C++View Repository

Unity Mono Interface System

A comprehensive cheat tool for the Unity-based dating simulation game Crush Crush. This project demonstrates advanced Unity game hacking techniques using C++ and Mono interop to directly interface with Unity's managed runtime, providing a more stable approach than traditional memory patching.

Core Architecture

  • Mono Interface: Complete C++ wrapper for Unity's Mono runtime API
  • DLC Unlocker: Automatic unlocking of all 70+ premium characters and content packs
  • Resource Manipulation: Diamond generation and item management through Unity's "official" methods
  • Game Speed Control: Adjustable time multipliers for progression acceleration

Mono Runtime Integration

C++
class Mono {
private:
    // Function pointer types for Mono API
    typedef MonoMethod* (*t_mono_class_get_method_from_name)(MonoClass* klass, const char* name, int param_count);
    typedef MonoObject* (*t_mono_runtime_invoke)(MonoMethod* method, void* obj, void** params, MonoObject** exc);
    
    void Initalize() {
        hMono = GetModuleHandleA("mono.dll");
        // Load Mono API functions dynamically
        mono_class_get_method_from_name = reinterpret_cast<t_mono_class_get_method_from_name>(
            GetProcAddress(hMono, "mono_class_get_method_from_name"));
        mono_runtime_invoke = reinterpret_cast<t_mono_runtime_invoke>(
            GetProcAddress(hMono, "mono_runtime_invoke"));
        
        // Attach thread to prevent crashes
        mono_thread_attach(mono_get_root_domain());
    }
    
public:
    MonoMethod* GetMethod(const char* className, const char* methodName, int param_count = 0) {
        MonoDomain* pDomain = mono_get_root_domain();
        MonoAssembly* pAssembly = mono_domain_assembly_open(pDomain, "Assembly-CSharp");
        MonoImage* pImage = mono_assembly_get_image(pAssembly);
        MonoClass* pKlass = mono_class_from_name(pImage, "", className);
        return mono_class_get_method_from_name(pKlass, methodName, param_count);
    }
};

DLC Unlock Implementation

C++
void GivePurchases() {
    MonoMethod* AwardItem = Mono::Instance().GetMethod("BlayFapInventory", "AwardItem", 1);
    
    // Iterate through all DLC items (0 to MAX = 69)
    for (int i = 0; i < BlayFapItems::MAX; i++) {
        void* pArgs[2] = { &i, nullptr };
        MonoObject* pResult = Mono::Instance().Invoke(AwardItem, nullptr, pArgs);
    }
}

Game Data Structures

C++
// 70+ character definitions from game data
inline std::vector<Girl> Girls {
    {"Cassie", 0}, {"Mio", 1}, {"Quill", 2}, {"Elle", 3},
    {"Nutaku", 4}, {"Iro", 5}, {"Bonnibel", 6}, {"Ayeka", 7},
    // ... all characters mapped with IDs
    {"Loola", 70}
};

// DLC item enumeration (69 total items)
enum BlayFapItems {
    NutakuUserOutreach = 0, Easter2017, Summer2017, StarterPack,
    July2017, BackToSchool2017, NSFW, Winter2018, Charlotte,
    // ... all DLC packs and premium content
    Anniversary2025, Loola, MAX = 69
};

Technical Insights

  • Mono Runtime Manipulation: Direct interaction with Unity's managed code execution environment
  • Assembly Reflection: Dynamic discovery and invocation of C# methods from native code
  • Thread Safety: Proper thread attachment to prevent crashes when calling managed code
  • API-First Approach: Using Unity's "intended" APIs rather than memory patching for stability

Borderlands 3 Enhancement Suite

🎮 Game Mod • 💻 C++View Repository

Mayhem Mode, Enhanced

Borderlands 3's chaotic gameplay is perfect for experimentation with combat enhancement tools. This project demonstrates direct manipulation of Unreal Engine 4 game systems, featuring speed modifications, weapon enhancements, and invulnerability systems for the ultimate vault hunter experience.

Combat demonstration showing enhanced movement and weapon modifications in action.

Core Feature Architecture

C++Features/Feature.h
#pragma once
#include "pch.h"

class Feature
{
private:
    bool Initalized = false;

public:
    Feature() {};

    // Handle setup, like hook creation and variable initalization
    virtual bool Setup() = 0;

    // Handle clean up, like restoring hooked functions 
    virtual void Destroy() = 0;

    // Handle checking for any key/hotkey presses or holds needed for features
    virtual void HandleKeys() = 0;

    // This should be run in the ImGUI draw loop, used to draw anything to the menu
    virtual void DrawMenuItems() = 0;

    // This should be run at the top of the ImGUI draw loop, used to render things like ESP, Tracers, and Debug Info
    virtual void Render(void** args, size_t numArgs) = 0;

    // This should be run in the feature loop, used to run any acutal feature code like setting a value for godmode
    virtual void Run(void** args, size_t numArgs) = 0;
};

Speed Enhancement System

C++Features/SpeedHack.cpp
void SpeedHack::Run(void** args, size_t numArgs)
{
    if (!Initalized || !bEnabled)
        return;

    CG::UOakCharacterMovementComponent* OakCharacterMovement = (CG::UOakCharacterMovementComponent*)args[0];

    if (OakCharacterMovement)
    {
        if (OakCharacterMovement->bIsSprinting)
        {
            if (!bSpeedSwitch)
            {
                fOldSpeed = OakCharacterMovement->MaxSprintSpeed.Value;
                OakCharacterMovement->MaxSprintSpeed.Value = fOldSpeed * fSpeed;

                bSpeedSwitch = true;
            }
        }
        else
        {
            if (bSpeedSwitch)
            {
                OakCharacterMovement->MaxSprintSpeed.Value = fOldSpeed;

                bSpeedSwitch = false;
            }
        }
    }
}

Weapon Enhancement Suite

The WeaponStuff feature provides comprehensive weapon modifications including recoil elimination, infinite ammo, fire rate adjustment, and spread removal. The system carefully preserves original values to allow toggling features on and off without permanent changes to the game state.

Invulnerability System

C++Features/GodMode.cpp
void GodMode::Run(void** args, size_t numArgs)
{
    if (!Initalized)
        return;

    CG::AActor* AcknowledgedPawn = (CG::AActor*)args[0];

    if (bGodMode && AcknowledgedPawn)
    {
        AcknowledgedPawn->bCanBeDamaged = false;
        bOnce = false;
    }

    if (!bGodMode && AcknowledgedPawn && !bOnce)
    {
        AcknowledgedPawn->bCanBeDamaged = true;
        bOnce = true;
    }
}

Technical Implementation Details

  • Direct Component Manipulation: Modifies UE4 components like UOakCharacterMovementComponent and UWeaponFireComponent in real-time
  • State Preservation: Stores original values to allow toggling features on/off without permanent changes
  • Weapon Switching Detection: Handles weapon changes gracefully by comparing previous and current weapons
  • Real-time Parameter Adjustment: Uses the Value and BaseValue properties of UE4's attribute system
  • Comprehensive Recoil Control: Directly sets TargetRotation to zero vector to eliminate weapon recoil

This project demonstrates how direct game engine manipulation can create powerful enhancements while maintaining code organization and stability. The approach of storing and restoring original values ensures that features can be toggled safely without corrupting the game state.