Jump to content
Age of History 3
flaffymg

PROMETHEUS | an actual AoH2 modloader | development thread

Recommended Posts

So… hear me out: instead of having to JAR‑mod the game to support mods, what if someone made an actual modloader that really works and lets you run multiple mods at once? Well, that’s exactly what I’m building, It’s very early in development, but…

I present: PROMETHEUS: bringing light to this chaotic modding scene 😛 (cool title huh?)

prome.png.a6a66dad1f550aec865ec8ebf07d4ce8.png

(placeholder logo)

Prometheus is (or will be) a modloader that lets you modify the base game on runtime and load multiple mods simultaneously, Just drag and drop your mod.jar into the /mods folder and voilà: you have installed a mod!

I made something similar in the past, but I was super inexperienced back then and didn’t really know what I was doing. Now I’m way better at coding than i was before and came back to this silly project..

So… how does it work?

Prometheus is broken into two main parts:

  1.  Overlays
  2.  The modding API

So, what is an “overlay”?

Think of it like Fabric’s Mixins: it is an annotation‑driven system that lets you modify the game’s code at runtime. It lets you inject code, mirror (shadow) variables, listen for method calls, completely replace a function, or redirect all function calls to another implementation. That’s the core idea: the overlay class defines exactly how its target class will be modified, prometheus first processes each overlay to read its annotations and build a transformation "plan", then when the target class is loaded by the classloader, a transformer applies those changes by injecting code directly into the target's bytecode,

- here is an example:

image.png.cd713b660822763f66e859853ac5085f.png

This code will create a mirror of the iArmy variable and a listens for the setArmy call, this function will be called after setArmy runs (and before it returns), So this will set every new army call to 800, doesnt matter what value i put, when i confirm it will be 800

image.thumb.png.1bbf7037072d8bcc92666574cc0492d6.png

(it even glitched a litle bit since i didnt adjusted the text size), as you can see.. yeah it works, this is what an overlay is, basicaly a free pass to modify the game code on runtime

What is the modding api?

The modding API acts as a wrapper built on top of the overlay system, designed to simplify mod development by handling common tasks for you instead of having to write an overlay for every single feature you want to modify, the api will provide some higher-level tools and utilities to interact with the game,  stuff like manage systems like event handling, acessing and modifying, and creating things in a easy way (e.g., civilizations, provinces, UI elements), and provide convenient hooks into game logic. Essentially, it abstracts the lower-level overlay work and gives mod developers a cleaner, easier way to create and integrate mods without needing to modify the game’s internals directly to do simpler stuff,

for example, instead of doing an overlay like the previous images we could do something like a simple event listener, intercept the event and then modify the value

and of course there will be some things that the api cant do and you will have to implement by hand (when the public beta/alpha relase i dont even think that i will have the api ready by then, it is a looot to implement)

Final considerations:

- My roadmap for Prometheus includes alpha and beta phases before the official release. It will evolve and improve over time based on community feedback and etc. I dont have a date for the open beta as prometheus is still in a very early stage of development, at the moment only the basic annotations are functional. I'm currently working on the @Inject annotation which has been the most hard to implement so far, and this thread will serve more as a devlog than anything else, where I’ll share updates and progress as things move forward and have some feedback of what ya think.

- Prometheus does not modify the base game files, it operates entirely at runtime, it works pretty much like minecraft's forge or fabric, instead of altering game code or assets directly (as with jar modding), prometheus dynamically hooks into the game when it launches, this approach makes it way easier to distribute both prometheus (and its mods), since no copyrighted game files or code are included.

- Prometheus has no restrictions on how you create or distribute your mods, youre not obligated to share your source code or even release your mod for free. while id love to see every mod be free and open source, I won’t pressure anyone into doing that 😛. The only hard rule is: no malware or harmful content, which i believe every sane human being can agree on, other than that: your mod, your rules.

- Everyone is welcome to help! prometheus isn’t publicly available yet, but I’m totally open to suggestions, ideas, and feedback. oncee its released anyone will be welcome to report bugs, suggest new features, or even contribute directly to the code(im not the best coder there is so the code will need some work lol)

- i can't work on this all day sadly, i have university and job, so my time is pretty limited, 😞 ill be dedicating as much of my free time as I can to it but development wont be super fast. I'm sorry about tha but i promise ill try to make prometheus as good as possible, as fast as I can!

 

Prometheus aims to be a community built project, i don’t want to be like the “oh look I’ve created this, muahaha” kind of guy, yk? I just want to be the silly guy that sparked a new era in AoH2’s modding scene. So I’m counting on yall :3
Thanks for reading this far, I really hope this project turns into something that helps people and makes this game even better than it already is ❤️

from the silly, kinda weird Brazilian guy
flaffy :3

Edited by flaffymg
add logo

Share this post


Link to post
Share on other sites

On 4/22/2025 at 2:36 PM, Siamese said:

And now we have Quilt. Jokes aside, good luck on this project, can't wait for it. Even better it's for AoH2 

minecraft's modding ecosystem is kinda messy rn, quilt neoforge forge fabric, the funny part is that neoforge is basically the same thing as forge and quilt is basically the same thing as fabric 😛

Share this post


Link to post
Share on other sites

1 hour ago, flaffymg said:

minecraft's modding ecosystem is kinda messy rn, quilt neoforge forge fabric, the funny part is that neoforge is basically the same thing as forge and quilt is basically the same thing as fabric 😛

Yup, they basically run their same counter-part mods except there are some exclusive mods (like 10 or so), I think neoforge is planning on becoming its own thing however

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Age of History Games