Making UEFN a supertool (Part 2 of feedback)

This is part 2 of my 1-year feedback on UEFN (part 1 is here UEFN is not fun - my thoughts), and in this one, I want to actually bring up all the solutions and initiatives/feature requests that will guide UEFN to be a super tool, reduce friction and increase enjoyment of development. These are all food for thought, little things I noticed while building for what is more than a year now in UEFN and wants that will elevate the engine in both agility and ease, reducing friction and confusion, by adding more workflows and capabilities, so let’s get started:

LEVEL DESIGN:

For the sake of understanding what I am referring to, I am adding some sudo-make-sense terms for design:
-Micro-building (Stage 1 or S1): Areas with dense detail at the decoration/clutter level (like a table full of stuff)
-Local-building (Stage 2 or S2): POI-spaced building, everything is in 20-tile radius
-Macro-building (Stage 3 or S3): Building areas that are really far away from each other, and the process of transferring content between them, in the editor.

  1. Freeform Transform

A neat feature of Blender is the G key, which makes the camera act as a 2D plane and you can use your mouse to freely move the object around, Up is camera up, right is camera right, the movement speed of the cursor is always the same so zooming out allows you to move the actor further away in space with the same speed. This feature could be made into a transform control in the viewport, which makes movements by a key and a click, very fast for level design. Holding Ctrl in that mode will move on world XY instead, from the world position of the object at that time, not the start of transform (you can toggle ctrl to move in space if you want). End key still snaps to the floor while in that transform mode is active.

  1. Grid Toggle Hotkey

When level designing, you need to sometimes move by a grid or angle increment, but after that stay in an off-grid transform. A hotkey that allows the user to toggle grid and angle grid without the actor being affected in position in the meantime (stays where it is), would allow some cool level-design wizardry that is now impossible to do.
UnrealEditorFortnite-Win64-Shipping_FqprlXZFVJ

  1. “Paste here” as a hotkey

“Paste here” is the default paste for many engines and software, as it makes no sense to paste something right next to the original (ctrl +D or duplicate does that), but in UE/UEFN we have two settings doing the same, and no hotkey to paste where the cursor or camera is located, which is 80% of the use cases of Paste. So, to fix that, Ctrl+Shift+D could be assigned to “paste here” and it will be day and night in the increase of speed in level design and actor placement.

  1. Ability to swap Alt+Left click hold functionality to a transform instead

Alt+Left click currently moves the camera in the viewport, but (IMO) it gets in the way of the very useful Alt + Left Click on Gizmo Drag to duplicate hotkey which is the most used duplication for micro and local-building (S1, S2). Meaning if the gizmo is hard to see or grab, like this:


you will accidentally move the camera instead. And when you are level designing really fast and that happens, it causes momentary vertigo to the user. So the ability to swap the camera movement functionality with an area where each gizmo is selected instead, as shown (yellow indicates areas where hovering mouse then clicking will perform that action):

this will allow to only use Alt to duplicate actors, since camera movement is already covered by Right click and WASD keys (Could make a toggle to revert in editor preferences). Some extra notes: The areas where each axis apply are based on the gizmo facing direction in comparison with the camera, also holding Alt and hovering mouse to each of the three areas will have a visual guide to show you that clicking will duplicate on the highlighted direction, example:

  1. More customizable hotkeys, like grid and rotation snaps from UE

  2. Scaling of groups of scale them all together without creating offsets
    UnrealEditorFortnite-Win64-Shipping_b3HPpGQfIE

LOADING

  1. Currently there is so much loading that goes into every small action you perform, it takes the flow of work away completely. To simply open a new template and start working you need to wait for the following to load, in order: EGS (which takes a lot longer outside the US servers, 1 min minimum when third party launchers take 10 seconds), UEFN (relatively fast to load, but not for large projects), then you open a new template and you also have to wait for URC to check in the entire thing to the cloud, as if that’s important on startup (should happen on first commit instead). Add all these together and you have easily lost 5 mins to simply open a project, and that’s if you were staring at the loading and didn’t multitask between the inputs you need to do between loading.

  2. When you launch memory calculation, the process should start in Live edit without requiring further input. Would love if the window took focus at the end too or show a message in UEFN on how much it is while you work there.

  3. While waiting for live edit to launch, to still be able to do changes without disconnecting or desyncing.

  4. When HLODs are built, any change to the landscape will upload a large filesize to the server and delay opening live edit by a ton. Would love to only have them be built if needed or when the project gets published (maybe an option in preferences)

  5. Ability to turn off message log functionality. When loading you usually multitask, and having that screen pop in a new monitor and take the full window, then when you press it, it can’t close cause the editor is loading, is simply frustrating.

