Skip to content

Latest commit

 

History

History
114 lines (91 loc) · 4.91 KB

GUIDE.md

File metadata and controls

114 lines (91 loc) · 4.91 KB

guide

  • dummy the asset you want to hook (create actor with same folder structure in your unreal project)
example

  • delete all events (you hook events using functions)
example

example
#ifndef UE4SS_SDK_BP_RestChair_HPP
#define UE4SS_SDK_BP_RestChair_HPP

class ABP_RestChair_C : public AActor
{
    FPointerToUberGraphFrame UberGraphFrame;                                          // 0x0290 (size: 0x8)
    class UWidgetComponent* Widget;                                                   // 0x0298 (size: 0x8)
    class USphereComponent* examineSphere;                                            // 0x02A0 (size: 0x8)
    class UArrowComponent* startPosArrow;                                             // 0x02A8 (size: 0x8)
    class USphereComponent* Sphere;                                                   // 0x02B0 (size: 0x8)
    class UStaticMeshComponent* Cylinder_80E0306B;                                    // 0x02B8 (size: 0x8)
    class USceneComponent* DefaultSceneRoot;                                          // 0x02C0 (size: 0x8)
    bool healing?;                                                                    // 0x02C8 (size: 0x1)
    bool displayingPrompt;                                                            // 0x02C9 (size: 0x1)
    bool overlappingPlayer?;                                                          // 0x02CA (size: 0x1)
    class UUI_ExaminePrompt_C* As UI Examine Prompt;                                  // 0x02D0 (size: 0x8)

    void BPI_InteractConfirm(int32 Response, class AActor* interactionTarget);
    void ReceiveBeginPlay();
    void BPI_TryInteract(class AActor* interactee);
    void BndEvt__BP_RestChair_Sphere1_K2Node_ComponentBoundEvent_0_ComponentBeginOverlapSignature__DelegateSignature(class UPrimitiveComponent* OverlappedComponent, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
    void BndEvt__BP_RestChair_Sphere1_K2Node_ComponentBoundEvent_2_ComponentEndOverlapSignature__DelegateSignature(class UPrimitiveComponent* OverlappedComponent, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex);
    void BPI_EndInteract();
    void ExecuteUbergraph_BP_RestChair(int32 EntryPoint);
}; // Size: 0x2D8

#endif
  • dummy the function you want to hook with same arguments and return type and put an hook_ before the name
example

  • to call the original duplicate your dummied function and replace hook_ with orig_
example

  • code whatever you want (you can dummy other functions and use them as normal)
example

  • cook/package the project
example

example
spaghetti "...\pseudoregalia\Saved\Cooked\Windows\pseudoregalia\Content\Blueprints\LevelActors\BP_RestChair.uasset" "...\UModelSaved\Game\Blueprints\LevelActors\BP_RestChair.uasset" -o "...\raw\hook_p\pseudoregalia\Content\Blueprints\LevelActors\BP_RestChair.uasset" -v 5.1
BPI_TryInteract hooked
  • pack your hooked blueprint into a mod
  • if your game uses paks use unrealpak or repak
  • if your game uses iostore use zentools-ue4 or zentools to do this
  • the function should be hooked in-game! easy as pie (hopefully)
example

interacting with the chair now kills you!