An Alternative Entities Editor


Yeah, annoying! A bug’s been introduced into Interface that makes 3d lines’ “drawInFront” property not work any more. A bug report’s been lodged on it.


There’s a partial fix included in the next beta release which combined with a work-around in my edit.js will make the lines visible inside entities again.


Release 0.3.4-72

  • Fix (work around) Interface not drawing translation axes inside entities.
  • Fix error sound not playing.


Usage instructions that are distributed among the preceding post and comments are now collected together on the following page:


Alpha 0.4.0-78 — Multiple Selection

A first pass at multiple selection support has been added: selection, display, and manipulation of multiple entities.

Image shows two entities selected:

  • Grey cube, which is a stand-alone entity.
  • Green sphere, which has the red cube as a parent and two blue spheres as children.

This selection and their relationships are also indicated in the entities list.

Script URL to run:
User guide:

Changes this version, copied from the change log,

  • Entities list multiple selection:
  • Ctrl-click to add/remove entity from selection.
  • Alt-click to select an entity plus its descendants (children, and children’s children, etc.).
  • Ctrl-Alt-click to add/remove an entity plus all its descendants.
  • Shift-click to extend selection to include all entities between the previous entity selected and the entity clicked.
  • GUI multiple selection: Same as for entities list multiple selection except that Shift-click selects all entities with positions inside the bounding box formed by the previous and clicked entities.
  • A count of the entities selected is displayed under the entities list.
  • Entities list parent/child relationships:
  • A selected entity’s parent is highlighted with a light blue background with dashed border.
  • A selected entity’s descendants are highlighted with light blue backgrounds and solid borders.
  • Ctrl+N links selected entities into a parent child relationship with the parent being the first entity selected.
  • Ctrl+Shift+N unlinks all entities selected from their parents.
  • GUI parent/child relationships: Same as for entities list parent/child relation relationships.
  • Properties parent/child relationships:
  • Added a “C” button beside the entity ID field in the “Object” tab that copies the ID value.
  • Added a “P” button beside the parent ID field to paste the value copied by the “C” button.
  • GUI editing:
  • Translate: Translates the whole set of selected entities, plus any descendants that aren’t selected. When using local axes, the axes are based on the first entity selected.
  • Rotate: Rotates the whole set of selected entities, plus any descendants that aren’t selected. When using local axes, the axes are based on the first entity selected.
  • Scale: Faces and corners can be scaled when a single entity is selected; when multiple entities are selected only corners can be scaled. Local axes are always used, based on the first entity selected. Unselected descendants are not scaled.
  • Shift-duplicate: Duplicates the set of selected entities. Shift-duplicating a child creates a new child linked to a new parent if the parent is also being shift-duplicated, otherwise the child is linked to the original entity’s parent.
  • Cut/copy/paste — Ctrl+X, Ctrl+C, Ctrl+V — works with multiple entities.
  • Undo/redo — Ctrl+Z, Ctrl+Y — works with multiple entities.
  • Export/import works with multiple entities:
  • Export entities exports all the entities selected.
  • All entities imported are selected after the import.
  • All entities added from a Marketplace item are selected.
  • Increased the volume of the error sound.
  • Change in function: Shift-duplicating a parent entity no longer duplicates its children unless those children are also explicitly selected (e.g., Alt-select the parent to select it plus all its children). Similarly, for copying a parent entity and exporting a parent entity.
  • Not implemented: Editing multiple entities’ properties in the editor dialog. (The form fields are disabled when more than one entity is selected.)


Yaay!.. I have yet to try this. I just saw your post. I will be trying it soon (tomorrow because must eat and sleep etc.). Keep up the good work!


Cool, thats a major update, some things I have been waiting for, thank you so much.

Nice documentation too, you have spent some hours to tell us how each point works and saved thousands of hours for people needing to know how to use it and not needing to figure it out for themselves. Bravo.


Not sure, but edit.js does not have reload button. so i wanted to use your edit tool.
But there’s no reload button bear the ATP url ?!

Besides beta 20 seems broken to, so reload seems impossible right now.


There’s a “Reload” button for an entity’s script URL but no other reload buttons. This hasn’t changed.

It is my understanding that a reload button for ATP assets (appending “?datetime” or similar) to URLs was a really bad thing / wouldn’t work so this is why the reload buttons where removed from HiFi’s editor. And I think there was some intention to implement reload buttons “properly” at some stage.


i think something like this would be tops re: parent child relationships


There seems to be an issue with delete key.

As in it doesnt delete using delete key which usually works.

It does work clicking the delete text on the entities editor.


@Adrian Hi! What build of Interface are you running? Latest “release” build 5353, or a “dev” build (which version)?

And does the problem occur when the Interface window has focus or the editor window, or both? Thanks.


Yes Latest stable. I just tried and it does delete from key when the edit window has focus.


Alpha 0.4.1-79

  • Add Web entity “dpi” property per HiFi release 5353.


Found a problem with the entities window. I have my laptop monitor and an external monitor. Today I just removed the external monitor, did restart the machine and when I try to run the script it seems that the window editor is outside the main screen even if the external monitor is not connected (I also took a look at the display settings of my laptop and it says I’m only running my main display). I use to have a similar problem with a software called “pureRef” but it seems they fixed that in the latest update. Not sure how to fix it without having to reconnect my secondary display again.


Hi! Good point. To fix… Close Interface then edit C:\Users\username\AppData\Roaming\High Fidelity\Interface.ini. Delete the line in the [General] section that starts Edit%20Dialog%20Position= and restart Interface. Dialog window should start up in the centre of Interface’s window.

This problem will “go away” with the next beta release of Interface because external dialog windows such as edit’s will no longer be possible: the “WebWindow” JavaScript object has been removed. So I’ll be updating my edit.js to use OverlayWebWindow which only resides inside the Interface window.


Thanks it works again.


@Adrian I’ve discovered that the Del key doesn’t work if you have High Fidelity’s edit.js running also and you load my edit.js after loading the High Fidelity one; i.e., HF’s edit.js nobbles the Del key (and perhaps others, I wonder).

Work-around: Keep my edit.js running and reload High Fidelity’s edit.js (or defaultScripts.js). This in effect loads my edit.js before High Fidelity’s.


I guess the latest update did something to the script, is not working for me anymore :frowning:


Yes, the latest Interface release has removed the WebWindow JavaScript object which the script used to display the entities list and properties. I’m updating the script to use OverlayWebWindow instead.

Using OverlayWebWindow will make the editor window be confined to the Interface window (i.e., not able to be positioned on a second monitor). Depending on how many people are using the script and their preferences, I could possibly make it able to be outside the Interface window again, using OverlayWindow plus some QML etc. (e.g., something like Alternatives for classic WebWindows? ).