Plugin Documentation

IPScout
Public IP lookup for Blueprint and C++

Finds the public (internet-facing) IP address of the machine running your game with one asynchronous call and delivers it through an event.

v1.0
UE 4.27 & 5.8
Win64 (verified)
Category Networking
Alpha XP

Overview

IPScout asks a lookup service for the public IP address of the current machine. The request runs asynchronously through the engine's HTTP module, so the game thread never waits, and the result is broadcast through a Blueprint-assignable event. It is useful for lobbies and server browsers, listen-server hosting screens, dedicated test servers and your own backends.

  • One call starts the lookup: Get My Public IP.
  • The result arrives in On IPAddress Received; the IP is an empty string if the request failed.
  • Get Cached IP returns the last received address at any time.
  • By default the free public ipify service (api.ipify.org, JSON format) is queried; Override APIUrl and Override JSONKey point IPScout at any other service that answers with a flat JSON object.
  • Only the engine's HTTP and Json modules are used.

Requirements

RequirementDetails
Unreal Engine4.27 and 5.8 (verified clean on both)
ModulesIPScout (Runtime)
DependenciesNone. No other plugins are required; the engine HTTP and Json modules are used.
LanguageBlueprints and C++
PlatformsThe plugin has no platform restriction. Win64 is built and verified by Alpha XP; other platforms are supported by the code, not verified by Alpha XP. The machine needs internet access.

Installation

  1. Close the editor. Copy the IPScout folder into your project's Plugins folder (create it if needed), or install the plugin to the engine from the launcher.
  2. Open the project. For C++ projects, rebuild when the editor asks you to compile the plugin.
  3. Open Edit > Plugins, find IPScout in the Networking category, enable it and restart the editor.
  4. C++ only: add "IPScout" to PublicDependencyModuleNames (or PrivateDependencyModuleNames) in your module's .Build.cs.
Verifying the installRight-click in a Blueprint graph, add Construct Object from Class and open its class list: the class IPScout must be listed.

Quick start

Blueprint

  1. In an actor or game instance Blueprint, add Construct Object from Class with class IPScout and promote the result to a variable so it is not garbage collected while the request is running.
  2. From the variable, drag out and add Bind Event to On IPAddress Received; create a custom event with a string input IP.
  3. Call Get My Public IP on the variable.
  4. When the response arrives the custom event fires with the address (empty if the request failed). Later, Get Cached IP returns the same value.

C++

// MyActor.h
#include "IPScout.h"

UPROPERTY()
UIPScout* Scout = nullptr;

UFUNCTION()
void HandleIP(FString IP);

// MyActor.cpp
void AMyActor::BeginPlay()
{
    Super::BeginPlay();

    Scout = NewObject<UIPScout>(this);
    Scout->OnIPAddressReceived.AddDynamic(this, &AMyActor::HandleIP);
    Scout->GetMyPublicIP();
}

void AMyActor::HandleIP(FString IP)
{
    UE_LOG(LogTemp, Log, TEXT("Public IP: %s"), *IP);
}

IPScout API

All members belong to the class UIPScout (shown as IPScout in the editor, category IPScout). Create an instance with Construct Object from Class (Blueprint) or NewObject<UIPScout>() (C++).

NodeTypeDescription
IPScoutClassBlueprintable UObject (UIPScout) that performs the lookup and stores the last result.
Get My Public IPCallableClears the cached address and starts the HTTP request to the configured service.
Get Cached IPPureLast received address, or an empty string if no response has arrived yet (a warning is logged in that case).
Override APIUrlCallableReplaces the lookup URL (default api.ipify.org with JSON format). Call before Get My Public IP.
Override JSONKeyCallableName of the JSON field that holds the address in the response (default ip). Flat JSON objects only.
On IPAddress ReceivedEventEvent dispatcher (FString IP) broadcast when the request finishes; the IP is empty if the request failed.
Log outputMessages are written to the LogIPScout category of the Output Log.

Troubleshooting

SymptomCause and fix
On IPAddress Received fires with an empty string.The request failed (no internet access, firewall or proxy, service unreachable). The Output Log shows IPScout: request failed. Check connectivity or point Override APIUrl to a reachable service.
The event never fires.The IPScout object was garbage collected before the response arrived. Store it in a variable (Blueprint) or a UPROPERTY() member (C++), and bind the event before calling Get My Public IP.
A custom service returns the address but the result is empty.IPScout parses a flat JSON object. Call Override JSONKey with the name of the field that holds the address; plain-text responses are not parsed.
Warning IPScout: public IP address not obtained yet. Processing...Get Cached IP was called before a response arrived, or right after a new Get My Public IP (which clears the cached value). Wait for the event.

Credits

© 2026 Alpha XP — alphaxp.net · Support: support@alphaxp.net. Built and verified for Unreal Engine 4.27 and 5.8.