Skip to content

Support for return values and output params #621

@dfb

Description

@dfb

It seems that BP functions don't really have return values per se - anything returned from a BP function is an output param.

In C++, however, you can have both a return value as well as zero or more output params, e.g.

UFUNCTION(BlueprintCallable, BlueprintImplementableEvent) FString MyMethod(int vIn, int& vOut);

Currently this doesn't seem to be fully supported - for example, I don't think multiple output params are supported, and if you have a void C++ method with a single output param, there's no way to support it from Python (you get an error saying the signature doesn't match).

Assuming this is the case, I'd like to implement support for multiple output params, as well as supporting UFUNCTIONS that may or may not have return values even if they have output params. So you'd be able to implement the above in Python like this:

def MyMethod(self, i:vIn) -> (str, int):
    return 'Foo', 5

Before I do this work, though, I wanted to see if you have any objections/concerns, or if you know of someone already working on it. Thanks!

(P.S. Is opening tickets like this the best way to talk to you about questions like this or would you prefer email? This works for me, but I don't want to be abusing the issues list if you'd prefer a different format)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions