Quake
Not enough ratings
Quake [2021 Re-Release] Clan Arena Mod, Add-Ons
By whoizz
Guide demonstrating how to add a custom Add-On repository and how to create Multiplayer Rooms with custom mods.
   
Award
Favorite
Favorited
Unfavorite
Introduction
Rocket Arena began as a way to measure players against each other in a fast and fair fashion. Put two players in an empty room with Rocket Launchers and let them fight it out. Who knew something so simple would transform Quake forever?

Rocket Arena was followed by the highly successful Clan Arena, bringing team play to the "everyone is equal" world of Rocket Arena. The fast-paced mayem of Clan Arena is still enjoyed by many of the Quake elite.

Clan Arena is like clanring or qwring for the most part. You join a server, ready up, and once everybody is set to a team, the match begins.

Clan Arena:
  • 3 Modes - Normal, Competition, and Round Robin.
  • Variable number of players and teams - have 2v2 or 1v1v1 or 3v3v3v3 or any other variation.
  • Works on any map.
  • Fully configurable with in-game admin and menu system.
  • Two different sound sets to choose from.

Requirements
  • Access to In-Game console, or some manner to redirect https traffic via your Internet router for Consoles.
  • Add-Ons repository containing your custom addons.
TLDR, Video Sample
While some may want to keep reading and understand how the setup works, others may not have the same disposition and just want to see what is it you will be getting.

I'd added this sample video in YouTube, which demonstrates the steps required to download the Clan Arena mod from a repository I've setup and hosted in Heroku[www.heroku.com].

Steps Required:
  1. Start Quake
  2. Access Console
  3. > ui_addonsBaseURL https://q1-rerelease-addons.herokuapp.com/ [hit enter]
  4. Open Add-Ons Menu
  5. Download & Activate Clan Arena (MOD)
  6. Download & Activate Clan Arena (Start Script), creates loadClanArenaAddon alias
  7. Multiplayer -> Start Match
  8. Press "F10" to execute loadClanArenaAddon alias
  9. Episodes should now contain Clan Arena and variables should have been set
  10. Choose Map & Play

Other players will be able to see your lobby in Match Browser as well as join your match, however, they will be disconnected if they do not have the same Mod installed.
Creating Add-Ons Repository
Quake [2021 Re-Release] comes with its own embedded variable for Add-Ons repository, which should be under variable ui_addonsBaseURL with a base value of "https://d13lkw7j6mfai6.cloudfront.net/", delivered via AWS Cloud-Front.

NOTE:
- The standard URL is always loaded when the Game initializes, but it can be overridden in "autoexec.cfg", which is also loaded afterwards during initialization.

Contents

Add-Ons repository seems to work in a very simplistic way, or at least what I've discovered so far, by own investigation and by reading other content online.

Event Sequence:
  1. Access Add-Ons Menu
  2. Game issues GET on [ui_addonsBaseURL]/content.json
  3. Game caches the response for that content the remainder of the session
  4. Add-On button "download" is clicked
  5. Game parses content.json and downloads content under "download" attribute for that addon entry
  6. Game issues GET on [ui_addonsBaseURL]/[download_attribute] and expects a binary/octet-stream response
  7. Game saves the binary response into a folder [Users]/Saved Games/Nightdive Studios/Quake/[gamedir_attribute] for that addon entry
  8. Add-On button "activate" is clicked
  9. Game identifies the installed gamedir folder above and issue a silent "> game [gamedir]" - which in turns loads the mod's progs.dat and quake.rc file if that file is also present.
  10. Persisted disk content is kept between sessions, however, the "activate" phase does not happen on Quake startup

Considering such sequence, I've created a repository and it's also open to public for reference, and can be checked by any enthusiastic using https://github.com/whoizz/q1-rerelease-addons.

Hosting

Add-Ons repository should be served with a valid SSL certificate. In this scenario, I've deployed that same node.js application from the git repo above into Heroku[www.heroku.com], and I'm using a free-tier very low end system. Heroku now exposes a public hosted SSL application, which is responding at https://q1-rerelease-addons.herokuapp.com/ - and case you want to browse via browser you can, just request https://q1-rerelease-addons.herokuapp.com/content.json and it should present you with a JSON payload the Game will later interpret, case we utilize that source as "ui_addonsBaseURL".

NOTE:
- In this particular guide I will not cover details about development or any technicalities, to keep it simple. For readers who understand the information above, I've also provided a way for you to clone my git repo and you can setup your own Mod repository to be shared between you and your friends, case you want to test or develop a brand new Add-On... who knows, "Quake Royale" does sound a bit attractive!
Activating Add-Ons Repository
As mentioned in the section above, Quake [2021 Re-Release] comes with its own embedded variable for Add-Ons repository, which should be under variable ui_addonsBaseURL with a base value of "https://d13lkw7j6mfai6.cloudfront.net/".

