Table of Contents

This plugin is required by all plugins part of the eXpansion pack. This plugin doesen't have a lot to do it basically has 3 main roles

Roles

Load Configuration

Multiple Language Support (i18n)

If you are hosting a server for specific language, you can enable the new default language in config file:

ManiaLivePlugins\eXpansion\Core\Config.defaultLanguage = language

Function for all localized messages is _(), that is defined in BasicPlugin class, which registers the function to general namespace. Core plugin handles loading and setting the default language.
When invoked, the _() function then calls the i18n singleton and passes all parameters to sprintf which formats the text.

YOu may find more information about how to use the color codes here : Chat Coloring

Check GameMode Compatibility

Every plugin checks their own game mode Compatibility, if they are not compatible at start they will unload.(More Info). But this isn't enough, if the game mode changes we might want to unload other plugins or load some new.

The Core plugin will check at the beginning of each map for a change in the game mode, if there is one it will force all loaded plugins to check if they are compatible and then check all the unloaded plugins if any is compatible. If any unloaded plugin is compatible it will load it.

Theoretically all load and unload processes will take in account dependencies. If plugin X isn't compatible with game mode and plugin Y needs it, the system will force unload plugin Y then plugin X. And it will the same way load plugin X first then plugin Y