LIVE EDIT

Not going to mention live edit syncing speeds, those are already a want, but in this list I’ll focus on live edit desyncs, and which actions would make the most sense to not desync, for extra agility:

  1. Verse. Edits gets applied in live edit without having to press anything (not even “Build Verse”), the only thing UEFN tracks is which window you have active, and if its a viewport, it will build Verse code (because usually its VS Code). If verse code has an error, it will indicate as such with a small notification, prevent autosave and syncing to URC until fixed. The ability to save the code will still be available as before.

  2. Landscape edits: This is a major friction point for any map I make. Usually, I want to edit landscape as I am making things, and because I am working on live edit at times, editing landscape will not show there, unless I sync the editor again, which takes a ton of time if HLODs are enabled (could be 20 mins). This is because the entire landscape is built, would make more sense if only that part is cooked and the changes in filesize to upload are minimal that way (same with HLODs, no need to build the entire terrain everytime and result in a 100mb+ upload)

  3. Alt+Tab in Creative to NOT show inventory:
    If you Alt+Tab in live edit and you were not holding Alt first, you ll go into Inventory. This needs to be not happen instead and no menu pops up. I ve had countless times where I was between Live edit and UEFN to compare, and that menu was in the way so I had to keep Alt+Tabbing until I got it right.

  4. Selection to be consistent:

In Live edit, collision is the factor that allows you to select objects, which causes objects to not be selectable. Why not have it like UEFN where you can select everything? It’s very troubling to try to select objects when a large collision is nearby, almost impossible at times:

  1. Hotkeys for “Set camera to user view” and “Teleport user to me”, which are one of the most useful functions when in live edit. GGs to whoever thought of these two, they are such time savers. You can either have it be a hotkey number per listed player (Like Ctrl + Num1 for player one set camera to user view), or have one key which moves between all player user views if you press it again (can be any hotkey).
    explorer_G1YUFKDy6n

VERSE

  1. An interface, ideally to do visual scripting. Cool and well explained UI and graphics tailored for use by non-programmers (had to be agile too)
  2. Tooltips for verse editables
  3. Fortitemdefinitions exposed to verse API to make our own inventory management logic
  4. Raycasting API
  5. Player controls (listen, disable, or activate controls)
  6. More button variety in verse, ability to make our own (checkmark box too)

HUD MESSAGE DEVICE

  1. Toggle for in-game HUD scale to affect it or not.

IMPORTING

  1. Ability to set project defaults for importing content, so that all settings you want to tweak post import are automatically applied. To do this, a new type of object, “content import options” would be created, in which you define the type of format you want to set import options and what options you want. Then once you import say a texture, you get a new drag and drop zone that has the default options and the name of your custom import options, and you make a choice by dragging the file in the box you want:


    A clear example are games with a pixelated artstyle. Any import will not add nearest neighbor filter to the texture, so it has to be done manually. This will fix that, along with a ton of other cases that involve texture optimization (like copying those settings to other projects, or having a technical artist setup the basics types for importing content based on the project needs)

  2. Texture import to world to preserve colors exactly on unlit materials (allow us to use base color on unlit if that’s an issue). Sometimes the colors become faded and there is no straightforward reason as to why (I tried srgb box, makes it worse). This will cause many issues for beginners as the solution is highly technical and hard to figure out.

  1. A mode where if enabled, you drag a texture from outside UEFN into the viewport and you get a prompt on what you want to do with it:
  • Create a material and apply to selected object using the texture
  • Create a material for a 2D plane, then a static mesh (plane) and place it on cursor
  • Create a sprite material that always faces camera, then a plane and place it on cursor

CONTENT BROWSER

Already had a meeting with the Content Browser team, I ve provided all my points with them. Main ones:

  1. Remove XXX_ naming convention, swap it with visual language, like icons based on file type and the color of the line below the thumbnail.
    UnrealEditorFortnite-Win64-Shipping_7lTf7rnUdE
  2. Allow file naming similar to windows explorer
  3. Ability to set files in favorite folders, including Fortnite Content, so you can make your own gallery folders.
  4. Multi-column list support, only one list shown now

  1. Renaming files to always have them in view while renaming

  2. “Copy Collision” right click option for static meshes, and then “Paste Collision” as well

