Infinity Functions

A list of all Infinity_XXX() lua functions found by scanning game executables and the various lua and menu files.

“I’ve tried to compile a list of all Infinity_XXX() function I could find by scanning game executables and the various lua and menu files, but there are still many unknown or unclear parameters and return values. There are no function descriptions either, but many function names are (more or less) self-explanatory.”

argent77

Function

Description

Infinity_ActivateInventory

Opens and activates the inventory screen and updates stats for the character

Infinity_ActivateRecord

Opens and activates the level up dialog

Infinity_AddDLC

Add DLC to game

Infinity_AddDLCContent

Add DLC content to game

Infinity_CanCloudSave

Determines if cloud saves are supported by the platform

Infinity_CanLevelUp

Determines if the specified character can level up

Infinity_ChangeOption

Set the value of an option in a panel

Infinity_CheckItemIdentify

Checks lore skill for identifying an item in an inventory slot

Infinity_ClickItem

Infinity_ClickObjectInWorld

Clicks the ground at the location of the object in the world

Infinity_ClickScreen

Clicks the center of the viewscreen

Infinity_ClickWorldAt

Clicks the ground at the specified coordinates, relative to the viewscreen

Infinity_CloseEngine

Close active engine - unknown

Infinity_DestroyAnimation

Remove UI items that match the specified template name

Infinity_DisplayString

Displays to the screen the passed content as a string

Infinity_DoFile

Loads and executes the lua file specified

Infinity_EnterEdit

Enters new text into a UI edit control

Infinity_FetchString

Returns the string for the string reference id specified

Infinity_FindItemWithBam

Find a UI control that has the specified bam resource reference

Infinity_FindItemWithText

Find a UI control that has the specified text

Infinity_FindUIItemByName

Find a UI item by the name specified

Infinity_FocusTextEdit

Set the keyboard focus to the specified text edit contol

Infinity_GetArea

Returns the bounding rectangle (area) for the specified UI Control name

Infinity_GetClockTicks

Returns the clock tick count in milliseconds

Infinity_GetContainerItemDescription

Updates the description of an item from a specified slot in a container

Infinity_GetContentHeight

Returns the height of the text content in a UI control

Infinity_GetCurrentGroundPage

Returns the current page number of the ground inventory slots

Infinity_GetCurrentMovie

Returns the current movie

Infinity_GetCurrentScreenName

Returns current menu name

Infinity_GetFilesOfType

Returns a list of files that match the specified file extension

Infinity_GetFrameCounter

Returns frame counter

Infinity_GetGameTicks

Returns game ticks

Infinity_GetGroundItemDescription

Infinity_GetGroupItemDescription

Infinity_GetInCutsceneMode

Infinity_GetINIString

Returns a string containing an ini section key value

Infinity_GetINIValue

Returns an integer value containing an ini section key value

Infinity_GetListHeight

Returns the height of the sepcified UI List control

Infinity_GetMaxChapterPage

Returns the chapter number that the game campaign is at currently

Infinity_GetMaxGroundPage

Returns maximum ground pages

Infinity_GetMenuArea

Returns the bounding rectangle (area) for the specified UI Menu name

Infinity_GetMenuItemByName

Returns the UI menu item that has the specified name

Infinity_GetMousePosition

Returns mouse position

Infinity_GetNumCharacters

Returns total number of characters currently in the party

Infinity_GetOffset

Get the position of a menu on the screen

Infinity_GetOption

Get the value of an option in a panel

Infinity_GetPasswordRequired

Updates the passwordReq lua variable with the password requirement

Infinity_GetPortraitTooltip

Returns a string containing the tooltip for a specified portrait index

Infinity_GetScreenSize

Returns the width and height of the screen

Infinity_GetScriptVarInt

Returns the value of a script variable as an integer

Infinity_GetScrollIdentifyEnabled

Determines if the specified item requires identification, and can be identified via a scroll

Infinity_GetSelectedCharacterName

Returns a string containing the currently selected character’s name

Infinity_GetSpellIdentifyEnabled

Determines if the specified item requires identification, and can be identified via a spell

Infinity_GetTimeString

Returns a formatted date and time string

Infinity_GetTransitionInProgress

Returns the transition value

Infinity_GetUseButtonText

Returns “Use x” button text of an item name for an item specified

Infinity_GooglePlaySignedIn

Determines if signed into Google Play

Infinity_HighlightJournalButton

Unknown purpose, returns false

Infinity_HoverMouseOver

Moves where your mouse cursor is in the game world

Infinity_HoverMouseOverObject

Activate AI script file for object that mouse is hovering over

Infinity_InstanceAnimation

Creates a temporary single instance animation of a bam

Infinity_IsItemEnabled

Infinity_IsMenuOnStack

Infinity_IsPlayerMoving

Infinity_JoinMultiplayerGame

Infinity_LaunchURL

Infinity_LevelUp

Opens level up dialog

Infinity_Log

Infinity_LookAtObjectInWorld

Infinity_LuaConsoleInput

Infinity_OnAddUserEntry

Infinity_OnCharacterImportItemSelect

Infinity_OnCharacterItemSelect

Infinity_OnEditUserEntry

Infinity_OnGroundPage

Infinity_OnPortraitDblClick

Infinity_OnPortraitItemSelect

Infinity_OnPortraitLClick

Infinity_OnPortraitRClick

Infinity_OnRemoveUserEntry

Infinity_OnRest

Infinity_OnScriptItemSelect

Infinity_OnScrollIdentify

Infinity_OnSoundItemSelect

Infinity_OnSpellIdentify

Infinity_OnUseButtonClick

Infinity_OpenInventoryContainer

Infinity_PlayMovie

Infinity_PlaySound

Infinity_PopMenu

Infinity_PressKeyboardButton

Infinity_PushMenu

Infinity_RandomNumber

Infinity_RemoveINIEntry

Infinity_RequestMultiplayerGameDetails

Infinity_ScaleToText

Infinity_ScrollLists

Infinity_SelectDialogueOption

Infinity_SelectItemAbility

Infinity_SelectListItem

Infinity_SendChatMessage

Infinity_SetArea

Infinity_SetBackground

Infinity_SetCloudEnabled

Infinity_SetGooglePlaySigninState

Infinity_SetHairColor

Infinity_SetHighlightColors

Set a color or color gradient for UI elements in the options dialogs

Infinity_SetINIValue

Sets a value of an ini section key

Infinity_SetKey

Infinity_SetLanguage

Infinity_SetMajorColor

Infinity_SetMinorColor

Infinity_SetOffset

Infinity_SetOverlay

Infinity_SetScreenSize

Infinity_SetScrollTop

Infinity_SetSkinColor

Infinity_SetToken

Infinity_ShutdownGame

Infinity_SignInOutButtonEnabled

Infinity_SplitItemStack

Infinity_StartItemCapture

Infinity_StartKeybind

Infinity_StopItemCapture

Infinity_StopKeybind

Infinity_StopMovie

Infinity_SwapSlot

Infinity_SwapWithAppearance

Infinity_SwapWithPortrait

Infinity_TakeScreenshot

Infinity_TextEditHasFocus

Infinity_TransitionMenu

Infinity_UpdateCharacterRecordExportPanel

Infinity_UpdateCloudSaveState

Infinity_UpdateInventoryRequesterPanel

Infinity_UpdateLuaStats

Infinity_UpdateStoreMainPanel

