[ Home | Overview | Console | Teamplay | Eyecandy | Misc | FAQ ]

Teamplay Documentation

Teamplay Oriented Macros

FuhQuake supports all macros found in zquake, and virtually all macros found in the qizmo proxy and the mqwcl client. All macros have the same standard names used by zquake/qizmo/mqwcl with the following exceptions. $ledpoint is like mqwcl's %sp. $ledstatus is like mqwcl's %sy. %s is like mqwcl's %se.


FuhQuake clients with version >= 0.22 will respond to f_modified requests.  All the usual dm models, sounds, palettes etc are included in the check.  In teamfortress the teamfortress flag, dispensers and sentry guns are also checked.  There is also an f_modified command which will print your f_modified response.  If someone is using 24bit custom textures, their f_modified response will indicate this. Note that a person's f_modified response means nothing unless you know that they are connected directly to the server or through a legitimate proxy.

Client Authentication

FuhQuake clients with version at least 0.20 can authenticate other clients that appear to be FuhQuake.  Basically if a client is authenticated, it means they are using a binary I put on my website and not some hacked client pretending to be FuhQuake by mimicking the f_version etc responses.  This is great for tournaments.  You type 'validate_clients' to obtain 3 lists.  The first list is a list of players who are definitely using a legitimate FuhQuake client.  The last list is a list of players whose clients are not pretending to be FuhQuake (they might be using zquake, mquake, or some autoaim client).  The middle list is the interesting one.  It is a list of players whose clients appear to be FuhQuake but have not been authenticated.  There are a few reasons why someone might be in this list.  They might be using an old FuhQuake version that doesn't have client authentication in it.  They might be using a genuine FuhQuake client with authentication support, but just haven't been authenticated yet (read below).  Or they might be using some autoaim hax0red lameKNG client that is trying to pass as a legitimate FuhQuake client. 

How do client's get authenticated?  Through a hash printed in their 'f_version/fuh_version' response.  To authenticate clients, you need to first do a 'fuh_version' (or 'f_version') and then type 'validate_clients'.  If someone is using a legitimate FuhQuake client but you haven't seen their version response yet, then they will appear in the 'unauthenticated FuhQuake clients' list (the middle list described above).  By default, FuhQuake hides the hashes from you because they look ugly.  If you want to see them set 'auth_viewcrc 1'.  You might be interested to know that 'verify_clients' will work when watching a demo as long as someone issues a version request in the demo.

