This also brings up a good point about how `FName::NameToDisplayString` works. Currently it will only remove a 'b' character if a boolean is given, which leads to inconsistent results throughout the editor.


Many people want to follow a "m_Variable" naming scheme, which should also be automatically cut out for native variables in blueprints. Currently if you use a "m_" naming scheme you will not get a cleaned up version of the display name, and have blueprint nodes with incorrect "M Variable" names. 

[Image Removed]

Steps to Reproduce
  1. Add a new C++ class
  2. Add a new property that sets the Display Name metadata property, like this:
    UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (DisplayName = "Internal Property Dis. Name")) int32 m_InternalProperty;
    UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (DisplayName = "Internal Mesh Dis. Name"))
    	UStaticMeshComponent* m_InternalStaticMeshProp; 
  1. Create a blueprint based off of this class
  2. Look in the My Blueprints panel 
  3. Select "Show Inherited variables"

Result: The variable is displayed as "m_InternalProperty"

Expected: The variable is displayed as "Internal Property Dis. Name" 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-103069 in the post.

Login to Vote

ComponentUE - Gameplay - Blueprint Editor
Affects Versions4.265.0
Target Fix5.0
Fix Commit14996791
Release Commit15784077
CreatedNov 12, 2020
ResolvedJan 6, 2021
UpdatedNov 30, 2022