[ News | Information | FAQ | Feedback | Download ]
What is Cheapo and what can it
do?
Cheapo is a proxy that can be used to route QuakeWorld network traffic.
Additionally, the proxy can modify the data and has features for enhancing
gameplay. You can connect to cheapo as if it were a Quakeworld server,
and then give it commands that forward you to a real server. You can also
go through multiple proxies, if you like. The most common way to use a
proxy is to run it on the local computer, just to get access to the gameplay
features. The proxy can also be run on a firewall machine incapable of
handling Quake traffic, so that machines inside the firewall can be used
for playing. See the features list for the gameplay
enhancements.
Some Background
I personally needed a QuakeWorld proxy to get through a firewall, and
decided to build one when I heard that the new QuakeWorld will be incompatible
(and thus the excellent FAQ-proxy would stop working). Now that the proxy
has stabilized a bit and many people have asked me to publish it, I have
decided to do so. However, please remember that this started out as a personal
experiment, and is still pretty much that. So I add features and fix bugs
that I personally feel are most important. In any case I do plan on keeping
this proxy up to date at least in the near future. Also note, that this
proxy has been mostly tested in DeathMatch play, so problems with TF, CTF
or other addons are more possible.
How much does it cost
It doesn't cost anything. Howerver, nothing is really free. Since there
is no real support, and the documentation is very limited, it means you
have to work harder to get things working smoothly. And you might encounter
unexpected problems. Or your computer could be blown to bits (just kidding,
but hey, everything is possible). If you want the security of a well tested
product, try the other link on the main
page.
How to use it
I can really only recommend Cheapo if you have previous experience
with QuakeWorld proxies. In that case installing and using it should be
a breeze. Still, here are some quick instructions:
All proxy commands are prefixed with . (dot) to distinquish
them from everything else. Normally the proxy also recognizes commands
prefixed with proxy: or hostname: so to connect you could
type: ".connect" or "proxy:connect" or "xyz:connect"
(if the computer's hostname is xyz). If you are going to a server through
multiple proxies, the prefixes start to matter. Commands with the dot-prefix
always go to the nearest proxy (so use .command for setting up powerup
times and the like), and commands with the proxy:-prefix go to the last
proxy (so use proxy:connect for connecting). Using the hostname-prefix
of course affects the proxy with that hostname.
Features
The easiest way to give a summary of features is to just list the command
the proxy supports. Although this list might get outdated (or is already),
it's still pretty close. It is possible that some commands change in the
future. You have been warned.
For a more up to date list, check out the badly formatted internal
help file.
Connecting
| connect | connect to a QuakeWorld server or a new proxy |
| disconnect | disconnect from where you were connected to (but not from the proxy itself) |
| reconnect | reconnect to last address you were (or are) connected to. |
| users | list users in this proxy |
| name | rename the proxy (changes the proxy:-prefix) |
HUD
| line | change what screen line the timers appear on |
| move | move small centerprint messages downward away from crosshair |
Teamplay
| who | list who is on the server with skins and teams (like Kombat Teams who / whoskin) |
| mark | give names to locations so you can use them in your messages. |
| skin | override skins of all players according to team |
| color | override colors of all players acoording to team |
| point | select what items you can point to (for messages like 'available rl at red armor') |
| took | select what items are reported (for messages like 'took ra at base') |
| report | automatically report things (when you get a powerup, etc) |
| sound | soundtrigger, play sounds on teammates computers |
Miscellaneous
| fps | remove things that slow down the framerate (like dynamic lighting and bodies) |
| weapon | if you select a weapon you don't have, try select the next best weapon with ammo |
| track | track a player in first person view (when you are a spectator). Works like Kombat Teams track. |
| items | list items in current map (to see how many quads etc, if your memory is failing you) |
| cpps | limit client packet rate (allows higher framerate on low bandwidth connections) |
| flood | flood protection protection (avoids the flood penalty) |
| stat | display communication statistics |
%-commands you can add to your messages
| %A, %a, %[a] | information on your armor |
| %h, %[h] | information on your health |
| %w, %[w], %b, %[b] | current weapon and best weapon |
| %p, %[p] | powerups you have |
| %s | report things that are low (of armor, health, weapon) |
| %l | nearest location (see mark-command) |
| %d | location where you died the last time |
| %r | last reported location |
| %e, %o | number of enemies and teammates nearby |
| %L, %E, %O | like their lowercase versions, except that they remeber the situation before dying for 5 seconds. |
| %n | only show this message to nearby teammates (this is a note to other players' proxies to hide the mesage if they are far away) |
| %d | where you died for the last time |
| %L, %E, %O | like %l,%e,%o but after your death the status of the situation is frozen for 5 sec |
| %t, %x, %y | what you are pointing at (name at place, name, place) |
| %i, %j, %k | what you last picked up, what you last pointed, whichever happened latest |
| %m | like %k, or nearest item if nothing taken/pointed to in 10 seconds |
| %q, %g | powerups last enemy you saw had, powerups that are about to appear |
| %S, %C | your skin and your bottomcolor |
| f_report (alias) | report your armor/health/weapon/powerups (uses the above) |
| f_powerup (alias) | report your powerups (in 'i have quad' style) |
| f_took (alias) | report you took an item (in 'took ra at base' style) |
What kind
of team messages are possible with these %-commands?
To show how all these %-commands can be put to use, I have made a list
of the teamplay aliases I am currently using. You can probably come up
with even more ways to use these, but this list is a good starting point
if you want some ideas. My goal has been to minimize the number of messages,
but there are still quite a few. The left side shows the actual command
bound to a key, and the right side shows an example of what it looks like
in game.
First the classic binds:
| f_report | [a:0] h:100 rl:5 |
| say_team %l secured (%o-%e) | red armor secured (1-0) |
| say_team %L lost (%E enemies) | red armor lost (2 enemies) |
| say_team help to %L! | help to red armor! |
| say_team coming from %l | coming from grenade |
Then some new binds that combine many of the older ones:
| say_team "%t" | pack at grenade |
| say_team taken: %k | taken: pack at grenade |
| f_powerup | i have quad pent |
| say_team get %g (at %l) | get quad (at lower rl) |
| say_team enemy %q! | enemy pent! |
Additional notes:
If you don't like the new f_report style, you can redefine f_report
with 'alias f_report say_team '%Aa:%a h:%h %b %p %n' which was
the one used by FAQ-proxy. Just not that the definition has to be done
after
you connect to the proxy. You can also redefine f_powerup, and f_took.
The f_report and f_powerup binds can be automatically triggered by the proxy (when someone says a report or you get a powerup). This is enabled with command '.report power reply'.
If you want to set a lot of settings when connecting to the proxy, a
handy way to do it is to make a proxy.cfg, and then define in your main
config 'alias proxyautoexec exec proxy.cfg'. The proxyautoexec
alias is executed whenever you connect to Cheapo.