I'm a doctor, not a mechanic

UCC

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

UCC is the Unreal Engine's commandline client, a raw execution enviroment (outside the game) for commandlets implemented in native code or UnrealScript, including the MakeCommandlet for compiling UnrealScript code and the ServerCommandlet for running a dedicated server.

UCC is included in most Unreal Engine games. Important exceptions include Unreal Engine 3 games, early versions of Unreal 1 and certain games of Unreal Engine licensees. These games use the main executable (i.e. Unreal.exe, UT3.exe, etc.) to compile code, run dedicated servers, and so on.

Running commandlets with UCC[edit]

Generally the commandline syntax for running a commandlet is:

ucc commandlet [parameters]

To get a list of known commandlets or help on a specific commandlet use:

ucc help [commandlet]

In both cases, commandlet is the class name of a commandlet implemented in UnrealScript or native code. The possible parameters depend on the commandlet to run. If the commandlet isn't found, UCC appends "Commandlet" to the specified name and tries again. If the commandlet still can't be found, the actual commandlet class is looked up via the "Object=(...)" entries in localization files. For example, if you have a TestCommandlet in package Test.u, you can run it with either of the following commandlines:

ucc Test.Test
ucc Test.TestCommandlet

You could also register it in a localization file with the following line:

Object=(Name=Test.TestCommandlet,Class=Class,MetaClass=Core.Commandlet)

This allows you to run your commandlet with just:

ucc Test

Similarly you could compile UnrealScript code with the command "UCC Editor.MakeCommandlet" instead of the short "UCC Make".

UCC on Linux and Mac OS X[edit]

The Linux and Mac OS X versions of Unreal Engine games usually also come with a UCC executable. It is located in the same directory as the game executable and usually called "ucc-bin" or simply "ucc". The 64 bit version can be distinguished by the "64" in the name of the executable file. The Linux binary works exactly like the Windows version.

It should be mentioned that while UCC works fine under these operating systems, the Unreal Editor does not. This includes any native commandlets requiring an editor environment, such as the MakeCommandlet or the PkgCommandlet. This means you can't compile UnrealScript code or edit packages in other ways with the Linux version of your game.

If you want to run "Windows-only commandlets" under Linux you will need to install the Windows version of your game and run UCC.exe using WINE:

wine UCC.exe commandlet [parameters]

or:

wine UCC.exe help [commandlet]

To save harddisk space you can install the Windows and Linux version of the game in the same directory. Unreal packages are platform-neutral and the other files either have different names in both versions or are the same anyway. Just make sure both versions are at the same patch level, otherwise only the version you last applied a patch to will work. The other version will most likely crash or behave strange in other ways because its private files are incompatible with the shared packages.