The actual problem seems to be the same i already reported in the support forum, but in this case results in a different bug.
Here are the steps:
1) Create a placeable actor and also create a archtype for it.
2) Now place a archtype instance and a normal class instance inside your level. Save all and close the Editor.
3) Add whatever ActorComponent u like via defaultprops and add a var() editconst reference member to it. Recompile.
4) Reload your map, no error will popup and all looks fine on the placed actors, for both the class instanced version and the archtype version.
But if u actually debug the game and check the component name closely u will notice that the instanced archtype component name is the same than the one inside the class version. So both seem to reference the same instance? Actually if u try to change a member u will notice that only the name is the same and both actually are 2 different instances. This still is strange since normally each instance has a unique name.
5) Now change a property in both placed instances via F4/prop inside the Editor. Save your map and close the Editor.
6) Now run your game and debug whats in your actors components array and whats assigned to the member variable!
The archtype instance now has a different component instance assigned to the member variable, than whats inside the actor component array. Something like Component_0 and the array has Component_1, where the _0 is the correct changed instance and the _1 instance is a default version inside the array.
In comparison the class version has the correct instance assigned as member and also has this instance inside the actor component array.
So here we have the actual bug that can cause big problems in your level.
7) Now open your map in the Editor again, now UDK will complain about a missing component in the archtype.
To actually fix this bug, u need to manually resave your archtype via the content browser even if it is not flagged as changed, don't use "Update AT from Instance" yet, since this will totally bug your AT and instead of a defaultprops named "MyComponent_AT" member, it will assign the instanced "Component_0" from the placed instance as default.
So again it seem that archtypes are not correctly saved on changes, so every time a component is added/removed u have to manually resave all your "involved" archtypes to fix this!
Hope this is understandable to some of u

bye Andy
PS: I need to make a bit more tests to ensure this manual save actually fixes all "old" versions in any variation.
Leave a comment: