{"id":18997679,"url":"https://github.com/maschmann/momedit","last_synced_at":"2025-09-06T20:37:35.239Z","repository":{"id":149752834,"uuid":"488354729","full_name":"maschmann/momedit","owner":"maschmann","description":"Master of Magic savegame editor","archived":false,"fork":false,"pushed_at":"2022-08-01T20:30:47.000Z","size":186,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-01T17:13:22.666Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maschmann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-03T20:32:13.000Z","updated_at":"2022-05-03T20:37:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"50f873b4-8b78-4514-a050-9dc7fa0c83b9","html_url":"https://github.com/maschmann/momedit","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maschmann%2Fmomedit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maschmann%2Fmomedit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maschmann%2Fmomedit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maschmann%2Fmomedit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maschmann","download_url":"https://codeload.github.com/maschmann/momedit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240014381,"owners_count":19734254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T17:42:10.375Z","updated_at":"2025-02-21T12:30:44.849Z","avatar_url":"https://github.com/maschmann.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Master of Magic savegame editor\n\nYes, this is yet another [MoM](https://de.wikipedia.org/wiki/Master_of_Magic) savegame editor, but since I'm on a linux-based notebook and the other editors are all very old like the game itself, here we go.\n\n## Why?\nIt's easy: Because I can.  \nIn 1994 when MoM was first released, it took me around a year to get it into my hands and I even have one copy on floppy disks laying around here (aside fom the GoG one and the new release).  \nAfter re-discovering it a few weeks back and the need to (re)learn some Java skills, fiddling with JavaFX etc., I decided to build this editor.\n\nBasically this is my hommage to this great old game, I so dearly love.\n\n## Editor\nI'll fill this section with a few infos on what you can edit and where it's limitations are.  \nBut, to be honest, [there are enough resources](https://masterofmagic.fandom.com/wiki/Save_Game_Format) on the game itself and [how to cheat](http://pcgamescreens.blogspot.com/2017/12/master-of-magic-hex-editor-codes-and.html) :-)\n\n## Notes on savegame architecture (technical stuff)\n\n### items/artifacts\nItems in general are stored within a specific space of 250 units max in the savegame.  \nEvery unit has 50 bytes.\n\n| Offset bytes | What             | Data type | value range |\n|--------------|------------------|-----------|-------------|\n| 0-29         | item name        | string    | -           |\n| 30           | type             | int       | 0-6         |\n| 31           | -                | -         | -           |\n| 32           | image            | int       | 0-?         |\n| 33           | -                | -         | -           |\n| 34-35        | price            | int       |             |\n| 36           | attack bonus     | int       | 0-6         |\n| 37           | hit bonus        | int       | 0-3         |\n| 38           | defense bonus    | int       | 0-6         |\n| 39           | movement bonus   | int       | 0-4         |\n| 40           | resistance bonus | int       | 0-6         |\n| 41           | spell skill      | int       | 0-20        |\n| 42           | spell save       | int       | 0-4         |\n| 43           | spell            | int       | 0-198       |\n| 44           | spell charges    | int       | 0-4         |\n| 45           | -                | -         | -           |\n| 46           | enchantments1    | int       | 0-255       |\n| 47           | enchantments2    | int       | 0-255       |\n| 48           | enchantments3    | int       | 0-255       |\n| 49           | enchantments4    | int       | 0-255       |\n\n\nEnchantments are fun. They range from offset 46-49, each byte one enchantment or a combination thereof.\n\n| int | hex | type                                    |\n|-----|-----|-----------------------------------------|\n| 1   | 1   | Vampiric, life draining                 |\n| 2   | 2   | Guardian Wind, as guardian wind spell   |\n| 4   | 4   | Lighting, armor piercing                |\n| 8   | 8   | Cloak of Fear, as cloak of fear spell   |\n| 16  | 10  | Destruction, resist or be disintegrated |\n| 32  | 20  | Wraithform, as wraithform spell         |\n| 64  | 40  | Regeneration, as regeneration spell     |\n| 128 | 80  | Pathfinding, as pathfinding spell       |\n\nThe funny thing is, if you've noticed the gaps between the progression 1,2,4,8,16...  \nIn between you'll get a combination of all former enchantments.  \nAs an example: int 7 would be 4 + 2 + 1, meaning you'd get all the three previous enchantments. If you're above 128, you'll iterate through all possible combinations between the eight enchantments for this offset byte (46).  \nIn total there are 4 slots of 8 enchantments, each.  \nTo get all the spells and enchantments, I did a lot of \"change savegame, load, check\" to get grip of the progression and a list of all the spells. It was tedious \u003e.\u003c\n\n## Contributions\nAre always welcome. If it's just to point out missing tests (there aren't any, yet), add improvements or fix bugs: Feel free.   \nAnd it's [MIT License](LICENSE.txt).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaschmann%2Fmomedit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaschmann%2Fmomedit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaschmann%2Fmomedit/lists"}