Infinity_UpdateStoreRequesterPanel

Infinity_WriteINILine


Infinity_ActivateInventory

Opens and activates the inventory screen and updates stats for the character

Infinity_ActivateInventory()

Notes

Calls CScreenInventory::ResetGroundPile and CScreenInventory::UpdateLua, which in turn calls CGameSprite::UpdateLuaStats

Updates ability scores, stats, skills, equiptment, paperdoll and items for display in the inventory screen for the current character

Example

Infinity_ActivateInventory()

Infinity_ActivateRecord

Opens and activates the level up dialog

Infinity_ActivateRecord(index)

Parameters

  • integer index - 0 based index of the character to level up

Notes

Calls CScreenCharacter::OnLevelUpButtonClick to open and activate the level up dialog

Example

Enables the level up button if character 5 (index 4) can level up, and on clicking the enabled button, the action opens the level up dialog via Infinity_ActivateRecord:

button
{
    enabled "Infinity_CanLevelUp(4)"
    bam GUIOSW
    area 0 382 44 44
    sequence 0
    action "Infinity_ActivateRecord(4)"
    pulse 1
}

Infinity_AddDLC

Add DLC to game

Infinity_AddDLC(name,image,title,description,ios_name,purchased,android_name)

Parameters

  • string name - text or ResRef ?

  • string image - DLC image - ResRef to image ?

  • integer title - long pointer to string or StrRef ?

  • integer description - long pointer to string or StrRef ?

  • string ios_name - text or ResRef ?

  • integer purchased - date time stamp ?

  • string android_name - text or ResRef ?

Notes

Fills in a CDLC structure from the parameters passed and calls the DLCInsert function, which is defined as:

void __cdecl DLCInsert(CDLC toInsert);

Only available on ios or android builds ?

See also Infinity_AddDLCContent

Example

No known example


Infinity_AddDLCContent

Add DLC content to game

Infinity_AddDLCContent(name,dlc_id)

Parameters

  • string name - text or ResRef ?

  • integer dlc_id - dlc id

Notes

Fills in a CDLC_Content structure from the parameters passed and calls the DLCInsertContent function, which is defined as:

void __cdecl DLCInsertContent(CDLC_Content toInsert);

Only available on ios or android builds ?

See also Infinity_AddDLC

Example

No known example


Infinity_CanCloudSave

Determines if cloud saves are supported by the platform, for example Steam.

Infinity_CanCloudSave()

Return Value

Returns a boolean value: true if cloud saves are supported on the platform or false otherwise

Notes

Calls CPlatform::IsPlatformServiceConnected and reads CBaldurChitin.m_cChitin => CChitin.cSteam => CSteam.m_isSteamConnected

Example

if Infinity_CanCloudSave() == false and (toggleTitles[1][3] == 60 or toggleTitles[2][3] == 60) then
    removeOptionFromList(toggleTitles,60)
end

Infinity_CanLevelUp

Determines if the specified character can level up - has enough experience points to qualify for a level up.

Infinity_CanLevelUp(index)

Parameters

  • integer index - 0 based index of the character to check if level up is available for

Return Value

Returns a boolean value: true if character can level up or false otherwise

Notes

Example

Enables the level up button if character 5 (index 4) can level up, and on clicking the enabled button, the action opens the level up dialog via Infinity_ActivateRecord:

button
{
    enabled "Infinity_CanLevelUp(4)"
    bam GUIOSW
    area 0 382 44 44
    sequence 0
    action "Infinity_ActivateRecord(4)"
    pulse 1
}

Infinity_ChangeOption

Set the value of an option in a panel

Infinity_ChangeOption(option_id,value,panel_id)

Parameters

  • integer option_id - id of the option to set

  • integer value - value to set the option to

  • integer panel_id - id of the panel

Notes

Calls CGameOptions::SetOption

Example

Get the value of option id 1 in panel id 8 (panelID = 8) to a variable ttDelaySLDR and then set option id 1 in panel id 8 (panelID = 8) to the value of the ttDelaySLDR variable

panelID = 8
ttDelaySLDR = Infinity_GetOption(1, panelID)
Infinity_ChangeOption( 1, ttDelaySLDR, panelID)

See also Infinity_GetOption


Infinity_CheckItemIdentify

Checks lore skill for identifying an item in an inventory slot

Infinity_CheckItemIdentify(nSlot)

Parameters

  • integer nSlot - slot number that item occupies

Notes

Calls the CScreenInventory::CheckItemIdentify method.

If character has a high enough lore skill value then the item specified in the inventory slot nSlot is identified, the item’s name and description is updated in the inventory slot and in any quick slot buttons that it currently occupies.

Example

function showItemDescriptionInventory(slotName)
    if(characters[id].equipment[slotName].empty ~= 0) then
        return
    end

    selectedSlot = slotName

    Infinity_CheckItemIdentify(characters[id].equipment[slotName].id)
    showItemDescription(characters[id].equipment[slotName].item, 0)
end

Infinity_ClickItem

Infinity_ClickItem(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_ClickObjectInWorld

Clicks the ground at the location of the object in the world

Infinity_ClickObjectInWorld(ScriptName)

Parameters

  • string ScriptName - name of the script (for the object) to click the ground at

Return Value

None

Notes

Example

Click the ground at MINSC.BS:

Infinity_ClickObjectInWorld("Minsc")

Infinity_ClickScreen

Clicks the center of the viewscreen

Infinity_ClickScreen()

Parameters

None

Return Value

None

Example

Infinity_ClickScreen()

Infinity_ClickWorldAt

Clicks the ground at the specified coordinates, relative to the viewscreen

Infinity_ClickWorldAt(x,y)

Parameters

  • integer x - x coordinate to click world at

  • integer y - y coordinate to click world at

Return Value

None

Notes

“Appears entirely broken. It seems to always click the top-left of the current viewscreen”

Bubb

If your mouse cursor is not in the world (such as on the ActionBar or on a SideBar), it clicks on the world coordinates at 0, 0

If you don’t include Infinity_HoverMouseOver before Infinity_ClickWorldAt, it will click at world coordinates 0, 0 by assuming your cursor is over the interface.

You can force a click in the game world like so:

Infinity_HoverMouseOver(x,y)
Infinity_ClickWorldAt(x,y)

Example

Infinity_ClickWorldAt(100,200)

Infinity_CloseEngine

Close active engine - unknown

Infinity_CloseEngine()

Parameters

None

Return Value

None

Notes

Unknown as to the purpose of this function - best leave it alone.

Example

No known examples


Infinity_DestroyAnimation

Remove and free memory for the UI items that match the template name and instance id specified

Infinity_DestroyAnimation(instanceId,templateName)

Parameters

  • integer instanceId - instance id

  • string templateName - name of the template to remove

Return Value

None

Notes

Calls uiRemoveFromTemplate function, defined as:

void __cdecl uiRemoveFromTemplate(CString sTemplate, int id);

Example

No known examples


Infinity_DisplayString

Displays to the screen the passed content as a string

Infinity_DisplayString(...)

Parameters

  • - special, see notes

Return Value

None

Notes

Similar to printf function, this function can accept a variable amount of parameters. Each parameter passed is evaluated, converted to a string if necessary and concatenated to form the final string to display on the screen.

Parameters that are:

  • Integers - converted to a string.

  • Variables - evaluated and the value of the variable is taken and converted to a string.

  • Functions - evaluated and the result used in other nested functions and/or evaluated to a string.

Paramters supports simple math and other lua functions.

You can inline concatenate strings and variables by using .. between the string and variable and/or the next parameter, for example the class variable is concatenated to the string:

Infinity_DisplayString("WARNING: unrecognized class argument: " .. class)

Examples

Display to screen using inline concatenate using 2 parameters, both using a string and a variable to evaluate:

Infinity_DisplayString("config: "..config..", state: "..state)

Display to screen the result of simple math: (result is displayed as 20000001):

Infinity_DisplayString(20000000 + 1)

Infinity_DoFile

Loads and executes the lua file specified

Infinity_DoFile(filename)

Parameters

  • filename - full filepath to lua filename to load and process

Notes

The includes.lua file used by the game engine uses Infinity_DoFile to setup the lua environement for the UI.MENU and provides support for running any lua file that begins with M_ found in the games override folder. The M_ lua files are designated for modders.

Example

Load and execute the lua file: MyLuaFile.lua:

Infinity_DoFile("MyLuaFile")

Infinity_EnterEdit

Enters new text into a UI edit control

Infinity_EnterEdit(newText,oldText)

Parameters

  • string newText - string containing the new text content

  • string oldText - string containing the old text content to replace

Return Value

None

Notes

Searches through all UI edit controls looking for one that has a string containing oldText and replaces it with the newText string.

Reads uiItem.edit => uiItem::edit.var to compare against oldText, if it matches then it is replaced with newText

Not tested or verified

Example

Infinity_EnterEdit("New text to replace","This is a test")

Infinity_FetchString

Returns the string for the string reference id specified

Infinity_FetchString(StrRef)

Parameters

  • integer StrRef - the string reference (StrRef) id to fetch

Return Value

Returns the string for the StrRef id specified in the StrRef parameter

Notes

Calls the CTlkTable::Fetch method to fetch the StrRef string into a STR_RES structure and pushes STR_RES.szText => CString.m_pchData onto the lua stack.

Example

Returns the string for StrRef 38848 (“Greetings, good customer. A pearl to you.”):

pearl = Infinity_FetchString(38848)


Infinity_FindItemWithBam

Find a UI control that has the specified bam resource reference

Infinity_FindItemWithBam(BamResRef,Sequence)

Parameters

  • string - BamResRef - the resource reference (ResRef) to search for that matches an existing UI control’s bam ResRef

  • integer - Sequence - the bam sequence to match as well (optional)

Return Value

Returns userdata version of the item (a pointer to the uiItem structure of the matched UI control or a lua NIL)

See notes for further details.

Notes

Searches through all UI controls from the main stack menu and linked list of UI controls:

  • Reads uiMenu.items for an array of pointers. Each pointer in the array is a uiItem structure.

  • Reads offset 0x98: uiItem.bam => uiItem::bam.resref

  • If the uiItem::bam.resref field is 0 then the process looks for next uiItem in the linked list to process: reads uiItem.next field (offset 0x22C) and repeats the same step above by reading the uiItem::bam.resref field. If the uiItem.next field is 0 then the next pointer in the array of pointers from uiMenu.items is read and repeats the same step above by reading the uiItem::bam.resref field.

  • If the uiItem::bam.resref field is not 0 then it converts the field value (a uiVariant type field) to a string. This string is a ResRef. This is then used in comparison with the BamResRef ResRef string parameter.

  • If the ResRef strings compared match, and the Sequence parameter is not specified, then the pointer the uiItem structure of the currently matched UI control, is pushed onto the lua stack and the function exits.

  • If the ResRef strings compared match, and the Sequence parameter is specified and matches the value in the uiItem::bam.sequence field, then the pointer to the uiItem structure of the currently matched UI control, is pushed onto the lua stack and the function exits.

  • If the ResRef strings compared match, and the Sequence parameter does not match the value in the uiItem::bam.sequence field, then the uiItem.slot => uiItem::slot.icon field (a uiVariant type) is read, the value converted to a ResRef string and compared to the BamResRef string parameter. If this comparison matches then the pointer to the uiItem structure of the currently matched UI control, is pushed onto the lua stack and the function exits.

  • If the ResRef strings compared do not match, then the uiItem.slot => uiItem::slot.icon field (a uiVariant type) is read, the value converted to a ResRef string and compared to the BamResRef string parameter. If this comparison matches then the pointer to the uiItem structure of the currently matched UI control, is pushed onto the lua stack and the function exits.

  • If the ResRef strings compared do not match, and there is a valid uiItem.next then the search and comparison process continues.

  • If the ResRef strings compared do not match, and there is a no valid uiItem.next, but there is another pointer in array of pointers found at uiMenu.items then the search and comparison process continues.

  • If the ResRef strings compared do not match and there are no more uiItem (via uiItem.next or uiMenu.items) then a lua nil is pushed to the lua stack and the function exits.

It is unknown how to exactly use this function as there are no known examples.

Example

Find the UI control that uses sequence 3 of GUIOSTLM.BAM (which is the reform party button)

reformpartycontrol = Infinity_FindItemWithBam("GUIOSTLM",3)

Infinity_FindItemWithText

Find a UI control that has the specified text

Infinity_FindItemWithText(OriginalText)

Parameters

  • string OriginalText - the text to search for that matches an existing UI control’s text

Return Value

Returns userdata version of the item (a pointer to the uiItem structure of the matched UI control or a lua NIL)

See notes for further details.

Notes

Searches through all UI controls from the main stack menu and linked list of UI controls:

  • Reads uiMenu.items for an array of pointers. Each pointer in the array is a uiItem structure.

  • Reads 140 bytes of the uiItem structure into a local buffer and checks offset 0x70 of the local buffer, which corresponds to the uiItem.text => uiItem::text.text field.

  • If the uiItem::text.text field is 0 then the process looks for next uiItem in the linked list to process: reads uiItem.next field (offset 0x22C) and repeats the same step above by reading the uiItem::text.text field. If the uiItem.next field is 0 then the next pointer in the array of pointers from uiMenu.items is read and repeats the same step above by reading the uiItem::text.text field.

  • If the uiItem::text.text field is not 0 then it converts the field value (a uiVariant type field) to an integer. This integer is a string reference (StrRef) id from the TLK table. The (StrRef) string is loaded into a buffer and this is then used in comparison with the OriginalText string parameter.

  • If the strings compared match, then the pointer to the uiItem structure of the currently matched UI control, is pushed onto the lua stack and the function exits.

  • If the strings compared do not match, and there is a valid uiItem.next then the search and comparison process continues.

  • If the strings compared do not match, and there is a no valid uiItem.next, but there is another pointer in array of pointers found at uiMenu.items then the search and comparison process continues.

  • If the strings compared do not match and there are no more uiItem (via uiItem.next or uiMenu.items) then a lua nil is pushed to the lua stack and the function exits.

It is unknown how to exactly use this function as there are no known examples.

Example

--]
Find the text control that has "Hello"
--[

hellocontrol = Infinity_FindItemWithText("Hello")

Infinity_FindUIItemByName

Find a UI item by the name specified

Infinity_FindUIItemByName(UIItemName)

Parameters

  • string UIItemName - name of the UI item to find

Return Value

Returns a pointer to a UI item

Notes

Returns the pointer to the item stored in the nameToItem array, which is defined internally in the game executable as:

nameToItem = {}

Items are stored in the array like so:

nameToItem['%s'] = nameToItemPointer

The nameToItem array can be accessed directly in UI.MENU or other lua files.

For example, Infinity_ClickItem takes a menuItem userdata type and clicks the center of its area:

Infinity_ClickItem(nameToItem["whaterNameHere"])

Example

Get the inventory menu item:

inventory = Infinity_FindUIItemByName("INVENTORY")

Get the button control for the peasant room to rent at an inn:

selectedRoom = Infinity_FindUIItemByName('BUTTON_room_peasant')

Infinity_FocusTextEdit

Set the keyboard focus to the specified text edit contol, so that typing will occur in the text edit control.

Infinity_FocusTextEdit(element_name)

Parameters

  • string element_name - name of the text edit control to set the keyboard focus to

Notes

Calls the uiFocusTextEdit function

Example

Partial example of the CLUAConsole cheat text edit control being displayed and the focus moving to it so that typing occurs in that text edit control:

name 'cheatConsole'
align center bottom
ignoreEsc

onOpen
"
    toolbarTop = 50
    Infinity_PushMenu('WORLD_MESSAGES')
    Infinity_PushMenu('cheatMenu', 0, 0);
    Infinity_FocusTextEdit('luaEditArea');
    luaEdit = trim(luaEdit)
    loadLuaHistory()
"

Infinity_GetArea

Returns the bounding rectangle (area) for the specified UI Control name

Infinity_GetArea(element_name)

Parameters

  • string element_name - name of the UI Control to return the bounding rectangle for

Return Value

Returns as integer values: x, y, w, h - x coordinate, y coordinate, width and height of rectangle

Notes

Example

With a UI Label control named messagesRect:

label
{
    name 'messagesRect'
    area 0 111 863 142
    rectangle 4
}

To get the area of the messagesRect label control:

local x,y,w,h = Infinity_GetArea('messagesRect')

Infinity_GetClockTicks

Returns the clock tick count in milliseconds

Infinity_GetClockTicks()

Return Value

Returns an integer value of the clock tick in milliseconds

Notes

Calls the SDL_GetTicks function, coverts it to a lua number and pushes it onto the lua stack

Can be used to measure the time elapsed between calls to Infinity_GetClockTicks

Example

Get tick count and store it to a variable:

chatboxScrollTimeLast = Infinity_GetClockTicks()

Later on, get tick count and use previously stored tick count value (chatboxScrollTimeLast) to measure time elapsed, and store it to a ``dT variable:

local dT = Infinity_GetClockTicks() - chatboxScrollTimeLast
chatboxScrollTimeLast = Infinity_GetClockTicks()

The dT variable now contains the elapsed time since Infinity_GetClockTicks was last called.


Infinity_GetContainerItemDescription

Updates the description and usability text of an item from a specified slot in a container

Infinity_GetContainerItemDescription(nSlotNum)

Parameters

  • integer nSlotNum - slot number to return the item description and and usability text for

Return Value

Special, see notes

Notes

Calls the following class methods: CGameContainer::GetItem, CItem::GetUsabilityText and CItem::GetDescription

Updates an existing array named loot, which is defined in UI.MENU as:

loot =
{
    containerItems = {},
    groupItems = {},
    groundItems = {}
}

The loot array is updated with the description and usability text of the item occupying the slot nSlotNum in the container.

Example

Update the item description using Infinity_GetContainerItemDescription and then access the loot array via the internal UI.MENU function showItemDescription:

function showContainerItemDescription(index)
    local idxScrolled = index + worldScreen:GetTopContainerItem()
    if(loot.containerItems[idxScrolled] == nil or loot.containerItems[idxScrolled].item == nil) then
        return nil
    end
    Infinity_GetContainerItemDescription(idxScrolled)
    showItemDescription(loot.containerItems[idxScrolled].item, 2)
end

The showItemDescription function, stores some of the loot array entries into another array itemDesc. showItemDescription is defined as:

itemDesc = {}
function showItemDescription(item, mode)
    itemDesc.item = item
    itemDesc.mode = mode
    Infinity_PushMenu('ITEM_DESCRIPTION',0,0)
end

The ITEM_DESCRIPTION menu, which uses the values in the itemDesc array is defined as:

menu
{
    name 'ITEM_DESCRIPTION'
    align center center
    modal
    label
    {
        area 0 0 864 710
        mosaic GUIINVHI
    }
    label
    {
        area 81 11 700 44
        text "ITEM_TITLE"
        text style title
    }
    label
    {
        area 402 66 52 52
        icon lua "itemDesc.item.icon"
    }
    label
    {
        area 57 170 295 40
        text lua "itemDesc.item.name"
        text align center center
        text style "label"
        text color '5'
    }
    text
    {
        area 356 180 430 353
        text lua "itemDesc.item.description"
        scrollbar 'GUISCRC'
        text style "normal_parchment"
    }
    label
    {
        area 66 210 280 327
        bam lua "itemDesc.item.descPicture"
        sequence 0
        frame 0
        align center center
    }
    button
    {
        bam         GUIOSTUL
        sequence    6
        area        57 638 234 44
        enabled "itemDescLeftButtonEnabled()"
        text lua "itemDescLeftButtonText()"
        text style "button"
        action
        "
            itemDescLeftButtonAction()
        "
    }
    button
    {
        bam         GUIOSTUM
        sequence    6
        area        326 638 204 44
        text  "DONE_BUTTON"
        text style "button"
        action
        "
            Infinity_PopMenu();
        "
    }
    button
    {
        bam         GUIOSTUR
        sequence    6
        area        572 638 234 44
        enabled "itemDescRightButtonEnabled()"
        text lua "itemDescRightButtonText()"
        text style "button"
        action
        "
            itemDescRightButtonAction()
        "
    }
}

Note the use of itemDesc.item.name and itemDesc.item.description etc


Infinity_GetContentHeight

Returns the height of the text content in a UI control

Infinity_GetContentHeight(font,width,textcontent,point,indent,useFontZoom)

Parameters

  • string font - string containing resource reference (ResRef) of font

  • integer width - width of the UI control hosting the content

  • string textcontent - string containing the text content

  • integer point - font size

  • integer indent - a boolean value if indented 1, or 0 otherwise

  • integer useFontZoom - boolean value if using font zoom 1, or 0 otherwise

Return Value

Returns an integer of the calculated content height

Notes

Calculates the height of the text content in a UI control, taking into account the font used, the font size, word wrapping for the width of the UI control, indentation and/or font zooming.

You should account for the width of the scrollbar when specifying the width parameter

useFontZoom is used for font scaling based on the font size (the point parameter). If useFontZoom is 0, the text content (the textcontent parameter) will always appear at the defined font size, if useFontZoom is 1 then font scaling will occur for the text content.

Example

--Calculate running total of dialog content height
local x,y,w,h = Infinity_GetArea("worldPlayerDialogChoicesList")
w = w - 18 --account for scrollbar influence on width
local delta = Infinity_GetContentHeight(styles.normal.font, w, text, styles.normal.point, 1, styles.normal.useFontZoom) --1 for indent.
chatboxContentHeight = chatboxContentHeight + delta

Note: styles are defined in the BGEE.LUA file


Infinity_GetCurrentGroundPage

Returns the current page number of the ground inventory slots

Infinity_GetCurrentGroundPage()

Return Value

Returns an integer representing the page number of the ground inventory slots

Notes

A ground page is a series of inventory slots representing ground items available to pick up or empty slots for items to be dropped into.

Ground pages are used to scroll through the groupings of those ground based inventory slots. See also Infinity_GetMaxGroundPage and Infinity_GetGroundItemDescription

Calls the CScreenInventory::GetCurrentGroundPage method

Example

curPage = Infinity_GetCurrentGroundPage()

Infinity_GetCurrentMovie

Returns the current movie

Infinity_GetCurrentMovie()

Parameters

None

Return Value

Returns a string containing the resource reference (ResRef) of the current movie file (WebM file format)

Notes

Reads CBaldurChitin.m_pEngineProjector => CBaldurProjector.m_pMovie => CResWebM.CRes

Compares active engine (CWarp)

Pushes lua string onto stack or lua nil

Note: more research required.

Example

curMovie = Infinity_GetCurrentMovie()

Infinity_GetCurrentScreenName

Returns current menu name

Infinity_GetCurrentScreenName()

Parameters

None

Return Value

Returns a string of the current menu name, or an empty string if no menu active

Notes

Uses getMenuStackTop and getStackMenu functions, and if successful, reads the value at uiMenu.name and pushes this value to the lua stack as a lua string.

Examples

Get the current menu name:

curMenuName = Infinity_GetCurrentScreenName()

Sets the button to clickable only if the current menu equals CHARGEN

button
{
    area 770 552 204 44
    text "IMPORT_BUTTON"
    text style "button"
    bam GUIOSTUM
    clickable lua "Infinity_GetCurrentScreenName() == 'CHARGEN'"
    action "createCharScreen:OnImportCharacterButtonClick()"
}

Infinity_GetFilesOfType

Returns a list of files that match the specified file extension

Infinity_GetFilesOfType(extension)

Parameters

  • string extension - string containing file extension

Return Value

An array of filenames that matched the specified file extension

Notes

Converts extension to resource file type using the chExtToType function and fetches those filenames that match the resource type and stores them into an array.

The following extensions are supported:

  • “bmp”

  • “mve”

  • “tga”

  • “wav”

  • “wfx”

  • “plt”

  • “bam”

  • “wed”

  • “chu”

  • “tis”

  • “spl”

  • “bcs”

  • “ids”

  • “cre”

  • “are”

  • “dlg”

  • “2da”

  • “gam”

  • “sto”

  • “wmp”

  • “chr”

  • “bs”

  • “eff”

  • “vvc”

  • “vef”

  • “pro”

  • “bio”

  • “wbm”

  • “gui”

  • “sql”

  • “pvrz”

  • “glsl”

  • “tot”

  • “toh”

  • “menu”

  • “lua”

  • “ttf”

  • “png”

  • “ini”

Example

bamfilelist = Infinity_GetFilesOfType("bam")

Infinity_GetFrameCounter

Returns frame counter

Infinity_GetFrameCounter()

Return Value

Returns an int value representing frame counter

Notes

Reads the value stored at offset 0xC48 of CChitin: CChitin.nAUCounter, converts it to a float and pushes it onto the lua stack.

Example

framcounter = Infinity_GetFrameCounter()

Infinity_GetGameTicks

Returns game ticks

Infinity_GetGameTicks()

Return Value

Returns an int value representing game ticks

Notes

Reads CBaldurChitin.m_pObjectGame => CInfGame.m_worldTime => CTimerWorld.m_gameTime and multiplies it by the value stored in the variable TIMER_UPDATES_PER_SECOND. The result is added together with itself, converted to a float and pushed onto the lua stack.

The variable TIMER_UPDATES_PER_SECOND located at offset 0x00938778 is initially set to 30 (0x1E)

Example

ticks = Infinity_GetGameTicks()

Infinity_GetGroundItemDescription

Returns a string containing the item’s description as seen on the ground

Infinity_GetGroundItemDescription(item_index,slot_id,container_id)

Parameters

  • item_index -

  • slot_id -

  • container_id -

Return Value

string

Notes

Example


Infinity_GetGroupItemDescription

Infinity_GetGroupItemDescription(item_index)

Parameters

  • item_index -

Return Value

string

Notes

Example


Infinity_GetInCutsceneMode

Infinity_GetInCutsceneMode(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_GetINIString

Returns a string containing an ini section key value

Infinity_GetINIString(section_name,value_name,default_value)

Parameters

  • section_name - section name in an ini file

  • value_name - the key in the section to return the value for

  • default_value - the default value to return if key does not exist

Return Value

string

Notes

Example


Infinity_GetINIValue

Returns an integer value containing an ini section key value

Infinity_GetINIValue(section_name,value_name,default_value)

Parameters

  • section_name - section name in an ini file

  • value_name - the key in the section to return the value for

  • default_value - the default value to return if key does not exist

Return Value

int

Notes

Example


Infinity_GetListHeight

Returns the height of the sepcified UI List control

Infinity_GetListHeight(list_name)

Parameters

  • string list_name - name of the UI List control

Return Value

Returns an integer value of the specified list’s height

Notes

Example

Get the height of the worldPlayerDialogChoicesList list in UI.MENU:

local choicesHeight = Infinity_GetListHeight('worldPlayerDialogChoicesList')

Infinity_GetMaxChapterPage

Returns the chapter number that the game campaign is at currently

Infinity_GetMaxChapterPage()

Return Value

Returns an integer containing the current chapter number

Notes

Returns the value of the CHAPTER token. Calls the CVariableHash::FindKey method and reads offset 0x28 of CVariable: CVariable.m_cAreaVariable => CAreaVariable.m_intValue, and pushes that value to the lua stack.

Example

Used in the JOURNAL menu in UI.MENU to update the current chapter number:

menu
{
    name 'JOURNAL'
    align left top
    offset 80 0
    ignoreEsc
    enabled "sidebarsGreyed ~= 1"
    onopen "
        reinitQuests()
        buildQuestDisplay()
        chapter = math.max(0,Infinity_GetMaxChapterPage());

Infinity_GetMaxGroundPage

Returns maximum ground pages

Infinity_GetMaxGroundPage()

Return Value

Returns an integer value of the maximum ground pages

Notes

A ground page is a series of inventory slots representing ground items available to pick up or empty slots for items to be dropped into.

Ground pages are used to scroll through the groupings of those ground based inventory slots. See also Infinity_GetCurrentGroundPage and Infinity_GetGroundItemDescription

Calls the CScreenInventory::GetMaxGroundPage method and pushed the value to the lua stack.

Example

local maxPages = Infinity_GetMaxGroundPage()

Infinity_GetMenuArea

Returns the bounding rectangle (area) for the specified UI Menu name

Infinity_GetMenuArea(menu_name)

Parameters

  • string menu_name - name of the UI Menu to return the bounding rectangle for

Return Value

Returns as integer values: x, y, w, h - x coordinate, y coordinate, width and height of rectangle

Notes

Example

Get the area of the JOURNAL menu:

local offsetX,offsetY,menuWidth,menuHeight = Infinity_GetMenuArea('JOURNAL')

Infinity_GetMenuItemByName

Returns the UI menu item that has the specified name

Infinity_GetMenuItemByName(item_name)

Parameters

  • string item_name - name of the menu item

Return Value

Returns userdata version of the menu item (a pointer to the uiItem structure of the matched UI control or a lua NIL)

Notes

Example

MenuItem_InvSlot1 = Infinity_GetMenuItemByName("slot_inv_1")

Infinity_GetMousePosition

Returns mouse position

Infinity_GetMousePosition()

Return Value

Returns as integer x,y = x coordinate and y cooordinate of mouse position

Notes

Example

x,y = Infinity_GetMousePosition();

Infinity_GetNumCharacters

Returns total number of characters currently in the party

Infinity_GetNumCharacters()

Return Value

Returns an integer value of the number of characters in the party

Notes

Example

From UI.MENU - enable a portrait button for the 4th character, if there is greater than 3 characters in the party:

button
{
    area 11 290 64 90
    portrait 3
    bam GUIRSP10
    enabled "Infinity_GetNumCharacters() > 3"

Infinity_GetOffset

Get the position of a menu on the screen

Infinity_GetOffset(menu_name)

Parameters

  • string menu_name - name of the menu to return the position for

Return Value

Returns as integer values: x,y - x coordinate and y coordinate of the menu position

Notes

Example

Infinity_GetOffset("JOURNAL")

Infinity_GetOption

Get the value of an option in a panel

Infinity_GetOption(option_id,panel_id)

Parameters

  • integer option_id - id of the option to get value for

  • integer panel_id - id of the panel

Return Value

Returns an integer value of the option id specified: option_id in panel_id

Notes

See also Infinity_ChangeOption

Example

Get the value of option id 1 in panel id 8 (panelID = 8) to a variable ttDelaySLDR and then set option id 1 in panel id 8 (panelID = 8) to the value of the ttDelaySLDR variable

panelID = 8
ttDelaySLDR = Infinity_GetOption(1, panelID)
Infinity_ChangeOption( 1, ttDelaySLDR, panelID)

Infinity_GetPasswordRequired

Updates the passwordReq lua variable with the password requirement

Infinity_GetPasswordRequired(id)

Parameters

  • integer id - 1 based index of the mp_sessions array entry to update

Returns

Special, see notes

Notes

Updates an existing multidimensional array named mp_sessions defined in the EE game executable and an existing lua variable passwordReq.

passwordReq is defined in UI.MENU as:

passwordReq = 0

Each entry in mp_sessions has the following elements:

  • description

  • flags

  • max_players

  • players

  • port

  • name

  • password

After the mp_sessions array has been updated, the flags value (which contains amongst other things the password requirement) is placed into the passwordReq lua variable as a boolean value: 1 true or 0 false.

Example

The gameHasPassword function from UI.MENU:

function gameHasPassword(slot)
    if(mp_sessions[mp_shownSessions[slot]["actualIndex"]] == nil) then
        --if the session isn't loaded don't show anything.
        return ""
    end
    Infinity_GetPasswordRequired(mp_shownSessions[slot]["actualIndex"])
    if passwordReq ~= 0 then
        ret = t("YES")
    else
        ret = t("NO")
    end
    return ret
end

Infinity_GetPortraitTooltip

Returns a string containing the tooltip for a specified portrait index

Infinity_GetPortraitTooltip(index)

Parameters

  • integer index - a 0 based index of the portrait to return the tooltip text for

Return Value

Returns a string containing the tooltip for a specified portrait index

Notes

Example

Get tooltip for portrait of character 1:

char1tooltip = Infinity_GetPortraitTooltip(0)

Infinity_GetScreenSize

Returns the width and height of the screen - the screen resolution

Infinity_GetScreenSize()

Return Value

Returns as integer: w, h - width and height

Notes

Example

local screenWidth, screenHeight = Infinity_GetScreenSize()

Infinity_GetScriptVarInt

Returns the value of a script variable as an integer

Infinity_GetScriptVarInt(ScriptVar)

Parameters

  • string ScriptVar - the script variable to return the value of

Return Value

Returns the value of a script variable as an integer

Notes

Calls the CVariableHash::FindKey method.

Example

No known example


Infinity_GetScrollIdentifyEnabled

Determines if the specified item requires identification, and can be identified via an Indentify scroll

Infinity_GetScrollIdentifyEnabled(item_id)

Parameters

  • integer item_id - item id

Return Value

Returns a boolean value: 1 true, or 0 false

Notes

Calls the CScreenInventory::GetScrollIdentifyEnabled method.

See also Infinity_GetSpellIdentifyEnabled

Example

The Indentify via a scroll button is enabled if the item requires identification (and there is an Identify scroll in the character’s possession). Defined in UI.MENU as:

button
{
    area 52 214 302 44
    bam GUIOSTCL
    text style "button"
    text "SCROLL_BUTTON"

    clickable lua "Infinity_GetScrollIdentifyEnabled(characters[id].equipment[selectedSlot].id)"
    action
    "
        Infinity_OnScrollIdentify(characters[id].equipment[selectedSlot].id)
        Infinity_PopMenu()
        itemDesc.item = characters[id].equipment[selectedSlot].item --update itemDesc item
    "
}

Infinity_GetSelectedCharacterName

Returns a string containing the currently selected character’s name

Infinity_GetSelectedCharacterName()

Return Value

Returns a string containing the currently selected character’s name

Notes

Example

Set a label UI control’s text with the current characters name:

label
{
    area 467 116 250 30
    text  lua "Infinity_GetSelectedCharacterName()"
    text style "label"
    align left center
}

Infinity_GetSpellIdentifyEnabled

Determines if the specified item requires identification, and can be identified via an Indentify spell (or a magical item that can cast an Identify spell)

Infinity_GetSpellIdentifyEnabled(item_id)

Parameters

  • string item_id - item id

Return Value

Returns a boolean value: 1 true, or 0 false

Notes

Calls the CScreenInventory::GetSpellIdentifyEnabled method.

See also Infinity_GetScrollIdentifyEnabled

Example

The Indentify via a spell button is enabled if the item requires identification (and there is an Identify spell in the character’s possession). Defined in UI.MENU as:

button
{
    area 52 258 302 44
    bam GUIOSTCL
    text style "button"
    text "SPELL_BUTTON"

    clickable lua "Infinity_GetSpellIdentifyEnabled(characters[id].equipment[selectedSlot].id)"
    action
    "
        Infinity_OnSpellIdentify(characters[id].equipment[selectedSlot].id);
        Infinity_PopMenu()
        itemDesc.item = characters[id].equipment[selectedSlot].item --update itemDesc item
    "
}

Infinity_GetTimeString

Returns a formatted date and time string

Infinity_GetTimeString()

Return Value

Returns a string containing the date and time - a timestamp

Notes

Calls the CTimerWorld::GetCurrentTimeString method.

Example

Editing a journal entry will automatically place a date time value, defined in UI.MENU as:

label
{
    enabled "journalMode == const.JOURNAL_MODE_EDIT"
    area 58 144 382 42
    text style "label"
    text color 0 120 0 255
    text lua "Infinity_GetTimeString()"
}

Infinity_GetTransitionInProgress

Returns the transition value

Infinity_GetTransitionInProgress()

Parameters

None

Return Value

Pushes the transition variable value to the lua stack

Notes

transition variable located at offset 0x00986720 in BG2EE

transition variable value set in Infinity_TransitionMenu, drawTop, and eventMenu functions

Example

No known examples


Infinity_GetUseButtonText

Returns “Use x” button text of an item name for an item specified

Infinity_GetUseButtonText(item_id,mode)

Parameters

  • integer item_id - item id

  • integer mode - mode

Return Value

Returns a string containing the “Use x” of the item specified

Notes

Calls the CScreenInventory::GetUseButtonText method

Example


Infinity_GooglePlaySignedIn

Determines if signed into Google Play

Infinity_GooglePlaySignedIn()

Return Value

Returns an integer value representing 1 true, or 0 false otherwise

Notes

Calls the CPlatform::IsPlatformServiceConnected function

Reads CChitin.cSteam => CSteam.m_isSteamConnected

On builds that are not android returns false

Example

A Google Play sign in/out button from UI.MENU:

function getGooglePlaySignInText()
    if(Infinity_GooglePlaySignedIn() == 1) then
        return t("SIGN_OUT_BUTTON")
    else
        return t("SIGN_IN_BUTTON")
    end
end

Infinity_HighlightJournalButton

Unknown purpose

Infinity_HighlightJournalButton()

Notes

Returns 0 false

Called from highlightJournalButton function in UTIL.LUA

Example

See highlightJournalButton function in UTIL.LUA

Unknown purpose


Infinity_HoverMouseOver

Moves where your mouse cursor is in the game world

Infinity_HoverMouseOver(x,y)

Parameters

  • integer x - x coordinate to click world at

  • integer y - y coordinate to click world at

Return Value

None

Notes

It doesn’t actaully move the mouse cursor, but the game engine thinks it does.

Infinity_HoverMouseOver will instantly move your mouse into the game world, but it won’t move to the proper x,y for one frame (I think?).

If you don’t include Infinity_HoverMouseOver before Infinity_ClickWorldAt, it will click at world coordinates 0, 0 by assuming your cursor is over the interface.

You can force a click in the game world like so:

Infinity_HoverMouseOver(x,y)
Infinity_ClickWorldAt(x,y)

Example

Infinity_HoverMouseOver(100,200)

Infinity_HoverMouseOverObject

Activate AI script file for object that mouse is hovering over (?) - not tested/verified

Infinity_HoverMouseOverObject(objectname)

Parameters

  • string objectname - name of the object

Return Value

??? - Unknown

Notes

Calls the CAIScriptFile::CAIScriptFile method

Example

No known examples


Infinity_InstanceAnimation

Creates a temporary single instance animation of a bam, based on the UI template provided. Once the animation has finished, the UI control that was created and based on the UI template provided, is no longer present or visible.

Infinity_InstanceAnimation(Template,BamResRef,x,y,w,h,list,list_index)

Parameters

  • string Template - UI template name

  • string BamResRef - resource reference of bam to show/animate

  • integer x - left position

  • integer y - top position

  • integer w - width

  • integer h - height

  • string list - list/array

  • integer list_index - 1 based index of entry in list

Notes

As defined in UI.MENU on memorizing a spell: is set to play the default GAM_24.WAV sound and to play the FLASHBR.BAM animation.

Example

Shows sparkle as user clicks on mage spell to memorize:

::

Infinity_InstanceAnimation(“TEMPLATE_mageMemorizationSparkle”,”FLASHBR”,x,y,w,h,fromList,listIndex)


Infinity_IsItemEnabled

Infinity_IsItemEnabled(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_IsMenuOnStack

Infinity_IsMenuOnStack(menu_name)

Parameters

  • menu_name -

Return Value

bool

Notes

Example


Infinity_IsPlayerMoving

Infinity_IsPlayerMoving(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_JoinMultiplayerGame

Infinity_JoinMultiplayerGame(id)

Notes

Example


Infinity_LaunchURL

Infinity_LaunchURL(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_LevelUp

Opens level up dialog

Infinity_LevelUp()

Parameters

None

Return Value

None

Notes

Calls CScreenCharacter::OnLevelUpButtonClick to open the level up dialog.

Unknown if calling this will work without specifying a character like Infinity_ActivateRecord does.

Example

No known examples


Infinity_Log

Infinity_Log(msg)

Parameters

  • msg -

Notes

Example


Infinity_LookAtObjectInWorld

Infinity_LookAtObjectInWorld(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_LuaConsoleInput

Infinity_LuaConsoleInput(???,???)

Parameters

  • ??? -

  • ??? -

Notes

Example


Infinity_OnAddUserEntry

Infinity_OnAddUserEntry(string)

Parameters

  • string -

Notes

Example


Infinity_OnCharacterImportItemSelect

Infinity_OnCharacterImportItemSelect(table_index)

Parameters

  • table_index -

Notes

Example


Infinity_OnCharacterItemSelect

Infinity_OnCharacterItemSelect(table_index)

Parameters

  • table_index -

Notes

Example


Infinity_OnEditUserEntry

Infinity_OnEditUserEntry(string1,string2)

Parameters

  • string1 -

  • string2 -

Return Value

???

Notes

Example


Infinity_OnGroundPage

Infinity_OnGroundPage(increment)

Parameters

  • increment -

Notes

Example


Infinity_OnPortraitDblClick

Event action when mouse double clicks a character portrait

Infinity_OnPortraitDblClick(index)

Parameters

  • index - index of portrait being double clicked

Notes

Example


Infinity_OnPortraitItemSelect

Event action when character portrait is selected

Infinity_OnPortraitItemSelect(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_OnPortraitLClick

Event action when mouse left clicks a character portrait

Infinity_OnPortraitLClick(index)

Parameters

  • index - index of portrait being clicked

Notes

Example


Infinity_OnPortraitRClick

Event action when mouse right clicks a character portrait

Infinity_OnPortraitRClick(index)

Parameters

  • index - index of portrait being clicked

Notes

Example


Infinity_OnRemoveUserEntry

Infinity_OnRemoveUserEntry(string)

Parameters

  • string -

Notes

Example


Infinity_OnRest

Infinity_OnRest(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_OnScriptItemSelect

Infinity_OnScriptItemSelect(table_index)

Parameters

  • table_index -

Notes

Example


Infinity_OnScrollIdentify

Event action when a scroll identifies an item

Infinity_OnScrollIdentify(item_id)

Parameters

  • integer item_id - id of the item being identified

Notes

Example


Infinity_OnSoundItemSelect

Infinity_OnSoundItemSelect(table_index)

Parameters

  • table_index -

Notes

Example


Infinity_OnSpellIdentify

Event action when a spell identifies an item

Infinity_OnSpellIdentify(item_id)

Parameters

  • integer item_id - id of the item being identified

Return Value

Notes

Example


Infinity_OnUseButtonClick

Infinity_OnUseButtonClick(item_id,mode)

Parameters

  • integer item_id -

  • mode -

Notes

Example


Infinity_OpenInventoryContainer

Infinity_OpenInventoryContainer(resref)

Parameters

  • resref* - resource reference of the container being opened

Notes

Example


Infinity_PlayMovie

Plays a movie (a WebM file format)

Infinity_PlayMovie(movie_name,element_name)

Parameters

  • movie_name - resource reference of the movie to play

  • element_name -

Notes

Example


Infinity_PlaySound

Plays a sound

Infinity_PlaySound(resref)

Parameters

  • resref* - resource reference of the sound to play

Notes

Example


Infinity_PopMenu

Infinity_PopMenu(menu_name)

Parameters

  • menu_name -

Notes

Example


Infinity_PressKeyboardButton

Infinity_PressKeyboardButton(???)

Parameters

(???)

Return Value

(???)

Notes

Example


Infinity_PushMenu

Infinity_PushMenu(menu_name)

Parameters

  • menu_name -

Notes

Example


Infinity_RandomNumber

Returns an random number

Infinity_RandomNumber(min,range)

Parameters

  • min - minimum value of random number

  • range - maximum value of random number

Return Value

int

Notes

Example


Infinity_RemoveINIEntry

Removes an ini section key value

Infinity_RemoveINIEntry(section_name,value_name)

Parameters

  • section_name* - ini section name

  • value_name* - key in the ini section to remove

Notes

Example


Infinity_RequestMultiplayerGameDetails

Infinity_RequestMultiplayerGameDetails(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_ScaleToText

Infinity_ScaleToText(element_name)

Parameters

  • element_name -

Notes

Example


Infinity_ScrollLists

Infinity_ScrollLists(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SelectDialogueOption

Infinity_SelectDialogueOption(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SelectItemAbility

Infinity_SelectItemAbility(ability_index,item_num,item_id)

Parameters

  • ability_index -

  • item_num -

  • integer item_id -

Notes

Example


Infinity_SelectListItem

Infinity_SelectListItem(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SendChatMessage

Infinity_SendChatMessage(msg,boolean)

Parameters

  • msg -

  • boolean -

Notes

Example


Infinity_SetArea

Infinity_SetArea(element_name,x,y,w,h)

Parameters

  • element_name -

  • x -

  • y -

  • w -

  • h -

Return Value

???

Notes

Example


Infinity_SetBackground

Infinity_SetBackground(menu_name)

Parameters

  • menu_name -

Notes

Example


Infinity_SetCloudEnabled

Infinity_SetCloudEnabled(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SetGooglePlaySigninState

Infinity_SetGooglePlaySigninState(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SetHairColor

Infinity_SetHairColor(index)

Parameters

  • index -

Notes

Example


Infinity_SetHighlightColors

Set a color or color gradient for UI elements in the options dialogs that are currently selected

Infinity_SetHighlightColors(lr,lg,lb,la,cr,cg,cb,ca,rr,rg,rb,ra)

Parameters

  • hexidecimal lr - left color: the intensity of the red color channel

  • hexidecimal lg - left color: the intensity of the green color channel

  • hexidecimal lb - left color: the intensity of the blue color channel

  • hexidecimal la - left color: the transparency level of the alpha channel

  • hexidecimal cr - center color: the intensity of the red color channel

  • hexidecimal cg - center color: the intensity of the green color channel

  • hexidecimal cb - center color: the intensity of the blue color channel

  • hexidecimal ca - center color: the transparency level of the alpha channel

  • hexidecimal rr - right color: the intensity of the red color channel

  • hexidecimal rg - right color: the intensity of the green color channel

  • hexidecimal rb - right color: the intensity of the blue color channel

  • hexidecimal ra - right color: the transparency level of the alpha channel

Notes

User three color definitions: left, center and right

Parameters use hexidecimal values (prefixed with 0x) for each color color and the alpha channel level

Example

Infinity_SetHighlightColors(0x7F,0x00,0x7F,0xff, 0x00,0x7F,0x00,0xff, 0x00,0x00,0x7F,0xff)


Infinity_SetINIValue

Sets a value of an ini section key

Infinity_SetINIValue(section_name,value_name,value)

Parameters

  • string section_name - ini section to set the key value for

  • string value_name - the key in the ini section to set the value for

  • string value - the new value of the key

Notes

Example

Set the Player Name key in Multiplayer section to the value of the variable connectionPlayerNameEdit

if connectionPlayerNameEdit == "" then
    connectionPlayerNameEdit = Infinity_GetINIString('Multiplayer', 'Player Name', player)
    Infinity_SetINIValue('Multiplayer', 'Player Name', connectionPlayerNameEdit)
end

Infinity_SetKey

Sets key in C++ memory

Infinity_SetKey(value,type)

Parameters

  • value -

  • type -

Notes

Example


Infinity_SetLanguage

Infinity_SetLanguage(lang_id,showSubTitles)

Parameters

  • lang_id -

  • showSubTitles -

Notes

Example


Infinity_SetMajorColor

Infinity_SetMajorColor(index)

Parameters

  • index -

Notes

Example


Infinity_SetMinorColor

Infinity_SetMinorColor(index)

Parameters

  • index -

Notes

Example


Infinity_SetOffset

Infinity_SetOffset(menu_name,x,y)

Parameters

  • menu_name -

  • x -

  • y -

Return Value

???

Notes

Example


Infinity_SetOverlay

Infinity_SetOverlay(menu_name)

Parameters

  • menu_name -

Notes

Example


Infinity_SetScreenSize

Infinity_SetScreenSize(w,h)

Parameters

  • w -

  • h -

Notes

Example


Infinity_SetScrollTop

Infinity_SetScrollTop(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SetSkinColor

Infinity_SetSkinColor(index)

Parameters

  • index -

Notes

Example


Infinity_SetToken

Infinity_SetToken(token_name,value)

Parameters

  • token_name -

  • value -

Notes

Example


Infinity_ShutdownGame

Infinity_ShutdownGame()

Notes

Example


Infinity_SignInOutButtonEnabled

Infinity_SignInOutButtonEnabled(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SplitItemStack

Infinity_SplitItemStack(item_id,count,slot_name)

Parameters

  • integer item_id -

  • count -

  • slot_name -

Return Value

Notes

Example


Infinity_StartItemCapture

Infinity_StartItemCapture(map_name)

Parameters

  • map_name -

Notes

Example


Infinity_StartKeybind

Infinity_StartKeybind(action)

Parameters

  • action -

Notes

Example


Infinity_StopItemCapture

Infinity_StopItemCapture(map_name)

Parameters

  • map_name -

Notes

Example


Infinity_StopKeybind

Infinity_StopKeybind()

Notes

Example


Infinity_StopMovie

Infinity_StopMovie(element_name)

Parameters

  • element_name -

Notes

Example


Infinity_SwapSlot

Infinity_SwapSlot(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_SwapWithAppearance

Infinity_SwapWithAppearance()

Notes

Example


Infinity_SwapWithPortrait

Infinity_SwapWithPortrait(index)

Parameters

  • index -

Notes

Example


Infinity_TakeScreenshot

Infinity_TakeScreenshot()

Notes

Example


Infinity_TextEditHasFocus

Infinity_TextEditHasFocus()

Return Value

bool

Notes

Example


Infinity_TransitionMenu

Infinity_TransitionMenu(menu_name)

Parameters

  • menu_name -

Notes

Example


Infinity_UpdateCharacterRecordExportPanel

Infinity_UpdateCharacterRecordExportPanel()

Notes

Example


Infinity_UpdateCloudSaveState

Infinity_UpdateCloudSaveState()

Notes

Example


Infinity_UpdateInventoryRequesterPanel

Infinity_UpdateInventoryRequesterPanel(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_UpdateLuaStats

Infinity_UpdateLuaStats()

Notes

Example


Infinity_UpdateStoreMainPanel

Infinity_UpdateStoreMainPanel(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_UpdateStoreRequesterPanel

Infinity_UpdateStoreRequesterPanel(???)

Parameters

???

Return Value

???

Notes

Example


Infinity_WriteINILine

Write a line of text to an ini file

Infinity_WriteINILine(file_handle,string)

Parameters

  • file_handle -

  • string - text to write out to ini file

Notes

Example