Xbox Controller Support & Weapon Visibility

I know these are probably rookie questions, but I am trying to get ioQuake3 to work with a new Xbox controller I just bought. I’ve gotten the controller to work with DarkPlaces, ioRTCW, Quake II 8.30, etc. but I can’t seem to figure it out in ioQuake3. I see that cvars exist for it, but I don’t know how to bind buttons or anything like that. Also, I’m not sure where ioQuake3 is looking for an autoexec. So I have a series of questions:

1.) Where do I put the autoexec.cfg file?

2.) What command does it require to actually enable the controller?

3.) What are the following lines looking for after them. Are these just sensitivy settings looking for numbers?
j_foward
j_side
j_up
j_pitch
j_yaw
j_foward_axis
j_side_axis
j_up_axis
j_pitch_axis
j_yaw_axis

I have looked into other games and most of these lines are nonexistent, so I have nothing to compare them to.

4.) I know how to change my FOV, but is there a way to show more of the weapon model? I know this is specifically addressed by ioQuake3 because the model was barely visible in regular Quake III in higher resolutions, but is there a way to make it even further away from the camera?

Thanks for reading this and hoping to hear from someone!

1.) in_joystick cvar and the control binds are automatically saved in q3config.cfg. autoexec.cfg is an advanced feature that may be confusing when it overrides the built-in (saved) options. (I don’t use it.)

2.) Open the in-game Quake 3 console using shift+escape and paste the below and press enter to enable using a controller. (Use shift+escape to close the console.)

in_joystick 1; in_restart

Controllers do not work for menu navigation but they do work in the controls menu when “waiting for key” to select input. There is no default controller binds, so the controls have to be set up.

Use can also use the console for bind PAD0_LEFTSTICK_UP +forward, etc to set the controls. If you type bind PAD0_ and press tab it will list all the gamepad inputs.

3.) The SDL 2 library should have a mapping for the Xbox controller so nothing needs to be done with j_*_axis. They are device specific mapping for joystick and trigger axes that are set using trial and error. The other j_forward, etc are sensitivity settings.

4.) Quake 3 doesn’t have an option to set the weapon model FOV to truly fix this. There is the cg_gunX cvar (as well as Y/Z) to move it like ioquake3 does at higher FOVs. Though this is cheat protected and requires loading maps like devmap q3dm17.

1 Like

This is great, thank you! I was able to get the controller to work, but it seems to be using the sticks as key commands. I found a cvar “in_joystickUseAnalog” but if I enable this, the sticks stop working entirely. Is there a way to use the sticks as actual analog sticks?

EDIT:
Nevermind! Got it all figured out and it’s working great now. The weapon visibility thing is excusable, but I hope it gets fixed in the future. My issue with the analog controls was that there was an autoexec.cfg file with all of the settings I mentioned before set to nothing at all. So you’re right - it did make things more confusing lol. Thanks again.

1 Like