The biggest new feature is a conversion mode that can convert between .map, .rmf and .jmf formats. This mode also supports TrenchBroom groups and layers, which can be useful if you're migrating to (or from?) TB. It also supports setting a cordon area, selecting specific VIS groups and setting the 'wad' property, so it can be used for automated .map exporting.
I also added two new template entities: one for switching different targets based on an on/off state, and one for generating brush-based text using Makkon's techdc fonts. Of course, you can also create and share your own templates entities and automation scripts.
Besides these big changes, there is also a large number of smaller improvements and bugfixes, which you can read about below. Please let me know if you encounter any problems or if you have suggestions - either in this thread, on Discord, or by creating an issue on Github.
Download links:
- MESS 1.2.3 downloads
- Check out the tutorials for example maps!
- Setup guide for J.A.C.K. & Hammer and setup guide for TrenchBroom - Read this to get started.
- Tutorials - Tutorials about covering terrain, using template entities and other topics.
- Configuration - Config files make it possible to create game-specific setups.
- Template entities - A set of entities that make complex things simple.
- Template behaviors - Scripts that automatically generate entities or apply bug workarounds.
- Macro entities - The workhorse entities of MESS that make the template instancing system work.
- Scripting - Use basic scripts for randomizing things, or write advanced scripts for generating levels.
- File conversion - How to convert between .map, .rmf and .jmf files.
- Added a file conversion mode that can convert between .map, .rmf and .jmf files (including TrenchBroom .map files, with groups and layers).
- The file conversion mode also supports cordon areas and VIS group filtering, so it can be used as a .map exporter.
- Added a new special property for replacing textures:
_mess_replace_texture
. - A new template entity:
mtl_trigger_switch
, which can trigger different targets when it's turned on or off. - Another new template entity:
q1_brush_text
, which generates text using Makkon's techdc font textures.
- Template entities now have custom editor sprites (only works in J.A.C.K.).
- Entity definitions in .ted files can now contain MScript expressions (in strings), which enables custom editor sprites and models.
- Added delay properties to
cs_trigger_roundstart
. - Target patterns now also support delays for single targets.
- Added support for v122 .jmf files (for the J.A.C.K. update that added background images).
- Macro entities can now insert sub-templates from other maps.
macro_insert
entities can now create instances with an absolute position and scale.- The special
_mess_merge_entity_master
property now only marks an entity as master if its value is true (not empty or 0). - The special
_mess_allow_rewrite_rules
and_mess_deny_rewrite_rules
properties now use commas to separate multiple paths. - MESS can now also read .rmx and .jmx files (backup versions of .rmf and .jmf).
- Added a -norewrite command-line flag that disables rewrite rules (for testing).
- In .ted files,
@MESS;
directives without a matching@MESS
opening directive are now ignored.
- Added bitwise operators (>>, <<, &, ^, |, ~).
- Added support for hexadecimal number literals.
- New
first
andlast
functions for taking the first or last item from an array. - New
incglobal
convenience function, for incrementing a global counter. hasflag
andsetflag
functions now available in rewrite rules.- New
trunc
function for truncating numbers. - New
ted_dirs
andted_path
functions, for accessing files from other template entity directories. - The
trace
function is now also available in .ted files. - Object literals can now use strings as keys, and objects can now be indexed.
- New
upper
andlower
functions for strings.
- Fixed that attached templates weren't positioned correctly (related to the special properties
_mess_attached_template_map
and_mess_attached_template_name
). - Fixed that using
cs_trigger_roundstart
would cause MESS to fail. - Fixed that an
mtl_trigger_random
without targets would cause MESS to fail. - Fixed that
mtl_trigger_periodic
didn't support target patterns. - Fixed that the behavior of the -config parameter didn't match the documentation (when leaving out the file extension).
- Fixed that
_mess_merge_entity_master
properties weren't removed from entities that didn't also have a_mess_merge_entity_id
property. - Fixed that J.A.C.K.-style help texts in .ted files could not be parsed.
- Fixed that the output was always written in .map format, even if the output path extension was .rmf or .jmf.
- Fixed that if no output path was given, and the input file was an .rmf or .jmf file, it would be overwritten (now, a .map file with the same name is generated).
- Fixed that a
macro_brush
could select the wrong texture if the first brush of a template brush entity had the ORIGIN texture. - Fixed that duplicate targets in a multi-target pattern were ignored.
- Fixed that some MScript expressions that contained strings weren't parsed correctly.
- Fixed that a
macro_template
withoutanchor
andselection_weight
properties didn't use the documented default values. - Fixed that
mtl_env_model
didn't take dynamically set flags into account. - Fixed that the 'kill', 'show' and 'hide' target patterns didn't check the pattern keyword was followed by a space character.
Again, special thanks to Windawz, Loulimi and kimilil for their feedback, and all the others that contacted me about MESS during the past 4 years.