Difference between revisions of "Eden Editor: Modding"

From Bohemia Interactive Community
Jump to navigation Jump to search
m
m (removed eden main category, it' in a sub category already)
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
WIP
+
== Introduction ==
 +
[[Eden Editor]] is a powerful modding tool for designing scenarios, but what makes it truly unique is that the editor itself is moddable. Custom addons can add or modify almost all features, using configs, user interface controls, scripting commands and event handlers.
  
 +
{{Important|While the public name is ''Eden Editor'', the system name is <u>''3DEN''</u>.*}}
 +
:<sup>''<nowiki>*</nowiki> The system name is different because during the development, a neutral technical name had to be used while public name wasn't selected yet. 3DEN is acronym for '''3D''' '''E'''ditor '''N'''ew''.</sup>
 +
 +
== Workspace ==
 +
Editor Workspace is a standard scenario where editing takes places. [[timeMultiplier|Time simulation]] is paused, but everything else works exactly like in an other scenario - it can contain [[Object|objects]], [[Eden Editor: Marker|markers]] and other entities, scripts can be executed there, weather can be set, etc.
 +
 +
However, this state is not permanent. When preview starts, the workspace scenario is closed and is replaced by preview scenario. Returning back to the editor ends the preview and opens the workspace scenario again, but completely fresh - for example none of previously saved variables will be available again. The same happens when a new terrain is loaded.
 +
[[File:3den workspace mission.png|center]]
 +
 +
 +
Because of this, you have to be really careful when working with scenario-specific data. All of the following information will be lost when scenario ends:
 +
* [[missionNamespace]] (global) and object variables
 +
* [[addEventHandler|Object]] and [[addMissionEventHandler|mission]] event handlers
 +
* [[Scheduler#Scheduled_Environment|Scheduled]] scripts
 +
* Anything which is not set and saved by the editor (e.g., objects created by [[createVehicle]], weather set by [[setOvercast]], etc.)
 +
 +
== Addon ==
 +
Any extension of the Eden Editor has to be configured in an addon, not in a scenario (e.g., in [[Description.ext]] or scenario scripts). The reason is obvious - Eden edits scenarios, not the other way around.
 +
A scenario can be edited with two kinds of addons installed:
 +
* '''Standard addon''' - pretty much anything you use place or activate in the scenario - soldiers, vehicles, terrains, gameplay enhancements, etc.
 +
* '''Editor addon''' - editor plug-in, like new [[Eden_Editor:_Configuring_Attributes|attributes]], tools, etc.
 +
When you publish a mission, standard addons are still required. When you place a soldier from a specific addon, player still needs to have that addon installed to see the soldier. However, editor addons are not required anymore. They add some functionality for the scenario designer, but player doesn't care about them.
 +
[[File:3den_addons.png|center]]
 +
 +
=== Addon Configuration ===
 +
When expanding or modifying Eden Editor configs, make sure you have '''3DEN''' addon in the list of required addons. Without it, the game could load your addon before the 3DEN addon, which could in turn lead to unpredictable issues.
 +
 +
When scenario designer uses some object from an addon, that addon will be automatically added to the list of addons required by the scenario. Make sure your editor plug-ins don't contain any objects which can be placed in the editor!
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
 
class CfgPatches
 
class CfgPatches
Line 6: Line 35:
 
class MyAddon
 
class MyAddon
 
{
 
{
units[] = {};
+
units[] = {}; // No objects must belong to the addon. CfgVehicles should ideally not be present at all.
 
weapons[] = {};
 
weapons[] = {};
 
requiredVersion = 1.0;
 
requiredVersion = 1.0;
requiredAddons[] = {3DEN};
+
requiredAddons[] = {3DEN}; // 3DEN must be among required addons!
};
 
};
 
</syntaxhighlight>
 
 
 
 
 
<syntaxhighlight lang="cpp">
 
class Cfg3DEN
 
{
 
class MyAddon
 
{
 
// Entity settings for each type
 
class Object
 
{
 
};
 
class Group
 
{
 
};
 
class Trigger
 
{
 
};
 
class Waypoint
 
{
 
};
 
class Logic
 
{
 
};
 
class Marker
 
{
 
};
 
class Favorites
 
{
 
};
 
 
 
// Scenario attributes and global preferences
 
class Mission
 
{
 
};
 
 
 
// Layer settings and attributes
 
class Layer
 
{
 
};
 
 
 
// User interface for attributes
 
class Attributes
 
{
 
};
 
// General visualization settings
 
class Default
 
{
 
};
 
// Camera settings
 
class Camera
 
{
 
};
 
// Configuration of all connection types
 
class Connections
 
{
 
};
 
// Pop-up messages
 
class Messages
 
{
 
};
 
// Non-interruptive on-screen notifications
 
class Notifications
 
{
 
};
 
// Default event handlers
 
class EventHandlers
 
{
 
};
 
// Visualization of history list entries
 
class History
 
{
 
};
 
// Update log configuration
 
class Updates
 
{
 
};
 
// Tutorials and their categories
 
class Tutorials
 
{
 
};
 
 
};
 
};
 
};
 
};
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
{{Important|At this moment, required addons are calculated only based on objects used in the scenario. In the future, other assets like weapons, equipment, etc. might be checked as well.}}
  
 +
== Configuration ==
 +
Following pages explain selected options in detail:
 +
* [[Eden Editor: Cfg3DEN|Cfg3DEN]]
 +
* [[Eden_Editor:_Setting_Attributes|Setting Attributes]]
 +
* [[Eden_Editor:_Configuring_Attributes|Configuring Attributes]]
 +
* [[Eden_Editor:_Configuring_User_Interface|Configuring User Interface]]
 +
* [[Eden_Editor:_Configuring_Menu_Bar|Configuring Menu Bar]]
 +
*[[Eden_Editor:_Entity_Context Menu|Configuring Context Menu]]
 +
* [[Eden_Editor:_Configuring_Attributes:_Controls|Available Attribute Controls]]
 +
* [[:Category:Command_Group:_Eden_Editor|Eden Scripting Commands]]
 +
* [[Arma_3:_Event_Handlers:_Eden_Editor|Eden Event Handlers]]
 +
* [[Eden Editor: Actions|Eden Actions]]
 +
* [[Eden Editor: Configuring Tutorials| Configuring Tutorials]]
  
 
[[Category:Eden Editor|Modding]]
 
 
[[Category:Eden Editor: Modding|Modding]]
 
[[Category:Eden Editor: Modding|Modding]]

Revision as of 10:22, 31 May 2020

Introduction

Eden Editor is a powerful modding tool for designing scenarios, but what makes it truly unique is that the editor itself is moddable. Custom addons can add or modify almost all features, using configs, user interface controls, scripting commands and event handlers.

Template:Important

* The system name is different because during the development, a neutral technical name had to be used while public name wasn't selected yet. 3DEN is acronym for 3D Editor New.

Workspace

Editor Workspace is a standard scenario where editing takes places. Time simulation is paused, but everything else works exactly like in an other scenario - it can contain objects, markers and other entities, scripts can be executed there, weather can be set, etc.

However, this state is not permanent. When preview starts, the workspace scenario is closed and is replaced by preview scenario. Returning back to the editor ends the preview and opens the workspace scenario again, but completely fresh - for example none of previously saved variables will be available again. The same happens when a new terrain is loaded.

3den workspace mission.png


Because of this, you have to be really careful when working with scenario-specific data. All of the following information will be lost when scenario ends:

Addon

Any extension of the Eden Editor has to be configured in an addon, not in a scenario (e.g., in Description.ext or scenario scripts). The reason is obvious - Eden edits scenarios, not the other way around. A scenario can be edited with two kinds of addons installed:

  • Standard addon - pretty much anything you use place or activate in the scenario - soldiers, vehicles, terrains, gameplay enhancements, etc.
  • Editor addon - editor plug-in, like new attributes, tools, etc.

When you publish a mission, standard addons are still required. When you place a soldier from a specific addon, player still needs to have that addon installed to see the soldier. However, editor addons are not required anymore. They add some functionality for the scenario designer, but player doesn't care about them.

3den addons.png

Addon Configuration

When expanding or modifying Eden Editor configs, make sure you have 3DEN addon in the list of required addons. Without it, the game could load your addon before the 3DEN addon, which could in turn lead to unpredictable issues.

When scenario designer uses some object from an addon, that addon will be automatically added to the list of addons required by the scenario. Make sure your editor plug-ins don't contain any objects which can be placed in the editor!

class CfgPatches
{
	class MyAddon
	{
		units[] = {}; // No objects must belong to the addon. CfgVehicles should ideally not be present at all.
		weapons[] = {};
		requiredVersion = 1.0;
		requiredAddons[] = {3DEN}; // 3DEN must be among required addons!
	};
};

Template:Important

Configuration

Following pages explain selected options in detail: