Windows Native Toolkit

Server Transfer Library

HTTP, HTTPS, FTP upload/download, progress, result, and cancellation nodes.

Use this library for downloads, patchers, launchers, internal tools, and simple FTP-based content pipelines.

Python examples use Unreal's reflected API names through the unreal module. Functions that return handles or use delegates are shown using Unreal Python binding conventions.

Transfer Model

These nodes remain delegate-based instead of latent. Each transfer returns an FNetworkTransferHandle that you can keep and pass into Cancel Network Transfer.

Download File (HTTP/HTTPS)

Downloads a file from an HTTP or HTTPS URL into a local folder. The node resolves the output file name from the URL and writes the file when the request completes successfully.

PinDirectionPurpose
URLInputFull file URL such as https://site.com/files/archive.zip.
SaveDirectoryInputExisting or creatable destination folder.
OnProgressInputDelegate that receives progress from 0.0 to 1.0 when the server reports content length.
OnCompleteInputDelegate that receives true when the file was downloaded and written successfully.
Return ValueOutputFNetworkTransferHandle used for cancellation.
C++ Example
#include "ServerHelper.h"

FOnTransferProgress ProgressDelegate;
FOnTransferComplete CompleteDelegate;

const FNetworkTransferHandle Handle =
    UServerHelper::DownloadFileHTTP(URL, SaveDirectory, ProgressDelegate, CompleteDelegate);
Python Example
import unreal

# Note: Progress and Complete delegates are omitted for simplicity
handle = unreal.ServerHelper.download_file_http(url, save_directory, None, None)

Download Advanced

Downloads an HTTP or HTTPS file with overwrite control, byte-level progress, result details, and optional partial-file cleanup.

PinDirectionPurpose
URLInputFull HTTP or HTTPS file URL.
SaveDirectoryInputExisting or creatable destination folder.
FileNameOverrideInputOptional output file name. Leave empty to resolve the name from the URL.
bOverwriteInputAllows replacing an existing destination file.
bDeletePartialOnFailInputDeletes the target file when the request fails after a file was created.
OnProgressInputDelegate that receives transferred bytes and total bytes when known.
OnCompleteInputDelegate that receives FNetworkTransferResult.
Return ValueOutputFNetworkTransferHandle used for cancellation.

FNetworkTransferResult fields:

  • bSuccess
  • StatusCode
  • SavedFilePath
  • BytesTransferred
  • TotalBytes
  • SHA1
C++ Example
#include "ServerHelper.h"

FOnTransferBytes ProgressDelegate;
FOnTransferResult CompleteDelegate;

const FNetworkTransferHandle Handle = UServerHelper::DownloadAdvanced(
    URL,
    SaveDirectory,
    TEXT("Patch.zip"),
    true,
    true,
    ProgressDelegate,
    CompleteDelegate);
Python Example
import unreal

handle = unreal.ServerHelper.download_advanced(
    url,
    save_directory,
    "Patch.zip",
    True,
    True,
    None,
    None,
)

Upload File Using FTP

Uploads one local file to an FTP directory. The node URL-encodes the file name before appending it to the target FTP folder URL.

PinDirectionPurpose
URLInputFTP folder URL such as ftp://example.com/uploads/.
UserInputFTP user name.
PasswordInputFTP password.
LocalFilePathInputFull local path to the file that should be uploaded.
OnProgressInputDelegate that receives progress from 0.0 to 1.0.
OnCompleteInputDelegate that receives true when the upload completed successfully.
Return ValueOutputFNetworkTransferHandle used for cancellation.
C++ Example
#include "ServerHelper.h"

FOnTransferProgress ProgressDelegate;
FOnTransferComplete CompleteDelegate;

const FNetworkTransferHandle Handle =
    UServerHelper::UploadFileFTP(URL, User, Password, LocalFilePath, ProgressDelegate, CompleteDelegate);
Python Example
import unreal

handle = unreal.ServerHelper.upload_file_ftp(url, user, password, local_file_path, None, None)

Download File Using FTP

Downloads one file from an FTP URL into a local folder. The node resolves the local file name from the FTP URL and removes partially written files when the transfer fails or is canceled.

PinDirectionPurpose
URLInputFull FTP file URL such as ftp://example.com/packages/build.zip.
UserInputFTP user name.
PasswordInputFTP password.
SaveDirectoryInputExisting or creatable destination folder.
OnProgressInputDelegate that receives progress from 0.0 to 1.0.
OnCompleteInputDelegate that receives true when the download completed successfully.
Return ValueOutputFNetworkTransferHandle used for cancellation.
C++ Example
#include "ServerHelper.h"

FOnTransferProgress ProgressDelegate;
FOnTransferComplete CompleteDelegate;

const FNetworkTransferHandle Handle =
    UServerHelper::DownloadFileFTP(URL, User, Password, SaveDirectory, ProgressDelegate, CompleteDelegate);
Python Example
import unreal

handle = unreal.ServerHelper.download_file_ftp(url, user, password, save_directory, None, None)

Cancel Network Transfer

Requests cancellation for an active transfer handle.

PinDirectionPurpose
HandleInputTransfer handle returned by one of the server-transfer nodes.

Cancellation stops the request when the backend honors the cancel flag. It does not delete already uploaded remote data, and it does not remove successful downloads.

C++ Example
#include "ServerHelper.h"

UServerHelper::CancelTransfer(Handle);
Python Example
import unreal

unreal.ServerHelper.cancel_transfer(handle)

Last updated on

On this page