It seems the text rendering behavior is slightly changed in the new 2.7 game patch? Some text now appears out of bounds occasionally in the item description page and spell book. I think it only happened after the patch because I didn't notice the issue before, and no matter using which font size the issue still persist. I'm using Infinity UI++ v1.27 version.
Umm, I think it is caused by the latest version of EEex. The out of bounds glitch was gone when I tested to run Baldur.exe directly instead of EEex's InfinityLoader.
Been working for some time on new inventory paperdolls that would be compatible (persistent) with the all party inventory. Things are finally coming together so there is a little sneak peek.
Pecca, I have found a small glitch. Normally the spell description (by right clinking a spell) is on leftmost side, but if opening an item description then the subsequent spell description popup will leave a large area blank space.
Normal
After opening item description
Besides, some item image like GIFT OF PEACE is corrupted in item description.
@Pecca Looking forward to those new paperdolls. That is very promising!
I found that the UI is not yet supporting the newest MSASS portrait pack as well as the YANNER2a-f from BG1EE, so I added them manually in UI.MENU. Works out nicely for me. Additionally I tried to sort them a bit clearer:
BG1
BG2
BGEE
SOD
MANLEY/BDTM (v2.6 Addition for BGEE)
BDORC/BDSHAM/SKAN/HELM/HVLN (Addition for BG2EE)
YANNER (DLC Gallery of Heroes and Faces of Good and Evil)
MSASS (DLC Reflections of Myth and Valor)
SORCE (?)
Only exception are the SOD portraits for Imoen and Viconia which I added after BG2, as they were established companions before and they are just alternatives.
I also included the story NPC portraits, but made them disappear in the LUA code as they shouldn't be chosen. But having them show up to check the look for modding purposes made sense to me.
Found a small glitch with 1.27. The Auto-Pause options menu screen. Two of the options won't stay on when clicked on and applied. When you check the menu screen again they appear disabled. Looking at the configuration file for the game I can see that the Trap Found option is not being applied.
Another issue, this one seems to be unresolved. When creating a Thief character and you get to the Skills section, you can advance without assigning your Thief skills. In BGEE/BG2EE, if I remember correctly, this is not the case; you have to assign all your Thief skills before being allowed to progress.
You can still go back to the Skills section, so it's not a critical game stopping bug.
Greetings. Is there an easy way to have your ui enable the advanced ai within IWDEE? Right now I need to do the following to do a workaround to get it to work with Lefreut UI for IWDEE, and I am hoping there can be an easier way to enable it with your ui. Thank you!
COPY_EXISTING "UI.MENU" ~override~
///////////////////////////////////////////////////////////////////////////
// Update UI.MENU //
///////////////////////////////////////////////////////////////////////////
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~currentPanelID = const.SCRIPT_ID
showingSmartOptions = false~~~~~
string = ~~~~~currentPanelID = const.SCRIPT_ID
moSmartScriptIdx = -1
for i, name in ipairs(scriptList) do
if name == 'mo_core' then
moSmartScriptIdx = i
break
end
end
showingSmartOptions = scriptList_idx == moSmartScriptIdx
scriptDescription = t(scriptOptions[scriptList_idx][2])~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1)
scriptList_savedIdx = scriptList_idx~~~~~
string = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1)
scriptList_savedIdx = scriptList_idx
moSmartScriptIdx = -1
for i, name in ipairs(scriptList) do
if name == 'mo_core' then
moSmartScriptIdx = i
break
end
end
showingSmartOptions = scriptList_idx == moSmartScriptIdx
scriptDescription = t(scriptOptions[scriptList_idx][2])~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~showingSmartOptions = false
if scriptList[scriptList_idx]~~~~~
string = ~~~~~showingSmartOptions = scriptList_idx == moSmartScriptIdx
if scriptList[scriptList_idx]~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~if scriptList[scriptList_idx] == ' ' or scriptList_idx == -1 then~~~~~
string = ~~~~~showingSmartOptions = scriptList_idx == moSmartScriptIdx
if scriptList[scriptList_idx] == ' ' or scriptList_idx == -1 then~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1)
showingSmartOptions = (scriptList_idx == 2)~~~~~
string = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1)~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~label
{
area 84 12 700 44
text "SCRIPT_TITLE"
text style 'title'
}~~~~~
string = ~~~~~label
{
area 84 12 700 44
text "SCRIPT_TITLE"
text style 'title'
}
label
{
area 418 454 424 164
rectangle 3
enabled "showingSmartOptions == true"
}~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~text
{
area 450 190 370 420
text lua "scriptDescription"
scrollbar 'GUISCRC'
text style normal
text color D
}~~~~~
string = ~~~~~text
{
area 460 480 348 120
text lua "scriptDescription"
scrollbar 'GUISCRC'
text style normal
text color D
enabled "showingSmartOptions == true"
}
text
{
area 446 190 376 422
text lua "scriptDescription"
scrollbar 'GUISCRC'
text style normal
text color 'D'
enabled "showingSmartOptions == false"
}~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~doneEnabled = characterScreen:IsDoneButtonClickable(currentID)
"
}~~~~~
string = ~~~~~doneEnabled = characterScreen:IsDoneButtonClickable(currentID)
"
}
list
{
column
{
width 80
label
{
area 10 0 -1 -1
text lua "t( scriptOptions[rowNumber][1])"
text style "normal"
text align right center
}
}
column
{
width 20
label
{
area 8 8 32 32
bam ROUNDBUT
scaleToClip
frame lua "scriptOptions[rowNumber][4]"
}
}
area 444 194 376 266
rowheight 50
table "scriptOptions"
var selScriptOpt
scrollbar 'GUISCRC'
enabled "showingSmartOptions == true"
action
"
scriptDescription = t(scriptOptions[selScriptOpt][2])
selectedSL = 0
selFeedOpt = 0
if(cellNumber == 2) then
Infinity_PlaySound('GAM_09')
handleScriptOptionChange(selScriptOpt)
end
"
}~~~~~ //"
END
LPF REPLACE_MULTILINE
INT_VAR
strict = 1
verbose = 0
warn = 0
STR_VAR
pattern = ~~~~~rowheight 50
table "scriptOptions"
var selScriptOpt
scrollbar 'GUISCRC'
enabled "showingSmartOptions == true"
action
"
scriptDescription = t(scriptOptions[selScriptOpt][2])
selectedSL = 0
selFeedOpt = 0
if(cellNumber == 2) then
Infinity_PlaySound('GAM_09')
handleScriptOptionChange(selScriptOpt)
end
"
}
button
{
clickable lua "doneEnabled"
bam GUIBUTMT
sequenceonce lua "getRandomButtonSequence('GUIBUTMT')"
area 196 652 230 44
text style "button"
text "DONE_BUTTON"
action
"
characterScreen:OnDoneButtonClick()
Infinity_PopMenu()
currentPanelID = 17
"
}~~~~~
string = ~~~~~rowheight 50
table "scriptOptions"
var selScriptOpt
scrollbar 'GUISCRC'
enabled "showingSmartOptions == true"
action
"
scriptDescription = t(scriptOptions[selScriptOpt][2])
selectedSL = 0
selFeedOpt = 0
if(cellNumber == 2) then
Infinity_PlaySound('GAM_09')
handleScriptOptionChange(selScriptOpt)
end
"
}
button
{
clickable lua "doneEnabled"
bam GUIBUTMT
sequenceonce lua "getRandomButtonSequence('GUIBUTMT')"
area 196 652 230 44
text style "button"
text "DONE_BUTTON"
action
"
if showingSmartOptions == true then
for index, var in pairs(scriptOptions) do
characterScreen:SetTempSmartScriptLocal(var[3], var[5])
end
end
characterScreen:OnDoneButtonClick()
Infinity_PopMenu()
currentPanelID = 17
"
}~~~~~ //"
END
BUT_ONLY
As there are some little bugs related to description window for some magical helmets, I identified which BAM files were involved and I just exported them from another installation without Infinity UI++ and placed them in the override folder on the installation with Inifinity UI++ and it works fine.
So here are files to place in the override folder.
Before :
After :
I also noticed a bug in the level up screen with high level abilities. So I propose a quick fix with these two UI-backup2.x.MENU files that have to be renamed into UI.MENU and placed into the override foled as well depending of your version of the game.
I found that deleting(or renaming) MOS0000.PVRZ file in override can also solve the corrupted description image of those helmets. It seems that Pecca has changed this file in InfinityUI mod which different from the one in game resource.
@Pecca how are you assigning the full body portraits? is it done by checking the portrait filename (like NMINSCL.bmp) and transforming it to nminscr.bmp? Will it work for any character (added by mods) then?
@Pecca Any chance for IWD2 skin in the future? There is IWD2 port for eet and possibly it will be released as a standalone EE-mod in the future, so it would be nice to have proper gui theme for that.
I'm pretty good with photoshop, so I could try to layout such gui, but actually put that in the code is beyond me right now.
Hi, I am little confused. I installed the Enhanced Edition Trilogy with Project Infinity including the Infinity UI++.
I just started the game and I get the different games BG, SOD, BG2, TOB,... Does this mean the EET installation failed or does it mean I can start the EET from different starting points?
Hi, I am little confused. I installed the Enhanced Edition Trilogy with Project Infinity including the Infinity UI++.
I just started the game and I get the different games BG, SOD, BG2, TOB,... Does this mean the EET installation failed or does it mean I can start the EET from different starting points?
You can start EET in different points. If you want to start at the beginning then just play BG1. After killing last boss you will be automatically moved to the start of BG2. Just remember to click BG2 icon in main menu. Otherise "continue" button will load last save of BG1.
Comments
Game version 2.6.6
Game version 2.7
Update: The problem is fixed in EEex 1.1.2
Oh wow
Normal
After opening item description
Besides, some item image like GIFT OF PEACE is corrupted in item description.
I didn't know something like this existed!
I found that the UI is not yet supporting the newest MSASS portrait pack as well as the YANNER2a-f from BG1EE, so I added them manually in UI.MENU. Works out nicely for me. Additionally I tried to sort them a bit clearer:
Only exception are the SOD portraits for Imoen and Viconia which I added after BG2, as they were established companions before and they are just alternatives.
I also included the story NPC portraits, but made them disappear in the LUA code as they shouldn't be chosen. But having them show up to check the look for modding purposes made sense to me.
Maybe it's helpful to you:
portraits = { {'MAN1', 1}, {'MAN2', 1}, {'GENDWRF', 1}, {'GENMELF', 1}, {'GENMHLF', 1}, {'AJANTIS', 1}, {'CORAN', 1}, {'EDWIN', 1}, {'ELDOTH', 1}, {'GARRICK', 1}, {'KAGAIN', 1}, {'KHALID', 1}, {'KIVAN', 1}, {'MINSC', 1}, {'MONTAR', 1}, {'QUAYLE', 1}, {'TIAX', 1}, {'XAN', 1}, {'XZAR', 1}, {'YESLICK', 1}, {'NHORC', 1}, {'NANOMEN', 1}, {'NCERND', 1}, {'NEDWIN', 1}, {'NHAER', 1}, {'NJAN', 1}, {'NKELDOR', 1}, {'NKORGAN', 1}, {'NMINSC', 1}, {'NVALYGA', 1}, {'NYOSHIM', 1}, -- {'NJON', 1}, -- {'ABAZHAL', 1}, -- {'ABAZFUL', 1}, -- {'BALTHAZ', 1}, -- {'GROMNIR', 1}, -- {'SAREVOK', 1}, -- {'YAGASHR', 1}, {'BAELOTH', 1}, {'DORN', 1}, {'RASAAD', 1}, -- {'WILSON', 1}, {'GLINT', 1}, {'VOGHILN', 1}, -- {'hephern', 1}, -- {'unnamed', 1}, {'MANLEY0', 1}, {'MANLEY3', 1}, {'MANLEY6', 1}, {'MANLEY7', 1}, {'MANLEY8', 1}, {'MANLEY9', 1}, {'bdtma', 1}, {'bdtmc', 1}, {'bdtmd', 1}, {'bdtmg', 1}, {'bdtmh', 1}, {'bdtmi', 1}, {'bdtmk', 1}, {'BDORCM1', 1}, {'BDSHAM1', 1}, {'HELM', 1}, {'HVLN', 1}, {'YANNER2a', 1}, {'YANNER2d', 1}, {'YANNER2f', 1}, {'YANNER4', 1}, {'YANNER5', 1}, {'YANNER6', 1}, {'sorce', 1}, {'msass01', 1}, {'msass02', 1}, {'msass03', 1}, {'msass04', 1}, {'msass05', 1}, {'msass06', 1}, {'msass07', 1}, {'msass08', 1}, {'WOMAN1', 2}, {'WOMAN2', 2}, {'ALORA', 2}, {'BRANWE', 2}, {'DYNAHEI', 2}, {'FALDORN', 2}, {'IMOEN', 2}, {'JAHEIRA', 2}, {'SAFANA', 2}, {'SHARTEL', 2}, {'SKIE', 2}, {'VICONIA', 2}, {'NAERIE', 2}, {'NIMOEN', 2}, {'NJAHEIR', 2}, {'NMAZZY', 2}, {'NNALIA', 2}, {'NVICON', 2}, {'BDIMOEN', 2}, {'BDVICON', 2}, -- {'NBODHI', 2}, -- {'NELLE', 2}, -- {'ILLISAR', 2}, -- {'MEL_BAD', 2}, -- {'MEL_GD', 2}, -- {'SENDAI', 2}, -- {'SOLAR', 2}, {'NEERA', 2}, {'DSCLARA', 2}, {'OHHEXX', 2}, {'MKHIIN', 2}, {'SCHAEL', 2}, -- {'CAELAR', 2}, {'MANLEY1', 2}, {'MANLEY2', 2}, {'MANLEY4', 2}, {'MANLEY5', 2}, {'MANLEYX', 2}, {'bdtmb', 2}, {'bdtme', 2}, {'bdtmf', 2}, {'bdtmj', 2}, {'BDORCF1', 2}, {'BDSHAF1', 2}, {'SKAN', 2}, {'YANNER1', 2}, {'YANNER2', 2}, {'YANNER3', 2}, {'YANNER2b', 2}, {'YANNER2c', 2}, {'YANNER2e', 2}, {'MSASS09', 2}, {'MSASS10', 2}, {'MSASS11', 2}, {'MSASS12', 2}, {'MSASS13', 2}, {'MSASS14', 2}, {'MSASS15', 2}, {'MSASS16', 2} }InfinityUI-1.27.zip\InfinityUI-1.27\infinity_ui\content\UI-backup2.6.MENU
It is indeed, thanks! Do I need to change these files before installation?
1. Delete InfinityUI-1.27\infinity_ui\content\UI.MENU
2. Rename InfinityUI-1.27\infinity_ui\content\UI-backup2.6.MENU -into-> InfinityUI-1.27\infinity_ui\content\UI.MENU
Thanks! It works for me with the new version; I just had to install it at the very end.
Thanks! It works for me with the new version; I just had to install it at the very end.
You can still go back to the Skills section, so it's not a critical game stopping bug.
COPY_EXISTING "UI.MENU" ~override~ /////////////////////////////////////////////////////////////////////////// // Update UI.MENU // /////////////////////////////////////////////////////////////////////////// LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~currentPanelID = const.SCRIPT_ID showingSmartOptions = false~~~~~ string = ~~~~~currentPanelID = const.SCRIPT_ID moSmartScriptIdx = -1 for i, name in ipairs(scriptList) do if name == 'mo_core' then moSmartScriptIdx = i break end end showingSmartOptions = scriptList_idx == moSmartScriptIdx scriptDescription = t(scriptOptions[scriptList_idx][2])~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1) scriptList_savedIdx = scriptList_idx~~~~~ string = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1) scriptList_savedIdx = scriptList_idx moSmartScriptIdx = -1 for i, name in ipairs(scriptList) do if name == 'mo_core' then moSmartScriptIdx = i break end end showingSmartOptions = scriptList_idx == moSmartScriptIdx scriptDescription = t(scriptOptions[scriptList_idx][2])~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~showingSmartOptions = false if scriptList[scriptList_idx]~~~~~ string = ~~~~~showingSmartOptions = scriptList_idx == moSmartScriptIdx if scriptList[scriptList_idx]~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~if scriptList[scriptList_idx] == ' ' or scriptList_idx == -1 then~~~~~ string = ~~~~~showingSmartOptions = scriptList_idx == moSmartScriptIdx if scriptList[scriptList_idx] == ' ' or scriptList_idx == -1 then~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1) showingSmartOptions = (scriptList_idx == 2)~~~~~ string = ~~~~~Infinity_OnScriptItemSelect(scriptList_idx - 1)~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~label { area 84 12 700 44 text "SCRIPT_TITLE" text style 'title' }~~~~~ string = ~~~~~label { area 84 12 700 44 text "SCRIPT_TITLE" text style 'title' } label { area 418 454 424 164 rectangle 3 enabled "showingSmartOptions == true" }~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~text { area 450 190 370 420 text lua "scriptDescription" scrollbar 'GUISCRC' text style normal text color D }~~~~~ string = ~~~~~text { area 460 480 348 120 text lua "scriptDescription" scrollbar 'GUISCRC' text style normal text color D enabled "showingSmartOptions == true" } text { area 446 190 376 422 text lua "scriptDescription" scrollbar 'GUISCRC' text style normal text color 'D' enabled "showingSmartOptions == false" }~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~doneEnabled = characterScreen:IsDoneButtonClickable(currentID) " }~~~~~ string = ~~~~~doneEnabled = characterScreen:IsDoneButtonClickable(currentID) " } list { column { width 80 label { area 10 0 -1 -1 text lua "t( scriptOptions[rowNumber][1])" text style "normal" text align right center } } column { width 20 label { area 8 8 32 32 bam ROUNDBUT scaleToClip frame lua "scriptOptions[rowNumber][4]" } } area 444 194 376 266 rowheight 50 table "scriptOptions" var selScriptOpt scrollbar 'GUISCRC' enabled "showingSmartOptions == true" action " scriptDescription = t(scriptOptions[selScriptOpt][2]) selectedSL = 0 selFeedOpt = 0 if(cellNumber == 2) then Infinity_PlaySound('GAM_09') handleScriptOptionChange(selScriptOpt) end " }~~~~~ //" END LPF REPLACE_MULTILINE INT_VAR strict = 1 verbose = 0 warn = 0 STR_VAR pattern = ~~~~~rowheight 50 table "scriptOptions" var selScriptOpt scrollbar 'GUISCRC' enabled "showingSmartOptions == true" action " scriptDescription = t(scriptOptions[selScriptOpt][2]) selectedSL = 0 selFeedOpt = 0 if(cellNumber == 2) then Infinity_PlaySound('GAM_09') handleScriptOptionChange(selScriptOpt) end " } button { clickable lua "doneEnabled" bam GUIBUTMT sequenceonce lua "getRandomButtonSequence('GUIBUTMT')" area 196 652 230 44 text style "button" text "DONE_BUTTON" action " characterScreen:OnDoneButtonClick() Infinity_PopMenu() currentPanelID = 17 " }~~~~~ string = ~~~~~rowheight 50 table "scriptOptions" var selScriptOpt scrollbar 'GUISCRC' enabled "showingSmartOptions == true" action " scriptDescription = t(scriptOptions[selScriptOpt][2]) selectedSL = 0 selFeedOpt = 0 if(cellNumber == 2) then Infinity_PlaySound('GAM_09') handleScriptOptionChange(selScriptOpt) end " } button { clickable lua "doneEnabled" bam GUIBUTMT sequenceonce lua "getRandomButtonSequence('GUIBUTMT')" area 196 652 230 44 text style "button" text "DONE_BUTTON" action " if showingSmartOptions == true then for index, var in pairs(scriptOptions) do characterScreen:SetTempSmartScriptLocal(var[3], var[5]) end end characterScreen:OnDoneButtonClick() Infinity_PopMenu() currentPanelID = 17 " }~~~~~ //" END BUT_ONLYMany thanks Pecca for sharing this amazing mod !!
As there are some little bugs related to description window for some magical helmets, I identified which BAM files were involved and I just exported them from another installation without Infinity UI++ and placed them in the override folder on the installation with Inifinity UI++ and it works fine.
So here are files to place in the override folder.
After :
After :
EDIT: found it, forget
I'm pretty good with photoshop, so I could try to layout such gui, but actually put that in the code is beyond me right now.
I just started the game and I get the different games BG, SOD, BG2, TOB,... Does this mean the EET installation failed or does it mean I can start the EET from different starting points?
You can start EET in different points. If you want to start at the beginning then just play BG1. After killing last boss you will be automatically moved to the start of BG2. Just remember to click BG2 icon in main menu. Otherise "continue" button will load last save of BG1.