UEFN VALIDATION

  1. On any case of error, if a flagged asset is concerned, pressing the error works as the key F to that asset in the scene, or Ctrl + B if it only exists in the content browser

SOUND CUES

  1. Support for attenuation, echo, blocking, and spatialization (ideally MetaSounds for more effects)

OUTLINER

  1. Selecting an actor that has an actor attached and pressing Ctrl+D also duplicates the attachments by default. Selecting an actor that has attachments in viewport also selects its attachments. Selecting an attachment will now select the parent instead, but if you double-click (or alternatively Ctrl+click), you select the attachment instead.

  2. Searching for a folder, clicking it, then removing the search term should show the location of that folder in the outliner.

  3. Ability to have a second outliner to track multiple locations in it, and the ability to lock its scrolling too.

VIEWPORT

  1. Ctrl + B on a Fortnite asset opens its location in the gallery folder

STATIC MESH VIEW

  1. Same controls as viewport (shift to move camera)
  2. World coordinance system support when rotating collision boxes

MODELING MODE

  1. Hotkeys for everything and their illustration next to tools. We are currently moving left/right with mouse to perform any action, hotkeys would speed up the process by a tenfold. Enable them while in modeling mode.

  2. Viewport hotkeys to work when working with a model in modeling mode. If I have an edge selected, I want to be able to extrude it by holding Alt and dragging left click


    Or the ability to also move camera by holding Shift when transforming geometry.

  3. “Mesh Cut” to create or remove simple collision when a cut operation is performed. So for example, if you cut a hole into a wall using a box in mesh cut, the simple collision will also adapt to the new geometry, within reason (can set a vertex limit where it stops doing that).

  4. Ability to select geometry that is inside the edited actor. Currently I haven’t found a way to do that and it has stopped me from modeling using those tools multiple times.
    UnrealEditorFortnite-Win64-Shipping_AK4Y3LBvya

  5. Collision selection support for mesh element selection

  6. Lock UVs option when moving geometry so it doesnt stretch them

LANDSCAPE MODE

  1. A tool that creates a variety of topology. You select the tool, then select the topology you want to make (like hills, mountains, lake, ravine, river delta, crater, landslide slope, mountain slope, etc) and the brush adjusts its settings from a pre-defined list of options set by Epic (based on what most users would want selecting that type of topology, run UX tests to gether info) but editable by user if needed, which then creates the result. The objective of this tool is to focus on specific cases of landscape and allow for fast prototyping of such. For example, you choose Topology tool, you select a lake hole, then once you move in the viewport, you can hold Shift + mouse movement for size, then release to make a lake. The tool knows that lakes are lower than the surrounding geometry, so it will take this into account, along with other factors. Placing topology will add a flag in that area, for the tool to remember that there is a lake there now, so when you press to add another lake, it wont make a second hole, but subtract more of the surrounding terrain in the size of the brush. This tool can also use AI to determine what the user needs, and having a prompt field for extra information, as well as the ability to brush a section before it gets generated (instead of a click, to define the region, like a river or a mountain side).

UNREAL REVISION CONTROL

  1. Do not add lag to Importing, duplicating, deleting and moving an asset, this is the main reason the 2-second delay on every action still exists. This should be priority #1
  2. List of commits, if needed, with commit messages and files affected
  3. Ability to see the last version of a file, and with which commit it was last altered and by who
  4. Ability to sort Outliner via Revision control status (Checked out specifically)
  5. Search files and filter based on file types in the commit window
  6. Ability to disable revision control for new projects, from this window directly
    QKjv2gYIEA because if you start a new project and you forget to turn it off, this window will take multiple minutes and freeze UEFN on startup, potentially causing users to exit before they even start. No one wants a loading screen in addition to a loading screen to start the engine, in addition to a loading screen to start EGS. Its too much.

CONTROL RIG

Any attempt I ve made to use this tool (and I ve made plenty) leads me to something like this:
UnrealEditorFortnite-Win64-Shipping_uVd3qp5yKN
Seems like a tool that requires a very specific workflow, or it won’t work. And you have to watch hours upon hours of seminars to see how its used.

  1. Control rig to support swapping skeletons without the whole thing breaking apart

  2. When a limb is stretched due to bone controls, a button appears on viewport that returns it to where it was without affecting the control OR the ability to lock the character from stretching while we add or swap controls.

