-
Notifications
You must be signed in to change notification settings - Fork 2
Description
I want to fix certain bugs, but there will be breaking changes (e.g. target_give). How can maps signal to vanilla that they rely on fixes/extensions and will not work properly?
Vanilla rejects maps with unknown entities. We could add a new entity like info_required_extensions (or something starting with ext_?) that contains a map from extension/fix to semantic version, e.g.
{
"classname" "ext_dependencies"
"target_give_mp_fix" "1.0.0"
"icarus_cvar_access" "1.2+"
}
Any extension that adds its own entities will naturally announce itself through them.
There should also be a way to query for optional extensions, where their absence should not lead the map to being rejected in vanilla. These could e.g. be done with new properties (like stopping a trigger_always from firing in the presence of an extension? Choosing a different spawnpoint?) or magic icarus variables (except in jk2mp). This would allow maps to add polyfills/fallbacks, or show their own warning in vanilla (and other sourceports).