There is no spoon

Legacy:INT File

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

INT files are one of the Unreal Engine's file formats. These files are used by the Unreal engine for reference. Instead of searching all the packages made accessible to it to find the resources it's looking for, it simply reads the lists of resources contained in these files. In addition, they are used for language localization and that's the origin of the file extension .int for "international" as well.(You can do so many things with .int files, we could make a tutorial just for them – Wormbo)

These (and all other localization files like DET, ITT, FRT, etc.) look much like INI files. They consist of one or more sections which start with the section's name in brackets followed by Key=Value pairs.

File Content[edit]

Public Section[edit]

The [Public] section can take two different keys, Object and Preferences. These can be used as often as needed.

Object[edit]

General syntax:

Object=(Name=Package.ObjectName,Class=ObjectClass,MetaClass=Package.MetaClassName,Description="descriptive string")
Name 
Arbitrary name; generally, must refer to an existing class. (Though that's no engine requirement. If you work with GetNextIntDesc to retrieve Object keys yourself, the Name argument can be anything.)
Class 
Class of the object described by this line. In many cases, that's simply Class if the Object line refers to a class.
MetaClass 
Common superclass of all objects described in Object lines that belong together; for mutators, that'd be Engine.Mutator, for instance. (This class name is used as GetNextIntDesc's first parameter.)
Description 
Arbitrary description (optional), also retrieved by GetNextIntDesc.

In UT, Object entries are used to make the following items known to the game:

Item MetaClass Name Explanation
Mutator Engine.Mutator Mutator subclass Registers a mutator to make it show up in the Mutators dialog box when starting a game. Description is "Name,Description".
Game Type Botpack.TournamentGameInfo TournamentGameInfo subclass Registers a game type to make it show up in the Game Type drop-down box when starting a game. Description is optional and specifies the game type's category.
Key Bindings UTMenu.UTExtraKeyBindings UTExtraKeyBindings subclass Displays the extra key bindings defined in the given class's default properties in the standard key binder dialog.
Map List Engine.MapList MapList subclass Uses the maps in the given class's default properties as the default map list for this game type.
Mod Menu Item UMenu.UMenuModMenuItem UMenuModMenuItem subclass Puts an item in the Mods menu. Description is optional and uses the structure "Item Caption,Description".
Server Browser Tab UTBrowser.UTBrowserServerListWindow UTBrowserServerListWindow subclass Displays a new tab in Unreal Tournament's built-in server browser.
Weapons (Unreal) Engine.Weapon Weapon (UT) subclass Registers weapons that are not a subclass of TournamentWeapon. Not used in UT, but some custom weapon priority tools use it.
Weapons (Unreal Tournament) Botpack.TournamentWeapon TournamentWeapon subclass Registers weapons that are a subclass of TournamentWeapon. In UT only members of the Botpack package are displayed in the priority window, but some custom weapon priority tools can display all weapons.

In UT2003 the following Object entries are used:

Item MetaClass Name Explanation
Mutator Engine.Mutator Mutator subclass Registers a mutator to make it show up in the Mutators dialog box when starting a game. Description is not used in the GUI, but is nevertheless specified for the default mutators.
Game Type Engine.GameInfo GameInfo subclass Registers a game type to make it show up in the Game Type drop-down box when starting a game. Description is important and takes the form "A|B|C|D|E" with the following meanings:
  • A = Prefix of the maps used by this game type
  • B = Gametype's display name.
  • C = a Tab_InstantActionBaseRules subclass that - loads a class that allows mod author to change the tab for the game type options
  • D = A MapList class used to save the current map list selection.
  • E = "true" for teamgames, "false" otherwise
Weapons Engine.Weapon Weapon subclass

" to create line breaks in the description. |}

UT2004 has replaced the use of INT files for listing weapons, mutators, gametypes, vehicles, crosshairs, announcers and maps with a new cache library system, where class names and their cacheable properties are automatically exported to UCL ("Unreal Cache Library") files when compiling those classes. It does use INT files for voicepacks, though:

Item MetaClass Name Explanation
Voicepack XGame.xVoicePack xVoicePack subclass Registers a voicepack to make it show up in the character selection screen. Description is not specified.

Preferences[edit]

General syntax:

Preferences=(Caption="display name",Parent="display name of parent",Class=Package.ClassName,Category=variable group name,Immediate=True)

This is used to create the options available in the UnrealEd Advanced Options window.
Either Class, Category and Immediate are left out or Class has to be a valid UnrealScript class and Category should be a variable group used in that class. (see Variable Syntax)

