Godus
Not enough ratings
[How to] add controller support
By SubjectThrone31
This guide shows how to add controller support in a few simple steps.
   
Award
Favorite
Favorited
Unfavorite
Foreword
This guide will show how to add controller support to Godus. At the time of writing Godus is at estimated 40% completion and unfortunately does not have any official support for controllers. In fact, even keyboard + mouse controls are bare minimum since the game is a blatant port from touch devices.

Because this is an unofficial method all the key/button mappings provided in this guide are based on my personal preferences. I have tried to make them as reasonable and universal as possible, but if something doesn't feel right/comfortable it's easy enough to customize the mappings (which will also be covered in the guide).
Tools
This guide is based around using a gamepad-to-keyboard emulator in order to translate the gamepad input into keyboard/mouse input that Godus can understand.

The software of choice for this guide is JoyToKey, quite possibly the best stand-alone tool that offers such functionality. Its tiny footprint means running the emulation does not impact on game performance in any way, and the added input lag is completely imperceptible.

Currently two versions of JoyToKey can be found, a Freeware and a Shareware version. The differences between the two are explained below, and this guide will offer instructions for both versions. I personally use JTK 5.3.1 (current full paid version at the time of writing) but have also used the freeware versions for years.

Freeware
The older versions of JoyToKey (up to and including 3.7.9) were released as freeware, available for download from the developer's site. With the coming of version 4.x the licensing was changed to Shareware (see below), but the older versions can still be easily found around the web. Some example sources include:

Shareware
Following version 4.x the licensing for JTK was changed to a free to try shareware, with the full version costing $7. The free trial offers most of the functionality, so check that out first if interested. The trial and full version are available from the JTK homepage[joytokey.net]. Blatant advertisement follows: if you ask me JTK is well worth the $7, you'll get much much more value out of this tool as you can use it to control just about anything with a pad.

As far as improvements go 5.3.1 has some useful changes:
  • an option to suspend mapping (sorely missing in the old versions, can be improvised)
  • bind mapping profiles to specific applications (auto-load profile when app starts)
  • bind specific devices to different joystick configurations within a profile
  • sensitivity settings now separate for each stick
  • Auto-fire was refined somewhat + more controls
  • buttons can now be toggled (always pressed)
  • mapping list was refreshed to be easier to understand for beginners
  • added joystick presets for easier selection (1/2/4 sticks with/without D-pad)
  • optional faster processing (increases max key (auto)press rate from 30/s to 60/s)
None of this makes any difference for Godus, however useful these are for other applications.
Instructions
Setting up JTK is very simple, and the process is the same irrespective of the version. JTK does not require installation, simply unzip the downloaded archive to a convenient place.

The normal process would be to start JTK, click on Create to open a new profile, and start mapping the desired buttons. However, for this guide the mappings will be provided. So:
  • In the same folder as JoyToKey.exe create a new text file
  • Open the file in a text editor (eg Notepad)
  • Depending on the JTK version and pad type used navigate to the correct section in this guide.
  • Copy the code and paste it into the open file. Save and close editor.
  • Rename the file as desired, making sure to change the extension to .cfg (eg godus.cfg)

That's all there is to setting it up. Now all that's needed is to start JTK and select the Godus profile from the list and the mappings will be applied instantly. Read below for an explanation of the mappings.

Note: the mappings are system-wide and affect any and all inputs, so make sure to close JTK (or suspend mapping in 5.x.x) when not needed.

Controls
+----------------------------+----------------------------+ | 3.7.x | 5.x.x | +--------------------+-------+------+---------------------+ | Function | Button | Function | +--------------------+--------------+---------------------+ | Mouse move | Left Stick | Mouse move | | Camera move | Right Stick | Camera move | | a | Dpad Left | a | | s | Dpad Up | s | | d | Dpad Right | d | | f | Dpad Left | f | | (6cps) Left Click | A / Suare | Left Click (6cps) | | (6cps) Right Click | B / Cross | Right Click (6cps) | | (Book) B | X / Circle | B (Book) | | Reduce mouse speed | LB / L1 | Left click | | Reduce mouse speed | RB / R1 | Right click | | Shift | LT / L2 | Reduce mouse speed | | Shift | RT / R2 | shift | | Esc | Back/Select | Esc | +--------------------+--------------+---------------------+

The difference in mapping comes from 3.7.x having issues recognising xbox trigger presses for the purpose of using special commands (like reducing mouse pointer movement speed) even though the triggers work fine for any other purposes.

Note on changing mouse speed: Holding any of the buttons will cause the mouse pointer to move at 20% of the normal speed. This is useful for more precise navigation, in other words - to reduce the risk of destroying things by accident!

Customising controls

Once the proper config file is created (see above) modifying the bindings is trivial. With JTK open and the Godus profile selected the right half of the JTK window will display all the mappings. Changing them is as easy as clicking twice on a desired entry (opens a new window) and pressing the desired key. In 5.x.x pressing anything on the gamepad will highlight the relevant entry in the list.
3.7.x Config - PS
PasteBin link[pastebin.com]
[General] FileVersion=37 NumberOfJoysticks=1 DisplayMode=3 UseDiagonalInput=0 UsePOV8Way=0 Threshold=100 Threshold2=20 KeySendMode=0 Use8Axes=1 UsePOV=1 [Joystick 1] Axis1n=2, -80, 0, 0, 0, 0, 0, 0 Axis1p=2, 80, 0, 0, 0, 0, 0, 0 Axis2n=2, 0, -80, 0, 0, 0, 0, 0 Axis2p=2, 0, 80, 0, 0, 0, 0, 0 Axis3n=1, 41:00:00, 0 Axis3p=1, 44:00:00, 0 Axis6n=1, 57:00:00, 0 Axis6p=1, 53:00:00, 0 POV1-1=1, 57:00:00, 0 POV1-2=1, 44:00:00, 0 POV1-3=1, 53:00:00, 0 POV1-4=1, 41:00:00, 0 POV1-5=1, 53:00:00:00, 0.000, 0, 0 ##dpad down POV1-7=1, 41:00:00:00, 0.000, 0, 0 ##dpad left Button01=2, 0, 0, 0, 1, 0, 0, 6 Button02=2, 0, 0, 0, 0, 0, 1, 6 Button03=1, 42:00:00, 0 Button05=4, 20 Button06=4, 20 Button07=1, 10:00:00, 0 Button08=1, 10:00:00, 0 Button09=1, 1B:00:00, 0
3.7.x Config - xbox
PasteBin link[pastebin.com]
[General] FileVersion=37 NumberOfJoysticks=1 DisplayMode=3 UseDiagonalInput=0 UsePOV8Way=0 Threshold=100 Threshold2=20 KeySendMode=0 Use8Axes=1 UsePOV=1 [Joystick 1] Axis1n=2, -80, 0, 0, 0, 0, 0, 0 Axis1p=2, 80, 0, 0, 0, 0, 0, 0 Axis2n=2, 0, -80, 0, 0, 0, 0, 0 Axis2p=2, 0, 80, 0, 0, 0, 0, 0 Axis3n=1, 10:00:00, 0 Axis3p=1, 10:00:00, 0 Axis4n=1, 41:00:00, 0 Axis4p=1, 44:00:00, 0 Axis5n=1, 57:00:00, 0 Axis5p=1, 53:00:00, 0 POV1-1=1, 57:00:00, 0 POV1-2=1, 44:00:00, 0 POV1-3=1, 53:00:00, 0 POV1-4=1, 41:00:00, 0 POV1-5=1, 53:00:00:00, 0.000, 0, 0 ##dpad down POV1-7=1, 41:00:00:00, 0.000, 0, 0 ##dpad left Button01=2, 0, 0, 0, 1, 0, 0, 6 Button02=2, 0, 0, 0, 0, 0, 1, 6 Button03=1, 42:00:00, 0 Button05=4, 20 Button06=4, 20 Button07=1, 4B:00:00, 0
5.x.x Config
PasteBin link[pastebin.com]
[General] FileVersion=53 NumberOfJoysticks=1 DisplayMode=3 UseDiagonalInput=0 UsePOV8Way=0 Threshold=100 Threshold2=100 KeySendMode=0 [Joystick 1] Axis1n=2, -80, 0, 0, 0, 0, 0, 0.000, 0, 95, 1.0, 100, 0, 0, 0 ##left stick Axis1p=2, 80, 0, 0, 0, 0, 0, 0.000, 0, 95, 1.0, 100, 0, 0, 0 ##left stick Axis2n=2, 0, -80, 0, 0, 0, 0, 0.000, 0, 95, 1.0, 100, 0, 0, 0 ##left stick Axis2p=2, 0, 80, 0, 0, 0, 0, 0.000, 0, 95, 1.0, 100, 0, 0, 0 ##left stick Axis3n=1, 41:00:00:00, 0.000, 0, 0 ##right stick Axis3p=1, 44:00:00:00, 0.000, 0, 0 ##right stick Axis4n=1, 57:00:00:00, 0.000, 0, 0 ##right stick Axis4p=1, 53:00:00:00, 0.000, 0, 0 ##right stick Axis5n=1, 10:00:00:00, 0.000, 0, 0 ##right trigger Axis5p=2, 0, 0, 0, 0, 0, 0, 0.000, 0, 95, 1.0, 20, 0, 0, 0 ##left trigger POV1-1=1, 57:00:00:00, 0.000, 0, 0 ##dpad up POV1-3=1, 44:00:00:00, 0.000, 0, 0 ##dpad right POV1-5=1, 53:00:00:00, 0.000, 0, 0 ##dpad down POV1-7=1, 41:00:00:00, 0.000, 0, 0 ##dpad left Button01=2, 0, 0, 0, 1, 0, 0, 6.000, 0, 95, 1.0, 100, 0, 0, 0 ##A / Square Button02=2, 0, 0, 0, 0, 0, 1, 6.000, 0, 95, 1.0, 100, 0, 0, 0 ##B / Cross Button03=1, 42:00:00:00, 0.000, 0, 0 ##X / Circle Button05=2, 0, 0, 0, 1, 0, 0, 0.000, 0, 95, 1.0, 100, 0, 0, 0 ##left bumper /L1 Button06=2, 0, 0, 0, 0, 0, 1, 0.000, 0, 95, 1.0, 100, 0, 0, 0 ##right bumper / R1 Button07=2, 0, 0, 0, 0, 0, 0, 0.000, 0, 95, 1.0, 20, 0, 0, 0 ##L2 Button08=1, 10:00:00:00, 0.000, 0, 0 ##R2 Button09=1, 1B:00:00:00, 0.000, 0, 0 ##left stick press
Thanks, final thoughts, etc
Godus is still in Early Access at the time of writing so much can change (native pad support, anyone?) and I'm curious to see where 22 Cans will take the game. I will, naturally, try to update the guide as soon as I can to match changes to game controls (feel free to leave a poke at my profile just in case).

Any problems or questions about JTK I'll try to answer in the comments best as I can.

Please consider rating the thread if you like or dislike it!
2 Comments
SubjectThrone31  [author] Oct 22, 2013 @ 3:09pm 
Didn't know about that one, thanks for mentioning it. I'll check it out!
JTK is just my program of choice, and most certainly not the only solution.

Excitable Boy Oct 3, 2013 @ 7:41pm 
Not to knock the program you are using, but another program to do the same thing is Pinnacle game profiler. You can set up configs by putting it into a record mode & merely move a stick or hit a button to mimic a keyboard command. Well worth the purchase fee, Can be used to set up config files for just about ANY keyboard game. I'm not affiliated w/ tihs firm or program in any way except I bought & use it. There is a free limited version if I remember correctly.