Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by exec

  1. preview.thumb.png.7c6c3d87028c39f4180478acb0f6c6c7.png

    Mabioned is an editor for Mabinogi's Region (.rgn) and Area (.area) file formats. It allows you to change any part of the files in a clean interface, while providing some quality-of-life features, like moving and rotating entities with the mouse on a map.

    For the moment Mabioned renders the region only as a 2D map. This works very well to get an overview and move entities, but there are limits. Modifying the terrain for example is possible, but needs to be done by modifying the respective objects' properties by hand.

    For more information about the program and the game's files that this editor modifies refer to the files in the Documentation folder on GitHub. Binary templates for the file formats can be found in the repository as well. If you encounter any bugs or errors, please create an issue so they can be fixed.

    If you'd like to help with the development or have suggestions on how to improve the program I'd be happy to review your contributions, simply create an issue for each one.

    GitHub: https://github.com/exectails/Mabioned
    Download: https://github.com/exectails/Mabioned/releases

  2. Years ago we found out that TW had a unique login type that passed the login information to the client via command line arguments. This type was and still is available in the NA client as well, and using it brings you directly to the character selection, without login form or start button. If the secondary login is enabled you do have to enter it before reaching the characters though.


    [...] setting:"file://data/features.xml=Regular, X" /N:username /V:password /T:gamania


    • Like 2
  3. MackLib is a .NET library primarily designed to read Mabinogi's pack files, with the possibly unique function to read the entire package folder to get the latest version of all files, just like the client does. Originally developed only for fun, it has been used and tested in several applications at this point, and just today I finally added a way to create new and modify/recreate existing pack files.

    The library isn't perfect yet, and creating pack files is highly experimental, but we haven't had any problems reading files with it since I initially wrote it.

    Usage Example:

    var path = Path.Combine(PackReader.GetMabinogiDirectory(), "package");
    using (var pr = new PackReader(path))
    	var entry = pr.GetEntry(@"data\db\itemdb.xml");
    	using (var ms = new MemoryStream(entry.GetData()))
    	using (var sr = new StreamReader(ms))
    		// read itemdb

    GitHub: https://github.com/exectails/MackLib

  4. 585e7c850f058_ss(2016-12-24at02_47.36).png.bf65bdecec148a93cd6a202e9f218a6d.png.a8bd579665239e82e549fcc4fc5ae0c8.pngHave you ever thought that you'd hate to be the person who has to update those huge data mod packs that presumably break every other week? I always thought that if I were the maintainer I would write a tool that does all the hard work for me. Why should I have to go into a file and make the same tweak again and again if I can have a tool do that for me based on a set of rules?

    With this base idea in mind I created a tool that does just that a while ago: DataModder. This prototype reads instructions on how to modify files from Lua scripts, applies the modifications to the most recent version of the requested file in the client's pack files, and writes the result to a data folder. What's especially useful is that DataModder understands XML. You don't have to set up a collection of crazy regular expressions, which would be prone to breaking as well, you have fine-grained control over how you modify an XML file. For example:

    setattributes('//Mabi_Item[@ID=1000]', 'Text_Name0', 'Just some book')

    This would load the item db and change the attribute "Text_Name0" of the item with the id 1000 to "Just some book". A simple rule that will work for as long as that item exists. Similarly you can add and remove XML elements, replace files, and more.

    I haven't worked on this prototype since I first created it, but I still think it's very promising, and I want to continue it some time.

    GitHub: https://github.com/exectails/DataModder

    Some quick usage instructions, should you decide to check it out: "Remove mods" restores the pack files to their original state, "Create data folder" deletes the current data folder and creates a new one based on the mod scripts, and "Modify" modifies the pack files to make the client use the ones in the data folder. Finally, "All in one" goes through those three steps in sequence, as a simple one click data update solution.

  5. We have decided to finally switch from our old chat on Gitter to a Discord server. You can join us by clicking the Chat link in the header or the image below. See you there 😃


  6. A few days ago I overheard someone talk about the need for a translation tool for Mabinogi, to translate the text files in data/local/. After thinking about it for a little while I had an idea how I would approach this and wanted to see how it would turn out. The result: LocalEditor.


    The main problem with translating dialogues for games is often times the inline codes that you have to navigate around. In Mabi's case it's HTML-style tags that control the buttons, NPC's facial expressions, lists, and more. I came to the conclusion that you would want to focus on the translatable parts as much as possible, so I made the editor pick out those parts, and by pressing Tab you switch to the next element, with the text automatically getting selected. This way you have close to no downtime between typing to translate and jumping to the next text bit.

    It's just a prototype, but it feels like a nice start. I don't know if I'll perfect it though. I don't actually have any personal need for this tool, I was just curious^^


  7. 2 hours ago, Thunderbro said:

    I don't really follow Maplestory server emulators, was that a project you were working on Exec?

    Yea, we were working on a prototype MS2 server emulator, though I haven't actually worked on that project in a few weeks.

  8. Over in the Release section I have a tool that generates color codes based on user input, but I don't think I've ever seen any documentation on how they work. In case you ever wondered just that, here's how.


    Colors are commonly represented as hex numbers of 6-8 characters, made up of 3-4 byte sized values for the Alpha, Red, Green, and Blue values of a color. For example, FF0000 is red (red = 255, green = 0, blue = 0), 0000FF is blue (red = 0, green = 0, blue = 255), and FF00FF is pink (red = 255, green = 0, blue = 255). This type of color works as you would expect in Mabinogi, but there are alternative modes, controlled by the alpha value, which make Flashies possible.

    Alternative Format

    In those alternative modes the 3 RGB bytes don't represent one color anymore, but 2 colors and a delay. Since 1 byte doesn't have a big enough range to represent a meaningful color value the client uses a lookup table located at "data/db/color.xml" that contains a list of exactly 255 colors that can be used. The delay controls how smooth the animations are, and the last byte, alpha, specifies the animation speed and which mode to use. This is the full format:

    M = Mode
    S = Speed
    DD = Delay
    C2 = Color 2
    C1 = Color 1


    The following are the modes that I know of.

    Static 1 and 2 (Modes 1 and 2)

    This simply displays the first or second color without any animations.


    (0x100016fd, 0x200016fd)

    Pulsate 1 and 2 (Modes 4 and 5)

    Depending on the mode, pulsate starts at either color 1 or 2, fades to the other color, and then jumps back to the main one.


    (0x400016fd, 0x500016fd)

    Even (Mode 6)

    This mode is a smooth back and forth fade between the two colors.




    Flickering is a kind of random flickering of color 2, while the main color is color 1.



    Speed and Delay

    The animation speed is defined with the second hex character in the alpha byte, allowing for a potential 16 speed levels. You'll note that my simulator only goes up to 9, because at that point it seems like the client has problems animating it properly. The delay on the other hand is not supported by the simulator yet. What this does, on a scale from 0 to 255, is specify the delay between animation frames. The higher the delay, the less smooth the animation is, as it jumps to the next color every few hundred milliseconds.

    The fade time appears to be about 500ms on speed 0, each level lowering the time by half. The delay is presumably a number of frames that are skipped animating the color, creating a step-by-step effect. This also reduces the animation speed sixteen-fold with the delay on the maximum of 255. If speed and delay are both set the effect looks a little random because they aren't in sync anymore and the animation continues while the delay allows only infrequent glimpses.


    (0x690016fd, 0x607f16fd)


    The alternative modes work on everything from clothes, to hair, to fences, but they don't work on names. Apparently the client treats alpha how it's usually used for UI elements, as transparency, which is why you can't have a flashy name. In turn you can have a partially transparent name though.

    • Like 1
  9. I just realized that while I had an introduction thread on the old Aura forum years ago, apparently I never made one here. I will rectify that now that the forum is finally back up^^ My real name is Dennis, though I very much prefer exec, I'm almost 31 by this point (oh dear...), and I'm from Germany.

    I started coding websites when I was a teenager and slowly worked my way up as a programmer, ending up as a freelance web developer. I was fascinated by private servers and server emulators ever since I started playing Ragnarok on eAthena servers, setting up my own customized servers for friends, and eventually my programming knowledge caught up and I began hacking around in the emulators I was using, before finally starting a server emulation project of my own in 2012.

    Since that time I've poured a large portion of my time into the development of server emulators and tools surrounding the games I worked on, from Mabi and Aura, over TOS and Melia, to other yet unreleased projects. I'm a big believer in open-source and try to release as much as possible to the public even if it's not perfect yet, because you never know what will happen, and even a hacked together project can serve as research or a starting point for someone else, should you not finish it. While overcoming the fear of releasing my imperfect creations into the wild wasn't easy in the beginning, I think it actually made me a better programmer, making me think more about what I throw together.

    I've been told that I can be a little intimidating or difficult to work with, due to my direct way of talking, my supposed perfectionism, and my straight-to-the-point way of criticizing pull requests, but know that I don't mean to sound annoyed or rejecting^^" I try my best to appear more approchable nowadays, and it would be unfortunate if this quirk turned you off from contributing to one of my projects. I've also heard that it helped some people to learn that I'm an INTP.

    Well, that's all I have to say about myself, if you want to know anything else, you can ask right here.

    • Like 2
  10. You're right, Java is a safe bet as well, though I would never recommend it because of my personal dislike for it^^" It is one of the top languages, and especially due to it being used in Android development it won't disappear any time soon and will keep being in high demand. Though I don't know about it being used for game development. For servers, yes, but I don't think I've ever seen an actual game developed in Java, even though there are surely many libraries for it and it definitely is possible.

  11. 6 hours ago, talex9 said:

    melia, , melia, , melia, , , melia, melia, , melia, and if time allows, melia

    I have the feeling you're trying to tell me something, but I can't quite put my finger on it 🤔

    6 hours ago, talex9 said:


    You mean Rinn?^^

  12. Welcome to NoCodeNoLife.org!

    Out of the ashes of the Aura Project this new forum emerges, with a new name, but the same goal, to give developers a place to talk about the games they're working on and with, and a place for everyone to learn more about their favorite MMORPGs. We might have lost Aura, but that hasn't stopped us from working on projects for Mabi and other games, and we will release more in the coming days.

    The new Mabinogi category will now house general Mabi-related topics and releases, the Tree of Savior section is back online, including the Melia sub-forum, and we're currently considering additional categories. We welcome back all existing and all new users and hope for some exciting developments.

    Let's have fun cracking these games open ;bird;

    • Like 1
  13. Fetitor is an editor for Mabinogi's features file (features.xml.compiled), which is essentially a compiled XML file. It converts it to XML and back on the fly, to allow the user to edit it comfortably. This file, in part, controls which features are enabled for the client, such as items, changes in the UI, Visual Chat, and much more.



    • Editing Mabinogi's .xml.compiled files.
    • Jump list to find specific features more quickly.

    Source Code

  14. Previosly, on Melia

    We started development of Melia a few months before we even got into the first closed beta of iTOS and had never played the game before, though we had high hopes for it. After the game was released we continued development for a few weeks, but at this point we were already much less enthusiastic about the game. Progress slowed down, more people were disappointed by the game, and eventually development came to a complete halt.

    A few months went by and when users from the community showed interest in continuing the project I started working on it again as well. I updated what we had created at the beginning to make it work with the latest client again, and I kept Melia compatible the entire time since then. Unfortunately the other users presumably lost interest again, because no more progress was made.

    And now

    At this point in time I don't have any concrete plans to actively work on Melia again, but I am still keeping it up-to-date, so anyone who wants to get into it can use it with the latest client. I'm also available here and on the chat should any questions arise regarding how Melia works or how something should be implemented in my opinion, and I will review any pull requests that come in.

    If a capable user would like to take over control of the project, be it as a main developer or a general manager, I'd be happy to talk about that possibility.

  15. I was able to create an account and log into your server, I'm not sure why you aren't. The login server at least, I couldn't get in-game, presumably because you didn't use your public IP in the servers.txt (system/db/). Could you try to use in your client.xml? And if that doesn't work, try what happens if you use your public IP in the servers.txt. That shouldn't be necessary for the login server, but who knows what the client is doing there.

    • Like 1
  16. Pale will display whatever is sent to the server and received from it, and yes, hidden keywords are a part of that, because Mabinogi uses keywords as "switches" for features, where you can't do certain things unless you have the respective hidden keyword.

    To get the NPC info you have to walk into the range of the NPC you're interested in, to receive the "creature appeared" packet, which Pale can then parse. All creatures and props you encountered during your logging session will appear in the Entity Logger (bug icon in the tool bar), where it also generates the code for the NPC's look and location for the Load method in the NpcScript.

  • Create New...