In-Editor Tool Making

Hi all,

I’ve been working on a modular building system for my game which is going pretty well, but I’m struggling with populating/designing the interior. It’s divided up in to a grid and I’m trying to find a way to place them in to the grid in a visible manner, currently I just specify them by hand in to the details panel - which with a 20 level building is time consuming and I don’t see the outcome until it’s too late.

Do I need to be working in C++ to create in-editor changes? My initial thoughts on work flow would be along the lines of:

  • select the building BP
  • click a button on the details pane to enable editing of the building interior. This will show either a grid of spheres or bounds which will indicate where the rooms are.
  • each of the spheres/bounds can be selected and moved around, etc. Ideally with some kind of in-editor gizmo.

If anyone can shed some light on the most practical way to move forward I’d really appreciate it!

Despite searching for ages prior to posting this I’d not managed to find a great deal. Minutes after posting this I came across this:

I’m still open to peoples experiences and suggestions on positive ways forward!

You can add “MakeEditWidget” meta when you create an array of transforms or rotators in C++

UPROPERTY(Category=MyBuilder, EditAnywhere, SaveGame, meta = (MakeEditWidget=true) )
TArray<FTransform> MyBuilderList;

and use that list to design your level in-editor (then spawn pieces at runtime using the stored values in the array)

That’s kind of similar to how it’s stored at the moment - I have a struct with position, rotation, asset reference, etc in it.

What I’d like to do is have it more user friendly in the editor for adding stuff in to the list. I’d love a drag and drop or something. Each of the assets is a level though and you can’t stream (or I can’t seem to) levels during the construction script which means I can’t visually see them there anyway.