Summary
We’ve been experiencing an issue where certain prefabs need to be resaved whenever Verse is recompiled . This happens even though no changes have been made to the project. The prefabs have not been modified, and no components have been modified.
This only happens on certain prefabs which is strange and makes the issue hard for us to repro.
Please select what you are reporting on:
Unreal Editor for Fortnite
What Type of Bug are you experiencing?
Assets
Steps to Reproduce
Create several prefabs with multiple custom components and other nested prefabs. Reference these prefab assets within a component. Build Verse.
Expected Result
Prefabs would not need to be resaved.
Observed Result
Some of the prefabs within the project need to be resaved. The same prefabs always need to be resaved each time Verse compiles. However there are identical prefabs that do not need to be resaved.
Platform(s)
PC
FORT-969853 has been created and its status is ‘Unconfirmed’. This is now in a queue to be reproduced and confirmed.
This is related to Creative device marked as unsaved every time even though nothing changed. and Removing @editable locks the value of a constant
But it not being saved is not necessarely a bug, it is to avoid data loss (if you save something it will discard all previous data), this happens when you make changes in your code that modifies the structure of the classes in a breaking way (even non-exposed properties)… It can happen with scene graph entities, components or creative devices exposed to editor.
To fix it, you need to explicitly tell the modified property that you want to discard the old values (if is not needed anymore), or do a “diff check” to choose which of the confliciting changes to keep on that property. Things affected by this will have a exclamation mark warning on the side. You can read more about loose properties on Data Recovery Tool in Unreal Editor for Fortnite | Fortnite Documentation | Epic Developer Community (Tool Currently only available to Scene Graph, not available on Creative Devices)
1 Like
The data recovery tool doesn’t appear as an option on my component.
The documentation seems to suggest that you can disable the Fix Up tool, so I thought I could use the same command to enable it, but I haven’t found a console in UEFN either.
To disable the Fix Up Tool:
- Launch UEFN.
- Open the editor Console Command.
- Set the ido.enable setting to 0. The tool is now disabled.
Do your prefabs show the fix up tool?
1 Like
None of my prefabs or components on the prefabs show warnings or fix up tool. However I do see warnings on a few entities in my Outliner. I cannot currently launch the fix up tool on them. I’ve used it a few times in the past when the editor did let me click on the warning symbols.
The entities in the outliner with warnings are not the prefabs that need resaving, but they do reference them through asset reflection. However there are additional prefabs referenced too that do not need resaving.
Funny - I did just spend the last half hour trying to track down how to access the Console within UEFN for this exact reason and haven’t had luck. Will report back if I can figure it out.
Seems like a docs generation issue, the Editor Command Line is only available to some partnered uefn creators 
About the warning and fix up button appearing or not, I’ve heard that from some other people too, on some cases it appears and others not, but I am unsure why, I could not relate anything to it… (Maybe that’s another bug to report?)
If you want to fix it manually as a workaround, you can do by doing one of those actions:
-
Copy the entity/device → paste the text on notepad → delete the properties that are loose → paste on editor again (overriding the previous one)
-
Open the Verse Code of the component/device affected → Add the removed property back to it → Compile Verse → Go to where that device/component is used on the editor/prefab → Clear the Editable Overrides (return the property back to its default) → Then you can delete that property from verse again and should be fine.
These options above are more complex to do (specially if you don’t remember or don’t know what was the affected/changed/deleted property), but, if you don’t know what property it was, you can just:
- Delete the component/device affected, add it again, and the warning should be gone. (Note that you may need to fill all the editables again. Copying the data from the old instance may not work, since it may also copy the faulty/loose value too)
This just prevent the device/component from being saved, but you should be still able to launch session fine… If you can’t launch session and the component has a red warning, it means that it has a unitialized property that must be set to something.
1 Like
First time that this prevent-save issue happened to me, was me renaming assets, and these assets being static/constant values inside component classes…
I could not fix it in any way without renaming the asset back (was not even exposed as editable), and needed to completely replace the component instance with a new one to remove the warning. Yeah it is very annoying :(
1 Like
We have a fix coming in 37.30 which should address this issue.
2 Likes