<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=Showing_Tips_for_Players</id>
	<title>Showing Tips for Players - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=Showing_Tips_for_Players"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Showing_Tips_for_Players&amp;action=history"/>
	<updated>2026-08-10T07:36:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Showing_Tips_for_Players&amp;diff=34587&amp;oldid=prev</id>
		<title>Geep: create article</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Showing_Tips_for_Players&amp;diff=34587&amp;oldid=prev"/>
		<updated>2026-08-09T20:14:30Z</updated>

		<summary type="html">&lt;p&gt;create article&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;By Geep, 2026&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
TDM has experimented with momentarily-visible &amp;quot;tip&amp;quot; information, as a form of awareness and clarification of available features, and &amp;quot;continuing education&amp;quot; beyond the Training and two official FMs.&lt;br /&gt;
&lt;br /&gt;
== Random Lore and Tips While Loading ==&lt;br /&gt;
&amp;#039;&amp;#039;This feature was introduced circa 2011 in TDM 2.04 with Springheel&amp;#039;s &amp;quot;A Score to Settle&amp;quot;, and refined thru 2017 with TDM 2.07 (see bugtracker &amp;quot;0002807: Random GUI quotes not showing during load&amp;quot;).&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
One motivation here is to fill your thumb-twiddling time with something besides watching a progress bar. How about showing a sentence of lore, and then a tip? The mechanism depends on the FM itself providing a specific type of GUI. The content of messages shown could be FM-specific, but are often generic.&lt;br /&gt;
&lt;br /&gt;
=== Appearance ===&lt;br /&gt;
Consider the Official FM &amp;quot;St. Lucia&amp;quot;. During game launch, immediately after the briefing video, you will see the FM&amp;#039;s background image during. Look for two successive text strings at screen bottom.&lt;br /&gt;
&lt;br /&gt;
=== Mechanism ===&lt;br /&gt;
During loading, the engine updates a &amp;quot;map_loading&amp;quot; float (range [0...1], representing percent loaded) for the benefit any GUI providing a progress bar.&lt;br /&gt;
&lt;br /&gt;
But also, specifically for our concerns here, when loading starts, the engine (i.e., Game_local.cpp’s LoadMap function) looks just for &amp;lt;FM&amp;gt;/guis/map/&amp;lt;FM map name&amp;gt;.gui. If found, the engine generates &amp;quot;random_value&amp;quot; (another float in range [0..1]) and calls that GUI’s named event OnRandomValueInitialised.&lt;br /&gt;
&lt;br /&gt;
Turning to what that GUI then does, consider the official FM St. Lucia&amp;#039;s implementation. In &amp;quot;saintlucia.gui&amp;quot;, there are two windowDefs named &amp;quot;TextFlavour&amp;quot; (for lore) and &amp;quot;TextLoading&amp;quot; (for tips). These have identical code, defining the same rectangle for text at the bottom of the screen. Except TextFlavor is visible first (when map_loading &amp;lt; 0.7), then TextLoading (map_loading &amp;gt;= 0.7). For every load, the particular text pair to be shown (out of 10 possibilities) is initialized in routine &amp;quot;onNamedEvent OnRandomValueInitialised&amp;quot; by code like...&lt;br /&gt;
 if (&amp;quot;gui::random_value&amp;quot; &amp;lt; 0.1)&lt;br /&gt;
 {&lt;br /&gt;
 set &amp;quot;TextFlavour::text&amp;quot; &amp;quot;The Builder Church is deeply intertwined with the politics of the Empire.&amp;quot;;&lt;br /&gt;
 set &amp;quot;TextLoading::text&amp;quot; &amp;quot;Tip:  Hit the Use key after frobbing a body to shoulder it.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 else if (&amp;quot;gui::random_value&amp;quot; &amp;lt; 0.2)&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
(LoadMap also sets a &amp;quot;quickloading&amp;quot; Boolean to true when the same map is being reloaded. This allows GUI scripts to distinguish between a quickload and a full load, so they might choose to show only short messages.)&lt;br /&gt;
&lt;br /&gt;
=== Other Examples ===&lt;br /&gt;
Both &amp;quot;St. Lucia&amp;quot; and the earlier &amp;quot;A Score to Settle&amp;quot; serve up Lore and Tips. Official FM &amp;quot;A New Job&amp;quot; uses the same mechanism, but no lore is shown; instead, FlavourText also gets &amp;quot;Tip:&amp;quot; strings.&lt;br /&gt;
&lt;br /&gt;
=== Pluses &amp;amp; Minuses ===&lt;br /&gt;
This feature was useful when introduced. But as loading times have shortened, due to faster chips and solid-state drives, the time to read these messages is often insufficient, except perhaps for the largest of FM maps. Otherwise, modifying an FM&amp;#039;s GUI to show only 1 load-time message instead of 2 (and none on quick loading) may sometimes be a good idea.&lt;br /&gt;
&lt;br /&gt;
Also, depending on FMs (other than the official ones) to display tips to raise awareness of FM-independent features can be problematic when the features themselves evolve. A follow-on 2017 idea to make Tips independent of FMs (&amp;quot;0004619: Add Tool Tips to &amp;quot;Press Attack to Start&amp;quot; screen?&amp;quot;) was not pursued.&lt;br /&gt;
&lt;br /&gt;
=== I18N Aspects ===&lt;br /&gt;
In all 3 examples mentioned, the text strings are hard-coded in English in the GUI file, so look within to review the full set of lore and tips.&lt;br /&gt;
&lt;br /&gt;
However, #str_ids would work, and perhaps are used for random loading of translated text in other FMs. As of TDM 2.14, in all.lang, defined in [English] are:&lt;br /&gt;
&lt;br /&gt;
* 20 flavour strings (#str_01000 - #str_01019)&lt;br /&gt;
* 13 tips strings (within #str_01050-01062)&lt;br /&gt;
&lt;br /&gt;
Translations of these into supported languages exist but are incomplete.&lt;br /&gt;
&lt;br /&gt;
Early provisioning of these I18N strings largely drew from the embedded English strings of &amp;quot;A Score to Settle&amp;quot;. In the updated two official FMs, only few of the &amp;quot;Tips:&amp;quot; still match those listed in all.lang; most are newer. (For more see &amp;quot;0002813: Make mission loading tips part of TDM and translatable&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Main Menu Tool Tips for Settings ==&lt;br /&gt;
&amp;#039;&amp;#039;Development of this feature was led by Obsttorte in 2021, with considerable feedback about tooltip message content. (See [https://forums.thedarkmod.com/index.php?/topic/20814-displaying-tooltips-for-menu-entries/ Displaying Tooltips for Menu Entries] , which also discusses the mechanism.)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Appearance ===&lt;br /&gt;
The Main Menu/Settings interface displays various half-pages on the right side of the screen, leaving the left side with just the TDM background slideshow. Against this, TDM can show informative text (informally, &amp;quot;tool tips&amp;quot;) about particular settings. For a given setting, defined by a short prompt on the left side of a row, mouse-hovering over the selectable choice field on the right side of the row will show a unique, relevant tool tip. Not all items have tool tips, and numeric sliders generally do not.&lt;br /&gt;
&lt;br /&gt;
When first introduced, there was a main menu setting &amp;quot;Show Menu Tooltips&amp;quot;. But given how given how unintrusive these tooltips were, it was decided to just leave them on and free up a settngs row for a more important item. As of 2.14, there is still a DarkMod.cfg setting &amp;quot;tdm_show_menu_tooltips&amp;quot; to disable them.&lt;br /&gt;
&lt;br /&gt;
=== I18N Aspects ===&lt;br /&gt;
As of 2.14, the great majority (but not quite all) of setting prompts and tooltips are represented by #str_ids, and present in multiple languages.&lt;br /&gt;
&lt;br /&gt;
== In-Game Tips ==&lt;br /&gt;
&amp;#039;&amp;#039;In 2021, Wesp5&amp;#039;s [https://forums.thedarkmod.com/index.php?/topic/20858-ingame-tooltips-feedback/ &amp;quot;Ingame tooltips feedback&amp;quot;] broached this topic (plus feedback about Settings Tooltips).&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Subsequently, snatcher&amp;#039;s 2023 proposal [https://forums.thedarkmod.com/index.php?/topic/22226-global-player-tip-system-split-from-frob-to-use-proposal-thread &amp;quot;Global Player Tip System&amp;quot;] included an available drop-in prototype mod, discussed here. (The link itemizes the tooltips implemented). Further development is not on-going.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Appearance ===&lt;br /&gt;
With snatcher&amp;#039;s mod .pk4 in place in the TDM folder, once the player appears in the game, short tips start being offered in response to player actions. To draw your attention, a tip slides in, parks for a fixed duration at the righthand screen edge, then disappears. It&amp;#039;s in small white handwritten text on a transparent background. A narrow block of body text is surmounted by a top border and all-caps title. Each tip only gets displayed once during a mission&amp;#039;s play-thru.&lt;br /&gt;
&lt;br /&gt;
=== Mechanism ===&lt;br /&gt;
A tip is triggered by a specific state changes. The scripting polls for this 4 times per second. It detects when a given weapon type is selected (10 cases), or tool type is acquired or selected (7 cases). This is straightforward. Other &amp;quot;general&amp;quot; situations (8 cases) are more complex. For example, some cases consult the player&amp;#039;s &amp;quot;immobilization&amp;quot; dictionary, maintained largely by the physics engine. Did the player just start to do something that immobilizes other actions, e.g., from using a weapon while lockpicking? Then time for the &amp;quot;lockpicking&amp;quot; tip, if not given already.&lt;br /&gt;
&lt;br /&gt;
=== Plus and Minuses ===&lt;br /&gt;
The individual messages provided are short and pithy. Some are rather abstract (what objects are TOGGABLES? And sure, &amp;quot;...press USE...&amp;quot;, but suppose you forgot what&amp;#039;s your physical key for that?) A few message could be subdivided into multiple randomly-selected tips. But tips arriving too late or too early is a larger problem.&lt;br /&gt;
&lt;br /&gt;
One reviewer felt the prototype&amp;#039;s system &amp;quot;might be fine for new players&amp;quot; if made optional. But &amp;quot;feels kind of intrusive and gives tips at moments where you don&amp;#039;t need them and will forget them anyway until the moment they become important&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It &amp;#039;&amp;#039;is&amp;#039;&amp;#039; pretty hard to infer what tip a player would most benefit from, from sparse situational awareness data... in this case, only about what generic activity the player&amp;#039;s character is starting to do at a given moment, with no broader context. (One could dream of an artificial intelligence model trained on TDM game plays, personalized with a model of the player&amp;#039;s knowledge, and tracking the player&amp;#039;s in-world progress and problems.)&lt;br /&gt;
&lt;br /&gt;
=== I18N Aspects ===&lt;br /&gt;
The prototype script hard-codes the title and body phrases. If global in-game tips functionality was made part of the core TDM, then all.lang (and generated files) could include its phrases; otherwise, a separate way to incorporate translations would be needed.&lt;/div&gt;</summary>
		<author><name>Geep</name></author>
	</entry>
</feed>