XPILOT(6)
๐ NAME ๐
xpilot โ the XPilot multiplayer gravity war game client. This is the <rainbow>XPILOT(6)</rainbow> page from the Games Manual, bestie. ๐ซถ
๐ SYNOPSIS ๐
xpilot [-help] [-version] [-name nickname] [-team team-number] [-join]
[-list] [-shutdown [message]] [-display string] [-port port-number]
[-text] [configuration-options] [server-host ...]
โจ OVERVIEW โจ
Okay so picture this: XPilot is a multiplayer game that looks a bit like Thrust for the Commodore 64. Thrust has some similarities with Atari's coin-up games Gravitar and Asteriods (not a misspelling, bestie) โ they were the originals. Several clones have appeared for various computers, among others Gravity Force for the Commodore Amiga. ๐ซ
The main objective of the game varies as you can choose different game modes, although the only modes supported as of today are combat (optionally with teams and/or limited lives) and race. The former mode focuses more strongly on shooting each other down, while the latter is more a piloting test than anything else. ๐
To start playing, you need to connect to a server by using a client program called xpilot. If there are no servers running, you will have to start one of your own (see man-page xpilots(6)). No cap. ๐
๐ Options ๐
-helpโ Prints some help, including commandline options.-versionโ Prints the current version.-name player-nameโ Lets you use an alternative name during the play (may be handy :)). If this option isn't specified, and you haven't set the X resource name, you will be known by your login name.-team team-numberโ Joins team number team-number. See below for notes about team play. When the server is not configured for team mode, this option has no effect.-helpโ Prints a small usage message.-versionโ Prints version information.-joinโ Automatically joins the first server you get response from. If no server-host is specified, a broadcast query is performed to locate a server on the local network.-listโ A broadcast query is performed on the local network and status information is displayed from all servers found.-shutdown [message]โ Sends a shutdown to the server, the message part is optional.-name nickโ Specifies your nick name.-team numberโ Specifies your wanted team number.-display display-stringโ Specifies which X server to contact.-port numberโ Specifies the port number to use when contacting a server.-textโ Invokes the old text-based command prompt interface instead of the new Welcome Window. If no server-host is specified, a broadcast query is performed to locate a server on the local network. If a server-host is specified,-textis implied.configuration-optionsโ All the X resource values can be configured separately from the command line. For example to change the ecm key to justzuse;-keyEcm zserver-hostโ Tries to connect to server at host server-host. If successful and-joinis not specified, you are presented with the command prompt.
If neither server-host nor -join are specified, the Welcome Window is displayed and a server may be selected from there.
๐ซถ PROMPT COMMANDS ๐ซถ
When you startup xpilot specifying a server name but no -join option, or -text is specified, you will get a prompt asking you for directions. You may type h or ? to list the available commands. These are quite obvious and deal with communication to the current server only. You may enter the game by pressing CR (Return/Enter). ๐
If you are the owner of the server you will have a few extra options. See xpilots(6).
๐ฆ THE WELCOME WINDOW ๐ฆ
When you startup xpilot without specifying a server name you will be presented with a Welcome window with three buttons in the upper left corner. These buttons are:
- Local โ Search for
xpilotservers on the local network and display a list of matches. Press the Join game button beside the desired server name to start playing. If no servers are listed, you will need to start one. Seexpilots(6). - Internet โ Search the
xpilotmeta servers (see notes section) for currently runningxpilotservers on the Internet.
If the meta servers could be contacted, a list of servers will be displayed.
- Quit โ Press this button to exit the program.
When the Internet button is pressed and successfully retrieves the list of xpilot servers from the meta servers, additional buttons appear at the bottom and one under the server column for each server listed:
- Next Page โ If there is more than a screenful of servers, this will allow you to see the rest of them. A First Page button will appear to return to the top of the list when you are not on the first page. The page is initially sorted by the
plcolumn in descending order. - Measure Lag โ This will fill the
pingcolumn with the round-trip time for a packet to reach each server (in milliseconds). If the server is not reachable, none will appear in this column. The results will be sorted byPlin descending order and subsorted in ascending order byPingtime. - Server โ The hostname of the server is displayed as a red button to join that server.
The button is highlighted when the program is attempting to establish a connection to the server. If the server cannot be contacted after two retries, the button will revert to its unhighlighted state. If the button stays highlighted and you do not enter the game immediately, this means you have been queued to enter the game as soon as a base is available. ๐ญ
The xpilot client does not handle the connection attempt in its own thread and therefore blocks the current execution thread and will not update the display or respond to button presses until a connection is established or it gives up. Thus, the only way to exit the queued state is to close the xpilot client, either by using the window manager to close the window, or forcibly with kill(1) or ^C. ๐
Incorrectly configured server hosts may report a false hostname. However, behind the scenes, the meta server sends us the IP number. A connection will be established to that IP number when the server button is pressed so long as there isn't a network problem (such as a firewall at either the client or server end not configured to permit access) that prevents contact. ๐ฅ
The columns of the Internet server table, from left to right are as follows:
Plโ The number of human players on the server.Qโ The number of players currently queued to join the server.Baโ The number of bases on this map.Tmโ The number of teams, if the map is a teamplay map.FPSโ The framerate of the server in frames-per-second.Statโ The status of the game, e.g.lockif the game is locked.Versionโ The version number of the server.Mapโ The name of the map.Serverโ The hostname of the server.
๐ THE GRAPHICAL USER INTERFACE
Okay bestie, so the moment you join a game you'll (hopefully ๐ญ) get a window popping up, and this window is split into three big zones:
๐ฆ Radar (top left)
This is the map your server is running, plus where everybody else is at โ assuming they're not cloaked, sneaky little things. In race mode the radar also shows you where the control posts are. Players show up as tiny rectangles, and the player you're currently locked onto is a flashing rectangle, so you literally cannot miss them ๐ .
The server can optionally throw missiles, mines and/or bombs (that's moving mines, bestie) onto this radar, each with its own little symbol:
- missiles = quick flashing small dots
- mines and bombs = slow flashing small dots
And if nuclear mines or missiles get launched, the radar can pick up the high-energy radiation they emit and will show those weapons as alternating small and large rectangles ๐. The radar always has a limited range for these objects because they're small, and the max range depends on how much fuel you're carrying. Yep, fuel = radar range, that's the vibe.
On teamplay maps, your fellow team members show up as green dots on the radar, and the enemy shows up as white dots. Slay.
โจ Rating list (bottom left)
This area lists every player currently logged onto the server, sorted by their rating (their score). The player with the highest <rating>/<num of times died> ratio โ aka the most deadly player โ gets underlined with a dashed line ๐. Main character energy, honestly.
First thing on each line you might see a letter, and it's giving status update:
Rโ the player is a robot ๐คTโ it's not a player, it's a detached tankDโ the player is dead (only possible in limited lives mode)Pโ the player is pausedWโ the player is waiting to join the game after login (limited lives mode)
Depending on the current game mode, you'll also see which teams each player belongs to and how many lives each player has left.
๐ธ Game area (right)
This is where it all goes down. Most notably, you โ your fighter โ is right in the middle of the screen, and hopefully there are no shots or explosions yet ๐.
You might also notice some strange blue drawings surrounding your fighter โ that's the HUD (Head Up Display), and it compresses and simplifies all the info you need to know. Right now the HUD shows:
๐ Bonus items
You may spot symbols and numbers on the left side of the HUD โ those tell you which extra equipment you have and how much of it. You can turn this list off with the o key, and then only items you gain or lose will flash up briefly on the HUD. Press o again and it's back to constantly showing your owned items. Toggle queen ๐
.
โฝ Fuel
A fuel meter shows up on the right side of the HUD when you're getting low, and it starts flashing when your fuel gets dangerously low ๐ญ. The fuel level is also numerically displayed in the bottom right corner of the HUD.
๐ฏ Lock
The name of the player you're currently locked onto is shown at the top of the HUD. The distance and bearing to that player are visualized by a dot โ where the dot sits gives you the direction, and how big the dot is gives you the distance. The dot is filled in if that player is not on the same team as you. The distance is also numerically displayed in the top right corner of the HUD, measured in blocks.
๐ฆ Velocity (Optional)
The position of the HUD shifts with your current velocity โ the distance from the center of your screen is proportional to your velocity. Moving to the top moves the HUD to the bottom. Trippy but iconic.
On top of the moving HUD, you can display a line from the center of the HUD to the center of your ship.
Both indicators can be combined, or used exclusivly (see the discussion about Xresources below).
๐ Score messages
Relevant score info appears below the HUD, and also out on the game field.
โณ Time left
How much time the game will last โ if the server was started with a time limit. Displayed in the upper left corner of your HUD.
And between the radar and the Rating list there are three push buttons:
- Quit โ exits the game and the program. Bye bestie ๐ซถ
- About โ pops up a three-page help window explaining, in short, what all the items you might encounter actually do, with a graphical depiction of each one. Study material, ngl.
- Menu โ pops up a pull-down menu with these buttons:
- Keys โ pops up the Keys window, which lists all the X keysyms that have one or more xpilot actions bound to them.
- Config โ turns the Rating list into a window with a list of most of the options, and you can change them interactively. Hitting the Save configuration button saves the options and the key bindings to the
.xpilotrcfile in your home directory. - Score โ displays the players and their scores in the Rating list window.
- Player โ lists the players with their login name and their host address in the Rating list window.
- MOTD โ displays the Message Of The Day, if the server has one available.
๐ฎ GAME CONCEPTS
The objective varies a lot, because the server (xpilots(6)) is super configurable. But here's the short version of the main concepts, bestie:
๐ Gravity
Everything in the game is affected by gravity โ meaning they accelerate in whatever direction the gravity is strongest. The strength and direction of gravity is user configurable (see xpilots(6)), and it can even be set to 0. Zero gravity girlies rise up.
Some objects affect gravity in a limited area โ these are called gravs, and they come in assorted types: attractive, repulsive, clockwise, anti-clockwise. Gravs show up as red circles with a symbol inside that's different for each type of grav. (For the full tea on how they affect gravity, see xpilots(6).)
๐ Wormholes
Wormholes are red rotating circles. They will teleport you to another place in the world. Generally, when you go through a wormhole you come out at the nearest wormhole in the direction you were travelling. Some wormholes are enter-only and some are exit-only โ and the exit-only ones are invisible ๐. Passing through a wormhole will make you visible for a while if you were cloaked. No cap, that's the trade-off.
โฝ Fuel
You also gotta worry about your fuel level, since most equipment uses fuel/energy and some of it even works better the more fuel you have. Worth it.
You can gain fuel by picking up special fuel cans (see the bonus items section) or by refueling at a refuel station. Refuel stations are found in blocks in the world, and you can tell them apart from standard background blocks because they've got a red/black F in them and they're partly or completely filled with red. The amount of red tells you how much fuel the station has available for you. To actually refuel, you have to hit the keyRefuel key (see the controls section).
Fuel also takes up mass, and it determines how big the explosion will be when โ sorry, if :) โ you meet your destiny ๐ญ๐.
๐ฅ Combat
There are two different, mutually exclusive modes with totally different objectives: combat mode and race mode. The most extensive one is combat mode, which also happens to be the default.
Here your main objective is to get the highest rating possible by blasting away on enemy fighters (human or robot controlled) and cannons. Everything will naturally fire back at you, so you'll also need some nifty piloting skills and/or some heavy equipment to really enjoy living. Extra weapons are explained in the bonus items section.
๐ Race
In race mode, your objective is to fly as fast as you possibly can through a specified route. You do this by passing checkpoints in a specified order, and the finish is reached after three laps.
The next checkpoint is always visible on the radar. Always. Iconic.
๐ซถ Team play
Team play is useful in combination with combat mode. It's different from straight combat mode because players on your own team are not considered enemies. There are some additional objectives too.
You can gain points if the map you're using has targets or treasures. The main difference is that you get points by blowing up an enemy's target using shots or mines. A shot will only damage a target, and if the target is completely damaged then the next shot will blow it up. A mine will immediately destroy a target. Two missile hits will also destroy a target. Boom ๐ฅ
Okay so, enemy treasures? You literally have to steal them from the enemies and drop them on your own treasure. You pick one up by using keyConnector while youโre flying nearby the enemies treasure โ this attaches it to your ship with a strong rubber band. Now you have to move your ship away from the treasure while holding keyConnector down. When you reach a certain distance, the rubber band gets drawn in a sollied line. That means the treasure is attached to your ship. Itโs possible (in emergency situations :) to detach the enemy treasure by pressing keyDropBall, but that will of course not gain you or your team any points. ๐
Certain maps may configure targets as passable by team members, in which case they can act as wall shields for team bases. Iconic.
Provided that teamImmunity: yes is set on the map, your teammates will appear as blue ships, and so will their shots. With teamImmunity you cannot be shot by members of your own team, nor do you bump into or crash with them. The enemy, and the enemyโs shots, are always white. ๐ซถ
๐ก๏ธ Shields
You may or may not have shields at your disposal, depending on the server options specified. If you have them, they are activated with the keyShield key (see controls section). Generally collisions with other objects (except for debris and sparks) are lethal, but when you are hit by something with your shields up, it will only cost you some fuel/energy. If you didnโt have enough fuel, then the collision will be lethal again. Having your shields up costs fuel. ๐
๐ Bonus items
During the game you might encounter blue triangles with red symbols on โ these are special bonus items which will make your life easier. As of today, these items include:
- Fuel can โ More fuel/energy. ๐
- Cloaking device โ Makes you invisible for other players, both on radar and on the screen. However, when you are hit by a shot or missile or bounce with another player, then you will be temporarily visible again.
- Sensors โ Enables you to see cloakers to a limited extent. Having more sensors improves this.
- Rear cannon โ Extra rear cannon.
- Front cannons โ 2 extra front cannons.
- Afterburner โ Your main engine becomes more powerful and uses your fuel more efficiently.
- Rockets โ Pack of rockets. These may be used as smart missiles, heat seeking missiles, or just plain dumb torpedos. Usually these explode on impact with a small debris explosion. However, if enabled, nuclear and/or cluster variants of each may be possible. See the description of
keyToggleNuclear,keyToggleClusterandkeyToggleModifier. - Mine โ Pack of mines. Can be dropped as either moving mine (bombing) or stationary mine (mining). Usually these will explode when someone else comes within a few blocks, causing a large debris explosion. However, if enabled, nuclear and/or cluster variants of each may be possible. Mines have a little intelligence and will not explode for the player (or team members) who dropped them. However, the targetting of mines can be effected by ECMs (unless the server option
ecmsReprogramMinesis false). If you get close enough to a mine, you will be able to sense who the mine is currently programmed by. Mines dropped by different players have a different external appearance โ mines dropped by you or your team show up hollow. Reprogramming does not change the appearance of a mine, so be careful because a hollow mine may not be safe. See the description ofkeyToggleNuclear,keyToggleCluster, andkeyToggleModifier. - Tank โ Additional fuel tank (perhaps with some spare fuel). As you pick up more tanks, your weight increases and youโll have to compensate by picking up afterburners. You can change which tank is the
active tank, that is the one that fuel is drained from (if this tank is empty, fuel is drained from all tanks). Refueling is quicker with more tanks.
To ease filling several tanks in parallel, all the tanks drain into their left neighbours (0<-1<-...<-8); except your active tank, which is watertight (it seems a bit complicated at first, but trust me, youโll get it eventually :-). Tanks donโt drain if they reach a certain minimum level (unless of course, you use it as the active tank).
When you detach a tank it is the active one that is detached, unless the active tank happens to be your main tank, in which the tank with the highest number is used. The detached tank will have the shape of a ship and will carry your name, it will immediately start thrusting (as long as fuel permits) and will fool all heat-seekers to follow it.
- ECM โ Electronic Counter Measures. ECM allows you to confuse and re-target smart missiles within a certain range of your ship. When missiles are zapped by ECM, they will become confused for a while and then have a high probability of going after the player who you were locked onto when you used the ECM. The ECM will also โ within a certain range โ cause them to either explode or be more likely temporarily blinded such that they do not explode if you go near them. The closest mine within ECM range may be reprogrammed to be safe for you and your team members. If another ship is within range of the ECM, all its sensors will freeze for a while and if the ship was cloaked, it will become visible for a while. The ECM is activated by pressing the
keyECMkey. - Transporter โ Enables you to steal equipment and energy/fuel from the closest fighter, provided it is within the transporters range. You activate the transporter by pressing the
keyTransporterkey. - Laser โ Gives you a laser weapon with limited range. Having more of these increases the range and the repeat rate of the laser subsystem.
- Emergency Thrust โ Gives you a limited amount of super thrusters, equivalent to a full complement of afterburners. With a light ship this is equivalent to hitting hyperspace or warp factor 9.99. Useful for stopping quickly or running away fast from a deadly encounter. The extra thrust capability is toggled on and off by a seperate key and can thus be saved; the amount of time remaining is shown by a status bar below the HUD.
- Autopilot โ Gives you a hover capability. When engaged an
Autopilotlight will flash above the HUD. When engaged the autopilot computer will bring the ship to a hover by the quickest (perhaps not safest) method possible. It will then leave you in a hover, unless in a strong gravity field where your engines cannot cope. Useful for hovering next to a refuel depot. - Tractor Beam โ Not to be confused with a transporter, this enables you to push or pull the ship you are currently locked onto. The force is mutual, and thus if your ship is lighter than your target you will move more towards him than him towards you. Best used with heavy ships to pull then push annoying players into walls.
- Emergency Shield โ Gives you a limited amount of extra shield power, which prevents any fuel loss from shots, debris, player and wall collisions, missiles, mines, etc. While in use, the ship can smash into walls at any speed and angle without fear of being killed. The extra shield capability is toggled on and off by a separate key and can thus be saved, with the remaining amount of extra shield power being saved for later use. Once toggled on, the extra shield power will take effect and be used only while the normal shields are up. Best used when confronted with cluster mines and missles or deadly cannons. ๐ฅ
๐ฎ CONTROLS
The game understands quite some keys, but not all of them are equally important. The following keys are more or less sorted by importance. The name of the keys are also the Xresources you use to redefine them, and the words inside the curly braces {} are their default bindings. See Xresources section below. โจ
๐ Primary keys
The primary keys are:
keyTurnLeft{a}โ Turn left (anti-clockwise).keyTurnRight{s}โ Turn right (clockwise).keyThrust{right Shift or left Shift}โ Thrust me.keyFireShot{return or linefeed}โ Fire normal shot.keyShield{space or Caps Lock}โ Raise shield. Must be held down for continuous use.keyRefuel{f or left Ctrl or right Ctrl}โ Try to connect to nearest fuel station. Must be held down during refueling.keyRepair{f}โ Repair a target.
๐น๏ธ Secondary keys
The following commands are not always available, some require bonus items to have any functionality at all.
keySelfDestruct{q}โ Self destruct. At last we managed to include a timer, got rid of all those nasty I'd-rather-die-by-my-own-hands-than-let-you-kill-me-and-get-all- the- points pilots. ๐keyIdMode {u}โ toggles the ID mode โจ instead of the score list, you get the player list with their real names and computer addresses. iykyk.keyCloak {BackSpace or Delete}โ turns the cloaking device on/off (if you even have one ๐ ). you go invisible on radar and on screen, but bestie, beware: the device is not foolproof, it's not cheap on your fuel, and the only thing getting invisible is your ship โ the exhaust-flames will still be visible ๐.keySwapSettings {Escape}โ flips between two different settings. you'll probs want more power and a bigger turn rate in combat than when you're doing some critical maneuvering, fr fr.keyDropMine {Tab}โ drops a proximity mine ๐. it detonates after a certain amount of time (quite large actually) or when a foe gets too near.keyDetachMine {bracketright}โ drops a moving mine โ that is, a bomb ๐ฅ.keyDetonateMines {equal}โ detonates the mine you dropped or threw that's closest to you.keyEcm {bracketleft}โ fires an ECM pulse โก.keyChangeHome {Home or h}โ changes your home base. you gotta be landed on the base of your choice for this. (the Home key sits just right of the Return key on most HP-keyboards.) these keys are convenient for HP keyboards and also somewhat adapted to SUN keyboards ๐ซถ.keyTankNext {e}โ if you have additional tanks, the current tank becomes the next tank.keyTankPrev {w}โ if you have additional tanks, the current tank becomes the previous tank.keyTankDetach {r}โ detaches the current tank (or the last additional tank). heat-seeking missiles will hopefully follow this tank ๐ญ iconic decoy behaviour.keyPause {p or Pause}โ park, or paused hover mode. you can only park while you're landed on your own home base, and when you park you cannot rejoin the game until thePhas stopped blinking (this is so nobody uses it to run away from a battle ๐). if you're not near your base and you're travelling very slowly, the ship gets brought to a standstill on autopilot and cannot be unpaused until theAutopilotlight stops blinking.keyFireMissile {backslash}โ fires a smart missile if available ๐ฅ. the missile homes onto the player you've currently locked on. you must have a clear lock on a player for this to work. requires lock.keyFireHeat {semicolon}โ fires a thrust controlled missile. works like a smart missle, but it's faster and ECM isn't able to confuse it. needs the thrust for navigating.keyFireTorpedo {quoteright}โ fires a missile with no flight control. it runs very fast in the shot direction ๐.keyFireLaser {slash}โ fires a laser weapon in the direction you're pointing. lasers have limited range and use a lot of fuel, but they're instantaneous and therefore way more deadly than normal shots ๐ . the precise electronics of lasers can be irretrivially damaged by the high energy interference generated by enemy ECMs โ yeah, that's permanent, no cap.keyToggleNuclear {n}โ pressing this key toggles through the following indicators on your HUD (bottom left), only if nuclear weapons are allowed:Nโ all missiles or mines launched from now are limited nuclear weapons.FNโ all missiles or mines launched from now are full (or fusion) nuclear weapons.
pressing the key again clears the nuclear weapons mode.
you must have eight or more missiles, or four or more mines to launch a nuclear missile or mine, and perhaps enough fuel as well. if you don't, a message shows up at the bottom of the game area explaining why, and the weapon will not be fired.
firing a full (or fusion) nuclear weapon completely depletes your stock of that weapon; limited nuclear weapons deplete your stock by eight missiles or four mines.
a nuclear missile or mine fired will have a mass and explosive power equal and usually greater than the total number that were used. nuclear torpedos are very fast, and all nuclear weapons explode violently (this may freeze the server momentarily ๐ณ). after firing a one off nuclear weapon, the n indicator is cleared.
keyToggleCluster {c}โ pressing this key toggles the following indicator on your HUD (bottom left), only if cluster weapons are allowed:Cโ all missiles or mines launched are cluster weapons.
cluster weapons explode differently from normal weapons. they explode with a slower moving shower of killing shots and not debris, which may kill or deplete shields just like a normal shot fired by yourself. so, since cluster debris is deadly to yourself, you should be careful when firing such a weapon ๐ซถ. after firing a one off cluster weapon, the c indicator is cleared.
a cluster weapon also uses an almost equivalent amount of fuel as if you'd fired the shots using your cannon, so large cluster explosions use large amounts of fuel. if you don't have enough fuel, a message saying so appears at the bottom of the game area and the weapon will not be launched.
keyToggleImplosion {i}โ pressing this key toggles the following indicator on your HUD (bottom left), only if modifiers are allowed:Iโ all mine and missile explosions will be implosions instead.
keyToggleVelocity {v}โ pressing this key toggles through V1 through V3 and then to no modifier, in turn. it affects the speed of nuclear and/or cluster explosions โ higher modifier numbers produce lower explosion velocities, so for the most effective nuclear cluster explosion a V2 or V3 modifier should be used โจ.keyToggleMini {x}โ pressing this key toggles through X2 through X4 and then no modifier, in turn. the number shows how many miniture mines or missiles get fired for every key press. the sum total damage and cost of using miniture weapon is equivalent to a normal weapon of that type.keyToggleSpread {z}โ pressing this key toggles through Z1 through Z3 and then no modifier. the higher the number, the closer the spread of fire for minature weapons; it also affects the spread of wide and rear shots, successively narrowing the stream of bullets such that V3 is a single beam of shots โก.keyTogglePower {b}โ pressing this key toggles through B1 through B3 and then no modifier. the higher the number, the less powerful a tractor beam is used โ mainly for conserving energy or fine adjustment in pulling somebody around. the power setting also affects the engine to warhead ratio in missiles: a higher setting makes each missile have more powerful engines, and thus be much quicker and more maneaverable, but at the cost of a drastically reduced damage capability. however, when coupled with other modifiers this can cause severe psychological advantages โ just consider the effect of trying to outrun four miniture full cluster powered up nuclear smart missiles ๐ญ๐ฅ.keyClearModifiers {k}โ clears all current modifiers in effect.keyLoadModifiers1 {1}โ loads the modifiers stored in bank 1, as set by themodifierBank1resource.keyLoadModifiers2 {2}โ loads the modifiers stored in bank 2, as set by themodifierBank2resource.keyLoadModifiers3 {3}โ loads the modifiers stored in bank 3, as set by themodifierBank3resource.keyLoadModifiers4 {4}โ loads the modifiers stored in bank 4, as set by themodifierBank4resource.keyToggleAutoPilot {h}โ this toggles the autopilot feature. you need atleast one Autopilot item before this will work ๐.keyToggleEmergencyThrust{j}โ toggles the emergency thrust item โจ you need at least one emergency thrust item for this to work. The first time you flip it on, the item gets used up and you get like ten seconds or so of emergency thrust to play with. The time only drains as you thrust, and hitting this key again pops you back to normal thrust while saving whatever boosted thrust you've got left ๐ซถ if you've got both Autopilot and Emergency Thrust items, pressing Meta or Alt gives you the equivalent of emergency brakes ๐keyToggleEmergencyShield{g}โ toggles the emergency shield item, and yeah you need at least one of those. First time you turn it on, the item is consumed and you get about ten seconds of emergency shield power. The time only gets used up as you use your regular shields, and hitting this key again puts you back on normal shield power while conserving the remaining emergency shield power ๐keyTractorBeam{comma}โ engages any tractor beam items on the player you hold a lock on. It's giving mutual attractive force โ both of you get pulled toward each other ๐ธkeyPressorBeam{period}โ engages any tractor beam items on the player you hold a lock on, but make it repel: mutual repulsive force, both players get pushed away from each other ๐ซkeyTalk{m}โ toggles the talk window so it shows below the HUD. If your mouse pointer is outside the window you still have full control of your ship, and pressing the talk key makes the window disappear (your current message is not lost, don't panic ๐). If you put your mouse pointer inside the window you can type a message with the keyboard, but heads up โ your ship will no longer respond to key presses. The following special keys are available:- Return Linefeed โ finishes and sends the message. The talk window is also removed from the screen and the message text cleared.
- Backspace Del โ these keys delete the last character.
- Ctrl+W โ deletes the last word.
- Ctrl+U โ deletes the entire line of text.
- Esc โ removes the talk window without clearing the text. Lowkey the most useful one, because if something important in the game happens and you need to control your ship, you're saved ๐
Messages will usually be sent to every player logged in, including yourself. Messages you receive always appear at the bottom of the Game area, and they look like:
<<Viper shouts>> Hello world.
However, you can send messages to individual players or teams by starting the message with the player's name (or enough characters from the beginning of their name to make it unique) or team number, followed by a colon, and then the message. Just putting a colon at the start of the message sends it to everyone. For example:
vip: Hello
will send a message to only one player whose name begins with the letters vip (the case does not matter ๐).
keyToggleCompass{y}โ turns off the HUD compass display.keyLockClose{Select Up}โ locks onto the closest player if he/she is within range.keyLockNextClose{Down}โ locks onto the next closest player after the currently locked player.keyLockNext{Next Right}โ will, if possible, lock onto the next player in the game.keyLockPrev{Prior Left}โ will, if possible, lock onto the previous player in the game.keyConnector{Control_L}โ use connector. For the moment, all this is used for is picking up treasures/balls ๐keyDropBall{d}โ drops the ball if you're carrying it.
These keys let you adjust the control sensitivity:
keyIncreasePower{KP_Multiply}โ increase engine power.keyDecreasePower{KP_Divide}โ decrease engine power.keyIncreaseTurnspeed{KP_Add}โ increase turn speed.keyDecreaseTurnspeed{KP_Subtract}โ decrease turn speed.keyToggleOwnedItems{o}โ makes all owned bonus items show up either constantly, or for a brief period after their amount changes on the HUD.keyToggleMessages{0}โ makes messages shown or not shown.keyReprogram{quoteleft}โ reprogram a modifier bank or lock bank.keyLoadLock1{5}โ load player lock from bank 1.keyLoadLock2{6}โ load player lock from bank 2.keyLoadLock3{7}โ load player lock from bank 3.keyLoadLock4{8}โ load player lock from bank 4.keyToggleRecord{KP_5}โ toggle recording of the session to a file (see therecordFileoption). You can review that recording later with thexp-replay(6)program ๐ฅkeyPointerControl{KP_Enter}โ toggle mouse pointer control.keySelectItem{KP_0 KP_Insert}โ press repeatedly to select an item to drop. A small rectangle gets drawn around the item you can drop. Use thekeyLoseItemkey to actually drop the item. Note that you cannot select tanks to drop โ tanks can only be released (see thekeyTankDetachoption) ๐keyLoseItem{KP_Delete KP_Decimal}โ drops the item selected with thekeySelectItemkey. The server can either delete the item or drop it back into the map, depending on the value of theloseItemDestroysoption.keyPrintMessagesStdout{Print}โ print the current messages tostdout.keyTalkCursorLeft{Left}โ move cursor to the left in the talk window.keyTalkCursorRight{Right}โ move cursor to the right in the talk window.keyTalkCursorUp{Up}โ browsing up in the history of the talk window.keyTalkCursorDown{Down}โ browsing down in the history of the talk window.
๐ฑ๏ธ Mouse control ๐
There are up to five mouse buttons available to define as keys:
pointerButton1{keyFireShot}โ define which keys are pressed when mouse button one is pressed.pointerButton2{keyThrust}โ define which keys are pressed when mouse button two is pressed.pointerButton3{keyShield}โ define which keys are pressed when mouse button three is pressed.pointerButton4{}โ define which keys are pressed when mouse button four is pressed.pointerButton5{}โ define which keys are pressed when mouse button five is pressed.
๐ X RESOURCES ๐
At startup xpilot will look for X resources in several places. First it looks in the INSTLIBDIR (as defined during compilation, mostly as something like /usr/local/games/xpilot/lib/) for the file named xpilot. After that it looks for more resources in /usr/lib/X11/$LANG/app-defaults/xpilot, $XUSERFILESEARCHPATH/xpilot, $XAPPLRESDIR/$LANG/xpilot, $HOME/app-defaults/$LANG/xpilot, resources set using xrdb or else $HOME/.Xdefaults, host specific resources in the file pointed to by $XENVIRONMENT or else in $HOME/.Xdefaults-hostname and finally in $HOME/.xpilotrc. If the LANG environment variable is undefined or if that file doesn't exist then it will look for the file as if LANG had been undefined. Resources defined in files listed later override resources in files listed earlier ๐ฅ If the XPILOTRC environment variable is defined then its value is used instead of $HOME/.xpilotrc. All of these resources can be overridden by their corresponding command line arguments, iykyk.
nameโ nick name of your player.teamโ preferred team number.portโ set the port number of the server. Almost all servers use the default port, which is the recommended policy. You can find out about which port is used by a server by querying thexpilotMeta server.powerโ primary power setting of your engine. Primary in this context means that it is part of the default setting, secondary means the other setting (two different settings are available, pressing Esc will switch between them). You may change the "sensitivity" of your ship by adjusting these parameters. Often you would like one setting to be more "rough" than the other โ one setting for fine maneuvering and one for racing. (Default45.0)turnSpeedโ primary turnspeed setting of your ship. (Default30.0)
okay bestie, we're still deep in the X resources section and the option buffet is not done yet โ lowkey this is the part where the game gets its whole visual vibe ๐ โจ
turnResistanceโ the primary turnresistance setting of your ship. This value decides how fast your ship stops rotating, i.e. the rotating speed of your ship is set equal to itself multiplied by this value. Obviously the value has to lie between0.0(exclusive) and1.0(inclusive). (Default0.12)altPowerโ secondary power setting of your engine. (Default35.0)altTurnSpeedโ secondary turnspeed setting of your ship. (Default25.0)altTurnResistanceโ secondary turnresistance setting of your ship. (Default0.12)shipShapeโ define the ship shape to use. Because the argument to this option is rather large (up to500bytes), the recommended way to set this option is in the.xpilotrcfile in your home directory. The exact format is defined in the fileREADME.shipsin the xpilot distribution. Note that there is a nifty tool callededitssfor easy ship creation. See the xpilot FAQ for details. See also theshipShapeFileoption. ๐shipShapeFileโ an optional file where shipshapes can be stored. If this resource is defined and it refers to an existing file, then shipshapes can be referenced by their name. For instance, if you defineshipShapeFileto be/home/myself/.shipshapesand this file contains one or more shipshapes, then you can select the shipshape by starting xpilot as:
xpilot -shipShape myshipshapename
Where "myshipshapename" should be the "name:" or "NM:" of one of the shipshapes defined in /home/myself/.shipshapes. Each shipshape definition should be defined on only one line. All characters up to the first left parenthesis are ignored.
fuelNotifyโ the limit when the HUD fuel bar will become visible. (Default500.0)fuelWarningโ the limit when the HUD fuel bar will start flashing. (Default200.0)fuelCriticalโ the limit when the HUD fuel bar will flash faster. (Default100.0)showHUDโ should the HUD be on or off. (Defaulttrue)speedFactHUDโ should the HUD be moved to indicate the current velocity. Negative values will inverse the moving of the HUD. (Default0.0)speedFactPTRโ uses a red line to indicate the current velocity. On edge of the line is the center of the ship. The other end is moved in the same way, as the HUD, ifspeedFactPTRis set.charsPerSecondโ this determines the speed in which messages are written, in characters per second. โ๏ธmarkingLightsโ should the fighters have marking lights, just like airplanes? ๐ฉ๏ธsparkProbโ the chance that sparks are drawn or not. This gives a sparkling effect. Valid values are in the range[0.0-1.0]โจsparkSizeโ size of sparks in pixels.selectionAndHistoryโ provide cut-and-paste for the player messages and the talk window and ahistoryfor the talk window.-maxLinesInHistoryโ number of your messages saved in thehistoryof the talk window.historyis accessible withkeyTalkCursorUp/Down. Valid values are in the range[1-128]. The default value is:32.shotSizeโ size of shots in pixels.teamShotSizeโ size of team shots in pixels.showShipNameโ should all ships have the name of the player drawn below them.showMineNameโ should the name of the owner of the mine be drawn below the mine.showMessagesโ should messages appear on screen.messagesToStdoutโ do you want messages to be sent to standard output?0: No,1: Only player messages,2: Player and status messages.maxMessagesโ the maximum number of messages to display.showItemsโ should owned items be displayed permanently on the HUD, or only when their amount has changed?showItemsTimeโ the time in seconds to display item information when it has changed and theshowItemsoption is turned on.clockโ display a small digital clock. โฐclockAMPMโ displays clock in 24hr or 12hr format. (Default:False)autoServerMotdPopupโ automatically popup the MOTD of the server on startup.toggleShieldโ have the shield status be changed only by a key press and ignore the key release.autoShieldโ when this option is on, then shields are lowered automatically when firing a weapon or dropping a mine. After the firing the shields are raised again too.fuelMeterโ determines if the fuel meter should be visible. This meter visualizes your fuel level in a different way thanfuelGaugedoes.fuelGaugeโ determines if the fuel gauge should be visible. SeefuelMeter.turnSpeedMeterโ should the turnspeed meter be visible at all times. (Defaultfalse)powerMeterโ should the power meter be visible at all times. (Defaultfalse)backgroundPointDistโ specifies the block distance between points drawn in the background, used in empty map regions.8is default,0means no points.backgroundPointSizeโ specifies the size of the background points. The default is2,0means no points.titleFlipโ should the title bar change or not. Some window managers liketwmmay have problems with flipping title bars. Hence this option to turn it off.slidingRadarโ if the game is in edgewrap mode (seexpilots(6)) then the radar will keep your position on the radar in the center and draw the rest of the radar around it. This requires very good X performance and a pretty fast workstation. Default is off. ๐outlineWorldโ draws only the outline of all the blue map constructs.filledWorldโ draws the walls solid. Needs a fast graphics system.texturedWallsโ draws the walls filled with a texture pattern. See also thewallTextureFileoption. Be warned that this needs a very fast graphics system. ๐ฅwallTextureFileโ specify a XPM format pixmap file to load the wall texture from.texturePathโ optional search path for XPM texture files. This is a list of one or more directories separated by colons.packetSizeMeterโ turns on a meter displaying the maximum packet size of the last few seconds.packetLostMeterโ turns on a meter displaying the percentage of packets lost in the last second due to network failure (overload).packetDropMeterโ turns on a meter displaying the percentage of packets dropped due to your display not being able to keep up with the rate at which the server is generating frame updates. If possible lower the frame update rate of the server with the-fpsoption.receiveWindowSizeโ specifies how big the receive window should be. See NOTES below.soundsโ specifies the sound file. (Only if sound is enabled.) ๐maxVolumeโ specifies the volume to play sounds with, where0turns off sound. (Only if sound is enabled.)audioServerโ specifies the audio server to use. (Only if sound is enabled.)geometryโ specifies the geometry to use like:-geometry 1280x1024+0+0.keyboardโ set the X keyboard input if you want keyboard input from another display. The default is to use the keyboard input from the X display.recordFileโ an optional file where a recording of a game can be made. If this file is undefined then recording isn't possible. See thekeyToggleRecordoption for how to make recordings. ๐ฅvisualโ specifies which visual to use. You can see which visuals your display supports by running:xpilot -visual list.colorSwitch <true/false>โ tells xpilot to use a color switching display technique or not. Default istrueif your display hardware has enough colors available.maxColorsโ tells xpilot how many colors you want it to use. Default is4, with a maximum of16. Valid values are4,8and16.targetRadarColorโ which color number to use for drawing targets on the radar. Valid values all powers of2smaller thanmaxColors.hudColorโ specifies which color index to use for drawing the HUD. The value for this option is a number ranging from1till themaxColorsvalue.hudLockColorโ specifies which color index to use for drawing the lock dot on the HUD. The value for this option is a number ranging from1till themaxColorsvalue.wallColorโ specifies which color index to use for drawing the walls. The value for this option is a number ranging from1till themaxColorsvalue.sparkColorsโ a list of color numbers to use for drawing sparks and debris of varying temperature. ๐gameFontโ the font used on the HUD and for nearly all text part of the game field. ๐messageFontโ the font used for messages that pop up in the bottom left corner of the game field ๐ฌscoreListFontโ the font used on the score list. Heads up bestie: it must be non-proportional. no exceptions ๐buttonFontโ the font used on all the buttons ๐textFontโ the font used in the help and about windows ๐talkFontโ the font used in the talk window ๐ฃ๏ธmotdFontโ the font used in the MOTD window and in the key list window. Also must be a non-proportional font, okurrr โจcolor0โ specifies the color to use for color 0. You can specify colors all the way up tocolor15this way, so yes, the whole rainbow is yours ๐. And just so you know:Black,white,blueandredare equivalent tocolor0,color1,color2andcolor3respectively ๐จ
๐ INVOCATION EXAMPLES ๐
The simplest invocation of the hand-shake program is literally just typing:
xpilot
That alone will force the program to search after a server on all the machines on your attached network ๐ต๏ธโโ๏ธโจ
Now say you already know where the server is and you don't wanna be prompted (super handy in scripts etc.), you can type for example:
xpilot -join lglab08
where lglab08 is the name of the host running the server ๐ฅ๏ธ
In the examples above your name would be your login name. Let's say you want to be really cool and your login name is gudmari โ well, you're in loads of trouble if you don't know about the -name option ๐ญ so:
xpilot -name FireEater
will fix the problem for you ๐ฅ๐
๐ NOTES ๐
For the credit list, see the provided CREDITS file ๐ซถ
If the client crashes, you will be without autorepeat on your keyboard. To re-enable autorepeat, issue this command:
xset r
Also please note that xpilot can be addictive, and strenuous for both you and your keyboard. We take no responsibility. :) ๐
There is a meta server running on meta.xpilot.org, port 4400, into which all servers registers. This way you can easily check if there are any servers running nearby ๐ To use it, try:
telnet meta.xpilot.org 4400 help list
Or:
telnet meta.xpilot.org 4401
If you experience any problems with jerkiness, you should try to adjust the receiveWindowSize Xresource. The problem may be that your X server can't display as fast as the xpilot server is generating new frame updates ๐ So another option is setting the number of frames for the server to a lower number or get a faster X display system :)
The receiveWindowSize resource allows you to tune the buffering of frame updates a little. When set to one then there is no buffering and xpilot will just read the next frame and display it. When the display is slower than the xpilot server this may give all sorts of problems like lagging behind and lack of keyboard control ๐ตโ๐ซ
When you set receiveWindowSize to two then xpilot will always try to read a second frame from the network and if this succeeds it will discard the oldest frame. A better number for receiveWindowSize is three which will discard the oldest frame out of three and therefore be less subject to small changes in network delivery times โฑ๏ธ If your display is fast enough and can keep up with rate at which the server is generating frames then specifying a value bigger than one will not result in dropping frames, but rather will it be a buffer for small changes in network performance and computer load. The maximum value of receiveWindowSize is four ๐
๐ธ ENVIRONMENT ๐ธ
If XPILOTRC is set then its value is used instead of $HOME/.xpilotrc to find the file containing the xpilot resources. XPILOTUSER and XPILOTHOST set the loginname and hostname as reported to the xpilots server ๐ซก
๐ AUTHORS ๐
XPilot was developed by Bjรถrn Stabell <bjoern@xpilot.org> and Ken Ronny Schouten <ken@xpilot.org> from the University of Tromsรธ, Bert Gijsbers <bert@xpilot.org> from the University of Amsterdam, and Dick Balaska <dick@xpilot.org> from BuckoSoft.COM ๐
๐ BUG REPORTS ๐
The product is seemingly stable, so bug reports are highly appreciated ๐ Send email to xpilot-hacks@lists.sourceforge.net and we will see what we can do. We merely ask that you remember to include the following information:
- The platforms the bug occurs on
- What kind of display you have (depth, color, type)
- Which Xresources you're using.
- The full version of BloodsPilot, i.e.,
1.5.0 - What the bug looks like (symptoms)
- When the bug usually occurs
We would also like to receive changes you do to make the code compile on your machine (we would NOT like to receive the whole program translated to K&R C, keep it ANSI :) If you don't have an ANSI compiler, there are several utilities which may help you de-ANSI-fy the code (unproto, unprotoize etc), but a better solution will be to install the GNU C compiler on your system ๐ง
๐ COPYRIGHT & DISCLAIMER ๐
xpilot is Copyright ยฉ 1991-2012 by Bjรถrn Stabell, Ken Ronny Schouten, Bert Gijsbers, Dick Balaska, Uoti Urpala, Juha Lindstrรถm, Kristian Sรถderblom and Erik Andersson. xpilot comes with ABSOLUTELY NO WARRANTY; for details see the provided COPYING file ๐ซถ
๐ FILES ๐
/nix/store/09i4k0vpwvvhh86m0lna3r0iygw9f479-bloodspilot-client-1.5.0/share/bloodspilot-client-sdl/motdโ Message of the day ๐/nix/store/09i4k0vpwvvhh86m0lna3r0iygw9f479-bloodspilot-client-1.5.0/share/bloodspilot-client-sdl/soundsโ File containing the sound to sound-file mapping ๐
๐ฆ SEE ALSO ๐ฆ
xpilots(6), xp-replay(6) โญ
and that's a wrap bestie!! ๐ This is the XPILOT(6) page, and the footer tells you everything you need: it Requires UDP and X11, and yeah โ it's the BloodsPilot client version 1.5.0, dated right there in the footer like a little timestamp of destiny ๐ฐ๏ธโจ Go frag some ships, hydrate, and don't forget xset r ๐
๐ซถ
๐ฆ where this page comes from
- nixos 26.05: bloodspilot-client 1.5.0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms