STORE COMMUNITY ABOUT SUPPORT
login | language
简体中文 (Simplified Chinese) 繁體中文 (Traditional Chinese) 日本語 (Japanese) 한국어 (Korean) ไทย (Thai) Български (Bulgarian) Čeština (Czech) Dansk (Danish) Deutsch (German) Español - España (Spanish - Spain) Español - Latinoamérica (Spanish - Latin America) Ελληνικά (Greek) Français (French) Italiano (Italian) Magyar (Hungarian) Nederlands (Dutch) Norsk (Norwegian) Polski (Polish) Português (Portuguese - Portugal) Português - Brasil (Portuguese - Brazil) Română (Romanian) Русский (Russian) Suomi (Finnish) Svenska (Swedish) Türkçe (Turkish) Tiếng Việt (Vietnamese) Українська (Ukrainian) Report a translation problem
I've designed Miasmod so you shouldn't have to worry about the rs5 files if you are just editing the game's environment file, but if you do want to extract/create them, there are two options:
1. klightspeed created a utility that can extract many of the files in an rs5 archive and automatically converts them into useful formats. His tool can't repack the extracted files back into an rs5 archive and does not extract any types of files that it doesn't know how to decode (such as the game's instance nodes and terrain files which form the map).
Edit: It appears that this tool has recently been updated to add support for writing rs5 files and extracting other types of files.
It still remains an infinitely useful tool when starting out - especially if you just want to look through the game's textures or 3D models to look up the names of notes, etc. His post is over here:
2. My tools are a bit lower level and are not very user friendly (In that they are command line only - if you have used the Unix tar command you can probably figure them out). They can extract every type of file inside the rs5 archives and can create new rs5 archives and modify existing ones, but they do not attempt to convert the contained files to useful formats.
There are some standalone scripts that can work with several of the types of files found in the rs5 archives that I was interested in (environment, instance nodes, images, markers, etc) - but they were written more to help me understand the formats and will need cleaning up before they are ready for general use.
You can find my tools over here (you will need Python 2.7 and some additional dependencies depending on which scripts you try to use), along with the source code to Miasmod and Miaschiev (which come from the same code base):
rs5-extractor.py is the main script to extract/pack/repack/add/delete files to an rs5 archive.
--- Notes About RS5 Files ---
Here's a few things I've learned:
- The game will search every rs5 archive in it's directory alphabetically and will use the first environment file it finds. This tool exploits that by naming it's combined rs5 archive "alocalmod.rs5", which should take priority over the communitypatch.rs5 and the game's built in environment.rs5.
- Naming an rs5 archive that contains an environment file alphabetically after "environment.rs5" will cause the game to crash on launch.
- Some files cannot be overridden by placing them in an rs5 file other than main.rs5, and attempting to do so will cause the game to crash on launch. I haven't tried many files yet to work out what is and is not affected, but at least the game's markers file and textures do cause this.
No one needs to read or understand this post to use Miasmod, I'm providing it to document a few tricks that Miasmod uses under the hood, which may be of interest to some technical people. For everyone else, just ignore this ;-)
The main.rs5 modding support employs a few tricks to support being able to remove & re-order mods, and to restore main.rs5 back to it's vanilla state. The vast majority of people won't need to care about these details, but if anyone was developing their own tool to manipulate rs5 files (or perhaps even the guys at IonFX) they might want to be aware of what I've done.
Firstly, when main.rs5 is modified for the first time the tool adds a file MIASMOD\UNDO which stores the original location of the central directory in the archive and the original filesize, and aside from the pointer to the central directory no writes are ever performed before this point in the archive. That allows the tool to always point the header back to the original central directory and truncate the archive to restore it back to it's vanilla state.
Whenever a mod is added, it's files are listed in both the new central directory as well as under MIASMOD\MODS\xxx.manifest. The tool uses a combination of the original central directory (found via the undo information), the manifest files and the current central directory to determine which parts of the archive are in use and which are free (and everything prior to the undo file is treated as in use) so that it never overwrites some data used by a mod - even if that file has been hidden in the central directory by another mod that provides the same file.
The final trick that is employed is the concept of a mod order stored in MIASMOD\ORDER - this is used to indicate which mods have priority over each other to determine which version of each file to use in the central directory, and this mod order is used to recreate the central directory whenever mods are added or removed.
I wish the devs would take notice of your patches and work.
Gotta say, filling in the map by triangulation only (apart from the first Draco map) is a real challenge but really cool. I've seen parts of the island I don't think I've ever visited on my first three games. It's been my longest game as well (day 41 and I'm still filling in the SE corner).
I'm considering synthesising two of the agents and then explore for the final agent, and see how aggressive Milo gets. If he gets very aggressive, I may then check how well ailurophobia.miasmod works. ;)
TypeError: coercing to Unicode: need string or buffer, NoneType found
Traceback (most recent call last):
File "_main_miasmod_.py", line 40, in catch_unhandled_exceptions
File "_main_miasmod_.py", line 545, in synchronise_alocalmod
File "_main_miasmod_.py", line 522, in generate_new_alocalmod
File "_main_miasmod_.py", line 511, in generate_new_alocalmod
File "_main_miasmod_.py", line 411, in generate_env_from_diffs
Typrerror: coercing to Unicode: need string or buffer; NoneType found
Any ideas? :U
Just as a (long-term) suggestion; enabling the boat for traveling around and between islands would be pretty cool imo.
Thanks for the bug report :-)
Turns out I had an off by one error if MiasMod was run with no mods and it hadn't already created alocalmod. I'll push out a fix tonight (already on github, I just need use my Windows box to package it), in the meantime you can get it to work by installing at least one sample mod before running MiasMod (you can then remove the sample mod and re-sync alocalmod if you don't want it).
-- Miasmod v1.1 Changelog --
- Can now enable / disable mods from being included in alocalmod.rs5
- Showing mod changes now shows the contents of what was removed (potentially including whole subtrees)
- Log output and errors to miasmod.log
- Catch unexpected exceptions inside the editor and display an error message (before it was failing silently)
- Use faulthandler python module to catch backtrace when crashing due to accessing invalid pointers (e.g. objects passed to Qt that have since been garbage collected).
- Fix issues creating a new list type
- Warns if detected/selected Miasmata directory does not include at least one .rs5 file (other than main.rs5)
- Fix errors generating alocalmod.rs5 (e.g. on first run) when no mods are installed.
- Fix occasional crashes and the bold dirty indicators not being cleared properly after saving.
Please give it a go and report back :)
Ahhh, it works good now! :D Thanks so much for your help (and creating this!)
Great work! I had a quick look at Miasmod yesterday, and it's a really impressive tool. I have a question, though - the one thing I really wanted to do is fix up the visuals a bit by changing the LOD-loading distances - I'm bothered by the way all kinds of stuff pops up so close to the player. I've searched everywhere in Miasmod, and I can't see anything along the lines of LOD distances. Any idea whether they can be changed at all, or are they hardcoded in the EXE?