Homeworld Remastered Karos Graveyard

Announcing the new Homeworld Remastered Karos Graveyard, the largest modding wiki for Homeworld Remastered. It includes tutorials, documentation, a dictionary, resources, tools, links, functions, user functions, scopes, variables, and dumps. The wiki also contains all relevant content from the original Homeworld 2 Karos Graveyard, and all similar modding wiki’s are being consolidated into it. Over a thousand pages have been created, and everyone is encouraged to contribute.

See the About page for more information. Admins include @Mikali, @Sastrei, @EatThePath, @corodius1, and myself.

8 Likes

Hell yeah :smiley:

Thanks cloaked and everyone who built this!

2 Likes

Very nice work!

2 Likes

Do we have a tutorial on how the new “Tags” and “ExtFilter” systems work? I was never able to understand them.

1 Like

I’ll try to start collating that information today.

Until then this thread is the best resource Mod Filtering - just say no to hacked files

Edit: First version is up! https://github.com/hwrm/KarosGraveyard/wiki/Filters-and-Tags

Its probably worth mentioning Nathanius divide by zero crash too! That if you are using filters and default strike groups you must add to the PassFilter the following:

Or the game might spontaneously crash mid-game! Looking very neat though!

1 Like

Epic work! :smiley:

2 Likes

I still don’t “get” it.

:frowning:

I’ll take a stab at explaining it, please let me know if it makes sense or not and, if possible, where I lose you. Since the previously linked stuff contains plenty of syntax examples I’ll just mostly stick to the concepts.

Tags and filters are a way to control what content is loaded or visible in varying contexts. There are two main layers of this, the first being the “ExtFilter”.

The ExtFilter determines in essence if a file is loaded by the mod. This primarily allows mods to exclude content from the base game without having to go do anything complicated or weird to force it out of existence. It also provides a way to easily manage unfinished or dev-only content in a mod without having to add too many extra steps in the mod deployment process.

The ExtFilter for a mod is controlled by the Data:\Scripts\ConfigFilters.lua file, and can also be augmented through command line flags. It’s not specified anywhere I’m aware of, but I assume the configfilters of the last mod loaded takes precedence if there are multiple.

The second layer is when filtering is used in various other contexts within a mod. For instance, game rules use filtering to determine what maps and races are available in that gametype, and races use filtering to determine what formations are available. This makes it possible to define consistent categories of content without having to maintain master lists of that content. For example if I wanted to make a sets of factions in two groups, ‘core’ and ‘outer rim’, and have each group use entirely different formations, I can simply set a tag on each new formation instead of having to add to the formations list of all appropriate factions whenever I create a formation.

That’s what it does and why. Now to the how.

A filter has two elements, and two steps. It has a list of ‘pass’ tags and a list of ‘fail’ tags. First the filter collects every file that contains one or more of the pass tags, or just collects all valid files if the pass tag list is empty. Then the filter checks all the collected files and discards any that contain one or more of the fail tags, if there are fail tags defined. What’s left is what the game uses.

I hope this helps.

A list of files that you can add tags and filters to might help me understand.

:frowning: