User Interface

This page lists all user interface additions, changes, fixes that are implemented in Phobos.

Bugfixes and miscellanous

  • Enabled ability to load full-color non-paletted PCX graphics of any bitness. This applies to every single PCX file that is loaded, including the Ares-supported PCX files.

  • You can specify custom gamemd.exe icon via -icon command line argument followed by absolute or relative path to an *.ico file (f. ex. gamemd.exe -icon Resources/clienticon.ico).

  • Fixed Blowfish.dll-caused error ***FATAL*** String Manager failed to initialize properly, which occurred if Blowfish.dll could not be registered in the OS, for example, it happened when the player did not have administrator rights. With Phobos, if the game did not find a registered file in the system, it will no longer try to register this file, but will load it bypassing registration.

  • Fixed non-IME keyboard input to be working correctly for languages / keyboard layouts that use character ranges other than Basic Latin and Latin-1 Supplement (font support required).

  • Fixed position and layer of info tip and reveal production cameo on selected building.

  • Timer (superweapon, mission etc) blinking color scheme can be customized by setting [AudioVisual] -> TimerBlinkColorScheme. Defaults to third color scheme listed in [Colors].

  • Fixed sidebar not updating queued unit numbers when adding or removing units when the production is on hold.

Note

You can use the improved vanilla font which can be found on Phobos supplementaries repo which has way more Unicode character coverage than the default one.

Audio

  • You can now specify which soundtrack themes would play on win or lose.

In rulesmd.ini:

[SOMESIDE]             ; Side
IngameScore.WinTheme=  ; Soundtrack theme ID
IngameScore.LoseTheme= ; Soundtrack theme ID

Battle screen UI/UX

Digital display

image Default configuration of digital display using example shapes from Phobos supplementaries.

  • You can now configure various types of numerical counters to be displayed over Techno to represent its attributes, such as health points or shield points and can be turned on or off via a new hotkey.

    • InfoIndex defines the specific InfoType.

      • In InfoType=Spawns,

        • 0 - alive spawns,

        • 1 - docked spawns,

        • 2 - launching spawns.

      • In InfoType=Tiberium,

        • 0 - all,

        • 1 - the first tiberium,

        • 2 - the second tiberium,

      • In InfoType=SpawnTimer,

        • 0 - the fastest spawnee,

        • 1 - the first spawnee,

        • 2 - the second spawnee,

      • In InfoType=SuperWeapon,

        • 0 - the first SW of all,

        • 1 - [BuildingType] -> SuperWeapon,

        • 2 - [BuildingType] -> SuperWeapon2,

        • 3 - the first SW in [BuildingType] -> SuperWeapons,

      • In InfoType=FactoryProcess,

        • 0 - the first factory in production,

        • 1 - primary factory,

        • 2 - secondary factory.

    • Anchor.Horizontal and Anchor.Vertical set the anchor point from which the display is drawn (depending on Align) relative to unit’s center/selection box. For buildings, Anchor.Building is used instead.

      • Offset and Offset.ShieldDelta (the latter applied when a shield is active) can be used to further modify the position.

    • By default, values are displayed in current/maximum format (i.e. 20/40).

      • HideMaxValue=yes will make the counter show only the current value (i.e. 20), default to whether the techno is infantry or not.

      • Percentage=yes changes the format to percent% (i.e. 50%).

      • ValueAsTimer controls whether the value will be displayed in the form of a timer (i.e. 0:30, 5:00 or 1:00:00).

    • VisibleToHouses and VisibleToHouses.Observer can limit visibility to specific players.

      • VisibleInSpecialState controls whether this display type will show when the owner is in ironcurtain or is attacked by a temporal weapon.

    • The digits can be either a custom shape (.shp) or text drawn using the game font. This depends on whether Shape is set.

      • Text.Color, Text.Color.ConditionYellow and Text.Color.ConditionRed allow customization of the font color. Text.Background=yes will additionally draw a black rectangle background.

      • When using shapes, a custom palette can be specified with Palette. Shape.Spacing controls pixel buffer between characters. If Shape.PercentageFrame set to true, it will only draw one frame that corresponds to total frames by percentage.

      • Frames 0-9 will be used as digits when the owner’s health bar is green, 10-19 when yellow, 20-29 when red. For / and % (or : if set ValueAsTimer to true) characters, frame numbers are 30-31, 32-33, 34-35, respectively.

    • Default Offset.ShieldDelta for InfoType=Shield is 0,-10, 0,0 for others.

    • Default Shape.Spacing for buildings is 4,-2, 4,0 for others.

    • ValueScaleDivisor can be used to adjust scale of displayed values. Both the current & maximum value will be divided by the integer number given, if higher than 1. Default to 1 (or 15 when set ValueAsTimer to true).

    • DigitalDisplay.Health.FakeAtDisguise, if set to true on an InfantryType with Disguise, will use the disguised TechnoType’s Strength value as the maximum value of health display. The current value will be displayed as the percentage of its current health multiplies the new maximum value.

In rulesmd.ini:

[DigitalDisplayTypes]
0=SOMEDIGITALDISPLAYTYPE

[AudioVisual]
Buildings.DefaultDigitalDisplayTypes=          ; List of DigitalDisplayTypes
Infantry.DefaultDigitalDisplayTypes=           ; List of DigitalDisplayTypes
Vehicles.DefaultDigitalDisplayTypes=           ; List of DigitalDisplayTypes
Aircraft.DefaultDigitalDisplayTypes=           ; List of DigitalDisplayTypes

[SOMEDIGITALDISPLAYTYPE]                       ; DigitalDisplayType
; Generic
InfoType=Health                                ; Displayed value enumeration (Health|Shield|Ammo|Mindcontrol|Spawns|Passengers|Tiberium|Experience|Occupants|GattlingStage|ROF|Reload|SpawnTimer|GattlingTimer|ProduceCash|PassengerKill|AutoDeath|SuperWeapon|IronCurtain|TemporalLife|FactoryProcess)
InfoIndex=                                     ; integer
Offset=0,0                                     ; integers - horizontal, vertical
Offset.ShieldDelta=                            ; integers - horizontal, vertical
Align=right                                    ; Text alignment enumeration (left|right|center/centre)
Anchor.Horizontal=right                        ; Horizontal position enumeration (left|center/centre|right)
Anchor.Vertical=top                            ; Vertical position enumeration (top|center/centre|bottom)
Anchor.Building=top                            ; Hexagon vertex enumeration (top|lefttop|leftbottom|bottom|rightbottom|righttop)
Percentage=false                               ; boolean
HideMaxValue=false                             ; boolean
VisibleToHouses=owner                          ; Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)
VisibleToHouses.Observer=true                  ; boolean
VisibleInSpecialState=true                     ; boolean
ValueScaleDivisor=                             ; integer
ValueAsTimer=false                             ; boolean
; Text
Text.Color=0,255,0                             ; integers - Red, Green, Blue
Text.Color.ConditionYellow=255,255,0           ; integers - Red, Green, Blue
Text.Color.ConditionRed=255,0,0                ; integers - Red, Green, Blue
Text.Background=false                          ; boolean
; Shape
Shape=                                         ; filename with .shp extension, if not present, game-drawn text will be used instead
Palette=palette.pal                            ; filename with .pal extension
Shape.Spacing=                                 ; integers - horizontal, vertical spacing between digits
Shape.PercentageFrame=false                    ; boolean

[SOMETECHNOTYPE]                               ; TechnoType
DigitalDisplay.Disable=false                   ; boolean
DigitalDisplayTypes=                           ; List of DigitalDisplayTypes
DigitalDisplay.Health.FakeAtDisguise=true      ; boolean

In RA2MD.INI:

[Phobos]
DigitalDisplay.Enable=false                    ; boolean

Note

An example shape file for digits can be found on Phobos supplementaries repo.

Note

Shape.PercentageFrame effectively provides the ultimate solution for all static data display effects: it allows mapping the current value to a specific static frame index in a shape file sequence by calculating its proportional ratio to the total value, where the concrete image on this frame is entirely user-defined.

Hint

You can create a circular health bar for technos, where the different frames of this ring Shape file correspond to the state of the circular health bar at varying degrees of damage.

image Example of a ring-shaped health bar

The arrangement of static images on the plane is entirely up to you to draw freely, without being constrained by pre-established frameworks (e.g., the original rule for health bars was to start at a fixed coordinate, fetch a pip from a fixed frame of a fixed file at fixed intervals, and then arrange them horizontally), choosing from inherently limited options.

Of course, this is just the implementation method. To balance freedom with efficiency—that is, how to efficiently draw the patterns you need—you still need to independently explore a workflow that suits you.

Flashing Technos on selecting

  • Selecting technos, controlled by player, now may show a flash effect by setting SelectionFlashDuration parameter higher than 0.

    • The feature can be toggled on/off by user if enabled in mod via ShowFlashOnSelecting setting in RA2MD.INI.

In rulesmd.ini:

[AudioVisual]
SelectionFlashDuration=0    ; integer, number of frames

In RA2MD.INI:

[Phobos]
ShowFlashOnSelecting=false  ; boolean

Hide health bars

image Health bars hidden in CnC: Final War

  • Health bar display can now be turned off as needed, hiding both the health bar box and health pips.

In rulesmd.ini:

[SOMENAME]            ; TechnoType
HealthBar.Hide=false  ; boolean

Light flash effect toggling

  • It is possible to toggle certain light flash effects off. These light flash effects include:

    • Combat light effects (Bright=true) and everything that uses same functionality e.g Iron Curtain / Force Field impact flashes.

    • Alpha images attached to ParticleSystems or Particles that are generated through a Warhead’s Particle if [AudioVisual] -> WarheadParticleAlphaImageIsLightFlash or on Warhead Particle.AlphaImageIsLightFlash is set to true, latter defaults to former.

      • Additionally these alpha images are not created if [AudioVisual] -> LightFlashAlphaImageDetailLevel is higher than current detail level, regardless of the HideLightFlashEffects setting.

In rulesmd.ini:

[AudioVisual]
WarheadParticleAlphaImageIsLightFlash=false  ; boolean
LightFlashAlphaImageDetailLevel=0            ; integer

[SOMEWARHEAD]                                ; WarheadType
Particle.AlphaImageIsLightFlash=             ; boolean

In RA2MD.INI:

[Phobos]
HideLightFlashEffects=false  ; boolean

Low priority for box selection

smartvesters Harvesters not selected together with battle units in Rise of the East

  • You can now set lower priority for an ingame object (currently has effect on units mostly), which means it will be excluded from box selection if there’s at least one normal priority unit in the box. Otherwise it would be selected as normal. Works with box+type selecting (type select hotkey + drag) and regular box selecting. Box shift-selection adds low-priority units to the group if there are no normal priority units among the appended ones.

In rulesmd.ini:

[SOMETECHNO]                ; TechnoType
LowSelectionPriority=false  ; boolean
  • This behavior is designed to be toggleable by users. For now you can only do that externally via client or manually.

In RA2MD.INI:

[Phobos]
PrioritySelectionFiltering=true  ; boolean

Placement preview

placepreview Building placement preview using 50% translucency in Rise of the East

  • Building previews can now be enabled when placing a building for construction. This can be enabled on a global basis with [AudioVisual] -> PlacementPreview and then further customized for each building with [BuildingType] -> PlacementPreview.

  • The building placement grid (place.shp) translucency setting can be adjusted via PlacementGrid.Translucency if PlacementPreview is disabled and PlacementGrid.TranslucencyWithPreview if enabled.

  • If using the building’s appropriate Buildup is not desired, customizations allow for you to choose the exact SHP and frame you’d prefer to show as preview through PlacementPreview.Shape, PlacementPreview.ShapeFrame and PlacementPreview.Palette.

    • You can specify theater-specific palettes and shapes by putting three ~ marks to the theater specific part of the filename. ~~~ is replaced with the theater’s three-letter extension.

  • PlacementPreview.ShapeFrame tag defaults to building’s artmd.ini Buildup entry’s last non-shadow frame. If there is no ‘Buildup’ specified it will instead attempt to default to the building’s normal first frame (animation frames and bibs are not included in this preview).

