As development on my game has progressed, the Play in Editor (PIE) and Standalone Game (Standalone) facilities have diverged more and more. While neither game mode presents errors after play, PIE does not behave correctly anymore and we are forced to use Standalone to test new functionality. Here is a list of failing gameplay events:
- When the game loads and OnPostLogin is called for a player, the GameMode grants that player a free item, which is placed in their inventory. This does not work in PIE; works as expected in Standalone.
- When the player un-equips an item from their loadout, that item is moved into their inventory. In PIE, the item disappears from their loadout, but never appears in their inventory UI; this works as expected in Standalone.
- Players can collide with a Pickup actor class to gain item into their inventory. The collisions between Players and Pickups is never triggered in PIE; collisions work correctly in Standalone.
What am I missing here? Is there an error log I can find? There are no blueprint or compiler errors when loading PIE, no error output when closing the PIE session, no additional information. Any help would be very much appreciated!
I’m assuming from the nature of your first failed event that these are all related to networking in some way, some of it just via replication. If this is the case, then these events could not be expected to work in PIE, depending on how they have been set up and if they’re using anything like the SteamOnlineSubsystem.
PIE will always have some different results from Standalone, due to Standalone being its own process and PIE creating a copy of everything. Have you tried any of this in 4.13 or 4.14 to see if you have the same results?
Looks like the underlying issue was a sort-of false alarm. Turns out that some ActorComponent settings had been destroyed at some point (I’m guessing version control is to blame). This reset the Player’s Inventory limit to 0, no longer allowing the Player to gain an Item to their Inventory (including Pickups and Items that were being un-equipped). So, weirdly, this means PIE was more accurate than Standalone in this case. This does not answer why these two play environments had different data, but I’m guessing that Standalone caches game data in a different location, which was not destroyed when the data for the InventoryComponent was destroyed in the game data. Thanks anyway!
Solved: This issue was from an unrelated data issue. This does not explain why the play environments were behaving differently, but my issue has beens solved.