InGame Info XML

From GT New Horizons

The InGame Info XML (IGI) mod is responsible for the text overlay information you see in the upper left of the screen. The configuration files that control the behavior of this mod are InGameInfo.xml and InGameInfoXML.cfg. The former is populated with custom configuration by GTNH. This xml file can also be edited to further customize the information it shows you in-game. The customization provided in the file are only just the beginning of what is possible. Despite this mod being quite old, its documentation can still be found, and it provides most of the configuration possible. However, this list is not kept up to date, although it is more convenient to use. An up to date listing of the supported tags can be found by using /igi taglist, which should include the tags supported by mod integration (e.g. blood magic and thaumcraft info).

Command Action
/igi enable Activates InGame Info XML overlay. Also toggleable via keybind in Controls.
/igi disable Deactivates/hides InGame Info XML's overlay. Also toggleable via keybind in Controls.
/igi reload Reload the last configuration file used.
/igi load {filename} Load a config file; file extension determines the format. (.xml, .json, .txt)
/igi save {filename} Save the current configs to a file; file extension determines the format. (.xml, .json, .txt)
/igi taglist Opens a GUI with a list of all supported IGI tags, with descriptions.
/igi config Opens a GUI that allows adjustment of IGI's screen placement, scale, and general properties.

The bulk of this document will focus on compiling examples of different configurations which may be useful for GTNH players. Where applicable, notes or further examples should be included that detail how to tweak these base examples to fit custom needs. This document will also include what configuration in the GTNH config controls what aspects of the information you see in game.

Existing Configuration

Top Left

The top left information is controlled by lines starting at:

    <lines at="topleft">
        ...

Ping, Username, FPS

        <line>
            <str>{pingicon}{gold}{username} {white}FPS: </str>
            <op>
                <str>gt</str>
                <var>fps</var>
                <num>60</num>
                <num>45</num>
                <num>30</num>
                <num>15</num>
                <num>0</num>
                <str>{green}</str>
                <str>{yellow}</str>
                <str>{gold}</str>
                <str>{red}</str>
                <str>{darkred}</str>
                <str/>
            </op>
            <var>fps</var>
        </line>

This prints the ping icon (ping represented by bars), gold format string, username, white format string, "FPS:", and followed by the FPS with a color format chosen based on the FPS. For example, FPS greater than 60 will be shown in green, while anything between 0 and 15 will be shown in dark red. As you can see here, the config inside the <op> tag is specified by a single operation, then a variable to operate on, and then conditions to match respectively. If we wanted, we could add another condition that the FPS be shown in pink if it is above 120 by adding <num>120</num> to the top of the num tag list and <str>{pink}</str> to the top of the str tag list.

Time, Day

        <line>
            <icon>
                <str>minecraft:clock</str>
            </icon>
            <str> Minecraft Year {darkaqua}</str>
            <add>
                <round>
                    <div>
                        <sub>
                            <var>day</var>
                            <modi>
                                <var>day</var>
                                <num>365</num>
                            </modi>
                        </sub>
                        <num>365</num>
                    </div>
                    <num>0</num>
                </round>
                <num>1</num>
            </add>
            <str> {white}Day {darkaqua}</str>
            <modi>
                <var>day</var>
                <num>365</num>
            </modi>
            <str>{white} Time: {gold}{mctime12} </str>
            <if>
                <var>daytime</var>
                <str>{yellow}(day)</str>
                <str>{gray}(night)</str>
            </if>
        </line>

This prints the minecraft clock sprite, followed by the year, the day in the year, and the time. It appears that there is no value for the year, so it is instead calculated from the total number of days that have elapsed. Perhaps we could use that to calculate a Julian date or stardate. To rephrase the year block in another syntax:

TODO

Auxiliary Configuration Examples

Thaumcraft Warp

		<line>
            <icon>
                <str>Thaumcraft:blockTaint</str>
            </icon>
            <str> {white}Warp: {yellow}{tcwarptotal}{white}</str>
            <str> (Perm: {yellow}{tcwarpperm}{white}</str>
			<str> / Sticky: {yellow}{tcwarpsticky}{white}</str>
			<str> / Temp: {yellow}{tcwarptemp}{white})</str>
        </line>

This shows the total amount of Warp you have, as well as a breakdown of permanent, sticky, and temporary warp. This can be sometimes slow to update with some methods of warp removal (Purification Talisman).

Blood Magic LP

		<line>
            <icon>
                <str>AWWayofTime:weakBloodOrb</str>
            </icon>
            <str> {white}LP: {yellow}{bmlp}{white} / {yellow}{bmmaxlp}{white} (</str>
			<round>
				<pct>
					<num>{bmlp}</num>
					<num>{bmmaxlp}</num>
				</pct>
				<num>0</num>
			</round>
			<str>%)</str>
        </line>

This shows your current and maximum LP in your Blood Magic network.

Phases of the Moon

       <line>
            <icon>
                <str>witchery:mooncharm</str>
            </icon>
			<str> Moon phase: </str>
			<op>
				<str>eq</str>
				<modi>
					<var>day</var>
					<num>8</num>
				</modi>
				<num>0</num>
				<num>1</num>
				<num>2</num>
				<num>3</num>
				<num>4</num>
				<num>5</num>
				<num>6</num>
				<num>7</num>
				<str>{yellow}Full moon (1/4)</str>
				<str>{yellow}Waning gibbous (2/4)</str>
				<str>{yellow}Last quarter (3/4)</str>
				<str>{yellow}Waning crescent (4/4)</str>
				<str>{gray}New moon (1/4)</str>
				<str>{gray}Waxing crescent (2/4)</str>
				<str>{gray}First quarter (3/4)</str>
				<str>{gray}Waxing gibbous (4/4)</str>
			</op>
        </line>

This shows the current phase of the Moon, even during daytime. Moon phases are important for scheduling rocket launches as the day/night cycle on the Moon depends on the phases. The text is shown in yellow if it is currently daytime on the Moon, or in grey if it is currently nighttime. The number indicates progress towards the next day/night in days.