# Required Unreal Plugins Agrarian should keep plugins boring and intentional. Every enabled plugin must either be required by compiled code, required by checked-in content, or clearly limited to editor workflow. ## Current Enabled Plugins This is the only plugin intentionally enabled in `AgrarianGame.uproject`. | Plugin | Required For | Runtime Needed | Notes | | --- | --- | --- | --- | | `ModelingToolsEditorMode` | Editor-side terrain, mesh, and prototype world-building workflow | No | Keep enabled for developer/editor use. Revisit before shipping if it adds unnecessary packaging overhead. | ## Module Dependencies Tied To Plugins `Source/AgrarianGame/AgrarianGame.Build.cs` has no current plugin-specific module dependencies. The template variant cleanup removed the unused Combat, Platforming, and SideScrolling starter source/content. That allowed `StateTree`, `GameplayStateTree`, `StateTreeModule`, and `GameplayStateTreeModule` to be removed from the baseline. ## Explicitly Not Enabled Yet These plugins are intentionally not part of the baseline yet: - `OnlineSubsystemSteam`: enable only when Steam account/session integration is ready to implement and test. - `GameplayAbilities`: decide after the core survival/crafting/combat model is better defined. Do not add it just because it may be useful later. - Marketplace content plugins: add only when the asset is actively used by the current build and the repository storage policy has been checked. - Visual Studio tooling plugins: avoid committing machine-specific editor helper plugin references. ## Add Or Remove Plugin Checklist Before enabling a plugin: 1. Confirm whether it is needed at runtime, editor-only, or only for one-time asset authoring. 2. Check the license, redistribution terms, and whether it can be used in packaged builds. 3. Run `Scripts/audit_repo_storage.sh` if the plugin brings assets into the repository. 4. Update `AgrarianGame.uproject`. 5. Update `Source/AgrarianGame/AgrarianGame.Build.cs` only when code needs the plugin's modules. 6. Build `AgrarianGameEditor` after the change. 7. If runtime code or packaged content depends on it, build a packaged client and eventually the dedicated server target. 8. Update this document and the roadmap note for the plugin decision. Before disabling a plugin: 1. Search source, config, Blueprints, maps, and data assets for references. 2. Remove unused module dependencies from `AgrarianGame.Build.cs`. 3. Open the project and fix missing asset/class references. 4. Run the editor build and relevant automation checks. 5. Package a client if runtime content was affected. ## Current Decision Keep `ModelingToolsEditorMode` enabled for version `0.01` as an editor workflow plugin. Do not add additional plugins until a roadmap item requires them.