Contact(ENG,GER): unrealmarketplace@virtualbird.de

Plugin is located, after the installation via the launcher, in the directory: Engine\Plugins\Marketplace
If you use the Unreal GIT version you have to copy the plugin into your project: D:\myproject\Plugins\FTPClient


Also check out the demo project.

Version 1.0 (Plugin Version 1.x, UE4.19 or higher )
Version 2.0 (Plugin Version 2.x, UE4.27 or higher )
Windows Demo



Examples for the plugin version 2.0 and higher are shown here. If you use an older plugin version or want to use the delegate events you can have a look at the old documentation here.









Connect and Disconnect




List




FTP Working Directory




Download File




Upload File




Download Directory



FTP commands



Here is a list with FTP commands. Not all were tested.
Command RFC Description
ABOR Abort an active file transfer.
ACCT Account information.
ADAT RFC 2228 Authentication/Security Data
ALLO Allocate sufficient disk space to receive a file.
APPE Append (with create)
AUTH RFC 2228 Authentication/Security Mechanism
AVBL Streamlined FTP Command Extensions Get the available space
CCC RFC 2228 Clear Command Channel
CDUP Change to Parent Directory.
CONF RFC 2228 Confidentiality Protection Command
CSID Streamlined FTP Command Extensions Client / Server Identification
CWD RFC 697 Change working directory.
DELE Delete file.
DSIZ Streamlined FTP Command Extensions Get the directory size
ENC RFC 2228 Privacy Protected Channel
EPRT RFC 2428 Specifies an extended address and port to which the server should connect.
EPSV RFC 2428 Enter extended passive mode.
FEAT RFC 2389 Get the feature list implemented by the server.
HELP Returns usage documentation on a command if specified, else a general help document is returned.
HOST RFC 7151 Identify desired virtual host on server, by name.
LANG RFC 2640 Language Negotiation
LIST Returns information of a file or directory if specified, else information of the current working directory is returned.
LPRT RFC 1639 Specifies a long address and port to which the server should connect.
LPSV RFC 1639 Enter long passive mode.
MDTM RFC 3659 Return the last-modified time of a specified file.
MFCT The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modify the creation time of a file.
MFF The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modify fact (the last modification time, creation time, UNIX group/owner/mode of a file).
MFMT The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modify the last modification time of a file.
MIC RFC 2228 Integrity Protected Command
MKD Make directory.
MLSD RFC 3659 Lists the contents of a directory if a directory is named.
MLST RFC 3659 Provides data about exactly the object named on its command line, and no others.
MODE Sets the transfer mode (Stream, Block, or Compressed).
NLST Returns a list of file names in a specified directory.
NOOP No operation (dummy packet; used mostly on keepalives).
OPTS RFC 2389 Select options for a feature (for example OPTS UTF8 ON).
PASS Authentication password.
PASV Enter passive mode.
PBSZ RFC 2228 Protection Buffer Size
PORT Specifies an address and port to which the server should connect.
PROT RFC 2228 Data Channel Protection Level.
PWD Print working directory. Returns the current directory of the host.
QUIT Disconnect.
REIN Re initializes the connection.
REST RFC 3659 Restart transfer from the specified point.
RETR Retrieve a copy of the file
RMD Remove a directory.
RMDA Streamlined FTP Command Extensions Remove a directory tree
RNFR Rename from.
RNTO Rename to.
SITE Sends site specific commands to remote server (like SITE IDLE 60 or SITE UMASK 002). Inspect SITE HELP output for complete list of supported commands.
SIZE RFC 3659 Return the size of a file.
SMNT Mount file structure.
SPSV FTP Extension Allowing IP Forwarding (NATs) Use single port passive mode (only one TCP port number for both control connections and passive-mode data connections)
STAT Returns information on the server status, including the status of the current connection
STOR Accept the data and to store the data as a file at the server site
STOU Store file uniquely.
STRU Set file transfer structure.
SYST Return system type.
THMB Streamlined FTP Command Extensions Get a thumbnail of a remote image file
TYPE Sets the transfer mode (ASCII/Binary).
USER Authentication username.
XCUP &1000775 RFC 775 Change to the parent of the current working directory
XMKD &1000775 RFC 775 Make a directory
XPWD &1000775 RFC 775 Print the current working directory
XRCP &1000743 RFC 743
XRMD &1000775 RFC 775 Remove the directory
XRSQ &1000743 RFC 743
XSEM &1000737 RFC 737 Send, mail if cannot
XSEN &1000737 RFC 737 Send to terminal




Status Codes
Code Explanation
100 Series The requested action is being initiated, expect another reply before proceeding with a new command.
110 Restart marker replay . In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the spaces between markers and "=").
120 Service ready in nnn minutes.
125 Data connection already open; transfer starting.
150 File status okay; about to open data connection.
200 Series The requested action has been successfully completed.
202 Command not implemented, superfluous at this site.
211 System status, or system help reply.
212 Directory status.
213 File status.
214 Help message. Explains how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user.
215 NAME system type. Where NAME is an official system name from the registry kept by IANA.
220 Service ready for new user.
221 Service closing control connection.
225 Data connection open; no transfer in progress.
226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
228 Entering Long Passive Mode (long address, port).
229 Entering Extended Passive Mode (|||port|).
230 User logged in, proceed. Logged out if appropriate.
231 User logged out; service terminated.
232 Logout command noted, will complete when transfer done. Alternatively: User logged in, authorized by security data exchange.
234 Specifies that the server accepts the authentication mechanism specified by the client, and no security data needs to be exchanged.
235 Specifies that the server accepts the security data given by the client, and no further security data needs to be exchanged.
250 Requested file action okay, completed.
257 "PATHNAME" created.
300 Series The command has been accepted, but the requested action is on hold, pending receipt of further information.
331 User name okay, need password.
332 Need account for login.
334 Specifies that the server accepts the authentication mechanism specified by the client, but some security data needs to be exchanged.
335 Specifies that the server accepts the security data given by the client, but further security data needs to be exchanged.
350 Requested file action pending further information
400 Series The command was not accepted and the requested action did not take place, but the error condition is temporary and the action may be requested again.
421 Service not available, closing control connection. This may be a reply to any command if the service knows it must shut down.
425 Can't open data connection.
426 Connection closed; transfer aborted.
430 Invalid username or password
434 Requested host unavailable.
450 Requested file action not taken.
451 Requested action aborted. Local error in processing.
452 Requested action not taken. Insufficient storage space in system. File unavailable (e.g., file busy).
500 Series Syntax error, command unrecognized and the requested action did not take place. This may include errors such as command line too long.
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
530 Not logged in.
532 Need account for storing files.
534 Request denied for policy reasons.
550 Requested action not taken. File unavailable (e.g., file not found, no access).
551 Requested action aborted. Page type unknown.
552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
553 Requested action not taken. File name not allowed.
600 Series Replies regarding confidentiality and integrity
631 Integrity protected reply.
632 Confidentiality and integrity protected reply.
633 Confidentiality protected reply.
10000 Series Common Winsock Error Codes[2] (These are not FTP return codes)
10054 Connection reset by peer. The connection was forcibly closed by the remote host.
10060 Cannot connect to remote server.
10061 Cannot connect to remote server. The connection is actively refused by the server.
10065 No route to host / DNS cannot be resolved.
10066 Directory not empty.
10068 Too many users, server is full.




Contact(ENG,GER): unrealmarketplace@virtualbird.de