UnrealEditorFortnite-Win64-Shipping_mMIATXKq7u

OPTIMIZATION

  1. Bring back Creative tools for optimizing memory, in live edit. Max memory red symbol, instance cost next to camera cursor, thermal view of island to show clusters of memory.
  2. Add a wizard in the project size window that will run a check of your project, flag unoptimized assets, and provide solutions with the change % in project size reduction and increase in performance if such metric can be found from somewhere. Once this wizard is activated, a list of assets and suggestions for optimization will appear, and you can lock assets so they don’t appear as suggestions anymore (in case you need to keep it the way you want).
  3. Memory Zones: Ability to set borders in a level, where world partition would stop rendering. This will allow building things closer, but without needing to render them all at once and increasing game memory budget. If the player crosses a memory zone, the new area renders, old one goes away. The main difference with a world partition grid is that no object can render past a memory zone, it has a custom shape that also takes Z axis into consideration, and the moment you are outside it, you see nothing that exists inside (and is spatially loaded). This is perfect for keeping levels close to each other, defining their spatial loading, and not losing background elements when some are larger than others.
  4. A button to show side-by-side view of the viewport, as seen from multiple preview platforms (can be an image), so we can test lighting in all platforms simultaneously.
  5. “Memory heatmap” as a view option (when live edit is open).
  6. Memory Calculation to show in viewport constantly when live edit is open

LIGHTING

  1. When making our own lighting (TODM disabled), there is no support for zones for things like fog or directional light. Since we can only have one level, this is a huge limitation, and the alternative which is using day sequence device causes other issues:

  2. When using a day sequence device with a zone, you can no longer build in live edit inside it, and it causes spawning issues as well when using the teleporters. Its zone barrier material should be invisible instead, because you want to compare lighting by entering the zone in the viewport anyway, the current barrier material effect blocks you from comparing atm.

  3. Any light that exists as a component will have its settings reset once its parent is picked up and placed in live edit. So say you had a street light from the Fortnite street gallery, and you tweak its intensity to match your stage, picking it up in Live edit with the phone and placing it will revert its intensity back to the default. This makes live edit building more niche.

LEVEL

  1. The ability to swap levels would help in so many ways and unlock so much potential for our projects. We would be able to use a ton of features that don’t scale well or can be re-used on levels, like exponential fog, directional light, in-game memory, etc.

MODERATION

  1. If a game exists, a public code exists as well. If you want to do edits that revolve around the creator portal submission, but not the map, you should NEVER have to republish another private code. Some examples are changing the thumbnail, resubmitting IARC, changing description, changing tags, etc. This also means that XP calibration DOESNT break either, since you made no edits in the map.

  2. Figure out XP for maps that dont get many players. Currently unfair to have popular maps as the benchmarks to how xp is calibrated. With all the edits we have to do to our maps to fix bugs and flagged content from moderation, exp is impossible to calibrate if we are not in discovery.

  3. IARC remembers you communication email: So you dont have to type it everytime you fill the form.

  4. Epic has a wizard pre-IARC that based on the tags of the game and devices used will auto-fill IARC for you. You will still have to approve it as a user in case you have elements that have changes from the suggested rating, but it should speed up the process and reduce confusion for new users.

  5. Flagging of content has a note from the moderator to specifically say what is wrong, without only just quoting an abstract rule. Flagged assets have to be named with their in-engine name so you can search for them (DevRel shouldn’t have to do this, not worth their time).

  6. Moderation can be flagged with an appeal: Moderators need to also be kept in check. So if a user thinks they have been wrongfully moderated, they can appeal the decision, where a head moderator will then look and decide. If a moderator is found to inflate rules or be abusive to creations, they can be internally flagged by the head moderator. Many flags reduce the amount of applications the moderator will receive and in extreme cases may flag that moderator with a warning for abuse of the moderation system. 3 warnings result in the termination of the role as a moderator (similar to other industries).

  7. Moderator Notes: There can be multiple times where there is a note that needs to be tied with a creation, which all subsequent mods need to know. Some examples are definitions of translated text or symbols in the map, like clearing symbols and saying they are not offensive. That could be a note tied to all level versions “Symbols in Pyramid have been checked and cleared by MOD NAME” so that the next mod doesnt have to clear them again when user does 5 new versions after some bugs. This system is useful for many cases, like Brands giving permission to make a map, or a special exception that Epic has allowed, all of which need to be communicated.

  8. A mandatory system that requires creators to declare all the alternative accounts they have, the teams they are working on, as well as their brand and creator collaborations. This will be used as a consideration for specific Discovery rows like Curator rows (see below). Failure to declare truthfully will result in a warning which with 3 result in a ban and SAC account loss.

