Why am I unable to edit and script functions for my interface?

Total newb here, so excuse my stupidity.
Im trying to create a function in a Blueprint Interface and the function Blueprint is greyed out, I cant edit or do anything to it. What do I need to do to be able to edit it and start scripting the functions for my interface?

I have the same problem, 4.8 version.

Hi Tree Fiddy,

I may be wrong as I haven’t worked with blueprint interfaces, but I believe that you cannot create functions inside of interfaces, though I’ll have to check up on that. I’ll get back to you when I have access to the engine with a more definite answer.

Good lucK!

I´m having same probem…and i having big trouble because of this (i have many BP interface migrated from 4.6…)

:confused:

For future people with the same problem: (UE 4.8)

If you’re trying to change the inputs/outputs of the interface, make sure you click the function in the “Functions” tab/window and you’ll be able to do so under the “Details” tab/window.

If that’s not your issue and you’re unfamiliar with interfaces read below:

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.

https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/Types/Interface/index.html

It’s grayed out because you’re not meant to implement the function in the interface. Interfaces are just names of functions. This is useful because you might want to do something that has a different implementation depending on the context. For example, you have a person blueprint. You want to be able to make this person “die” with a “die” function, however, you have a lot of other things that will also die in your game. You can make that die function an interface and have your animal blueprint implement its own version… so now you can use the die function elsewhere without caring if it’s an animal or person or whatever blueprint is implementing die.

This answer explains how to use an interface step-by-step:

If you’re still having trouble:

The implementation for the interface function should be done in the Blueprint class that uses that interface. For example, you need to pass a variable from Blueprint A to Blueprint B. First you create an Interface X and implement interface X in Blueprint A. Then, in Blueprint B, you get a reference to an instance of Blueprint A and call Interface X to get what you need.

In the example in the above link, GetByte is “Interface X”, Blueprint A is “My Character”, Blueprint B is “My TestBlueprint”.

The “Get Player Character” function is used to get a reference to the instance of “My Character” that you want and then “GetByte” is called, all this is being done inside “My TestBlueprint”.

If you’re familiar with Object Oriented Programming… that example is basically like implementing the interface as a simple “getter” function. If not, just ignore that statement and try re-reading the official description (the quote at the top of this answer) until you get it.