In rulesmd.ini:

[AudioVisual]
PlacementGrid.Translucency=0            ; translucency level (0/25/50/75)
PlacementGrid.TranslucencyWithPreview=  ; translucency level (0/25/50/75), defaults to [AudioVisual] -> PlacementGrid.Translucency

PlacementPreview=no                  ; boolean
PlacementPreview.Translucency=75     ; translucency level (0/25/50/75)

[SOMEBUILDING]                       ; BuildingType
PlacementPreview=yes                 ; boolean
PlacementPreview.Shape=              ; filename - including the .shp extension. If not set uses building's artmd.ini Buildup SHP (based on Building's Image)
PlacementPreview.ShapeFrame=         ; integer, zero-based frame index used for displaying the preview
PlacementPreview.Offset=0,-15,1      ; integer, expressed in X,Y,Z used to alter position preview
PlacementPreview.Remap=yes           ; boolean, does this preview use player remap colors
PlacementPreview.Palette=            ; filename - including the .pal extension
PlacementPreview.Translucency=       ; translucency level (0/25/50/75), defaults to [AudioVisual] -> PlacementPreview.Translucency

Note

The PlacementPreview.Palette option is not used when PlacementPreview.Remap is set to yes. This may change in future.

  • This behavior is designed to be toggleable by users. For now you can only do that externally via client or manually.

In RA2MD.INI:

[Phobos]
ShowPlacementPreview=yes   ; boolean

Real time timers

  • Timers can now display values in real time, taking game speed into account. This can be enabled with RealTimeTimers=true.

  • By default, time is calculated relative to desired framerate. Enabling RealTimeTimers.Adaptive (always true for unlimited FPS and custom speeds) will calculate time relative to current FPS, accounting for lag.

    • When playing with unlimited FPS (or custom speed above 60 FPS), the timers might constantly change value because of the unstable nature.

  • This option respects custom game speeds.

  • This behavior is designed to be toggleable by users. For now you can only do that externally via client or manually.

In RA2MD.INI:

[Phobos]
RealTimeTimers=false            ; boolean
RealTimeTimers.Adaptive=false   ; boolean

Select Box

selectbox SelectBox and GroundLine in Solar Flare by Netsu_Negi

  • Now you can use and customize select box for infantry, vehicle and aircraft. No select box for buildings in default case, but you still can specific for some building if you want.

    • Frames can be used to list frames of Shape file that’ll be drawn as a select box when the TechnoType’s health is at or below full health/the percentage defined in [AudioVisual] -> ConditionYellow/ConditionRed, respectively.

    • If Grounded set to true, the select box will be drawn on the ground below the TechnoType.

    • Select box’s translucency setting can be adjusted via Translucency.

    • VisibleToHouses and VisibleToHouses.Observer can limit visibility to specific players.

    • DrawAboveTechno specific whether the select box will be drawn before drawing the TechnoType. If set to false, the select box can be obscured by the TechnoType, and the draw location will ignore PixelSelectionBracketDelta.

    • You can now use GroundShape to specific a image which always draw on ground, it will only draw when techno is in air if set Ground.AlwaysDraw=false, this also affect on GroundLine.

    • If GroundLine=true, the game will draw a line from techno’s position to its vertical projection, GroundLine.Dashed=true means the projection line is a dashed line.

In rulesmd.ini:

[SelectBoxTypes]
0=SOMESELECTBOXTYPE

[AudioVisual]
DefaultInfantrySelectBox=               ; Select box for infantry
DefaultUnitSelectBox=                   ; Select box for vehicle and aircraft

