Module Framework – Arma 3
Jump to navigation
Jump to search
(phrasing) |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:Arma_3:_Editing|Module Framework]] | [[Category:Arma_3:_Editing|Module Framework]] | ||
Arma 3 introduces a new module framework which simplifies the configuration process for modules and how the functions attached to | Arma 3 introduces a new module framework which simplifies the configuration process for modules and how the functions attached to them are executed (e.g., globally and for every player who joins later). | ||
== How to Create a Module == | == How to Create a Module == |
Revision as of 16:39, 11 August 2017
Arma 3 introduces a new module framework which simplifies the configuration process for modules and how the functions attached to them are executed (e.g., globally and for every player who joins later).
How to Create a Module
When creating a new module, follow these steps:
- Create a module addon.
- Make a folder named myTag_addonName a create a config.cpp file in it.
- Inside, declare a CfgPatches class with your addon and its modules (in the units array). Without this, the game wouldn't recognize the addon.
- Make sure the addon and all objects start with your tag, e.g. myTag
- Select a module category
- Modules are placed into basic categories which makes finding a desired module easier for an user. Use can use on of the existing categories:
- Create config for module logic
- All in-game objects (soldiers, vehicles, buildings, logics, modules, ...) are defined in CfgVehicles class.
- All modules must inherit from Module_F parent class, either directly or through some additional sub-parent. While modules inheriting from some other class will be still displayed in the Modules menu (F7), they won't be using the module framework and all benefits tied to it.
- Modules functions are by default not executed when in Eden Editor workspace. It can be enabled using is3DEN property, but that will also change format of function params (see the section about writing a function below).
- Pre-defined sync preview entities are:
- Anything - Any object - persons, vehicles, static objects, etc.
- AnyPerson - Any person. Not vehicles or static objects.
- AnyVehicle - Any vehicle. No persons or static objects.
- AnyStaticObject - Any static object. Not persons or vehicles.
- AnyBrain - Any AI or player. Not empty objects
- AnyAI - Any AI unit. Not players or empty objects
- AnyPlayer - Any player. Not AI units or empty objects
- EmptyDetector - Any trigger
- Configure a module function
- Place class CfgFunctions to config.cpp. See Functions Library (Arma 3) for more info about functions configuration.
- Write the module function
- Create the functions folder within the addon folder and place *.sqf or *.fsm files there.
- Example: \myTag_addonName\functions\fn_moduleNuke.sqf
- Input parameters differ based on value of is3DEN property.
class | displayName |
---|---|
Effects | Effects |
Events | Events |
Modes | Gameplay Modes |
GroupModifiers | Group Modifiers |
Intel | Intel |
NO_CATEGORY | Misc |
Multiplayer | Multiplayer |
ObjectModifiers | Object Modifiers |
Sites | Sites |
StrategicMap | Strategic |
Supports | Supports |
Alternatively, you can create your own one:
class CfgFactionClasses { class NO_CATEGORY; class myTag_explosions: NO_CATEGORY { displayName = "Explosions"; }; };