#import "/common.typ": post, link-self #show: post.with( title: "mapcat", date: datetime(year: 2026, month: 6, day: 18), ) mapcat is a tool that concatenates Tremulous maps. It was created for #link-self("software/tremulous#an-almango")[An Almango], a map that was made in collaboration with MaeJong. We worked on smaller segments in parallel, then the tool assembled them into the complete map. = Usage The source code is available #link("https://redman.xyz/git/mapcat/")[here]. Usage is simply: ``` mapcat part_1.map part_2.map ... -o whole.map ``` = Designing parts This tool wouldn't be very useful if all it did was join all the brushes and entities together. Individual parts are meant to be playable in isolation. To achieve this, cover holes (where other parts connect) with `common/discard`. All brushes with this texture are completely deleted by `mapcat`. Entities are dealt with using the `mapcat_prefix` key in each of the part's `worldspawn`. The prefix will be added to `target`s, `targetname`s and `team`s, so entities from different parts won't interfere with each other. Names starting with `global_` don't get this prefix, so you can wire entities across the entire map if you need to. See #link("https://redman.xyz/git/an_almango")[an_almango] source files for how this is all done.