[SOMESELECTBOXTYPE]                     ; Select box Type name
Shape=select.shp                        ; filename with .shp extension
Palette=palette.pal                     ; filename with .pal extension
Frames=                                 ; List of integer, default 1,1,1 for infantry, 0,0,0 for vehicle and aircraft
Offset=0,0                              ; integers - horizontal, vertical
Translucency=0                          ; translucency level (0/25/50/75)
VisibleToHouses=all                     ; Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)
VisibleToHouses.Observer=true           ; boolean
DrawAboveTechno=true                    ; boolean
GroundShape=                            ; filename with .shp extension
GroundPalette=palette.pal               ; filename with .pal extension
GroundFrames=                           ; List of integer, default 1,1,1 for infantry, 0,0,0 for vehicle and aircraft
GroundOffset=0,0                        ; integers - horizontal, vertical
Ground.AlwaysDraw=true                  ; boolean
GroundLine=false                        ; boolean
GroundLineColor=0,255,0                 ; R, G, B
GroundLineColor.ConditionYellow=        ; R, G, B
GroundLineColor.ConditionRed=           ; R, G, B
GroundLine.Dashed=false                 ; boolean

[SOMETECHNO]                            ; TechnoType
SelectBox=                              ; Select box
HideSelectBox=false                     ; boolean

In RA2MD.INI:

[Phobos]
EnableSelectBox=false                   ; boolean

Show designator & inhibitor range

  • It is now possible to display range of designator and inhibitor units when in super weapon targeting mode. Each instance of player owned techno types listed in [SuperWeapon] -> SW.Designators will display a circle with radius set in [TechnoType] -> DesignatorRange or Sight.

    • In a similar manner, each instance of enemy owned techno types listed in [SuperWeapon] -> SW.Inhibitors will display a circle with radius set in [TechnoType] -> InhibitorRange or Sight.

  • This feature can be disabled globally with [AudioVisual] -> ShowDesignatorRange=false or per SuperWeaponType with [SuperWeapon] -> ShowDesignatorRange=false.

  • This feature can be toggled by the player (if enabled in the mod) with ShowDesignatorRange in RA2MD.INI or with “Toggle Designator Range” hotkey in “Interface” category.

In rulesmd.ini:

[AudioVisual]
ShowDesignatorRange=true    ; boolean

[SOMESW]                    ; SuperWeaponType
ShowDesignatorRange=true    ; boolean

In RA2MD.INI:

[Phobos]
ShowDesignatorRange=false             ; boolean

SuperWeapon ShowTimer sorting

  • You can now sort the timers of superweapons in ascending order from top to bottom according to a given priority value.

In rulesmd.ini:

[SOMESW]              ; SuperWeaponType, with ShowTimer=yes
ShowTimer.Priority=0  ; integer

Task subtitles display in the middle of the screen

Message Display In Center

  • Now you can set MessageApplyHoverState to true,to make the upper left messages not disappear while mouse hovering over the top of display area.

  • You can also let task subtitles (created by trigger 11) to display directly in the middle area of the screen instead of the upper left corner, with a semi transparent background, by setting MessageDisplayInCenter to true.

    • If you also set MessageApplyHoverState to true, when the mouse hovers over the subtitle area (simply judged as a rectangle), its opacity will increase and it will not disappear during this period.

In RA2MD.INI:

[Phobos]
MessageApplyHoverState=false  ; boolean
MessageDisplayInCenter=false  ; boolean

Type select for buildings

  • In vanilla game, type select can almost only be used on 1x1 buildings with UndeploysInto. Now it’s possible to use it on all buildings if BuildingTypeSelectable set to true.

Note

In Vanilla, you can type select a building by holding down the T key in advance and then clicking on the building. However, other type selection methods (such as selecting a building first and then pressing the T key, or selecting a building first and then pressing the type select button in the bottom sidebar) are not valid for buildings.

In rulesmd.ini:

