-
Notifications
You must be signed in to change notification settings - Fork 0
Extra Modules
UEBPCracker's core 28 modules cover Actor Blueprint operations. The extra module system extends this with domain adapters for Unreal's other asset types and editor systems.
All extra modules operate through a central domain registry (FUEBPDomainRegistry):
| Domain ID | Description | Status |
|---|---|---|
input |
Enhanced Input (Actions, Mapping Contexts, Modifiers, Triggers) | ✅ Partially complete (Extra 01–04) |
data |
Data Assets, Data Tables | 🗺️ Planned (Extra 12) |
gameplay |
Gameplay Tags | 🗺️ Planned (Extra 11) |
ai |
Behavior Tree, Blackboard | 🗺️ Planned (Extra 17) |
fx |
Niagara Systems | 🗺️ Planned (Extra 18) |
project |
Project Settings, Developer Settings | 🗺️ Planned (Extra 10) |
ui |
Widget Blueprint, UMG | 🗺️ Planned (Extra 20) |
Each domain has 5 base operations per the registry: create, inspect, patch, validate, delete.
bAvailable=false for domains not yet implemented.
Check availability:
GetDomainCapabilities (domain="all")
Established the compile-time domain registry and cross-domain security:
-
FUEBPDomainRegistry— static table of domains, ops, availability -
FUEBPDomainSecurityPolicy— validates declared operations; unavailable domain →UEBP.DOMAIN_OPERATION_NOT_ALLOWED -
CanonicalizeLockResources— asset → state → config lock order; duplicates →UEBP.CROSS_DOMAIN_DEPENDENCY_INVALID -
FUEBPDomainMutationLease— reuses globalFUEBPMutationLease(second domain →OPERATION_BUSY) -
get_domain_capabilitiestool (L0 read-only)
Results: Automation 20/20, MCP 8/8, restart 6/6.
Policy fingerprint: sha1:5308baefe0090518290f7e524fcf4ef1f26ed82a (restart-stable)
Foundation for all domain asset operations:
-
FUEBPDomainAssetService— canonical path enforcement, write-root + reserved namespace, dirty/read-only/source-control checks, typed options - Atomic create pipeline:
IAssetTools::CreateAsset→ adapter typed write →PostEditChange→IsDataValid→SaveLoadedAsset→ re-resolve → inspect -
core.domain_record.v1foundation adapter (UUEBPDomainAssetRecord— onlylabeltyped option as proof-of-concept) - Factory/inspector adapters are PRIVATE interfaces
-
FUEBPAssetSaveService::Save(UObject*)extended for domain assets
Error codes: DOMAIN_FACTORY_NOT_AVAILABLE, DOMAIN_ASSET_CLASS_INVALID, DOMAIN_ASSET_ALREADY_EXISTS, DOMAIN_ASSET_CREATE_FAILED, DOMAIN_ASSET_VALIDATION_FAILED, DOMAIN_ASSET_POSTCONDITION_FAILED
Full UInputAction management:
- Create, inspect, and configure Input Actions
- 4 value types: Boolean, Axis1D (float), Axis2D (FVector2D), Axis3D (FVector)
- Typed allow-list for action configuration
- Canonical modifier/trigger inspection on actions
- Read:
inspect_input_action,list_input_actions - Write:
create_input_action,set_input_action_value_type,add_action_modifier,add_action_trigger
Results: Automation 21/21, restart 2/2, MCP 10/10 + restart.
Full UEnhancedInputLocalPlayerSubsystem and UInputMappingContext management:
- Create/inspect Mapping Contexts
- Exact
EKeys— keyboard/mouse/gamepad/motion/XR key support - Boolean–Axis3D compatibility enforcement
- Managed add/remove of key mappings
- Undo/recovery for mapping changes
- Mapping order preservation
Results: Automation 22/22, restart 2/2, MCP 14/14 + restart.
UInputModifier subclass management on Input Actions and Mapping Contexts.
Planned modifiers: InputModifierDeadZone, InputModifierScalar, InputModifierNegate, InputModifierSwizzleAxis, InputModifierResponseCurveExponential
UInputTrigger subclass management.
Planned triggers: InputTriggerPressed, InputTriggerReleased, InputTriggerHold, InputTriggerTap, InputTriggerCombo
-
UPlayerMappableInputConfigmanagement - Input mode switching (
UI-only,Game-only,Game-and-UI) - Runtime binding inspection
- K2 node generation for
UEnhancedInputComponent::BindActionbindings - Event node wiring for Input Action events in Blueprint EventGraph
-
.uebp.jsonspec extensions for the full Enhanced Input domain - Patch/idempotency for Input Action and Mapping Context spec ownership
-
UGameMapsSettings,UInputSettings,UGeneralProjectSettingsread/write -
UDeveloperSettingssubclass discovery and typed property mutation
-
UGameplayTagsManagerintegration - Tag and tag container variable support in Blueprint specs
-
UDataAssetandUPrimaryDataAssetfactory + inspector -
UDataTablerow schema inspection and typed row add/remove
-
UCollisionProfilechannel/preset inspection and modification -
ECollisionChannelallow-list validation
-
UPhysicalMaterialfactory + inspector (friction, restitution, surface type) -
EPhysicalSurfaceenum management
-
AWorldSettingsinspection and mutation -
AGameModeBase/AGameStateBase/APlayerControllerclass assignment
-
UAnimBlueprintfactory + inspector - State machine graph reading
-
UBehaviorTreeandUBlackboardDatafactory + inspector - Blackboard key management (typed: bool, int, float, string, object, class, enum, vector, rotator)
-
UNiagaraSystemandUNiagaraEmitterinspection - User parameter read/write (typed allow-list)
-
UMaterialinspection (parameter names, types, default values) -
UMaterialInstanceConstantparameter override (scalar, vector, texture)
-
UWidgetBlueprintfactory + inspector - Widget hierarchy reading, named slot inspection
- Cross-domain
.uebp.jsonspec (Blueprint + Input + Data + Material in one spec) - Dependency ordering, circular dependency detection
- Full regression suite for all extra modules
- Security policy review for new domain operations
- CHANGELOG and version bump
- Register the domain in
FUEBPDomainRegistry(setbAvailable=true) - Implement
IUEBPDomainFactoryAdapterandIUEBPDomainInspectorAdapter(Private interfaces) - Register adapters with
FUEBPDomainAssetService - Add MCP tools to the toolset (
UFUNCTIONwith request/result USTRUCTs) - Add tests in
UEBPCrackerEditorTests(20+ automation assertions) - Add MCP harness test script
- Verify restart stability (fingerprints stable)
- Update
CHANGELOG.mdandget_domain_capabilitiesresponse
- Architecture — domain security, lock ordering
-
Tool Reference —
GetDomainCapabilities - GitHub Issues — open roadmap issues for Extra Modules 05–22