Editor extension API


Recommended Posts

We know that some customers were modifying the UnigineEditor 1 for their needs, but we don't know what are these needs exactly.

Our goal is to provide an extension API for the editor (there was none previously, it was direct access to the code with a lot of risk of breaking things or being unable to merge modifications with the updated SDK) - please let us know the use cases for extension/modifications.

Link to post

We use plugins to add or modify custom data. So, to have the possibility to subscribe to editor events can simplify the code to manage this data based on what user is doing.


Node related events

  • Node created (after)
  • Node destroyed (before)
  • Node moved
  • Node rotated
  • Node scaled
  • Node property changed.

Property events

  • Property created
  • Property destroyed
  • Property renamed.

Editor events

  • Editor started (after)
  • Editor closed (before)
  • Selection changed.
  • Node loaded (layer, reference)
  • World loaded

There is more possible events related with other operations like Material, Tracker, etc.


Selection related functions.

  • Selection::getNumSelectedObjects()
  • Selection::getNode()
  • Selection::findNode()
  • Selection::isSelected()
Link to post

Changes in GUI:

  • set number of digit for min/max/actual height value when edit terrain.
  • change setting of height slider that is in Heights brush in parameters when edit terrain, settings are max value and multiplier.

Added things:

  • add new brush mode "Smart smooth" for Heights brush, that do same thing as Smooth, but it update height in parameters, so when Smooth has a constant height parameter, our Smart smooth change height parameter every update, when edit terrain.
  • add new brush mode "Between" that set hight of terrain whit this logic:
    • if terrain hight is under minimal height value, it set height to minimal height value.
    • if terrain hight is above maximal height value, it set height to maximal height value.
  • add shortcuts SHIFT + LEFT_MOUSE_BUTTON that set min/max/actual height for Heights brush when edit terrain.
Link to post

At least for FULL Source Code licensee, all editor and asset source code should be provide. there should be no restrict (connect to the browser or whatsoever.

here is the detail we need to do:

1:able to extend UI in QT based on the editor app. for our own need.

example. have a separate node list and property panel. so when user click a node or material, it's property always show in the property panel.

we also have our own modeling and tools panels which need to be in QT ui.

2:when we create our own QT ui, it need to be able to dock in the main window.

3:able to compile in release and debug build

4:end user don't need login , and use offline.

Link to post



we haven't modified the editor itself, but we have integrated the tracker editor into our projects (Unigine::Tracker::TrackerEditor).

We need the editor running within our custom executable, as I have mentioned already (providing the editor as a dll or the editor source code could solve that)


Thank you and cheers


Link to post

agreed with cinetec_tech above.


in addition, from the top of my head things we've done or may do in the future:


- added new parameter types to tracker

- modified tracker to calculate bezier with extra parameter

- modified tracker to display derived curves (speed & accelleration)

- modifications related to active Interface plugin and more proper editor window behavior (should be obsolete now hopefully)

- addition of extra tabs/panes when editing object to add meta information / different visualisation modes to quickly display meta information

- extension with custom tools (for live correcting/shaping of world/objects)


Also in our previous environment (in house developed) we had a live editor for practically everything, from 3d engine stuff, to input stuff, to physics (car)model stuff. In the new Unigine based environment this has not yet been duplicated. And it may not be the best choice to base/extend a new version on the Unigine editor for various reasons, but then again it might.

Link to post

Thank you all for the useful feedback!


We will definitely take this into the account for editor API. Right now we are still migrating the editor to Qt with a lot of UI changes, so the plan is to introduce the API right after finalizing the main windows UI.

Link to post
  • 1 year later...

What is the status of Editor2 and its extensibility?

Can we customise the editor via script or DLL APIs?

I'm evaluating sim version 2.4, I'd like change the Editor to simplify it and add new UI. E.g, add/remove panels and widgets, but also reuse many of its features (viewports, property boxes, picking and dragging/scaling).

Effectively use the editor like a simplified level editor for building traffic situations.

Link to post
  • 1 year later...
On 2/15/2017 at 8:30 AM, silent said:



Editor2 API is not yet ready. We are currently accumulating requests to create an user-friendly API. We expect to add it later in 2.5 / 2.6 SDK versions.

Hello @silent, the possibility to create own Editor Plugin is the must have option (because the most function of the engine is provided by API not via the Editor). How the work to add it looks at the moment ? When we will have possibility to create own Editor Plugin with QT gui interface which will works under Editor ?

Link to post

Hi Jan,

We do agree that a possibility to create a custom plugin for Editor is a great feature and there are still a lot of work that we need to do internally to prepare Editor for plugins support.

Currently I can't give the exact ETA (more likely Q4 2018 or later).


  • Like 1

How to submit a good bug report
FTP server for test scenes and user uploads:

Link to post

Hi silent,

does it mean, that the external plugin support will not be introduced with the next 2.8 engine version (like mentioned in the roadmap)? As you may know, I am currently helping the ESQ guys with my custom nav mesh plugin, but it still runs on engine version 2.5. The much more the plugin system will be postponed, the more features are needs to be added afterwards (like new terrain system in general and the decal system for supporting holes in it), thus may result in a further delay of the project itself. Is it somehow possible to implement at least the old plugin system with UNIGINE script or some kind of basic API interface that we can move forward to implement new engine features?




Link to post


It may be included in some alpha / beta stage in 2.8, but there is no 100% guarantee. Unfortunately, old Editor plugin system is no compatible and we can't introduce similar workflow, sorry.

How to submit a good bug report
FTP server for test scenes and user uploads:

Link to post

Hello, we would like to use Christian´s plugin and this is quite blocking. I also think this feature is quite important If you plan to introduce asset store, because editor extensions/tools are big part of this market....

Edited by demostenes
Link to post

We do understand that this is a priority feature, but the editor team was recently working through tech debt accumulated. Now it seems that there are resources available so we get back to this.

  • Like 1
Link to post