ひとつひとつお答えしていきますね。
①BlueprintFunctionLibrary等GetWorldを使用しない場合のWorld情報の取得方法
// Header定義
UFUNCTION(BlueprintCallable, Category="Example",meta=(WorldContext="WorldContextObject"))
static void ExampleFunction(UObject* WorldContextObject);
// cpp定義
void UExampleFunctionLibrary::ExampleFunction(UObject* WorldContextObject)
{
// DoAnything.
}
上記のようにmeta指定子を使ってWorldContextというものを使います。
引数のWorldContextObjectには呼び出し側がUObjectを継承していれば、thisを渡してやればいいです。
呼び出し例(UObjectを継承したクラス)
UExampleFunctionLibrary::ExampleFunction(this);
②ExecuteConsoleCmmandの定義
下記に定義が書かれています
Engine\Source\Runtime\Engine\Classes\Kismet\KismetSystemLibrary.h
Engine\Source\Runtime\Engine\PrivateKismetSystemLibrary.cpp
③ExecuteConsoleCommandのC++側での呼び出し
例としてstat fpsの呼び出しを行っています。
#include "Kismet/KismetSystemLibrary.h"
UKismetSystemLibrary::ExecuteConsoleCommand(this, "stat fps");
第3引数はPlayerControllerが必要ですが、指定しない場合はExecuteConsoleCommand側で取得して呼び出します。
もし自前のPlayerControllerを使用している場合はそちらを第3引数に渡してください。