I don't know how cpu intensive the validation process is, but if you don't want your client to validate other FuhQuake clients, set 'auth_validate 0'.  If you do this, even legitimate FuhQuake clients will appear in your 'unauthenticated FuhQuake' list because you are not authenticating them.  The default is 'auth_validate 1' which performs the validation (but you need to use 'validate_clients' to see the results after a 'fuh_version').  If you have 'auth_warninvalid 1' and someone gives a dirty hash in a version response (because they are using a hacked client that can't work out the right response), FuhQuake will print something like 'Warning Invalid Client: playername (userid)' in your console ('auth_warninvalid 0' is default).  By the way, the 'verify_clients' list is reset on map change.

The above validation behaviour is when 'auth_validate 1' is set (default).  However it won't work on some dodgy quakeforge servers that don't display to players the *FuhQuake key in a FuhQuake user's setinfo string.  A workaround is to use 'auth_validate 2'.  This works the same way except it only gives you an 'authenticated FuhQuake' list and not the other two lists that 'auth_validate 1' does.

Ability to Ignore Players/Spectators/Teams/Opponents/Flood

There's lots of new commands/cvars in FuhQuake that let you ignore people/teams/spectators/flood.

'ignore_opponents 1' makes you ignore opponents messagemode 1 messages.

'ignore_flood 1' ignores repeated mm1 and spectator messages.  'ignore_flood 2' ignores repeated mm1, mm2 and spectator messages.  Basically the way it works is, if someone (other than you) says a message they have already said in the last 4 seconds, 'ignore_flood' will ignore that message.  You can change the 4 second cooldown with the 'ignore_flood_duration' variable.  'ignore_spec 1' will ignore spec chat unless you are a spectator.  'ignore_spec 2' will ignore spec chat even if you are a spectator.

The command 'ignore' is used to add players to your ignore list.  You can give 'ignore' either a player's name (name completion is useful for this) or a userid ('ignore <name | userid >').  'ignore' without any command line parameters displays your ignore list.  'ignore_id' is identical except it only accepts user id's (only useful if there is a player whose name is the userid of someone you want to ignore).  'unignore' and 'unignore_id' work the same way except they remove a player from your ignore list.  If someone is on your ignore list, you won't see any mm1 messages from them (even if they are a spec).  If you set 'ignore_mode 1' then you won't see mm2 messages from them either. 'ignore_mode' is 0 by default which means ignore mm1 only.  There's also an 'unignoreAll' command which does the obvious.  Be careful with your ignore list. You can ignore team mates and even yourself.  Also if a player on your ignore list changes name, they will still be ignored and if you view your ignore list you'll see their new name (which is good).  But if they reconnect to the server they will no longer be ignored (because its all about userids and not usernames).

Lastly there's 'ignore_team', 'unignore_team' and 'unignoreAll_team' which work just like 'ignore/unignore/unignoreAll' except you can ignore teams instead of players. The teamplay setting on the server must be enabled for team ignore lists to have any effect. Once again use 'ignore_mode' to chose whether you want to ignore mm1 only ('ignore_mode 0') or both mm1 and mm2 ('ignore_mode 1').  Be careful because you can ignore your own team.  By the way, you need to get the team name exactly right, including capitalisation.

Improved msg_trigger's

I rewrote most of the msg_trigger code in zquake 0.14. It's still the same syntax ('msg_trigger <alias> <string>') but you can have nested aliases like this : "alias d c; alias c b; alias b a; alias a say hello" and then ' msg_trigger d "hi" ' will say 'hello' whenever someone says 'hi'.  Of course there's much more useful examples of nested aliases.  Also there is no way of executing forbidden msg_trigger commands in FuhQuake like there was in zquake.

Scripting Improvements

When using if/else statements in FuhQuake cfg's, there is a new operator you can use called "isin".  "s1 isin s2" returns true if and only if s1 is a substring of s2.
Example:  "if flag isin $powerups then say ner else say mer".

Serverside Controllable Fullbright Skins

Fullbright skins (r_fullbrightskins) are enabled in teamfortress due to official support for it in the Australian teamfortress community.

Also r_fullbrightSkins is no longer a 0/1 value cvar, but can take on the value of any decimal between 0 and 1.  An r_fullbrightSkins of 0.35 will make skins 35% fullbright etc.  So now the level of brightness can be controlled.

Not only that, but an upper limit for the brightness level can be set by the server.  A serverinfo key called "fbskins" controls this.  So 'serverinfo fbskins 0.5' means that skins won't be more than 50% fullbright (i.e the brightness can be at most half way between the brightness of no fullbright skins and the brightness of 100% fullbright skins).  'Serverinfo fbskins 0' will disable fullbright skins.  If no "fbskins" serverinfo key is present, brightness level is not restricted (well it can never go beyond 100%). Fullbright skins can always be used during demo playback.

Finally, when the server allows fullbright skins, any user of FuhQuake using fullbright skins will respond to an f_skins request.  There is no response by a user of FuhQuake if he/she is not using fullbright skins.  The f_skins response will indicate the brightness level being used as a percentage.

hosted by ausgamers
fuh can (sometimes) be found on #fuhquake on QuakeNet irc. You can also email fuh (but you will need to remove the underscores from the email address). But the best way to contact him is via the FuhQuake forum.
This page has been visited 502106 times since the 7th of September 2002.