Jump to content

Internal Game Modification & Format Deciphering (Support/Discussion)

Recommended Posts

Hello all,

Stronghold 2 is definitely an aged game, but has a flare to it I haven't been able to shake since I first played it around 2005-2006. However, after starting it back up again recently in the past month I thought it was time to dig deeper into what makes this game work and how we can get more out of it.

First, my background is a back-end low-level (closer to machine language than languages like Python - I work with C++ and such) programmer. I love binary data (especially binary files) and figuring out how things work.


So what's this about?

To begin, I'd like to say that I've already taken some cracks at analyzing the map files. I'm sure we're all aware there was an old Java program that could "unlock" maps that were created by Firefly themselves.?

Kill Barclay, Impossible Anyone?

While it may not be totally impossible, it has game breaking bugs that make it unplayable. So I wanted to edit the map. Oh no, it wasn't editable (like all Firefly authored maps). This was the map that started me on a journey to look through the file structure and really see what we can start tackling.?

This problem, however, was pretty simple (And for staff/management, I apologize for being new but I'd love to write tutorials on how to modify things like this for personal use - but I'm not entirely sure what constitutes 'quality article guidelines' to submit one).?

The map files have a "header" at the top with an author chunk. This has a certain amount of bytes in typical header format. Once removed, the game's map editor will show it when choosing a map to edit. But that isn't all.?Stronghold 2 does not have proper access (or it refuses to, I'm not entirely sure yet) to the typical Program Files installation directory and cannot load the map even though it shows it as available to be loaded. You must first move this map file (or rather, make a copy of it) to the Maps folder in your Documents/My Games/Stronghold 2

I have since edited this Firefly custom War map to be bug-free and properly playable.

However, that is just a story. I would like to know of any information anyone else has gathered on Stronghold 2's internals and see where we, as a community, can go with this.

My next project is to be able to change hard-coded limits on peasants, troops, etc; and then move on to disabling features like Gong/Rats/Crime in Kingmakers.

Share this post

Link to post
Share on other sites

Hello, nox7 - and Welcome to Stronghold Nation!


You obviously made some important observations about SH2 which may (or may not be known). As for submitting Tutorials and related Articles, please feel free to submit these - providing you follow our Guidelines for ''Submitting Articles''. They are Posted on The Site and are quite easy to follow. Upon approval by Staff, they will be posted to our Library for everyone to enjoy and learn.


Again welcome and we look forward to your future input and participation!



Crusader 1307

Share this post

Link to post
Share on other sites

Hi @nox7, welcome to the site!


Yes, I've noticed before about the header of the file..... it contains basic things such as the map type, i.e. Kingmaker and a few of the more basic settings and configuration of the map. In regards to the Program Files directory the game struggles reading maps from there because it's considered a protected directory in Windows. Which is why you need admin privileges to do things there. That's why the game struggles there.


As @Crusader1307 pointed out, we'd love to have some of your tutorials on the site :) If you want you can PM them to me and I'll get them up there for you. Also if you like you could upload your bug-free version to our downloads section.... I'm sure many of our members would enjoy that being there.


Finally, in relation to hard-coded limits, I'm not sure there's much that can be done on that front I'm afraid. Although you may be able to accomplish some of it as you sound more experienced in this field than myself. I've come to find that most of the configurable info (appears) to be hard-coded in the exe file.


Have a good Christmas :)


The fields have eyes, and the woods have ears.

⁠— Geoffrey Chaucer, The Canterbury Tales: The Knight's Tale

Useful Articles

Share this post

Link to post
Share on other sites

Hello ^^ I try to reverse engineering Stronghold map format for same goals: changes rules/use firefly scripts in campaigns or cutscenes, customize the games, generate maps, ...., and understand how maps are saved.

I was trying to understand how it works. You can find what I have actually found here. Nothing big, it's principally metadata. For now its not ad its just really in form on a tutorial, what I actually achieved to parse.


It would be really good to parse (not all, i have no big experience in reverse engineering, but I learn), and maybe we can find some of "redondancy" like the begin will be hard, and then a bit easier (maybe? i can go wrong it's just assumptions that can be unfounded)


I don't know if much of the data can be get and how much we can alter it outside the rule of the game, because some things may be hardcoded into the executable.


Can be interesting ^^



EDITED by @Mathew Steel

Reason: formatting and updated with correct link.

Edited by Spy

Share this post

Link to post
Share on other sites

Hi, @Spy. I've updated your most recent post to contain the link to your wiki article. To clarify, the advertising rule is in place to prevent people gaining monetary gain from advertising on the site, or to prevent spam and irrelevant content being posted. As your wiki article is beneficial to the greater community and there is no monetary gain to be made from it, it does not fall under advertising.


In future, for similar things, just post the link. Making users go through the effort of decoding a Base64 code is a lot of effort and is far more concerning than a readable link :P


Nice job on the article though!

- Tom

"Gofyn wyf am galon hapus, calon onest, calon l?n."

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...