Mohenjo Daro's Updater

The Updater has undergone a lot of changes since the last version of it. I did originally want to include the source for it, but I’ve decided against doing that for a few reasons that I won’t be discussing here…

What is the Updater? It’s a program that can be used to update programs, engines, and games. It was made with the focus of being used with Eclipse based games, but it will work with most programs as well.

Why use it if it’s closed source? Just because it’s closed source, doesn’t mean it’s not flexible. The Updater has files that you can change to change the language, GUI, and program it’s updating.

Do I have to download a new version whenever one’s released? No, the Updater is self updating and will keep itself up to date. I will try my best to make sure everything is backwards compatible so that no issues will arise from updating.

What are the files written in? The config, gui, and language files are written in xml so that they are easy to read, understand, and edit.

How do I learn how to use it? There are a few text files in the various folders explaining how to set things up. there are also comments in the xml files talking about various nodes you can use. These files will be created by the Updater when the config, language, or gui files are missing.
You can also read the tutorials below the learn how to use the program.

Where can I download it? The download link can be found in my signature or here: Updater.rar?dl=0

Let’s talk about each file and what it can do.

The Config.xml file is located in the \data\ folder. This file stored the online version history, local version, executables to launch, language, and skin. It also controls whether or not to close the updater after launching the executables.

The only things you have to change as a dev are the <url> for the version history, the <version> (make sure it says 0.0.0), and the <executables>.

Tutorial for setting up Config.xml:

Version History (Online):
The version history can be on most any site. I’ve been testing the updater using but I’ve also used . If you can see the version history in the web page source, the Updater can as well.

The version history holds 3 very important pieces of info: the version number, the version file to download, and the file compression (I know that zip and rar work).

Version history mock up/example:
Updater’s version history:
Tutorial for setting up the Version History: N/A

Users and devs will have the ability to change the GUI file to move, resize, recolor, and re-image the form elements. You can make custom graphics for the Updater and save them in a new folder. (There’s an example folder that has some GUI graphics for guidance while setting up the GUI).

A GUI folder can have multiple GUI files in it. These files will all use the same graphics, but can change the GUI layout.

Tutorial for setting up a GUI:

The GUI and language files are separate from each other to give more flexibility and better readability for the user and dev.

The language xml file will contain all the test shown by the updater. The language files are named with the language they are (eg. English.xml)

Tutorial for setting up a language file:

Extra Information:
To rename the Program Updater.exe, you have to name the Program Updater.exe and the Program Updater.exe.cofig. They have to share a name so that the program can find the runtime config file, the updater will crash if they don’t have the same name.
Program Updater.exe -> Eclipse Renewal.exe
Program Updater.exe.config -> Eclipse Renewal.exe.config

User Feedback:

“This program was easy to use and when I opened the config and edited a few texts and put in some gfx here and there, it turned out to be really good! This is one of the easiest updaters I have ever used and I love it 10/10 All hail Daro!” - @SolidLink


alt text

alt text

alt text

Updater’s Version History:

<?xml version="1.0" encoding="UTF-8"?>
<!-- This is Mohenjo Daro's Updater's version history used to keep it up to date -->

    <version id='1.0.0'>
    <version id='1.0.1'>
    <version id='1.0.2'>

    <version id='1.0.3'>

    <version id='1.1.0'>

    <version id='1.1.1'>

This post is deleted!

I’ve been working on the Updater today, and I’m about to release an update for it.

This will fix the updater not updating itself properly when the exe is renamed, add a new system to let me add missing elements to xml files (so updates don’t have to revert your files), and the ability to run the launched programs in admin mode.

Ah, I hate to necro-post but can we get source for the updater, if not, can we at least get the ability to remove files in an update.


For now I’d rather keep the updater closed source, but I do plan on adding support for deleting files. The updater can replace files, but that’s the closest it has currently.

@mohenjo-daro I see, alright, if no source then is there any way possible that I let it add through sub-directories ? I am trying to have a nice clean folder structure and being forced to throw the updater in the same folder as a bunch of other misc files is messy, maybe add an xml option to look for specific sub-folder directories ?

@coonclan I’ll see about letting users change the updater folder layout, but the only one I think I’ll be letting users move is the data folder.

You are able to change the layout of your game’s folder. I have ER in it’s own folder, and you can use the updater to launch both the client and server.

Here’s an example of AE’s layout:
AE Layout
The updater is in the first folder, the game’s files are in the second folder. The updater shouldn’t be thrown in with misc files, the misc files should be added to a folder and put into the updater’s folder.

I do feel like I’m missing what you’re trying to do, though. Can you explain what it is you’re trying to do?

Ah I see, I had tried structuring it in the same way and for some reason it would only create a “temp” folder in the launcher directory. Though I tried again and it did add the file to e.g “engine/script” it also create a new folder called “temp” once again in the main directory of the launcher, is there no way to disable this feature ?

@coonclan The temp folder should be created when there’s an update (to the updater itself or your program), and it should be deleted after the update is finished. I’ll look at the code again to make sure this is the case, but I’m pretty sure it is.

There was a bug with the updater before that made the updater constantly try updating itself, so make sure you have the latest version (I’m pretty sure I fixed all the links for it). If the updater keeps trying to update, then you don’t have the current version.

Log in to reply