<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anmoch</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anmoch"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Anmoch"/>
	<updated>2026-11-08T20:42:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Uikeys.txt&amp;diff=18995</id>
		<title>Uikeys.txt</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Uikeys.txt&amp;diff=18995"/>
		<updated>2008-03-23T10:59:09Z</updated>

		<summary type="html">&lt;p&gt;Anmoch: selectkeys.txt format documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So you&#039;re stuck without SelectionEditor.exe, but would still like to customize your selection keys?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disclaimer:&#039;&#039;&#039; I arrived at this document by reading SelectionKeyHandler.cpp. &lt;br /&gt;
Thus it is in no way authoritative.&lt;br /&gt;
When in doubt, consult the source.&lt;br /&gt;
&lt;br /&gt;
In the following, &amp;quot;+&amp;quot; and &amp;quot;_&amp;quot; are taken as literal plus and underscore characters, respectively. &amp;quot;|&amp;quot; means &amp;quot;or&amp;quot;, and &amp;quot;[...]&amp;quot; means that ... is optional.&lt;br /&gt;
&lt;br /&gt;
selectkeys.txt has the format&lt;br /&gt;
 KEY SOURCE+FILTER+CONCLUSION+&lt;br /&gt;
&amp;quot;SOURCE+FILTER+CONCLUSION+&amp;quot; will be called the &#039;&#039;selector&#039;&#039;.&lt;br /&gt;
Generally, all elements of the selector are separated by _, where the + does not count as a separator on its own. You&#039;ll see what I mean.&lt;br /&gt;
&lt;br /&gt;
Note that&lt;br /&gt;
* Spaces are significant. Do not insert any spaces in the selector string!&lt;br /&gt;
* Do not use a KEY that has already been bound to something else (this holds for SelectionEditor too).&lt;br /&gt;
&lt;br /&gt;
The format for KEY is different from uikeys.txt: Use a combination of &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;Control&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;Alt&amp;lt;/code&amp;gt; followed by a key A-Z or 0-9, all separated by an underscore _.&lt;br /&gt;
Example:&lt;br /&gt;
 Control_W&lt;br /&gt;
 Alt_Shift_0&lt;br /&gt;
&lt;br /&gt;
SOURCE describes the set of units that you want to filter and pick a selection from.&lt;br /&gt;
It can be one of&lt;br /&gt;
* &amp;lt;code&amp;gt;AllMap&amp;lt;/code&amp;gt;: obvious&lt;br /&gt;
* &amp;lt;code&amp;gt;Visible&amp;lt;/code&amp;gt;: obvious&lt;br /&gt;
* &amp;lt;code&amp;gt;FromMouse_D&amp;lt;/code&amp;gt;, where D is some number: all units that are at most a distance of D away from the mouse cursor&lt;br /&gt;
* &amp;lt;code&amp;gt;PrevSelection&amp;lt;/code&amp;gt;: the previous selection; that is, the one active before you hit the selection key&lt;br /&gt;
&lt;br /&gt;
FILTER is an arbitrarily long list of filters.&lt;br /&gt;
Every filter can be preceded by &amp;lt;code&amp;gt;Not&amp;lt;/code&amp;gt; to negate it.&lt;br /&gt;
You will still have to use a _ to separate the &amp;lt;code&amp;gt;Not&amp;lt;/code&amp;gt; from the filter, as in &amp;lt;code&amp;gt;Not_Commander&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here are the filters. Note that &amp;quot;units&amp;quot; generally means both buildings and units. Typing both got old real quick.&lt;br /&gt;
* &amp;lt;code&amp;gt;AbsoluteHealth_N&amp;lt;/code&amp;gt;: only units that have an absolute health &amp;gt; N&lt;br /&gt;
* &amp;lt;code&amp;gt;Aircraft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;Builder&amp;lt;/code&amp;gt;: only construction units&lt;br /&gt;
* &amp;lt;code&amp;gt;Building&amp;lt;/code&amp;gt;: only buildings&lt;br /&gt;
* &amp;lt;code&amp;gt;Category_C&amp;lt;/code&amp;gt;: only units of category C -- XXX what are the categories?&lt;br /&gt;
* &amp;lt;code&amp;gt;Commander&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;Idle&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;InHotkeyGroup&amp;lt;/code&amp;gt;: only units that are in a group&lt;br /&gt;
* &amp;lt;code&amp;gt;InPrevSel&amp;lt;/code&amp;gt;: only units of the same type as a unit in the previous selection&lt;br /&gt;
* &amp;lt;code&amp;gt;NameContain_S&amp;lt;/code&amp;gt;: only units whose name contains the string S&lt;br /&gt;
* &amp;lt;code&amp;gt;Radar&amp;lt;/code&amp;gt;: only units with either radar, sonar, or a jammer&lt;br /&gt;
* &amp;lt;code&amp;gt;RelativeHealth_P&amp;lt;/code&amp;gt;: only units that have health &amp;gt; P percent&lt;br /&gt;
* &amp;lt;code&amp;gt;Transport&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;Waiting&amp;lt;/code&amp;gt;: only units that are under a wait command (usually W)&lt;br /&gt;
* &amp;lt;code&amp;gt;WeaponRange_D&amp;lt;/code&amp;gt;: only units that have a weapon range &amp;gt; D&lt;br /&gt;
* &amp;lt;code&amp;gt;Weapons&amp;lt;/code&amp;gt;: only units that have weapons&lt;br /&gt;
&lt;br /&gt;
CONCLUSION is&lt;br /&gt;
 [_ClearSelection]_HOWMANY&lt;br /&gt;
If you specify &amp;lt;code&amp;gt;ClearSelection&amp;lt;/code&amp;gt;, your new selection will replace the old one; otherwise, it will just add to it.&lt;br /&gt;
HOWMANY must be exactly one of &lt;br /&gt;
* &amp;lt;code&amp;gt;SelectAll&amp;lt;/code&amp;gt;: all units&lt;br /&gt;
* &amp;lt;code&amp;gt;SelectOne&amp;lt;/code&amp;gt;: one unit, will also center the camera on that unit&lt;br /&gt;
* &amp;lt;code&amp;gt;SelectNum_N&amp;lt;/code&amp;gt;: at most N units -- XXX I think this includes the previously selected units (without ClearSelection), check!&lt;br /&gt;
* &amp;lt;code&amp;gt;SelectPart_P&amp;lt;/code&amp;gt;: P percent of the units&lt;br /&gt;
&lt;br /&gt;
Recall that between every two tokens, there &#039;&#039;must&#039;&#039; be an underscore _, even if there is also a +. Another way to put it is that before every word in your selector except the SOURCE, there must be an underscore.&lt;br /&gt;
&lt;br /&gt;
Some examples, first the standard bindings. Again, &amp;quot;unit&amp;quot; also includes buildings.&lt;br /&gt;
 Control_A AllMap++_ClearSelection_SelectAll+&lt;br /&gt;
Selects everything on the entire map.&lt;br /&gt;
 Control_B AllMap+_Builder_Idle+_ClearSelection_SelectOne+&lt;br /&gt;
Selects any (one) idle builder on entire map.&lt;br /&gt;
 Control_C AllMap+_Commander+_ClearSelection_SelectOne+&lt;br /&gt;
Selects your commander.&lt;br /&gt;
 Control_R AllMap+_Radar+_ClearSelection_SelectAll+&lt;br /&gt;
Selects all units with radar/sonar/jammer.&lt;br /&gt;
 Control_W AllMap+_Not_Aircraft_Weapons+_ClearSelection_SelectAll+&lt;br /&gt;
Selects all non-aircraft armed units&lt;br /&gt;
 Control_Z AllMap+_InPrevSel+_ClearSelection_SelectAll+&lt;br /&gt;
Selects all units of a type that was in your previous selection.&lt;br /&gt;
&lt;br /&gt;
Note that up to now, all keys said &amp;lt;code&amp;gt;ClearSelection&amp;lt;/code&amp;gt;, hence they replaced your old selection.&lt;br /&gt;
 Control_X AllMap+_InPrevSel_Not_InHotkeyGroup+_SelectAll+&lt;br /&gt;
Selects all units of a type that was in your previous selection, unless they are already in a hotkey group. (Use case: if you have a set of tanks on group 1, and have since produced more of the same type(s), you could hit 1 Ctrl+V Ctrl+1 to include them in the group.)&lt;br /&gt;
 Control_V AllMap+_Not_Builder_Not_Commander_InPrevSel_Not_InHotkeyGroup+_SelectAll+&lt;br /&gt;
Selects all units of a type that was in your previous selection, except builders and commander, unless they are already in a hotkey group.&lt;br /&gt;
&lt;br /&gt;
And finally, an example from the forums:&lt;br /&gt;
 Control_W PrevSelection+_Not_Building_Not_RelativeHealth_30+_ClearSelection_SelectAll+&lt;br /&gt;
From your previous selection, leaves everything that is below 30% health, and not a building. (Use this to quickly retreat damaged units.)&lt;/div&gt;</summary>
		<author><name>Anmoch</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Balanced_Annihilation:Using_Selections&amp;diff=2803</id>
		<title>Balanced Annihilation:Using Selections</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Balanced_Annihilation:Using_Selections&amp;diff=2803"/>
		<updated>2008-03-23T10:58:17Z</updated>

		<summary type="html">&lt;p&gt;Anmoch: /* The Selection Editor */ Link to selectkeys documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[Using_Spring|&amp;lt;--Back to Using Spring]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===The Selection Editor===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SelectionEditor.exe&#039;&#039;&#039; is a program installed in your install directory, which is used for editing your &#039;&#039;&#039;selectkeys.txt&#039;&#039;&#039; configuration file, allowing you to make your own shortcut keys for selecting/filtering selection. Alternately, you can write [[selectkeys.txt]] yourself.&lt;br /&gt;
