Eden Editor: Modding

From Bohemia Interactive Community
Revision as of 15:42, 3 December 2015 by Str (talk | contribs)
Jump to navigation Jump to search

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

Addon Dependency

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.

class CfgPatches
{
	class MyAddon
	{
		units[] = {};
		weapons[] = {};
		requiredVersion = 1.0;
		requiredAddons[] = {3DEN}; // 3DEN must be among required addons!
	};
};

Cfg3DEN

class Cfg3DEN
{
	class MyAddon
	{
		// Entity settings for each type
		class Object {};
		class Group {};
		class Trigger {};
		class Waypoint {};
		class Logic {};
		class Marker {};

		class Mission {}; // Scenario attributes and global preferences
		class Layer {}; // Layer settings and attributes
		class Attributes {}; // User interface for attributes
		class Default {}; // General visualization settings
		class Camera {}; // Camera settings
		class Connections {}; // Configuration of all connection types
		class Messages {}; // Pop-up messages
		class Notifications {}; // Non-interruptive on-screen notifications
		class EventHandlers {}; // Default event handlers
		class History {}; // Visualization of history list entries
		class Updates {}; // Update log configuration
		class Tutorials {}; // Tutorials and their categories
	};
};