Localization Sections[edit]

Used to localize strings to different (natural) languages. (also see Localization)

To create a class variable with different default values for different languages use this syntax in an UnrealScript class:

class aClassName extends aSuperClass< SEMI >
 
var localized string Description;
var localized float SoundLength;
 
defaultproperties
{
     Description="An example class showing localization."
     SoundLength=2.750000
}

This class is part of a package Example.u.

You can now create localized versions of this class by writing the corresponding localization files. This will be easier if you use UnrealEd to create the international (English) version of this file first. Open UnrealEd, load Example.u and type "dumpint example" at the console. UnrealEd created the file Example.int for you which contains all localizable variables that have been set in the defaultproperties.

For this example the file will look like this:

[aClassName]
Description=An example class showing localization.
SoundLength=2.750000

You can copy this file and change the extension to the desired language, e.g. DET. Now you can translate the strings and adjust the other variables to suit the new language:

[aClassName]
Description=Eine Beispielklasse, die Localization veranschaulicht.
SoundLength=2.930000

Since the name of the new file is Example.det the values in it automatically become the default values of aClassName when this language is selected.

Note: You can't use dumpint in UnrealEd due to a bug in the current UT2003 version. UnrealEd will crash if you try. Use: ucc dumpint <package(s)> instead.

UnrealScript Functions[edit]

Available in all versions of the UnrealEngine[edit]

string GetNextInt (string ClassName, int Num) 
Returns the Class string from an Object entry for the MetaClass given by ClassName. Num is an index, starting from 0 (zero), that specifies which (of multiple matching) entries to get. The function returns an empty string if Num exceeds the number of available matching entries. Warning: ClassName must refer to a valid, loaded class, or the game will crash.
GetNextIntDesc (string ClassName, int Num, out string Entry, out string Description) 
Like GetNextInt, but retrieves more detailed information about the Object entry, including the content of the Description argument.
string Localize (string SectionName, string KeyName, string PackageName) 
Returns the localized string value of the item given by KeyName in the section given by SectionName for the package PackageName. Only rarely needed thanks to the localized keyword in variable declarations that automatically performs this lookup. (Can be very handy for read-only configuration files though.)

Available in UnrealEngine2[edit]

GetAllInt (string MetaClass, array<string> Entries) [static] 
Similar to GetNextInt(), but returns all entries for the MetaClass in the Entries array. (Seems to work even though the out parameter modifier is missing?)
GetAllIntDesc (string MetaClass, out array<string> Entry, out array<string> Description) [static] 
Similar to GetNextIntDesc(), but returns all entries and their descriptions through the Entry and Description arrays.

Localized versions[edit]

Known versions 
  • .DET - German
  • .EST - Spanish
  • .FRT - French
  • .INT - English
  • .ITT - Italian
  • .KOT - Korean
  • .TCT - Czech
  • .RUT - Russian

Related Topics[edit]

Discussion[edit]

JoeDark: Snagged the GameType part from the mailing list. I'm not sure exactly on the etiquette of such things, should I have asked DJPaul before posting it here (it was his post)? Or is it considered public domain? At any rate, I couldn't find any better place to put it. Also, did someone want to place the UT stuff on a seperate page or is all of this still relevent to UT2003?

Wormbo: I started a new table for UT2k3 INT stuff from what I found out from looking at the INT files and the code handling them.

DJPaul: JoeDark - it was my post, it is considered public domain (that sort of info), and you're more than welcome to quote anything usefull I say here.

SuperApe: What are all the known extentions for the files containing localized strings in other languages? (.DET is German, What are the others?)

Jan:

  • .DET - German
  • .EST - Spanish
  • .FRT - French
  • .INT - English
  • .ITT - Italian
  • .KOT - Korean

But I don't know .SMT & .TMT

Switch:` Guessing:

  • .SMT - Simplified Mandarin
  • .TMT - Traditional Mandarin

SuperApe: That's great. Yeah, .KOT must be Korean. There's several stock font textures of Korean characters. I'm finding people to translate my .INT file so I can release it to foriegn language sites announcing or hosting my mutator.

Xian: Did any of you find any SMT or TMT file definitions or are you just guessing ?

SuperApe: Switch was guessing, but doing a little searching, it appears that the guess is likely correct. EDIT: To confirm, it has been suggested that UT2003 patch files may include .SMT and .TMT files, so one with a knowledge of Simplified/Traditional Mandarin could take a look at those files and give a definitive answer.