A short overview about pluginsIn EoS, plugins work very similar as they do in WordPress. Plugins must be installed into a specific directory (right now, it's $boarddir/addons) and each plugin must live in its own sub-directory, so $boarddir/addons/testplugin is a valid plugin location. A plugin must define a main.php file, which is used by the plugin loader to initialize it for activation. Inside main.php, the plugin must define a class which must inherit from EoS_Plugin.Activation / DeactivationThese are simple procedures. On activation, all the hooks exported by the plugin's class are activated and when a plugin is deactivated, the hooks are removed, thus, an inactive plugin will never execute any code. Only properly installed plugins can be activated.Install / UninstallSome plugins may require additional steps before they can become active. For example, adding database tables or initializing configuration settings. Therefore, additional custom code might need to run when a plugin is installed for the first time. Whether or not a plugin requires installation is defined in the plugin's main class - simple plugins can indicate they do not require any custom installation steps and such plugins can be activated without installation.The admin UI will deal with these things accordingly.Can a plugin consist of multiple php files?Well, of course. The only requirement is the main.php file which must implement your plugin's main class (inherited from EoS_Plugin). Hooks are allowed to refer functions in other files as long as they are located inside your plugin's main directory (sub-directories are allowed, should you really need them).Plugins vs modsPlugins are solely based on hooks. A plugin cannot modify existing code which should be desirable behavior anyway. Most problems with mods come from incompatible code modifications (e.g. one mod changes Subs.php in a way that breaks the installation of another mod).Will EoS Alpha support mods in the classical (SMF-style) way?Unknown at this time. I tend to avoid mods that modify existing code as much as possible, because of the vast source of problems (including major security issues) they can cause. However, it should also be clear that no hook-system can fully replace the flexibility that can be reached through code modifications. The final decision will thus be made at a later time.