[General]
BuildingTypeSelectable=false  ; boolean

Warning

Due to technical limitations, this feature is forcibly disabled without Ares.

Visual indication of income from grinders and refineries

  • DisplayIncome can be set to display the amount of credits acquired when a building is grinding units / receiving ore dump from harvesters or slaves.

  • Multiple income within less than one in-game second have their amounts coalesced into single display.

    • DisplayIncome.Houses determines which houses can see the credits display.

      • If you don’t want players to see how AI cheats with VirtualPurifiers for example, DisplayIncome.AllowAI can be set to false to disable the display. It overrides the previous option.

    • DisplayIncome.Offset is additional pixel offset for the center of the credits display, by default 0,0 at building’s center.

    • [AudioVisual] -> DisplayIncome also allows to display the amount of credits when selling a unit on a repair bay.

In rulesmd.ini:

[AudioVisual]
DisplayIncome=false       ; boolean
DisplayIncome.Houses=all  ; Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)
DisplayIncome.AllowAI=yes ; boolean

[SOMEBUILDING]            ; BuildingType
DisplayIncome=            ; boolean, defaults to [AudioVisual] -> DisplayIncome
DisplayIncome.Houses=     ; Affected House Enumeration, defaults to [AudioVisual] -> DisplayIncome.Houses
DisplayIncome.Offset=0,0  ; X,Y, pixels relative to default

Hotkey Commands

[ ] Display Damage Numbers

  • Switches on/off floating numbers when dealing damage. See this for details.

  • For localization add TXT_DISPLAY_DAMAGE and TXT_DISPLAY_DAMAGE_DESC into your .csf file.

[ ] Dump Object Info

  • Writes currently hovered or last selected object info in log and shows a message. See this for details.

  • For localization add TXT_DUMP_OBJECT_INFO and TXT_DUMP_OBJECT_INFO_DESC into your .csf file.

[ ] Toggle Frame By Frame Mode

  • Switches on/off frame by frame mode.

  • For localization add TXT_FRAME_BY_FRAME and TXT_FRAME_BY_FRAME_DESC into your .csf file.

[ ] Save Variables

  • Save local & global variables to an INI file. See this for details.

  • For localization add TXT_SAVE_VARIABLES and TXT_SAVE_VARIABLES_DESC into your .csf file.

[ ] Toggle Designator Range

  • Switches on/off super weapon designator range indicator. See this for details.

  • For localization add TXT_DESIGNATOR_RANGE and TXT_DESIGNATOR_RANGE_DESC into your .csf file.

[ ] Toggle Digital Display

  • Switches on/off digital display types.

  • For localization add TXT_DIGITAL_DISPLAY and TXT_DIGITAL_DISPLAY_DESC into your .csf file.

[ ] Next Idle Harvester

  • Selects and centers the camera on the next TechnoType that is counted via the harvester counter and is currently idle.

  • For localization add TXT_NEXT_IDLE_HARVESTER and TXT_NEXT_IDLE_HARVESTER_DESC into your .csf file.

[ ] Quicksave

  • Save the current singleplayer game.

  • For localization, add TXT_QUICKSAVE, TXT_QUICKSAVE_DESC, TXT_QUICKSAVE_SUFFIX and MSG:NotAvailableInMultiplayer into your .csf file.

    • These vanilla CSF entries will be used: TXT_SAVING_GAME, TXT_GAME_WAS_SAVED and TXT_ERROR_SAVING_GAME.

    • The save should be looks like Allied Mission 25: Esther's Money - QuickSaved.

