• Tracker

    Spaces
    Browse
    Statistics
  • Issues
  • Expose native placement-preview lifecycle to Workbench World Editor plugins
Back

1

Expose native placement-preview lifecycle to Workbench World Editor plugins

General

User Feedback

Issue Key

ARMD-45

State

User feedback

Access

Public

Group

Arma Reforger

Project

Reforger Modding

Creator

medoed

Created

Aug 26, 2026

Views

7

Attachments

No attachments

Platform

PC Steam

Game Version

1.8.0.10

Modlist

-

Description

Please expose a supported public API for Workbench World Editor plugins to observe and extend the native entity placement preview lifecycle.

The World Editor already displays a native ghost/placement preview while a prefab is being placed. However, WorldEditorPlugin.OnWorldEditWindowDataDropped() only reports the initial resource drop. It does not provide access to the preview entity, transform updates, confirmation, or cancellation.

This prevents plugins from safely attaching editor-only visual helpers to a placement preview.


Use case

I am developing editor assistance for vanilla ambient vehicle spawn points:

Prefabs/Systems/AmbientVehicles/AmbientVehicleSpawnpoint_US.et

Prefabs/Systems/AmbientVehicles/AmbientVehicleSpawnpoint_USSR.et

Before confirming placement, I would like to show one representative vehicle as a child ghost-preview of the ambient spawn point.

The representative is intended only as an editor visualization. It would help scenario authors understand which faction/vehicle catalog configuration the spawn point will use.

The helper must:

  • exist only while the native placement preview exists;

  • follow the native preview transform;

  • be deleted on either placement confirmation or cancellation;

  • never become a serialized world entity;

  • never create an orphan entity.


Current limitation

SCR_PreviewEntityEditorComponent provides relevant runtime Game Master editor events:

GetOnPreviewCreate()

GetOnPreviewChange()

GetOnPreviewDelete()

It also supports SCR_PrefabPreviewEntity.SpawnPreviewFromPrefab().

However, these APIs appear to belong to the runtime SCR_EditorManagerEntity / Game Master lifecycle. In an external Workbench

World Editor plugin, SCR_EditorManagerEntity.GetInstance() is unavailable.

WorldEditorPlugin.OnWorldEditWindowDataDropped() is not sufficient as a replacement:

  • it is called only when data is dropped into the window;

  • it does not expose the native preview object;

  • it does not expose continuous preview transform changes;

  • it does not distinguish confirm from cancel;

  • creating a normal vehicle entity at this point can leave an orphan on cancellation.

Using mouse heuristics, global entity scans, or creating a real vehicle on drop would be unreliable and would not correctly integrate with the editor’s native placement lifecycle.


Requested API

Please provide a documented Workbench World Editor placement-preview API, preferably through WorldEditorPlugin, WorldEditor, or WorldEditorAPI.

For example:

// Illustrative API only; exact naming is not important.

void OnEntityPlacementPreviewCreated(
      ResourceName sourcePrefab,
      IEntity previewEntity
);

void OnEntityPlacementPreviewChanged(
      IEntity previewEntity,
      vector transform[4]
);

void OnEntityPlacementPreviewDeleted(
      IEntity previewEntity,
      bool confirmed
);


Alternatively, expose a Workbench-owned preview manager that provides equivalent create/change/delete events and can safely

spawn a child SCR_PrefabPreviewEntity.

The API should provide:

  1. The native preview entity or a stable preview handle.

  2. The source prefab/resource being placed.

  3. Transform updates while the placement preview moves.

  4. A reliable deletion event for both confirm and cancel.

  5. An explicit indication whether deletion resulted from confirmation or cancellation, if possible.

  6. A supported way to add editor-only child preview entities which are automatically cleaned up with the parent preview.


Expected result

With this API, a plugin could:

  1. Detect placement of AmbientVehicleSpawnpoint_*.

  2. Create at most one child preview vehicle using the standard preview system.

  3. Parent it to the native ambient-spawn-point preview.

  4. Let the standard placement tool move both previews together.

  5. Automatically release the child preview when the native preview is confirmed or cancelled.

No real vehicle entity would be added to the world before placement is confirmed.


Why this matters

This would enable safe editor extensions for:

  • placement-specific validation feedback;

  • contextual visualization of spawn points, markers, triggers, and AI zones;

  • editor-only helper geometry;

  • custom asset authoring workflows.

Most importantly, it would allow these features without relying on undocumented editor internals, mouse-tool heuristics, polling/scanning the world, or temporary serialized entities.


Reproduction of the limitation

  1. Create a WorldEditorPlugin.

  2. Override OnWorldEditWindowDataDropped().

  3. Drop a prefab into the World Editor viewport.

  4. Observe that the callback can detect the dropped resource but cannot access the native placement preview lifecycle.

  5. Attempt to obtain SCR_EditorManagerEntity.GetInstance() from the external Workbench editor process.

  6. Observe that no runtime Game Master editor manager is available.

Activity

    about 18 hours ago

  • medoed
    created issueabout 18 hours ago
  • medoedcommented
    about 18 hours ago

    In other words, we need tools like this in Editor to see what we are placing on the map.

  • l909
    changed state to
    USER FEEDBACK
    about 18 hours ago

You are not signed in. Please sign in to see more details and to reply.

Issue Key

ARMD-45

State

User feedback

Access

Public

Group

Arma Reforger

Project

Reforger Modding

Creator

medoed

Created

Aug 26, 2026

Views

7

Attachments

No attachments