How can I customize the details panel for a class?

Also, the general process is this:

  1. Make a class that implements IDetailCustomization or IPropertyTypeCustomization
  2. Register your class in your module’s StartupModule() method
  3. Unregister your class in your module’s ShutdownModule() method

Once your class is registered for a certain UClass or UStruct type, the details panel will call the corresponding methods on your class whenever such a type needs to be visualized. For example, it may call CustomizeDetails() on your class customization, and it passes in a DetailBuilder, which you can use to create custom widgets, etc.