&lt;br /&gt;
This [http://taspring.clan-sy.com/phpbb/viewtopic.php?t=2190 Forum Thread] has some good documentation about using the selection editor.&lt;br /&gt;
&lt;br /&gt;
===Default Selection Controls===&lt;br /&gt;
&lt;br /&gt;
Most of these controls can be customized in the selection editor.&lt;br /&gt;
&lt;br /&gt;
====Selecting/Deselecting Units====&lt;br /&gt;
Unless you have issued a pending command(see [[#Left Mouse Control (Mouse 1)|Left Mouse Control (Mouse 1)]]), left-clicking(Mouse Button 1) a unit will clear the current selection and select the left-clicked unit, if a spot with no valid selection is clicked(empty space, ground, unowned units), the current selection will be cleared. Left-clicking and dragging will draw a box, any units within this box will be selected when you release the mouse button.&lt;br /&gt;
&lt;br /&gt;
Shift Left-clicking(including dragging a select box), unless you have a pending command, will add units to the current selection.&lt;br /&gt;
&lt;br /&gt;
CTRL Left-clicking (including dragging a select box), unless you have a pending command, will toggle selection. Units in the selection will be removed from it, units not in the selection will be added to it.&lt;br /&gt;
&lt;br /&gt;
Double-left-clicking a unit that&#039;s not in a group will select all visible (camera bounds) units of the clicked type. Shift Double-left-clicking will add all units of the double-clicked unit&#039;s type to the current selection.&lt;br /&gt;
&lt;br /&gt;
CTRL Z is a shortcut to select all owned units of the current selected type.  For example, if a peewee and a brawler are selected, all peewees and brawlers will be selected.&lt;br /&gt;
&lt;br /&gt;
CTRL A is a shortcut (which can be eddited in Selection Editor) to select all owned units.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;Tooltips&amp;quot; are displayed in the bottom left of the current interface. If units are selected, this information is the sum of all information about all units in the selection. If you select a bank of 5 solar collectors, it will show the total health of all those units and the total energy they&#039;re producing. If you move the mouse over a &amp;quot;build-pic&amp;quot; in a list of units that can be built, it will show you the costs and stats associated with the unit represented by the &amp;quot;build-pic&amp;quot;. If you have no selection, the tooltip will show information about what your mouse is over at that time. If your mouse is over a unit, it will show stats for that unit. Otherwise it will show information about the terrain.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
[[Image:CommanderTooltip.png|thumb|120px|Commander Selected]]&lt;br /&gt;
[[Image:TerrainTooltip.png|thumb|120px|Terrain Hover (No Units Selected)]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
[[Image:BuildMexTooltip.png|thumb|120px|Metal Extractor Buildpic Hover]]&lt;br /&gt;
[[Image:RepairTooltip.png|thumb|120px|Repair Command Hover]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
[[Image:PeeweeGroupTooltip.png|frame|center|Group of units Selected]]&lt;br /&gt;
&lt;br /&gt;
====Basic Unit Groups====&lt;br /&gt;
&lt;br /&gt;
Spring supports assigning units to numbered groups. You can assign the currently selected units to a numbered group with CTRL # (where # is a number key) which will put that number(#) above all selected units, then later, you can quickly select just these units by pressing that #, or add them to the current selection with SHIFT #.&lt;br /&gt;
&lt;br /&gt;
If a factory is set to a group, all units built by this factory will also be automatically assigned to this group. This is not a good idea with combat units unless you ungroup the factory before sending the units into battle, as it can prevent you from assigning certain orders, and result in newly-produced units doing stupid things.&lt;br /&gt;
&lt;br /&gt;
Units can only be in one group at a time, so assigning a new group number to a unit will remove it from its current group.&lt;br /&gt;
&lt;br /&gt;
Assigning a unit to a group overides normal double-clicking behaviour. If you double-click a member of a group, all units in the same group will be selected.&lt;br /&gt;
&lt;br /&gt;
Also note that when you CTRL # a group of units the old group with that number will no longer exist. If you intend to add aditional units to a group, you must first SHIFT # the current members and then add (by holding SHIFT) the additional units to the selection group and the use CTRL # to re-assign all the units to that group. A shortcut for this is holding down both SHIFT and CTRL and pressing a number(#) to add the current selection to that group, and select the entirety of that new group.&lt;br /&gt;
&lt;br /&gt;
====Advanced Unit Groups with GroupAIs====&lt;br /&gt;
&lt;br /&gt;
It is possible to use more than groups 0-9, but additional groups from 10 and up are controlled by a &amp;quot;Group AI&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
See [[#Select_AI_.28CTRL.2BQ.29|Select AI (CTRL Q)]] for information on these &amp;quot;Group AIs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
See [[#Assign/Select_Current_Group (Q)|Assign/Select Current Group (Q)]] to learn how to select these groups and add units to them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Using_Spring|&amp;lt;--Back to Using Spring]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Using Spring]]&lt;/div&gt;</summary>
		<author><name>Anmoch</name></author>
	</entry>
</feed>