CrimsonInspector
CrimsonInspector lets any UObject describe itself to any consumer without either side knowing the other. A provider implements ICrimsonInspectable and fills a bag of FInstancedStruct payloads; a consumer (a tooltip, an AI context builder, a search index, a comparison panel) reads only the struct types it understands and skips the rest. A new kind of data never means editing a shared struct.
What's included
| System | Key types | Purpose |
|---|---|---|
| Provider contract | ICrimsonInspectable (ProvideInspectorData) | Implemented by anything that wants to be inspected |
| Vocabulary payloads | FCrimsonInspectorDisplayName, FCrimsonInspectorIcon, FCrimsonInspectorStatLine, FCrimsonInspectorTextLine, FCrimsonInspectorSectionHeader | Common data every consumer can render |
| Helpers | UCrimsonInspectorStatics | Build payloads (AddEntry, AddStatLine, ...) and read them (GetInspectorData, GetStatLines, TryGetDisplayName, ...) |
| Request categories | CrimsonInspectorTags::Request_* | Let a consumer ask for only identity, stats, description or tags |
Plugin dependencies
| Group | Dependencies |
|---|---|
| Crimson plugins | None - fully standalone |
| Engine modules (runtime) | Core, CoreUObject, GameplayTags (public); Engine (private). FInstancedStruct comes from the engine's StructUtils. |
| Engine modules (editor) | Core, CoreUObject, Engine, GameplayTags, SlateCore, Slate, ApplicationCore, ToolMenus, UnrealEd, Kismet |
Which path do I choose?
Showing data about an object? Start with Quick Start. Emitting data no built-in struct covers? How-To: Emit Your Own Payload Types. Building an expensive provider? How-To: Request Only What You Need.
Using with other Crimson plugins
CrimsonInspector works on its own and needs no integration layer: CrimsonCore ships no wiring for it. Any system, from any plugin, becomes a provider by implementing
ICrimsonInspectable, and any consumer reads the payload bag through UCrimsonInspectorStatics. To connect it to other plugins you own, read CrimsonCommon -> Concept: Connecting Crimson Plugins.