Engine Lua globals
Applies to:
BGEE, BG2EE, IWDEE (patch 2.0 and later)
General Description
The user interface of the Enhanced Editions runs in one global Lua state that is shared by the MENU file, the game's own Lua files and the engine. This page lists the global variables and tables that the engine itself defines in that state, the structure of every table it fills, and the Lua functions it expects the game's Lua code to provide. The engine's
The information comes from patches 2.6.6.0 and 2.7.3.0 of BGEE, BG2EE and IWDEE. All six builds define the same globals with the same structure; the only difference is listed under Version differences. Descriptions marked † are inferred from the names of the engine functions that write or read the value; the code that uses them was not traced in detail.
Start-up order.
Infinity_* C functions are not covered here; those that work on menus are described on the MENU Lua interface page.The information comes from patches 2.6.6.0 and 2.7.3.0 of BGEE, BG2EE and IWDEE. All six builds define the same globals with the same structure; the only difference is listed under Version differences. Descriptions marked † are inferred from the names of the engine functions that write or read the value; the code that uses them was not traced in detail.
Start-up order.
bootstrapLuacreates the Lua state, opens the standard libraries_G,table,string,bit32,mathanddebug(but notio,osorpackage), replacesprint, and runs the small Lua chunks that defineoptions,SetPrivateProfileString,getOptionsSection,languagesandsetLanguageVisible.CLUAConsole::LuaInitregisters the engine's C++ classes (tolua++ bindings), runs the binding's embedded Lua chunk that creates the engine objects, runsC = CLUAConsole:new()and then executes the fileluaAuto.cfg.- Later, during resource initialisation,
dimmInitregisters theInfinity_*functions, runs the Lua resourceINCLUDESand loadsUI.MENU. - While the game runs, engine code sets single values with
lua_setglobal, fills the data tables and calls the functions provided by the game's Lua.
These globals are created by the Lua chunk embedded in the tolua++ bindings, which runs once at start-up:
Bound classes. Methods, fields and base classes as registered by
e = g_pBaldurChitin startEngine = e:GetEngineStart() createCharScreen = e:GetEngineCreateChar() characterScreen = e:GetEngineCharacter() connectionScreen = e:GetEngineConnection() mageScreen = e:GetEngineWizSpell() priestScreen = e:GetEnginePriestSpell() worldScreen = e:GetEngineWorld() mapScreen = e:GetEngineMap() worldMapScreen = e:GetEngineWorldMap() journalScreen = e:GetEngineJournal() inventoryScreen = e:GetEngineInventory() optionsScreen = e:GetEngineOptions() multiplayerScreen = e:GetEngineMultiPlayer() chapterScreen = e:GetEngineChapter() loadScreen = e:GetEngineLoad() saveScreen = e:GetEngineSave() storeScreen = e:GetEngineStore() moviesScreen = e:GetEngineMovies() createPartyScreen = e:GetEngineCreateParty() dlcScreen = e:GetEngineDLC() projector = e:GetEngineProjector() mixer = e:GetSoundMixer() game = e:GetObjectGame() buttonArray = game:GetButtonArray() timer = game:GetWorldTimer() gameOptions = game:GetOptions()Each object is a userdata of a bound C++ class; its methods are called with
: (for example timer:GetCurrentHour()). C is created separately by CLUAConsole::LuaInit. The binding also defines the global variable g_pBaldurChitin (the engine application, readable and writable) and a few constants.| Global | Class | Meaning |
|---|---|---|
e | CBaldurChitin | The engine application object (same value as the bound global variable g_pBaldurChitin). |
startEngine | CScreenStart | Start screen. † |
createCharScreen | CScreenCreateChar | Character creation screen. † |
characterScreen | CScreenCharacter | Character record screen. † |
connectionScreen | CScreenConnection | Multiplayer connection screen. † |
mageScreen | CScreenWizSpell | Mage spellbook screen. † |
priestScreen | CScreenPriestSpell | Priest spellbook screen. † |
worldScreen | CScreenWorld | Main game (world) screen. † |
mapScreen | CScreenMap | Area map screen. † |
worldMapScreen | CScreenWorldMap | World map screen. † |
journalScreen | CScreenJournal | Journal screen. † |
inventoryScreen | CScreenInventory | Inventory screen. † |
optionsScreen | CScreenOptions | Options screen. † |
multiplayerScreen | CScreenMultiPlayer | Multiplayer party screen. † |
chapterScreen | CScreenChapter | Chapter and text screens (chapter text, dreams, epilogues). † |
loadScreen | CScreenLoad | Load game screen. † |
saveScreen | CScreenSave | Save game screen. † |
storeScreen | CScreenStore | Store screen. † |
moviesScreen | CScreenMovies | Movies screen. † |
createPartyScreen | CScreenCreateParty | Party creation / import screen. † |
dlcScreen | CScreenDLC | DLC screen. † |
projector | CBaldurProjector | Movie player (projector) engine. † |
mixer | CSoundMixer | Sound mixer. † |
game | CInfGame | The game object (party, areas, options, timers). † |
buttonArray | CInfButtonArray | The action bar of the main screen. † |
timer | CTimerWorld | The world timer (game time). † |
gameOptions | CGameOptions | The current game options; its fields are the option values. † |
C | CLUAConsole | Lua console object, created by the engine with CLUAConsole:new() when the console is initialised. |
Bound classes. Methods, fields and base classes as registered by
luaopen_BaldurLUA. Fields marked * are read-only.| Class | Members |
|---|---|
| CLUAConsole | Methods: AddGold, AddSpell, AdvanceRealTime, CreateCreature, CreateEngine, CreateItem, CreateVEFVidCell, DisplayAllBAMFiles, DisplayText, EnableCheatKeys, Eval, Exec, ExploreArea, GetGlobal, LogMessages, LogSet, MoveToArea, new, PickDialog, PlayMovie, PlaySound, ResetAchievements, SetCurrentXP, SetGlobal, SetWaterAlpha, SetWeather, StartStore, StrrefOff, StrrefOn, TestAllDialog, WorkshopUpload, WriteScript |
| CLUACheats | Methods: CowKill, CriticalItems, DrizztAttacks, DrizztDefends, ExploreArea, FirstAid, Hans, Midas, new, TheGreatGonzo |
| CTimerWorld | Methods: AdvanceCurrentTime, GetCurrentHour, GetCurrentTimeFields: TIME_DAWN*, TIME_DAY*, TIME_DUSK*, TIME_NIGHT*, TIMESCALE_HOUR_PER_DAY* (constants, see Constants) |
| CInfButtonArray | Methods: GetButtonBam, GetButtonEnabled, GetButtonSequence, GetButtonType, OnLButtonPressed, OnRButtonPressed |
| CInfGame | Methods: CenterOnGroupLeader, GetButtonArray, GetCharacterOverflowCount, GetJournalOpenable, GetMissionPackInfo, GetMissionPackInfo25, GetMissionPackInfoTBP, GetOptions, GetPaletteSize, GetPartyAI, GetPartyGold, GetWorldTimer, IsClient, RestParty, SelectAll, SetCampaign, ToggleAI |
| CChitin | Methods: HasDirectX, IsHosting, IsMultiplayer |
| CBaldurChitin | Base class: CChitin Methods: CheckGUISong, FullScreen, GetActiveEngine, GetEngineChapter, GetEngineCharacter, GetEngineConnection, GetEngineCreateChar, GetEngineCreateParty, GetEngineDLC, GetEngineInventory, GetEngineJournal, GetEngineLoad, GetEngineMap, GetEngineMovies, GetEngineMultiPlayer, GetEngineOptions, GetEnginePriestSpell, GetEngineProjector, GetEngineSave, GetEngineStart, GetEngineStore, GetEngineWizSpell, GetEngineWorld, GetEngineWorldMap, GetObjectGame, GetSoundMixer, GetVersionString, IsAndroid, IsIOS, IsTouchUI, SelectEngine, SetDisableBrightest |
| CWarp | – |
| CBaldurEngine | Base class: CWarp Methods: OnLeftPanelButtonClick, OnRestButtonClick |
| CGameOptions | Fields: m_bAlwaysDither, m_bAutoPauseCenter, m_bCheatsEnabled, m_bConfirmDialog, m_bCriticalHitScreenShake, m_bDebugMode, m_bDisableCastingGlows, m_bDisableDisplayText, m_bDisableVEFVidCells, m_bDisplayExtraCombatInfo, m_bDuplicateFloatingText, m_bEnvironmentalAudio, m_bForceDialogPause, m_bHotkeysOnToolTips, m_bHPOverHead, m_bInfravision, m_bLowMemSounds1, m_bLowMemSounds2, m_bRenderFrameTimes, m_bRestHealParty, m_bStupidQuickItemStuff, m_bTerrainHugging, m_bUse3dAnimations, m_bVeryLowPerformance, m_bWeatherEnabled, m_displayVerbalText, m_gore, m_graphicsForceMirroringOff, m_graphicsTranslucentEffects, m_graphicsTranslucentShadows, m_guiFeedBackLevel, m_nAreaEffectsDensity, m_nAreaEffectsRefreshProb, m_nAttackSounds, m_nAutoPauseState, m_nBoredTime, m_nCommandSoundsFrequency, m_nDifficultyMultiplier, m_nEffectTextLevel, m_nKeyBoardScrollAmount, m_nMPDifficultyMultiplier, m_nTutorialState, m_scrollSpeed, m_soundDialogVolume, m_soundFootStepsOn, m_soundFXVolume, m_soundMovieVolume, m_soundMusicVolume, m_soundVoicesNo, m_toolTips |
| CSoundMixer | Methods: StartSong |
| CBaldurProjector | Base class: CBaldurEngine Methods: PlayMovie |
| CScreenStart | Base class: CBaldurEngine Methods: DismissChooseCampaignPopup, GetCampaign, GetEngineState, HasGameToContinue, OnCampaignButtonClick, OnContinueGame, OnCreatePartyButtonClick, OnDLCImageClick, OnImportCharacterButtonClick, OnLoadGameButtonClick, OnMultiPlayerButtonClick, OnNewGameButtonClick, OnOptionsButtonClick, OnPreGenerateButtonClick, OnPregenSelectButtonClick, OnQuitButtonClick, OnSoAButtonClick, OnTBPButtonClick, OnToBButtonClick, OnTutorialButtonClick, SetEngineState |
| CScreenDLC | Base class: CBaldurEngine Methods: DecrementDLCIndex, GetDLCBought, GetDLCCount, GetDLCDescription, GetDLCImage, GetDLCIndex, GetDLCName, GetDLCState, GetDLCTitle, GetDownloadString, IncrementDLCIndex, OnBuyButtonClick, OnDoneButtonClick, OnErrorButtonClick, RestorePurchases, SetDLCIndex, UpdateDLCState |
| CScreenCharacter | Base class: CBaldurEngine Methods: GetTempSmartScriptLocal, IsAppearanceButtonClickable, IsCharacterViewable, IsDoneButtonClickable, IsDualClassButtonClickable, IsExportButtonClickable, IsInGame, IsLevelUpButtonClickable, IsMultiPlayerModifyable, IsReformPartyButtonClickable, OnAppearanceButtonClick, OnCancelButtonClick, OnCusomizeBiographyButtonClick, OnCustomizeButtonClick, OnDoneButtonClick, OnDualClassButtonClick, OnErrorButtonClick, OnExportButtonClick, OnHairSkinButtonClick, OnLevelUpButtonClick, OnPlayButtonClick, OnReformPartyButtonClick, OnScriptButtonClick, OnSoundsButtonClick, SetTempSmartScriptLocal |
| CScreenStore | Base class: CBaldurEngine Methods: GetGroupCost, GetIdentifyCost, GetMenuName, GetPanelButtonEnabled, GetPanelButtonId, GetPanelButtonPanelId, GetPanelButtonSequence, GetPanelButtonToolTip, GetRoomCost, GetRoomType, GetSpellCost, GetStoreCost, GetStoreName, IsBuyItemButtonClickable, IsBuySpellButtonClickable, IsCloseBagButtonClickable, IsContainer, IsDonateButtonClickable, IsDoneButtonClickable, IsIdentifyItemButtonClickable, IsMainCancelButtonClickable, IsMainDoneButtonClickable, IsRentRoomButtonClickable, IsRoomTypeClickable, IsSellItemButtonClickable, IsSpriteOrderable, IsStealEnabled, IsStealItemButtonClickable, OnBuyDrinkButtonClick, OnBuyItemButtonClick, OnBuySpellButtonClick, OnCloseBagButtonClick, OnDonateButtonClick, OnIdentifyItemButtonClick, OnMainDoneButtonClick, OnRentRoomButtonClick, OnSellItemButtonClick, OnStealItemButtonClick, OpenBag, RestParty, SelectGroupItem, SelectIdentifyItem, SelectSpellItem, SelectStoreItem, SetGroupItemCount, SetRoomType, SetStoreItemCount, UpdateBuyDrinksPanel, UpdateBuySellPanel, UpdateBuySpellPanel, UpdateDonatePanel, UpdateIdentifyPanel, UpdateRentRoomPanel, UpdateStealPanel |
| CScreenConnection | Base class: CBaldurEngine Methods: CancelJoinGame, ClearSessions, HasServiceProvider, IsValidAddress, JoinGame, JoinGameIPAddress, OnJoinGameButtonClick, OnLoadGameButtonClick, OnMainCancelButtonClick, OnNewGameButtonClick, SelectServiceProvider, SetPlayerName, StopConnectingToProvider |
| CScreenWizSpell | Base class: CBaldurEngine Methods: CancelSequencingSpells, DoneSequencingSpells, EraseKnownSpell, GetSpellLevel, MemorizeSpell, OnDispellButtonClick, OnEraseButtonClick, SequenceSpell, SetSpellLevel, SpellAllowedForContingency, SpellSwappedInContingency, UnmemorizeSpell, UnSequenceSpell |
| CScreenPriestSpell | Base class: CBaldurEngine Methods: GetSpellLevel, MemorizeSpell, SetSpellLevel, UnmemorizeSpell |
| CScreenWorld | Base class: CBaldurEngine Methods: CheckIfPaused, ContainerScrollEnabled, GetCurrentTimeString, GetHardPaused, GetInControlOfDialog, GetPickPartyCharacterId, GetPickPartyPortrait, GetPickPartyRemoveCharacterId, GetTopContainerItem, GetTopGroundItem, GetTopGroupItem, GroundScrollEnabled, GroupScrollEnabled, IsPickPartyDoneButtonClickable, IsPickPartyRemoveButtonClickable, OnContainerButtonClick, OnContainerScroll, OnDeathLoad, OnDeathQuit, OnDialogReplyClick, OnGroundButtonClick, OnGroundScroll, OnGroupScroll, OnHelpButtonClick, OnPickPartyDoneButtonClick, OnPickPartyPortraitButtonClick, OnQuickSaveButtonClick, OnSelectionButtonClick, RemoveCharacterFromParty, SetHighlightEnabled, StartGroundItems, StepDialog, StopGroundItems, SwapPortraits, TakeAllFromContainer, TogglePauseGame |
| CScreenMap | Base class: CBaldurEngine Methods: DisplayExploredMap, GetColorChoice, IsNoteVisible, OnColorChoice, OnMapAddNote, OnUserNoteClick, OnUserNoteDeleteButtonClick, OnUserNoteDoneButtonClick, ToggleDisplayExploredMap |
| CScreenWorldMap | Base class: CBaldurEngine Methods: CenterMarker, IsTravelButtonClickable, IsTravelButtonVisible, OnCancelButtonClick, OnMapMouseDown, OnMapMouseMove, OnMapMouseUp, StartWorldMap, TravelToSelected |
| CScreenJournal | Base class: CBaldurEngine |
| CScreenInventory | Base class: CBaldurEngine Methods: IsMultiPlayerViewable, IsSpriteOrderable |
| CScreenOptions | Base class: CBaldurEngine Methods: LoadGame, QuitGame, SaveGame, SetEngineState |
| CScreenMultiPlayer | Base class: CBaldurEngine Methods: GetEngineState, KickPlayer, Logout, ModifyCharacters, OnCancelButtonClick, OnDoneButtonClick, OnKickPlayerButtonClick, OnLogoutButtonClick, OnMainDoneButtonClick, OnModifyButtonClick, OnModifyCharacterDelete, OnPermissionButtonClick, OnPlayerSelection, OnPortraitButtonClick, OnReadyButtonClick, SetCharacterSlot, SetImportSetting, SetModifiedCharacterSlot, ToggleAllowReformParty, ToggleListenToJoin, UpdateModifyCharacterPanel |
| CScreenChapter | Base class: CBaldurEngine Methods: IsDoneButtonClickable, IsReplayButtonClickable, OnDoneButtonClick, OnReplayButtonClick, StartTextScreen |
| CScreenLoad | Base class: CBaldurEngine Methods: DeleteGame, LoadGame, OnMainCancelButtonClick |
| CScreenSave | Base class: CBaldurEngine Methods: DeleteGame, OnMainCancelButtonClick, RefreshGameSlots, SaveGame |
| CScreenCreateChar | Base class: CBaldurEngine Methods: AcceptCharacter, DecCurrentPortrait, GetCurrentPortrait, GetCurrentStep, GetEngineState, GetImportableCharacters, GetImportState, HasMoreMageLevels, IncCurrentPortrait, IsAbilityRecallButtonClickable, IsAdvancedButtonClickable, IsChargenComplete, IsDoneButtonClickable, IsHighLevelAbilitiesButtonClickable, IsMainBackButtonClickable, IsThiefSkillPlusMinusButtonClickable, OnAbilityPlusMinusButtonClick, OnAbilityRecallButtonClick, OnAbilityReRollButtonClick, OnAbilityStoreButtonClick, OnAdvancedButtonClick, OnAlignmentSelectButtonClick, OnBiographyButtonClick, OnCancelButtonClick, OnCharacterExportItemSelect, OnCheatyMcCheaterson, OnClassSelectButtonClick, OnDoneButtonClick, OnGenderSelectButtonClick, OnHighLevelAbilitiesButtonClick, OnHLAButtonClick, OnImportCharacterButtonClick, OnImportCharacterFileButtonClick, OnImportSaveButtonClick, OnKitSelectButtonClick, OnLearnMageSpellButtonClick, OnMainBackButtonClick, OnMainCancelButtonClick, OnMemorizeMageSpellButtonClick, OnMemorizePriestSpellButtonClick, OnMenuButtonClick, OnPlayButtonClick, OnPrerollCancelButtonClick, OnPrerollCharacterPick, OnProficiencyPlusMinusButtonClick, OnRaceSelectButtonClick, OnRacialEnemySelectButtonClick, OnSoundItemSelect, OnThiefSkillPlusMinusButtonClick, SetAbilityHelpInfo, SetEngineState, SetSpriteId, ShowPortraitPanel |
| CScreenCreateParty | Base class: CBaldurEngine Methods: OnBackButtonClick, OnCreateDeleteButtonClick, OnDoneButtonClick, OnPortraitButtonClick |
| CInfToolTip | Methods: FormatTooltipPrefix |
| CScreenMovies | Base class: CBaldurEngine Methods: IsPlayButtonClickable, OnCreditsButtonClick, OnDoneButtonClick, OnMovieItemSelect, OnPlayButtonClick |
These are all the constants the engine defines in Lua. The global ones are plain numbers registered by the bindings. The
CTimerWorld ones are read-only static members of the class: they can be read through the class table (CTimerWorld.TIME_DAWN) or through the timer object (timer.TIME_DAWN), and they have no setter. Game time is counted in ticks: 15 ticks per second, 4500 per game hour and 108000 per day. timer:GetCurrentTime() returns the timer's tick counter, and timer:GetCurrentHour() returns (that counter modulo 108000) divided by 4500, i.e. the hour of the day (0–23).| Name | Value | Meaning |
|---|---|---|
CINFINITY_WEATHER_TYPE_NOWEATHER | 0 | Weather type: none. Argument of C:SetWeather(type). |
CINFINITY_WEATHER_TYPE_RAIN | 1 | Weather type: rain. Argument of C:SetWeather(type). |
CINFINITY_WEATHER_TYPE_SNOW | 2 | Weather type: snow. Argument of C:SetWeather(type). |
CTimerWorld.TIME_DAWN | 27000 | Start of dawn: 27000 ticks into the day = 06:00. |
CTimerWorld.TIME_DAY | 31500 | Start of day: 31500 ticks into the day = 07:00. |
CTimerWorld.TIME_DUSK | 94500 | Start of dusk: 94500 ticks into the day = 21:00. |
CTimerWorld.TIME_NIGHT | 99000 | Start of night: 99000 ticks into the day = 22:00. |
CTimerWorld.TIMESCALE_HOUR_PER_DAY | 24 | Hours in a game day. |
CGAMEOPTIONS_GUIFEEDBACK_LOWEST | 1 | Feedback level “lowest”, a value of gameOptions.m_guiFeedBackLevel. † |
CGAMEOPTIONS_GUIFEEDBACK_LOW | 2 | Feedback level “low”. † |
CGAMEOPTIONS_GUIFEEDBACK_MEDIUM | 3 | Feedback level “medium”. † |
CGAMEOPTIONS_GUIFEEDBACK_HIGH | 4 | Feedback level “high”. † |
CGAMEOPTIONS_GUIFEEDBACK_HIGHEST | 6 | Feedback level “highest”. Note that the value is 6; no constant has the value 5. † |
These tables are created or filled by engine code. Each structure lists the keys the engine writes and the Lua type it stores.
characters – Character sheet data for the record, inventory, spellbook and party screens, keyed by character id. Rebuilt by CGameSprite::UpdateLuaStats (with UpdateLuaEquipment and UpdateLuaSpells) whenever a screen requests it (e.g. Infinity_UpdateLuaStats).
Filled by:
Note:
Filled by:
Assigned by:
Filled by:
Assigned by:
Filled by:
Filled by:
Filled by:
Filled by:
Assigned by:
Filled by:
Assigned by:
Assigned by:
Filled by:
Filled by:
Assigned by:
Assigned by:
Assigned by:
Assigned by:
Assigned by:
Assigned by:
Assigned by:
Assigned by:
Filled by:
Assigned by:
Filled by:
Filled by:
Assigned by:
Filled by:
Filled by:
Assigned by:
Assigned by:
Assigned by:
Assigned by:
Assigned by:
[n] stands for a numeric index (lists start at 1), [string] for a key the engine builds at run time (for example an equipment slot name). A table written by “assigned by” functions is replaced as a whole; the others are created by the game's Lua and only filled by the engine. Fields called strRef, name, desc, description and helpStrRef that hold numbers are string references into dialog.tlk.characters – Character sheet data for the record, inventory, spellbook and party screens, keyed by character id. Rebuilt by CGameSprite::UpdateLuaStats (with UpdateLuaEquipment and UpdateLuaSpells) whenever a screen requests it (e.g. Infinity_UpdateLuaStats).
Filled by:
CGameSprite::UpdateLuaStats.Note:
proficiencies.weapons and proficiencies.fightingstyles are first set to the list of proficiencies and then, by the next statement, replaced with a single {current, strRef, helpStrRef} record of the same name; only the record remains.
characters
[n]: table
AC: table
crushing: number
current: number
details: string
missile: number
piercing: number
slashing: number
alignment: number
attr: table
cha: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
con: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
dex: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
int: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
str: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
wis: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
biography: number
class: string
colors: table
hair: number
major: number
minor: number
skin: number
contingencySpells: table
[n]: table
condition: number
dispellable: boolean
resref: string
spells: table
[n]: table
castableCount: number
description: number
icon: string
index: number
level: number
masterResref: string
memorizedCount: number
memorizedIndex: number
name: number
resref: string
target: number
damage: table
details: string
detailsOffhand: string
max: number
maxOffhand: number or nil
min: number
minOffhand: number or nil
equipment: table
[string]: table
abilities: table
[n]: table
icon: string
itemNum: number
selected: number
text: string
abilityMode: number
empty: number
highlight: number
id: number
item: table
icon: string
slotName: string
tooltip: string
useMode: number
valid: number
gender: number
gold: number
hasClericBook: boolean
hasMageBook: boolean
hasShamanBook: boolean
hasSorcererBook: boolean
HP: table
current: number
details: string
max: number
kitDesc: string
mageDetails: table
[n]: table
maxMemorized: number
slotsRemaining: number
mageSpells: table
[n]: table
[n]: table
castableCount: number
description: number
icon: string
index: number
level: number
masterResref: string
memorizedCount: number
memorizedIndex: number
name: number
resref: string
name: string
PC: number
portrait: string
priestDetails: table
[n]: table
maxMemorized: number
slotsRemaining: number
priestSpells: table
[n]: table
[n]: table
castableCount: number
description: number
icon: string
index: number
level: number
masterResref: string
memorizedCount: number
memorizedIndex: number
name: number
resref: string
proficiencies: table
ability: table
[n]: table
current: string
helpStrRef: number
strRef: number
baseTHAC0: table
current: string
helpStrRef: number
strRef: number
class_skills: table
[n]: table
current: string
helpStrRef: number
strRef: number
crushingACMod: table
current: string
helpStrRef: number
strRef: number
currentScript: string
details: string
fightingstyles: table
current: string
helpStrRef: number
strRef: number
[n]: table
current: string
helpStrRef: number
strRef: number
lore: table
current: string
helpStrRef: number
strRef: number
missileACMod: table
current: string
helpStrRef: number
strRef: number
numAttacks: table
current: string
helpStrRef: number
strRef: number
piercingACMod: table
current: string
helpStrRef: number
strRef: number
reputation: table
current: string
helpStrRef: number
strRef: number
resistances: string
saveBreath: table
current: string
helpStrRef: number
strRef: number
saveDeath: table
current: string
helpStrRef: number
strRef: number
savePoly: table
current: string
helpStrRef: number
strRef: number
saveSpell: table
current: string
helpStrRef: number
strRef: number
saveWand: table
current: string
helpStrRef: number
strRef: number
savingThrows: string
slashingACMod: table
current: string
helpStrRef: number
strRef: number
THAC0Left: table
current: string
helpStrRef: number
strRef: number
THAC0Right: table
current: string
helpStrRef: number
strRef: number
weapons: table
current: string
helpStrRef: number
strRef: number
[n]: table
current: string
helpStrRef: number
strRef: number
weaponStyleBonus: string or nil
race: number
sequencerSpells: table
[n]: table
dispellable: boolean
resref: string
spells: table
[n]: table
castableCount: number
description: number
icon: string
index: number
level: number
masterResref: string
memorizedCount: number
memorizedIndex: number
name: number
resref: string
Stats: table
bestenemy: table
current: string
helpStrRef: number
strRef: number
chapkills: table
current: string
helpStrRef: number
strRef: number
chapxpvalue: table
current: string
helpStrRef: number
strRef: number
favspell: table
current: string
helpStrRef: number
strRef: number
favweapon: table
current: string
helpStrRef: number
strRef: number
gamekills: table
current: string
helpStrRef: number
strRef: number
gamexpvalue: table
current: string
helpStrRef: number
strRef: number
partychapkills: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
partychapxp: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
partygamekills: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
partygamexp: table
base: number
current: number
extra: number (key 'str' only)
extraBase: number (key 'str' only)
strRef: number
timespent: table
current: string
helpStrRef: number
strRef: number
statusEffects: table
[string]: table
bam: string
current: number
strRef: number
THAC0: table
current: number
details: string
detailsOffhand: string
offhand: number or nil
weaponName: string
chargen – State of the character creation screen: the option lists of each creation step and the current selection details. †Filled by:
CScreenCreateChar::OnAbilityPlusMinusButtonClick, CScreenCreateChar::OnDoneButtonClick, CScreenCreateChar::OnMenuButtonClick, CScreenCreateChar::OnPrerollCharacterPick, CScreenCreateChar::ResetGenderPanel, CScreenCreateChar::ResetMemorizeMagePanel, CScreenCreateChar::ResetMemorizePriestPanel, CScreenCreateChar::UpdateAbilitiesPanel, CScreenCreateChar::UpdateChooseMagePanel, CScreenCreateChar::UpdateClassPanel, CScreenCreateChar::UpdateHatedRacePanel, CScreenCreateChar::UpdateHighLevelAbilitiesPanel, CScreenCreateChar::UpdateMainPanel, CScreenCreateChar::UpdateMemorizeMagePanel, CScreenCreateChar::UpdateMemorizePriestPanel, CScreenCreateChar::UpdateProficienciesPanel.
chargen
ability: table
[n]: table
roll: string
abilityReachedMax: boolean
abilityReachedMin: boolean
alignment: table
[n]: table
desc: number
id: number
name: number
charInfo: string
choose_spell: table
[n]: table
count: number
enabled: boolean
key: string
class: table
[n]: table
desc: number
id: number
name: number
currentSpellLevelChoice: number
customSound: table
[n]: string
extraAbilityPoints: number
extraProficiencySlots: number
extraSkillPoints: number
extraSpells: number
hatedRace: table
[n]: table
desc: number
id: number
name: number
helpText: string
HLAs: table
[n]: table
canAdd: boolean
canSubtract: boolean
count: number
description: number
icon: string
name: number
resref: string
information: string
kit: table
[n]: table
desc: number
id: number
name: number
levelInfo: string
levelingUp: boolean
name: string
numHLAs: number
portrait: string
proficiency: table
[n]: table
desc: number
id: number
max: number
min: number
name: number
value: number
races: table
[n]: table
desc: number
id: number
name: number
thief_skill: table
[n]: table
description: number
id: number
name: number
value: number
title: string
totalRoll: number
store – State of the store screen panels (drinks, healing spells, room text, donation). †Assigned by:
CScreenStore::OnDonateButtonClick.Filled by:
CScreenStore::EngineActivated, CScreenStore::OnDonateButtonClick, CScreenStore::RestParty, CScreenStore::UpdateBuyDrinksPanel, CScreenStore::UpdateBuySpellPanel, CScreenStore::UpdateIdentifyPanel, CScreenStore::UpdateRentRoomPanel.
store
donateText: table or string
drinks: table
[n]: table
name: string
valid: number
value: number
drinkText: string
groupItems: table
[n]: table
count: number or nil
highlight: number
item: table
count: number
descPicture: string
description: string
icon: string
identified: number
isBag: number
name: string
res: string
tint: string
usages: number
label: string
numInStock: number
valid: number
value: number
hasDonated: number
healingSpells: table
[n]: table
description: number
highlight: number
icon: string
label: string
name: number
tint: string
valid: number
value: number
icon: string
identifyItems: table
[n]: table
highlight: number
item: table
count: number
descPicture: string
description: string
icon: string
identified: number
isBag: number
name: string
res: string
tint: string
usages: number
label: string
valid: number
value: number
identifyText: table or string
qualityIcon: string
roomText: string
spellText: string
storeItems: table
[n]: table
amountSelected: number
clickable: number
highlight: number
item: table
count: number
descPicture: string
description: string
icon: string
identified: number
isBag: number
name: string
res: string
stackSize: number
tint: string
usages: number
label: string
maxCount: number
valid: number
value: number
loot – Container, group and ground items shown by the main screen's loot panels; each item is a CItem::PushToLua record. †Assigned by:
CScreenWorld::UpdateLua.Filled by:
CGameSprite::UpdateVisibleGroundItems, CScreenWorld::AsynchronousUpdate, CScreenWorld::StartContainer, CScreenWorld::UpdateLua.
loot
containerIcon: string
containerItems: table
[n]: table
item: table or nil
count: number
descPicture: string
description: string
icon: string
identified: number
isBag: number
name: string
res: string
tint: string
usages: number
groundItems: table
[n]: table
containerId: number
item: table
count: number
descPicture: string
description: string
icon: string
identified: number
isBag: number
name: string
res: string
tint: string
usages: number
slotId: number
groupItems: table
[n]: table
item: table or nil
count: number
descPicture: string
description: string
icon: string
identified: number
isBag: number
name: string
res: string
tint: string
usages: number
multiplayer – State of the multiplayer party screen (character and player slots, permissions, button states). †Filled by:
CScreenMultiPlayer::UpdateLuaTables.
multiplayer
allowreformparty: boolean
character: table
[n]: table
controlled: string
controlledclickable: boolean
name: string
nameclickable: boolean
portrait: string
portraitclickable: boolean
ready: boolean
readyclickable: boolean
donebuttonclickable: boolean
importsetting: number
listentojoin: boolean
modifybuttonclickable: boolean
player: table
[n]: table
name: string
permissions: table
[n]: boolean
connection – Players currently connected (multiplayer connection screen). †Filled by:
CScreenConnection::UpdateLuaTables.
connection
currentPlayers: table
[n]: table
name: string
partyImport – Party creation slots (multiplayer/party import screen). †Filled by:
CScreenCreateParty::UpdateLuaTables.
partyImport
character: table
[n]: table
createdelete: string
name: string
portrait: string
playbuttonclickable: boolean
gameSaves – Saved games listed on the load/save screens. †Assigned by:
CScreenLoad::RefreshGameSlots, CScreenSave::RefreshGameSlots.
gameSaves
currentGameInfo: table
chapter: string
time: string
files: table
[n]: table
chapter: string
fileName: string
fileTime: number
hasPortrait0: number
hasPortrait1: number
hasPortrait2: number
hasPortrait3: number
hasPortrait4: number
hasPortrait5: number
hasScreenShot: number
portrait0: light userdata
portrait1: light userdata
portrait2: light userdata
portrait3: light userdata
portrait4: light userdata
portrait5: light userdata
screenshot: light userdata
slotIndex: number
slotName: string
sName: string
time: string
isImporting: number
mapnoteSettings – Map notes of the current area, keyed by note id. †Filled by:
CGameAreaNotes::PushNoteToLua.
mapnoteSettings
[n]: table
screenCoord: table
x: number
y: number
sequence: number
text: number
worldCoord: table
x: number
y: number
areaNoteGrid – Grid lookup of map notes by position, used by the engine to find a note at a point. †Assigned by:
CGameAreaNotes::IntrnlInitialize.
areaNoteGrid
[n]: table
[n]: table or nil
worldPlayerDialogChoices – Player response choices of the current dialog. †Assigned by:
CGameDialogSprite::EnterDialog, CScreenWorld::EndDialog.Filled by:
CScreenWorld::DisplayText.
worldPlayerDialogChoices
[n]: table
marker: number
text: string
tempStats – Character stats with and without a candidate item equipped, used for item comparison. †Filled by:
CGameSprite::GetRatingWithItem.
tempStats
[n]: table
AC: number
currentHP: number
dmgMax: number
dmgMin: number
equippedItem: string
maxHP: number
tempItem: string
THAC0: number
character_select – Pre-rolled characters offered by character creation. †Assigned by:
CScreenCreateChar::ResetPrerollPanel.
character_select
[n]: table
desc: string
id: number
name: string
portrait: string
prerollCharacters – Importable characters (character creation). †Assigned by:
CScreenCreateChar::GetImportableCharacters.
prerollCharacters
[n]: table
description: string
file: string
image: string
name: string
mageSpells – Mage spells per level offered by character creation. †Assigned by:
CScreenCreateChar::ResetSpellTables.mageSpells [n]: tablepriestSpells – Priest spells per level offered by character creation. †
Assigned by:
CScreenCreateChar::ResetSpellTables.priestSpells [n]: tablespellBook – Spell selection state of character creation (learn spells). †
Assigned by:
CScreenCreateChar::UpdateChooseMagePanel.spellBook choose_spell: table extraSpells: number [n]: tablecontingencyConditions – Conditions offered when creating a contingency. †
Assigned by:
CScreenWizSpell::UpdateMainPanel.
contingencyConditions
[n]: table
desc: number
strref: number
contingencyTargets – Targets offered when creating a contingency. †Assigned by:
CScreenWizSpell::UpdateMainPanel.
contingencyTargets
[n]: table
desc: number
strref: number
mp_sessions – Known multiplayer sessions. †Assigned by:
DPWrapper::Close, DPWrapper::CloseSession.Filled by:
?0DPProviderEnet.
mp_sessions
[n]: table
flags: table or number
name: string
players: number
type: number
updated_at: number
version: string
mp_sessions_jid – Multiplayer sessions keyed by Jabber ID (online play). †Assigned by:
DPWrapper::Close, DPWrapper::CloseSession.Filled by:
DPProviderJingle::AddRoom.mp_sessions_jid [string]: table or numbersidebarVisible – Visibility of the LEFT and RIGHT side bars, saved with the game. †
Filled by:
CInfGame::Unmarshal.sidebarVisible LEFT: table or number RIGHT: table or numberOverrideStrings – TLK override strings (user journal entries and similar), keyed by string reference. †
Assigned by:
CTlkFileOverride::Open.Filled by:
CTlkFileOverride::Add, CTlkFileOverride::AddUserEntry, CTlkFileOverride::Open, CTlkFileOverride::Remove.OverrideStrings [n]: nil or stringactionBarTooltip – Action bar tooltip texts, keyed by button. †
Filled by:
CInfButtonArray::SetTooltip.actionBarTooltip [n]: stringscriptList – AI script names listed on the record screen. †
Assigned by:
CScreenCharacter::RefreshScripts.scriptList [n]: stringlist_GUIREC_20_5 – Sound set names listed on the record screen. †
Assigned by:
CScreenCharacter::OnSoundsButtonClick.list_GUIREC_20_5 [n]: stringlist_GUIMOVIE_0_0 – Movies listed on the movies screen. †
Assigned by:
CScreenMovies::EngineActivated.
list_GUIMOVIE_0_0
[n]: table
description: string
movieCode: string
combatLog – Combat log lines (emptied when a game starts). †Assigned by:
CInfGame::InitGame.combatLog [n]: stringsequencerSpells – Spells chosen for the sequencer or contingency being built; set to nil when done. †
Assigned by:
CScreenWizSpell::DoneSequencingSpells, CScreenWizSpell::OnContingency.
sequencerSpells
[n]: table
castableCount: number
description: number
icon: string
index: number
level: number
masterResref: string
memorizedCount: number
memorizedIndex: number
name: number
resref: string
| Global | Type | Set by | Meaning |
|---|---|---|---|
aiButtonToggle | number | CInfGame::InitGame, CInfGame::ToggleAI, CInfGame::Unmarshal | State of the party AI button. † |
areaName | string | CScreenMultiPlayer::SetMultiplayerScreenInformation | Area name shown on the multiplayer screen. † |
bookMode | number | CScreenWizSpell::UpdateMainPanel | Mode of the mage spellbook screen. † |
cellNumber | number | setListRowCellSelected | Column of the list cell that was clicked. † |
chapter | number | CScreenMultiPlayer::SetMultiplayerScreenInformation | Current chapter (multiplayer screen); also read by the journal. † |
chapterBackground | string | CScreenChapter::StartDream, CScreenChapter::StartTextScreen | Background image of the chapter/text screen. † |
characterExportCharacterEdit | string | CScreenCharacter::OnCharacterItemSelect, CScreenCharacter::OnExportButtonClick | File name edit field of character export (record screen). † |
chargenExportCharacterEdit | string | CScreenCreateChar::AcceptCharacter, CScreenCreateChar::OnCharacterExportItemSelect | File name edit field of character export (character creation). † |
chargenProficiencyHelpText | number | CScreenCreateChar::OnProficiencyPlusMinusButtonClick | Help text of the proficiency step (character creation). † |
charNameEdit | string | CScreenCreateChar::OnMainBackButtonClick | Text of the character name edit field (character creation). † |
chatboxScrollToBottom | number | CGameDialogSprite::AsynchronousUpdate, CScreenWorld::DisplayChatMessage, CScreenWorld::DisplayText | Request to scroll the dialog/chat box to the bottom. † |
Chitin_GetSectionCallback | C function | bootstrapLua | Engine callback used by getOptionsSection to hand INI entries back to the engine. |
combatLog | table | CInfGame::InitGame | Combat log lines (emptied when a game starts). † |
CONNECTION_ERROR_MESSAGE | number | CScreenConnection::SetPlayerName | Error message of the connection screen (string reference). † |
connectionPlayerNameEdit | string | CScreenConnection::HandleJoinCompletion, CScreenConnection::InitializeSessionData | Player name edit field (connection screen). † |
connectionSessionNameEdit | string | CScreenConnection::InitializeSessionData | Session name edit field (connection screen). † |
contingencyMaxSpells | number | CScreenWizSpell::UpdateMainPanel | Number of spells the contingency holds. † |
contingencyResRef | string | CScreenWizSpell::UpdateMainPanel | Resource of the contingency spell being cast. † |
contingencySwapTable | table | CScreenWizSpell::SpellSwappedInContingency | Spells swapped while building a contingency. † |
createBioEdit | string | CScreenCreateChar::OnBiographyButtonClick | Text of the biography edit field (character creation). † |
createCharGenderHelp | number | CScreenCreateChar::OnGenderSelectButtonClick | Help text of the gender step (character creation). † |
currentChargenCustomSound | number | CScreenCreateChar::OnDoneButtonClick | Selected custom sound set (character creation). † |
currentChargenHatedRace | number | CScreenCreateChar::UpdateHatedRacePanel | Selected hated race (character creation). † |
currentChargenKit | number | CScreenCreateChar::UpdateKitPanel | Selected kit (character creation). † |
currentID | number | CScreenCharacter::UpdateMainPanel, CScreenCreateChar::UpdateProficienciesPanel, CScreenCreateParty::OnPortraitButtonClick, CScreenMultiPlayer::OnPortraitButtonClick | Id of the selected character. † |
currentPanelID | number | CScreenCharacter::OnCharacterExport, CScreenCharacter::OnErrorButtonClick | Current panel of the character record screen. † |
debugResponseTable | copy of a value or nil | CGameDialogSprite::AsynchronousUpdate, CLUAConsole::PickDialog | Dialog responses offered by the console's dialog debugging. † |
dialogButtonText | string | CGameDialogEntry::Display | Text of the dialog continue/end button. † |
epilogueImage | string | CScreenChapter::StartDream, CScreenChapter::StartTextScreen, CScreenChapter::TimerAsynchronousUpdate | Image of the epilogue/dream screen. † |
eventXCoord | number | continueMapCapture, startItemCapture | X coordinate of the current mouse event, relative to the item. † |
eventYCoord | number | continueMapCapture, startItemCapture | Y coordinate of the current mouse event, relative to the item. † |
getOptionsSection | function | – | Defined by the engine's bootstrap Lua: calls Chitin_GetSectionCallback for every key of options[sectionName]. |
groundItemsButtonToggle | number | CInfGame::Unmarshal, CScreenCreateChar::AcceptCharacter, CScreenWorld::OnKeyDown | State of the ground items button. † |
highlightButtonToggle | number | CInfGame::Unmarshal, CScreenCreateChar::AcceptCharacter, CScreenWorld::EngineGameInit, CScreenWorld::OnKeyDown, CScreenWorld::OnKeyUp | State of the highlight button. † |
id | number | CScreenInventory::OnPortraitLClick, CScreenPriestSpell::UpdateMainPanel, CScreenWizSpell::UpdateMainPanel, Infinity_OnPortraitLClick, Infinity_UpdateLuaStats | Id of the character the current screen shows. † |
instanceId | number | continueButtonCapture, drawItem, drawTooltipFromItem, eventMenu, isPointOverMenu, lastItemUnderPoint, pushButton, uiIsPointOverMenu | See the MENU Lua interface page. |
io | table | – | Stub replacing the standard io library (output() does nothing), installed only with test-automation support. |
key_pressed | nil or number | continueEditCapture | Key code typed into an edit field (nil when none). † |
languages | table | – | Available languages; created by the engine's bootstrap Lua, filled through setLanguageVisible. |
letter_pressed | nil or string | continueEditCapture | Character typed into an edit field (nil when none). † |
list_GUIREC_20_5_idx | number | CScreenCharacter::OnSoundsButtonClick | Index of the selected sound set. † |
luaEdit | string | CScreenWorld::OnKeyDown, Infinity_LuaConsoleInput | Text of the Lua console edit field. † |
luaEditDebugDump | number | CScreenWorld::OnKeyDown | Set by the console key handler. † |
luaEditObjectId | light userdata | CScreenWorld::OnKeyDown | Object under the cursor when the console was opened. † |
mageBookEnabled | boolean | CScreenWizSpell::UpdateMainPanel | Whether the mage book is available. † |
mageName | string | CScreenWizSpell::UpdateMainPanel | Character name shown on the mage spellbook screen. † |
mapNoteEdit | string | CScreenMap::OnMapAddNote, CScreenMap::OnUserNoteClick | Text of the map note edit field. † |
maxMagePage | number | CScreenWizSpell::UpdateMainPanel | Number of mage spellbook pages. † |
maxPriestPage | number | CScreenPriestSpell::UpdateMainPanel | Number of priest spellbook pages. † |
messageScreenText | number | CInfinity::Render | Text of the full-screen message. † |
motionX | number | continueHandleCapture | Horizontal movement while dragging a handle. † |
motionY | number | continueHandleCapture | Vertical movement while dragging a handle. † |
mouseoverRow | number | eventMenu | List row under the mouse. † |
mp_shownSessions | table | – | Multiplayer sessions currently listed (emptied by the engine). † |
mpChatboxScrollToBottom | number | CScreenWorld::DisplayChatMessage | Request to scroll the multiplayer chat box to the bottom. † |
mpChatLength | number | CScreenWorld::ClearChatMessages | Number of multiplayer chat lines. † |
mpChatTable | table | CScreenWorld::ClearChatMessages | Multiplayer chat lines (emptied by the engine). † |
mpChatText | string | CScreenWorld::ClearChatMessages | Multiplayer chat text. † |
mpErrorState | number | CScreenMultiPlayer::OnKickPlayerButtonClick, CScreenMultiPlayer::OnLogoutButtonClick, CScreenMultiPlayer::OnModifyButtonClick, CScreenMultiPlayer::OnPlayerSelection, CScreenMultiPlayer::TimerAsynchronousUpdate | Error state of the multiplayer screen. † |
mpErrorText | number | CScreenMultiPlayer::OnKickPlayerButtonClick, CScreenMultiPlayer::OnLogoutButtonClick, CScreenMultiPlayer::OnModifyButtonClick, CScreenMultiPlayer::OnPlayerSelection, CScreenMultiPlayer::TimerAsynchronousUpdate | Error message of the multiplayer screen (string reference). † |
multiplayerFromInGame | boolean | CMultiplayerSettings::SetArbitrationLockStatus | Whether the multiplayer screen was opened from a running game. † |
multiplayerLocalPlayerID | number | CScreenMultiPlayer::SetMultiplayerScreenInformation | Id of the local player. † |
nameToItemPointer | light userdata | initNameMap | See the MENU Lua interface page. |
oldOverlayMenuName | nil | CBaldurChitin::ConfirmQuit | Cleared by the quit confirmation before it shows QuitMenu. † |
options | table | – | INI options by section and key; created by the engine's bootstrap Lua and filled through SetPrivateProfileString. |
os | table | – | Stub replacing the standard os library (getenv() returns nil), installed only with test-automation support. |
priestBookEnabled | boolean | CScreenPriestSpell::UpdateMainPanel | Whether the priest book is available. † |
priestName | string | CScreenPriestSpell::UpdateMainPanel | Character name shown on the priest spellbook screen. † |
print | C function | bootstrapLua | Replacement for Lua's print, registered by the engine's Lua bootstrap. † |
recBioEdit | string | CScreenCharacter::OnCusomizeBiographyButtonClick | Text of the biography edit field (record screen). † |
rowNumber | copy of a value | Infinity_GetListHeight, Infinity_SelectDialogueOption, Infinity_SelectListItem, RenderListCallback | See the MENU Lua interface page. |
rowSelected | number | Infinity_GetListHeight, Infinity_SelectDialogueOption, Infinity_SelectListItem, RenderListCallback | See the MENU Lua interface page. |
scriptDescription | string | CScreenCharacter::OnScriptItemSelect | Description of the selected AI script. † |
scriptList_idx | number | CScreenCharacter::RefreshScripts | Index of the selected AI script. † |
scrollDirection | number | eventMenu | Direction of the last mouse-wheel event. † |
selectedSlot | string | CInfButtonArray::OnRButtonPressed | Slot name of the action bar button that was right-clicked. † |
selectionButtonToggle | boolean | CGameArea::OnActionButtonUp | State of the selection button. † |
sequencerSpells | nil or table | CScreenWizSpell::DoneSequencingSpells, CScreenWizSpell::OnContingency | Spells chosen for the sequencer or contingency being built; set to nil when done. † |
setLanguageVisible | function | – | Defined by the engine's bootstrap Lua: languages[locale] = {0, 0, locale}. Called by the engine for every language found. |
SetPrivateProfileString | function | – | Defined by the engine's bootstrap Lua: stores options[section][key] = value. |
showContingency | boolean | CScreenWizSpell::UpdateMainPanel | Whether the contingency panel is shown. † |
showJournal | number | CBaldurEngine::OnLeftPanelButtonClick, CBaldurEngine::SelectEngine, CScreenWorld::EngineGameUninit | Whether the journal is open. † |
showMpChat | number | CScreenWorld::OnKeyDown, CScreenWorld::ToggleChatEditBox | Whether the multiplayer chat is shown. † |
showNotes | number | CScreenMap::UpdateMainPanel | Whether map notes are shown. † |
storeDonateAmountEdit | string | CScreenStore::OnDonateButtonClick | Donation amount edit field (store). † |
text_CHAPTERSCROLL | string | CScreenChapter::SwitchMainPanel | Text of the scrolling chapter screen. † |
text_CHAPTERSCROLL_auto | number | CScreenChapter::OnMixerInitialize, CScreenChapter::OnReplayButtonClick, CScreenChapter::SwitchMainPanel | Whether the chapter text scrolls automatically. † |
text_CHAPTERSCROLL_timeStart | number | CScreenChapter::OnMixerInitialize, CScreenChapter::OnReplayButtonClick, CScreenChapter::SwitchMainPanel | Start time of the chapter text scrolling. † |
TEXT_inventoryError | string | CScreenInventory::SetErrorString | Inventory error message. † |
TEXT_popup_info | number or string | CScreenConnection::ShowSessionTerminatedMessage, CScreenInventory::OnUseButtonClick, CScreenInventory::TimerAsynchronousUpdate, CScreenJournal::OnRestButtonClick, CScreenOptions::SaveGame, CScreenStart::TimerAsynchronousUpdate, uiPushDialog | Message for the information popup (string reference or text). † |
textflashes | table | CScreenWorld::EngineGameUninit | Floating text entries (emptied when the game screen closes). † |
uiTranslationFile | nil | dimmInit | Cleared at start-up. † |
worldDeathStr | number | CScreenWorld::AsynchronousUpdate | Death message, also logged by the engine. † |
worldMessageBoxClickedOnce | number | CInfGame::LoadOptions | Message box state, saved with the options. † |
worldMessageBoxLength | number | CScreenWorld::EngineGameUninit | Number of message box lines. † |
worldMessageBoxText | string | CScreenWorld::EngineGameUninit | Message box text. † |
worldMessageBoxTop | number | CInfGame::LoadOptions | Message box scroll position, saved with the options. † |
worldNPCDialogText | string | CScreenWorld::DisplayText, CScreenWorld::EndDialog | Text of the current NPC dialog line. † |
The engine calls these global Lua functions but does not define them; the game's own Lua code (UI.MENU and the Lua resources it loads) has to. Arguments are listed in order with the Lua type the engine pushes; where several argument lists are shown, different call sites pass different types.
The engine also reads these globals, which the game's Lua code sets (for example the variables of MENU edit fields):
| Function | Arguments | Called by | Meaning |
|---|---|---|---|
buildQuestsTable | () | CBaldurChitin::Init, CInfGame::UpdateTokens | Rebuild the quest list (journal). † |
chapterText | () | CScreenMultiPlayer::SetMultiplayerScreenInformation | Called for the chapter text of the multiplayer screen. † |
checkDoubleClickScheduled | (string) | CMessageContainerAddItem::Run | Called when an item is added to a container, with the item's resource name. † |
checkEntryComplete | (number, number) | CGameJournal::AddEntry | Called when a journal entry is added (entry string reference and type). † |
clearCharacterSlot | (number, boolean) | CInfGame::ClearCharacterSlot, CNetwork::OnCloseSession, CScreenMultiPlayer::SetMultiplayerScreenInformation | Clear a character slot of the multiplayer screen. † |
clearPlayerSlot | (number, boolean) | CNetwork::OnCloseSession, CScreenMultiPlayer::SetMultiplayerScreenInformation | Clear a player slot of the multiplayer screen. † |
clearSessionsBefore | (number) | DPProviderJingle::Pump | Forget multiplayer sessions older than the given time. † |
connectionBuildGameList | () | XmppHandler::Pump | Rebuild the list of online games. † |
destroyMemorizationSparkle | (number) | CScreenPriestSpell::TimerAsynchronousUpdate, CScreenWizSpell::TimerAsynchronousUpdate | Remove the memorisation effect of a spellbook slot. † |
getDialogButtonEnabled | () | CScreenWorld::OnKeyDown | Whether the dialog continue/end button is enabled (result read as a number/boolean). † |
getUiString | (string) | CGameOptions::SetDifficulty, CGameOptions::SetStoryMode, CGameSprite::UpdateLuaStats, CScreenCharacter::OnDoneButtonClick, CScreenCharacter::OnScriptItemSelect, CScreenCharacter::RefreshScripts, CScreenMap::UpdateMainPanel, CScreenMultiPlayer::SetMultiplayerScreenInformation, CScreenStore::OnRentRoomButtonClick, translateString, yy_reduce | Translate a UI string key (2.7.3.0; the key is passed as a string and the translated text is returned). |
keyExists | (string, number) | CInfButtonArray::UpdateButtons | Whether a key binding exists (action bar). † |
log | (string) | Infinity_Log | Called by Infinity_Log with the message. |
matchMultiplayerGameType | (string) | CScreenMultiPlayer::SetMultiplayerScreenInformation | Select the multiplayer game type entry. † |
popSidebars | () | CScreenWizSpell::EngineDeactivated, CScreenWorld::EngineDeactivated | Hide the side bars when the spellbook or game screen deactivates. † |
popupDetails | (number, number, number, string) | CInfButtonArray::OnRButtonPressed | Show the details popup of an action bar item. † |
popupInfo | (number) | CScreenCharacter::OnRestButtonClick, CScreenCreateChar::OnDoneButtonClick, CScreenSave::SaveGame, CScreenStore::OnBuyDrinkButtonClick, CScreenStore::OnBuyItemButtonClick, CScreenStore::OnBuySpellButtonClick, CScreenStore::OnIdentifyItemButtonClick, CScreenStore::OnRentRoomButtonClick, CScreenStore::OnSellItemButtonClick | Show an information popup with a string reference. † |
printIni | (light userdata) | chWriteInifile | Write the INI options out (called while saving the INI, with the file handle). † |
pushSidebars | () | CScreenWizSpell::EngineActivated, CScreenWorld::EngineActivated | Show the side bars when the spellbook or game screen activates. † |
refreshMageBook | () | CScreenWizSpell::SequenceSpell, CScreenWizSpell::UnSequenceSpell, CScreenWizSpell::UpdateMainPanel | Refresh the mage spellbook screen. † |
refreshMageContingency | () | CScreenWizSpell::OnDispellButtonClick | Refresh the contingency display. † |
refreshPriestBook | () | CScreenPriestSpell::UpdateMainPanel | Refresh the priest spellbook screen. † |
removeUserEntry | (number) | CGameJournal::ChangeEntry | Remove a user journal entry. † |
resizeDialog | () | CScreenWorld::DisplayText | Resize the dialog panel after new text. † |
setChapterBackground | (number) | CScreenChapter::SwitchMainPanel | Set the background of the chapter screen. † |
showItemDescription | (number) | CInfButtonArray::OnRButtonPressed | Show the description of an action bar item. † |
storeRest | () | CScreenStore::OnRentRoomButtonClick | Rest at the inn (store screen). † |
t | (string) | CGameOptions::SetDifficulty, CGameOptions::SetStoryMode, CGameSprite::UpdateLuaStats, CScreenCharacter::OnDoneButtonClick, CScreenCharacter::OnScriptItemSelect, CScreenCharacter::RefreshScripts, CScreenMap::UpdateMainPanel, CScreenMultiPlayer::SetMultiplayerScreenInformation, CScreenStore::OnRentRoomButtonClick, translateString, yy_reduce | Translation function used by the MENU parser in 2.6.6.0 (same role as getUiString). |
tick_cucumber | () | CChitin::Update | Per-frame hook of the test-automation support (only with that support enabled). † |
toggleSidebar | (string) | CScreenWorld::OnKeyUp | Toggle a side bar (LEFT or RIGHT). † |
unmemorizingMageSpell | (string) | CScreenWizSpell::UnmemorizeSpell | Called when a mage spell is unmemorised. † |
unmemorizingPriestSpell | (string) | CScreenPriestSpell::UnmemorizeSpell | Called when a priest spell is unmemorised. † |
updateJournalEntry | (number, number, number, number, string) | CGameJournal::UpdateJournalEntry | Update a journal entry. † |
updateMPChatPreview | (string) | CScreenWorld::DisplayChatMessage | Show a new multiplayer chat line. † |
updateMultiplayerCharacterSlot | (number, string, boolean) | (number, string, number) | (number, string, string) | CScreenMultiPlayer::SetMultiplayerScreenInformation | Update a character slot of the multiplayer screen. † |
updateMultiplayerPlayerSlot | (number, string, number) | (number, string, string) | CScreenMultiPlayer::SetMultiplayerScreenInformation | Update a player slot of the multiplayer screen. † |
updateMultiplayerSessionData | (string, string, string, string, number) | CScreenMultiPlayer::SetMultiplayerScreenInformation | Update the session information of the multiplayer screen. † |
autopickMageSpells | run as a Lua statement | CScreenCreateChar::UpdateChooseMagePanel | Pick the initial mage spells automatically (character creation). † |
initQuests | run as a Lua statement | CInfGame::InitGame | Initialise the quest list when a game starts. † |
loadBindings | run as a Lua statement | CInfGame::InitGame, CInfGame::LoadKeymap | Load key bindings. † |
removeStringTokenLua | run as a Lua statement | CScreenDLC::GetDownloadString | Remove a string token. † |
resetStatsDisplay | run as a Lua statement | CScreenInventory::SwapWithPortrait, CScreenInventory::SwapWithSlot | Refresh the inventory stats after an equipment change. † |
sortSaves | run as a Lua statement | CScreenLoad::RefreshGameSlots, CScreenSave::RefreshGameSlots | Sort gameSaves. † |
updateAttrTable | run as a Lua statement | CInfGame::ChangeBiography, CScreenCharacter::UpdateMainPanel, Infinity_OnPortraitLClick | Refresh the attribute table of the record screen. † |
updateChatViewed | run as a Lua statement | CScreenWorld::DisplayChatMessage | Mark multiplayer chat as viewed. † |
The engine also reads these globals, which the game's Lua code sets (for example the variables of MENU edit fields):
connectionIsHosting (CScreenConnection::JoinGame, CScreenConnection::TimerAsynchronousUpdate), currentAnimationID (Infinity_InstanceAnimation), currentChargenAlignment (CScreenCreateChar::IsDoneButtonClickable), currentContingencyCondition (CScreenWizSpell::DoneSequencingSpells), currentContingencyTarget (CScreenWizSpell::DoneSequencingSpells), debugResponseIndex (CGameDialogSprite::AsynchronousUpdate), draggedPortrait (CGameArea::AIUpdate), engine_mode (initEngineSettings), engine_name (initEngineSettings), font_colors (CVidFont::SetResRef), fontcolors (drawLetters, fontIsCommandLetter), languages (dimmInit), length (?0DPProviderEnet), list_GUICG_18_2 (CScreenCreateChar::IsDoneButtonClickable), list_GUICG_18_4 (CScreenCreateChar::IsDoneButtonClickable), listMetaInfo (RenderListCallback), loc_screenshot (CChitin::ProcessEvents), mouseOverPortrait (CScreenWorld::AsynchronousUpdate, eventMenu), mouseOverQuicklootContainer (CScreenWorld::AsynchronousUpdate), mulitplayerPreexistingDifficulty (CScreenConnection::HandleEMEvent), nameToItem (findItemByName), options (BGDefaultPrivateProfileString, BGRemovePrivateProfileObject), package (enableCucumberSupport), popup2Button (CScreenStore::OnRentRoomButtonClick), purchasedDLC (CPlatform::HasDLC, CPlatform::HasDLCContent), standalone (initEngineSettings), storeCurMenuId (CScreenStore::IsBuySpellButtonClickable, CScreenStore::IsCharacterInRange), styles (yy_reduce), uiMenuStack (restoreMenuStack), usingSODStartMenu (CScreenStart::TimerAsynchronousUpdate).
The bindings, the embedded chunk, the constants and their values, the globals set by the engine and the table structures are identical in all six examined builds. The only difference is the translation function the engine calls:
t in 2.6.6.0 and getUiString in 2.7.3.0 (see also the MENU page).