Can I run a function in a specific object on the map using the console? Or maybe I can change the variable value using console
You can do reflection kinda. I am trying to figure out how to pass pointers instead of using text.
But for pointers, using playerControllers UniqueID as a s string, then find the controller by the UID string passed in.
CallRemoteFunction is avaliable with void*Args as an input, but I am yet to figure that out.
Hope this can help
void MyClass::BeginPlay()
{
Super::BeginPlay();
FString functionName = "MyTestFuntion";
FString arg1 = "SomeCoolString";
FOutputDeviceNull ar;
const FString command = FString::Printf(TEXT("%s %i %s"), functionName, 34, *arg1);
CallFunctionByNameWithArguments(*command, ar, this, true);
}
void MyClass::MyTestFuntion(int IntInput, const FString& StringInput)
{
UE_LOG(LogTemp, Warning, TEXT("%i %s"),IntInput, *StringInput);
}
EDIT:: TFunctions are what we are both looking for I think.
Or this lol
https://nerivec.github.io/old-ue4-wiki/pages/function-pointers.html
Yes, and you don’t need C++ for it. ke * MyFunction 10 calls a function or custom event on everything in the world that has it, and `set BP_Door_C bLocked false` changes a variable on every instance of that class. You have to know the exact names though, and ke doesn’t show what the function returned.
I made a plugin that makes this easier (full disclosure, it’s mine): Actor Console | Fab , UE 5.6+. There it’s @Door.bLocked false or @Door.Open() using the name from the Outliner, with autocomplete, and it prints the result.