PUBLISHING

  1. When you press memory calculation, there is a window popup that shows the private code that was generated. Its only if you press continue on that window that memory calculation begins, it should instead start it and keep that window open, so when the loading is finished and you are back from your house chores, everything is now finished.

DISCOVERY

  1. Arrow to expand Row: If a user wants to quickly see more in a row, they can press that button to see a large sum or all maps that could be in that row, going past the current limits displayed in Discovery. For example, by pressing the expand arrow in Epic Picks, they will see all Epic Picks from all previous weeks and years that are still active. Animation on entering and exiting has to be almost instant so it’s easy to go in and out of them.

  2. User Rating system visible on discovery. Similar to Far Cry Arcade, but instead of 5 stars it could be % based, like Steam. Users rating can be accompanied with reviews so if one wants to read reviews on that content, they can browse them from the expanded page.

  3. Surprise me modes: Upon entering you are given a couple of categories to tick, for preference, then they are remembered for next time (mainly genre categories and genres) and there are two surprise me modes (user can pick), one for established games that hit a certain level of success at some point in their lifetime (not currently) and new levels only.

While playing a surprise me mode, hitting esc allows you to move to the next game with set preferences, and vote on what you thought about this pick.

  1. Curator rows:
    Allow specific Content Creators to have their own lists, but they can’t promote any of their games by design (not allowed by the system) or any of the teams they are in projects’, or any of the alt accounts they have with a SAC code. They can only feature sponsored titles and content they find worthwhile. Sponsored titles will be declared as collaborations and they can be paid opportunities for content creators. The amount of sponsored vs promoted needs to be fine-tuned for optimal results.

  2. Allow non-monetized game rows and non-curated rows for creators below 18 years:
    In which they can use to publish their games for their friends and community. Those rows don’t go through ratings, but a huge disclaimer is posted to the user upon entering that those rows are not curated nor monetized (other editors have done so with success) and can be locked by Parent controls.

  3. White lists: Mainly parent controls, they can whitelist specific games in Discovery, so when the user interacts, they can only see those games.

  4. Multi-rating feeds: Once all users and creators have setup their preferred ages/rating targets through IARC and in-game settings, the ability to see content past T upon selection through filters in Discovery

  5. Filters: A filter on top of discovery to add or exclude tags from the listed content, as well as later have support for rating, most popular, year of release, language support.

  6. Bug reporting and WIP tag: Any user that reports a bug while inside a UGC level sends that report to the Epic Account email of that Creator, instead of Epic. Bug reporting clearly indicates that the report goes to the creator of the content, not Epic (when selected as such). WIP tag can be set by the creator through creator portal to mark the code as “broken”, so that players can easily know without entering the code. A game marked broken will show the “Not available” message in the expanded page of the game, and optionally the creator can set another map code to link to.

  7. Epic Pick’s archive. All featured maps can be found in the “expand all” of Epic Pick’s, which works as an archive.

And please fix all assets/devices that cause dirty edits, its been like this since release.

I ll keep working on this list, so check the edit list for changes.

I barely have time to read PART of what you wrote, how do you have the time to write it all out? Amazing feedback Andrew, they should be paying you for this…

2 Likes

I just care a lot about UEFN, it has extreme potential, its the tool that we use everyday and defines our careers. I am just giving it the respect it deserves

2 Likes

I agree, and that’s a great point.

Thank you for your feedback. While I cannot guarantee a response, I can confirm that this has been forwarded to the appropriate team.

This is really useful feedback. Thanks for taking the time to write it all up.

1 Like

Edit 1: Added Lighting category

Edit 2: Added Loading category, and Level

Edit 3: Added 2 more bullets on Importing category, one more bullet on Level Design

Added Control Rig category

You mentioned duplication and also dirty assets.
I find that when duplicating something (like alt-drag a handle), it drops the new duplicate behind and drags the old one, thus creating 2x changes for next commit.

1 Like

And not a solution, I always chuckled at the “alt+tab dance” tooo… but the work-around we do, is tap the Windows Key to free the mouse from FN game window.

1 Like