Choose your operating system:
Windows
macOS
Linux
A Blueprint Interface is a collection of one or more functions - name only, no implementation - that can be added to other Blueprints. Any Blueprint that has the Interface added is guaranteed to have those functions. The functions of the Interface can be given functionality in each of the Blueprints that added it. This is essentially like the concept of an interface in general programming, which allows multiple different types of Objects to all share and be accessed through a common interface. Put simply, Blueprint Interfaces allow different Blueprints to share with and send data to one another.
Blueprint Interfaces can be made by content creators through the editor in a similar fashion to other Blueprints, but they come with certain limitations in that they cannot:
Add new variables
Edit graphs
Add Components
The use of Blueprint Interfaces allows for a common method of interacting with multiple disparate types of Objects that all share
some specific functionality. This means you can have completely different types of Objects, such as a car and a tree, that
share one specific thing like they can both be shot by weapon fire and take damage. By creating a Blueprint Interface that
contains an OnTakeWeaponFire
function, and having both the car and the tree implement that Blueprint Interface, you can treat the
car and the tree as the same type and simply call the OnTakeWeaponFire
function when either of them is shot. Read about how to implement
Blueprint Interfaces on the Implementing Blueprint Interfaces page.
Creating Blueprint Interfaces
Blueprint Interface creation within the Content Browser is as simple as right-clicking and choosing Blueprint Interface from the context menu, then naming your new Interface.
Once created, you need to edit the Interface's functions.
Editing Blueprint Interfaces
Blueprint Interfaces are edited the Blueprint Editor. Since you cannot create your own variables, graphs, or components, the process of Interface editing differs greatly from the process of editing standard Blueprint Classes.
When you first open up a new Interface, the editor looks like this:
If you have just created your Interface, you will see that the Editor has created a new blank Function for you named NewFunction_0 and it will be highlighted for you to rename it.
Adding Functions
Functions are the primary component of an Interface. Interface functions have no implementation. They exist simply as a definition of inputs and outputs. These can be used to send data through the interface, or can be overridden within any Blueprint that implements that Interface.
To add a new function:
In the My Blueprint tab create a new function, by clicking on the Add Button on the functions list header .
In the My Blueprint pane, enter a name for the new function.
The new Graph area will appear with the new function. Note that the function has neither inputs nor outputs.
Editing Function Signatures
Since an interface function has no implementation, all you can do as a designer is designate a series of typed inputs and outputs.
To edit a function's signature:
In the Details tab, scroll to the Inputs category and click the button to create a new Input Parameter.
Set the Input Name and Type as desired. You may also expand the input using the button next to the name, and thereby set a Default Value.
In the same manner, outputs can also be added. Note how the graph automatically updates to show them.
Other Considerations
On any input or output parameter, you can click the button to remove that parameter.
Input parameters can be given a default value using the small text field immediately under of the parameter name field, though you must expand the property entry in the Details tab to see it.
You can change where the input and output parameters appear on the node using the and found in the Details tab when the parameter properties are expanded.
You can use the Replicates checkbox for any Interfaces containing functions that need to replicate across the server. This is found within the Details tab by first clicking the Class Settings button.