Download

Multi-user workflow on level with One File Per Actor enabled and source control

Hey everyone :slight_smile:
So I’ve encountered this issue while testing multi-user workflow on a level with OFPA enabled, and Source Control enabled (P4).
It seems like a bug, but I’m not sure.

This is what happens:

  • On my project there is a map called “L_MainLevel”. I want to open this level and add some objects to it.
  • I open the map and notice from the content browser that this level is currently checked-out by “User1” on P4. I’m not worried because this shouldn’t be an issue as L_MainLevel has OFPA enabled.
  • I drag&drop an asset from the content browser into the level and place it where I want it. I’m done with my work so I want to submit it.
  • I open the Source Control window. I don’t see anything under the ‘default’ changelist. I click on “refresh” but still nothing appears to be saved. At this point I expected the actor I added to the level to appear here.
  • I go back to the main editor viewport and click on the save button to save the level. Now I see the saving dialog, where it’s telling me that the level is currently checked out by User1 and I can only select “make writable”.
  • If I choose ‘cancel’ it goes back to the viewport and nothing changed, still no files in the CL.
  • If I choose ‘make writable’ it saves the level and finally when I open the Source Control window, I can see the actor I previously added, under the default CL.

So this isn’t great, because I shouldn’t have to select ‘make writable’ on that level, right? The whole point of One File Per Actor is to enable users to work on the same level without having to save the actual level asset.

So, I hope that was clear enough… I don’t get if this is the intended behaviour?
Is someone able to explain? Thanks :slight_smile:

Did you enable “use external actors” on the level world settings?

It’s not enough to enable world partition at the project level, any existing levels created before that will not have “use external actors” enabled, but newly created levels will.

Yeah I did, and it’s all working fine in the end.
The issue is simply that: when adding new actors to a level that’s checked-out by another user, those actors aren’t saved until the whole level is saved. Which is a problem. Because when you want to save a level that’s checked-out by another user, you can only save it if you make the level .uasset ‘writable’ on disk, temporarily bypassing the exclusive checkout state. Which isn’t a reliable way of working with Source Control.

I hope that’s a bit more clear?

I know that when you convert a level to OFPA it has to migrate the actors to external files which requires removing them out of the level file, but after that it should not have to touch the level file for new actors added. That would defeat the whole purpose of the OFPA feature.