Loading screen

  • PCX files can now be used as loadscreen images.

    • You can specify custom loadscreen with Ares tag File.LoadScreen.

    • Campaign loading screen (missionmd.ini -> [LS800BkgdName]) can also use PCX image.

    • Observer loading screen can use ls800obs.pcx (or ls640obs.pcx when screen width is 640) for this feature.

  • The loadscreen size can now be different from the default 800x600 one; if the image is bigger than the screen it’s centered and cropped.

    • This feature works in conjunction with CnCNet5 spawner DLL which resizes loadscreen window to actual monitor size and places the image in center. If there’s no CnCNet5 spawner loaded, the window resolution will be always 800x600.

    • Same applies to campaign loading screen (missionmd.ini -> [LS800BkgdName]).

  • You can now disable hardcoded black dots that YR engine shows over empty spawn locations, which allows to use prettier and more correctly placed markers that are produced by Map Renderer instead.

In uimd.ini:

[LoadingScreen]
DisableEmptySpawnPositions=false  ; boolean

Miscellanous

Skip saving game on starting a new campaign

When starting a new campaign, the game automatically saves the game. Now you can decide whether you want that to happen or not.

In RA2MD.INI:

[Phobos]
SaveGameOnScenarioStart=true ; boolean

Tooltips

image Extended tooltips used in CnC: Final War

  • Sidebar tooltips can now display extended information about the TechnoType/SWType when hovered over it’s cameo. In addition the low character limit is lifted when the feature is enabled via the corresponding tag, allowing for 1024 character long tooltips.

  • TechnoType’s tooltip would display it’s name, cost, power, build time and description (when applicable).

  • SWType’s tooltip would display it’s name, cost, and recharge time (when applicable).

    • If SW.Shots from Ares is used, a C-style format string default to Shots: %d is appended. The format is customizable in csf. If a 2-parameter format (like %d/%d shots left) is used, the second integer is SW.Shots.

  • Extended tooltips don’t use TXT_MONEY_FORMAT_1 and TXT_MONEY_FORMAT_2. Instead you can specify cost, power and time labels (displayed before correspoding values) with the corresponding tags. Characters $ U+0024, U+26A1 and U+231A are used by default.

  • Fixed a bug when switching build queue tabs via QWER didn’t make tooltips disappear as they should, resulting in stuck tooltips.

  • The tooltips can now go over the sidebar bounds to accommodate for longer contents. You can control maximum text width with a new tag (paddings are excluded from the number you specify).

  • AnchoredToolTips positions the tooltip always to the left of sidebar, only applies to if ExtendedToolTips is set to true and they are enabled in user settings.

In uimd.ini:

[ToolTips]
ExtendedToolTips=false     ; boolean
AnchoredToolTips=false     ; boolean
CostLabel=<none>           ; CSF entry key
PowerLabel=<none>          ; CSF entry key
PowerBlackoutLabel=<none>  ; CSF entry key
TimeLabel=<none>           ; CSF entry key
SWShotsFormat=<none>       ; CSF entry key
MaxWidth=0                 ; integer, pixels

In rulesmd.ini:

[SOMENAME]            ; TechnoType or SWType
UIDescription=<none>  ; CSF entry key
  • The descriptions are designed to be toggleable by users. For now you can only do that externally via client or manually.

In RA2MD.INI:

[Phobos]
ToolTipDescriptions=true  ; boolean

Note

Same as with harvester counter, you can download the improved font (v4 and higher; can be found on Phobos supplementaries repo) or draw your own icons.

  • The background color and opacity of tooltips can now be customized globally or per side.

In rulesmd.ini:

[SOMESIDE]                          ; Side
ToolTip.Background.Color=0,0,0      ; integer - R,G,B, defaults to [AudioVisual] -> ToolTip.Background.Color, which defaults to 0,0,0
ToolTip.Background.Opacity=100      ; integer, ranged in [0, 100], defaults to [AudioVisual] -> ToolTip.Background.Opacity, which defaults to 100
ToolTip.Background.BlurSize=0.0     ; float, defaults to [AudioVisual] -> ToolTip.Background.BlurSize, which defaults to 0.0

Note

The blur effect is resource intensive. Please make sure you really want to enable this effect, otherwise leave it to 0.0 so it stays disabled.

In RA2MD.INI:

[Phobos]
ToolTipBlur=false  ; boolean, whether the blur effect of tooltips will be enabled.