UFunction->Invoke

Got it.

This is how i got the values from the out parameters after calling ProcessEvent:

for (TFieldIterator<UProperty> PropIt(theFunction, EFieldIteratorFlags::ExcludeSuper); PropIt; ++PropIt)
		{
			UProperty* Property = *PropIt;

			bool isOut = Property->HasAnyPropertyFlags(CPF_OutParm);
			if (!isOut)
				continue;

			uint8* outValueAddr = Property->ContainerPtrToValuePtr<uint8>(Buffer);
			float* floatp = (float*)outValueAddr;//hardcoded example for float
		}

By the way, this is how the buffer was created:

uint8* Buffer = (uint8*)FMemory_Alloca(theFunction->ParmsSize);

And then i fill it with the parameters.