Description

When declaring a variable to be private, any instances of that variable being changed in child blueprints (before hand) will remain as they were before the variable was declared as private. However, the variable can no longer be accessed from the the child blueprints, making the discrepancy hard to track down in the future.

Steps to Reproduce
  1. Open the editor
  2. Create a new actor blueprint
  3. Name it "Base"
  4. Add a float variable to "Base"
  5. Set the default value of the float to 5
  6. Create a new actor blueprint that derives from "Base"
  7. Name the blueprint "BaseChild"
  8. Open "BaseChild" and set the float value for the variable created in "Base" to 0
  9. Compile and save
  10. Open "Base"
  11. Set the float variable to private (check private to true in the details panel for the float)
  12. Create the blueprint in the attached image
  13. Save and compile
  14. Add an instance of Base and BaseChild to the level
  15. Play in Editor

Result: The print strings will fire off as 5 and 0 (5 From the parent and 0 from the child)
Expected: The Default value of the child would be changed to match that of the parent when the variable was declared as private (because the can no longer be accessed in the child) and so the print strings would match.

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

5
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.17.1
CreatedSep 22, 2017
ResolvedAug 18, 2021
UpdatedAug 18, 2021