Universal Interaction System
  • 👋Universal Interaction System Documentation
  • 💡Getting Start
  • ✨Blueprint Nodes
  • 🖥️Custom Improvements
Powered by GitBook
On this page
  • ➡️Add New Detection Mode
  • 🖼️Creating your own Interaction Holder Widget
  • 🔎 Creating your Base Interaction class

Custom Improvements

Maybe the plugin doesn't meet all your needs, so with that in mind, here's a guide on how to add some things you might need.

PreviousBlueprint Nodes

Last updated 8 months ago

➡️Add New Detection Mode

If you want to create your custom detection mode, you are in the right place.

  1. Go to Project Settings

  1. Find Gameplay Tags tab and click on Manage Gameplay Tags...

  1. Add as many custom modes as you want using different tags

  1. Create a new Actor Component, based on Interactor Component

  1. Change the default Trace Type to your custom tag on component

  1. Override CustomTrace function

  1. Write your custom trace logic and return HitResults (if you only get one HitResult, create an array and wire it)

🖼️Creating your own Interaction Holder Widget

The plugin has a standard Interaction widget, which appears to the player whenever he can interact with the Interactable that owns the widget, but if you don't like it, or want to create your own, here is the step by step.

  1. Create a new child widget of the UIS_BaseInteractionHolder class.

You can create a copy of the example widget if you prefer, it's even easier.

  1. Switch from Fill Screen to Desired mode.

  1. Add in sequence: A Size Box, an Overlay, two Texts and a progress bar.

  1. In the Size Box Detail tab, change the size (I recommend using 72x116)

  1. Now it's your part, configure your design as you see fit.

  1. Select your progress bar, and bind the "GetHoldProgress" function to the "Percent" property.

  1. And also link your text with the Interactable Name.

Do the same thing with your Tooltip text

  1. Link the Widget Class of the desired Interactable to the widget you created.

It may be more effective for you to create a base Interaction class derived from UIS_BaseInteractableActor (or create an actor with the Interactable component) and make the necessary changes to this class, it will automatically apply the changes to all child classes. (If in doubt, follow the steps below)

🔎 Creating your Base Interaction class

  1. Create a default actor, and add a static mesh (or skeletal mesh) and a UIS_InteractableComponent to him

  1. Now within this actor, you will make all the settings that you want to leave predefined for all interactables created from this one.


Here is a great place for you to define interaction widget that you created, and check actor for replication.


  1. Add these two events, here you MUST create a way to make the Interaction Widget appear, you can use a timeline, an event call in the widget, or a simple SetHiddenInGame.

  1. Oh, and since we're doing this from 0, we also have to add one simple thing to BeginPlay

For optimization purposes, you can use an Interface instead of a Cast To.

  1. Okay, you've finished the basics of a base interaction class, now you can make any changes you want and create all your interactables from this class.

🖥️
The name of the variables was changed on purpose for educational purposes
These are my preferences, leave them in whatever style you want.
You can add many more components, but this is the basics
(Just go to the "Details" tab in the Interactable Component and you will find the events)