In order to load different Add-Ons, that variable needs to be modified in the client, via In-Game console.

NOTE:
- As far I understand, Console players cannot access the In-Game console, and while I do have a console I did not purchase Quake there. Case you know how to proceed with the next steps in the Console version of Quake, please let me know and I will update this Guide accordantly.


Steps Required:
  1. Start Quake via Steam
  2. Open In-Game console, default binds to ` key or whatever other key you have it bounded to
  3. Use "ui_addonsBaseURL https://q1-rerelease-addons.herokuapp.com/" [enter], without double quotes
  4. Access In-Game menu "Add-Ons", you should not have loaded it yet in this session
  5. Add-Ons now should be delivered from the repository you've set as "ui_addonsBaseURL"

After completing this steps, these two pictures should now look familiar.




Case you have issues, please remember, when you start a new Quake session the "ui_addonsBaseURL" is not yet cached, and it will cache as soon you first access the Add-Ons menu and maintain the cached value.
Installing Mods
Installing any mods is rather similar, in fact you may have done it via Quake 64, which is a mod delivered in the default settings. Mods can be downloaded and later activated.

Download

In this step, Quake will download the binary contents of the mod. Usually this means a pak0.pak, which is like a zip file with multiple files inside.

Content will be saved under [Users]/Saved Games/Nightdive Studios/Quake/[gamedir_attribute], and the gamedir attribute is mod dependent. You can always check it's contents to make sure everything is in place, after you downloaded your desired mod.

Activate

After Quake identifies the mod [gamedir_attribute] has contents, you can Activate that mod. In short, what Quake is doing under the hood is to issue a console command "game [gamedir_attribute]" - which loads the custom .dat with your mod as well as any initialization script needed.


Clan Arena Mods

On the repository I've provided, there are two mods available. Clan Arena (MOD) and Clan Arena (Start Script).

Clan Arena (MOD):
  • Installs base files, from some very old distribution from Clan Arena, which I found in http://dukeworld.com/planetquake/servers/arena/ - casrv13.zip, to be more precise
  • Additions made, included some maps I found and also some small adjustments on progs.dat, where I found inconsistencies

Clan Arena (Start Script):
  • Installs base files (progs.dat, required) as well as a quake.rc script. Case I find a workaround, this mod in particular may disappear, it's only there to provide you with an "easy launch" for Clan Arena setup, setting variables like gamedir, teamplay, temp1, deathmatch, scr_maxlines
  • Quake.rc file contains a "loadClanArenaAddon", which reads "game carena;deathmatch 4;teamplay 2;maxplayers 16;temp1 9;*menu_down"
  • Quake.rc also unbinds your F10 key and binds it to "loadClanArenaAddon", so you can use in the Start Match screen to select Episode & Maps (as well as the base setup parameters)

It's likely you will need to Activate this between sessions, or else, you can create this very alias in your "autoexec.cfg", located at [Users]/Saved Games/Nightdive Studios/Quake/autoexec.cfg and this would completely remove the need for you to install this addon. I could not find a way to do such using only one mod, case you know how to do it, please contact me and I can update this Guide and make the process simpler.


NOTE:
- Team Fortress and Capture The Flag are the next ones that will show up in that repository, however, I will try to maintain the Clan Arena mods with the same names.
Starting Match
After you have installed & activate the Clan Arena mods, you can proceed normally to initiate a lobby, using the Multiplayer menu.

When you select "Start Match", you will be taken to the screen to select the Game Mode and other parameters. At this point you can press F10, and if the previous (Start Script) addon has been activated in this session, the game mode will switch to Clan Arena.

At the time of writing, I couldn't find a way to modify or add this new Mode into the Game Mode selection menu, but it will be available in the Episodes menu. In addition, when selecting Clan Arena episode, you will also be presented with some maps installed via (Mod) addon, and they will set the map for the match.


As soon you complete your match setup and choose "Play", your lobby will be visible to others using Match Browser, as well as anyone can connect to your Room using your room code, or via console command "> connectpf [room_code]" [enter].

Clan Arena is initially setup as Normal Mode, which is 1v1 inside the Arena and additional players spectate and get in line to face whoever wins the current match.

In addition, you can use console commands like "> commands" [enter] to find out what else is there, you can use "> elect" [enter] to become admin and modify Game Modes, using "> modeset" [enter].

While I believe it's possible to have a Pickup Mode enabled with 4v4v4v4, and the lobby up to 16 players concurrent, I haven't really fully tested this.

Also, sometimes you will notice people connecting and disconnecting, which means, they tried to join your lobby but they lack the Clan Arena addon, and I could not find a way to "auto-download" addons like we used to have in Quake World.
Considerations
Clan Arena was really popular back in the day, and in my opinion, it's by far the best mod around to have a session of frags with friends. Clan Arena was also the first mod I played when I started with Quake, and this dates from 1996 / 97 - we used to go mad with it, and this is potentially the biggest reason why I decided to touch this mod first.

Team Fortress is also one of my favorites, and I tell you it works just fine too, thou I'd likely need to recompiled some issues with TF 2.5, which was the latest open source released version.

And I say issues but maybe they are more like some incompatibility problems, which Clan Arena also faced. For instance, QuakeC Reference[pages.cs.wisc.edu] tell us we can do a centerprint overload using the in-built #73 (described in section 14.3.8), however, Quake [2021 Re-Release] does not seem to accept it. While there is no error being thrown, the additional parameters does not work, and all of these mods uses this method since QuakeC does not have string concatenation, and sometimes you want to centerprint a variable with some additional text. Would love to hear comments from the developers, case this ever reaches them, on how to overcome this issue, or if this behavior was really indented or just really a bug.

When modifying the source code of Clan Arena, everything was kept in place and all names or credits un-modified, so it's still kind of the same mod really.

I've also taken some time to write a perhaps "detailed" Guide on how all of this process with mods work, and show a setup others can also do - I hope this somehow ease up the fact you'd need to use some URL in your client to acquire these mods more easily. Other guides also here on Steam describes how to manually do the process, so that's also an alternative - all the files used in this Guide can be accessed publicly.


And finally, I'd like to say thanks to daredpenguin and Hachu for helping me out by installing and trusting I wasn't doing any funny business with their Quake installations, as well as some members from SBC Shredders[www.sbcs.org], for teaching me how to frag people around after all these years.


- whoizz, Fragging your minds... since 1996.


NOTE:
- I know this may create some comments, I'd like to say in advance that in the supplied video " I HAVE INTENTIONALLY " allowed the bot to kill me to demonstrate how the Clan Arena queue system works. =)

11 Comments
Sigmagamma Nov 21, 2021 @ 3:02pm 
Awesome, this works! Is there any way to disable self damage?
whoizz  [author] Nov 20, 2021 @ 4:01pm 
@Shingimel: I will have a look, but you can also use "game carena;deathmatch 4;teamplay 2;maxplayers 16;temp1 9;" (you can enter each command at a time) while on the same screen and it should also work.
Sigmagamma Nov 20, 2021 @ 2:57pm 
Hi! Thanks for making this :) I got as far as installing and activating the addons, but pressing f10 while in the lobby for a new multiplayer game does nothing - I can't see the clan arena episode in the selection box.
whoizz  [author] Sep 7, 2021 @ 7:38pm 
@>noderunner_ thanks mate, glad you like it.. I will have a look later on! =)
whoizz  [author] Sep 7, 2021 @ 7:37pm 
@StoneCold yeah, hopefully they will fix it - CTF could possibly be more adequate for the 8 maxplayers limit we currently have on PlayFab lobbies, thou really.. even some TDM mod (which makes the teams and counts frags based on pants color) would already be awesome!
>noderunner_ Sep 7, 2021 @ 5:10pm 
Great guide, lots of good info! I've created my own addon server if you'd like to test it out: https://github.com/kexquake/addons
StoneCold Sep 7, 2021 @ 4:41pm 
@whoizz Threewave CTF also works, however, I think it also suffers from "centerprint" issue you mentioned. Here's hoping they can patch it in the future, because all these mods are fun as heck to play, that's for sure :)
whoizz  [author] Sep 5, 2021 @ 6:57pm 
@Ricochet Team Fortress is also working, however, the current build of Quake does have an issue with a QC function called "centerprint" which is widely used in Team Fortress, which was also used in Clan Arena but to a much lesser extend and with a lot less utility.

when I was talking to one of the developers, maybe even the responsible for this version of Quake, he mentioned he has identified the issue and potentially fixed, so perhaps when they patch the client on Steam next this particular fix will be also delivered and then I will be able to add Team Fortress into that very list.
¹Riekoche Sep 5, 2021 @ 5:35am 
Thank you so much for this. We're that much closer to playing things like Team Fortress, AD, CTF and Instagib!
whoizz  [author] Sep 4, 2021 @ 3:20pm 
@StoneCold thanks mate, I have played with a few people Clan Arena, at least another two reported they used this Guide without any issues.. still to get a 2v2 or 3v3 Rocket Arena going, but there is really not a lot of people who plays in here in Oceanic (ANZ).

Let me know if you install and wanna have a match! =)