Page 1 of 3

HOW TO: Change your controls

Posted: Wed Sep 24, 2008 1:43 am
by The GoldFish

You do NOT need to update your hax for 1.2 if you are using a version 1.1 input_preferences file, or using a keyboards xx_XX.txt change

Since apparently, there are no plans to allow players to change their controls, and the information is already floating around these forums but is quite hard to find, I thought I'd make a more difinitive post on how to change your controls.

There's 2 main reasons why you'd want to do this;

1) You have a "non standard" keyboard, like azerty or dvorak, and multiwinia refuses to auto reconfigure itself to work comfortably with these (Apparently a problem from belgian azerty keyboards; Poirot would be pleased they're not being confused with french)
2) You're finicky like I am and don't use "standard" WSAD keys, or you just want to mess around with the other controls in the game.

In both cases, you'd love a little change controls dialog to change your controls. Sadly, this apparently was decided to not be worth the what I can only assume would have been a few hours it would have taken to create. Therefore, you'll have to use the game's resource files to change the default controls.

Step 1)

Find multiwinia.exe, it's probably in c:/program files/multiwinia/, or wherever you installed it. In this folder make 3 subfolders, each within the former (unless you already have); data/input/keyboards, to match the following structure:


To be clear, you WILL HAVE TO MAKE THESE FOLDERS. A lot of people don't realise this immidietly, so I shall strive to be clear.

Step 2)

Review this file: input_preferences.txt. This is a copy of the default keyboard controls from Multiwinia, as of 1.1.0. This file was provided curtosy of ME! Screw that Jelco guy, I've outgrown him! If you just want to simply change a few controls, then you should follow lorent's advice in this thread, which I shall repeat for you here. This is based chiefly on lorent's advice, until I note otherwise, so thank him for this:

Create a new text file in your newly created keyboards directory which corresponds to your keyboard's language, or the language you think it might be being detected as. In my case this was en_UK.txt. At this stage we're not sure what this will be for languages which fail to match up with the keyboard modification files that they probably should match up with, please post your experience in this regard. Alternatives are en_US.txt, fr_FR.txt and de_DE.txt (full list of currently implimented keyboard layouts at end of post). In my case, I now have this:


Step 3)

Into this file, paste in the lines you wish to change from the examples you can find in input_preferences.txt linked above, or from below using my file as a basis to work from. Here's an example of my en_UK.txt that I have in my keyboards folder, I wouldn't reccomend you use this directly and you almost definately want to change this;

Code: Select all

CameraLeft                        = key q pressed
CameraRight                       = key e pressed
CameraUp                          = key w pressed
CameraDown                        = key x pressed
CameraForwards                    = key a pressed
CameraBackwards                   = key s pressed

(blank line at the end of this file is important)
(that is, strafe left, strafe right, gain altitude, lose altitude, move forwards, move backwards, in that order)

(end of lorient advice)

There is a caveat to using this for more advanced control changes: These also unbind other controls, for example, typically D is CameraRight, but while it D isn't rebound in the lines specified above, if the above is used, D no longer performs CameraRight. If you're creating a complicated control scheme, this may cause problems for you. You may also only be able to have one of each binding in a keyboards file, for example, I had both my modified controls as well as the original cursor key assignments in my en_UK.txt (you can see them clumped together in input_preferences), and leaving the cursor assignments in overwrote my controls - removing those extra lines, so my file resembled the above, worked perfectly.

I imagine that 99% of people who want to change their controls will be satisfied with this!

Step 4) Skip this step if you are now happy with your control changes!

If your controls aren't working quite right using a text file in keyboards, or at all because you can't work out quite how to name it for your regionality, or you're having problems with unbinding, you'll need to forget the keyboards thing because it's too fiddly and limited in scope to fix your problems. Instead, save a copy of the input_preferences file linked above into the data/input directory that you created (not into the keyboards folder), and then edit this file in much the same way as detailed above with the keyboards text file. Input_preferences.txt is much more powerful, and should allow you to successfully change your controls. Remember that if you are in a regional area, any changes you do make to input_prefences may be overwrote by a file in keyboards, so if in doubt, create empty files called fr_FR.txt and de_DE.txt in the keyboards folder.

And you're done, you should have now successfully remapped your controls! Happy day! If you have any problems, please don't hesitate to post them, and any mistakes I've made will hopefully get corrected!

If IV DO create a means to change your controls in the future, you should delete all of these files and use the method they provide, unless it doesn't satisfy what you want to do. If this even does occur, I'll update this post to reflect that and detail what you can do.


Where did you get input_preferences.txt??

You can find it inside main.dat. All of Multiwinia's .dat files are actually .rar files in disguise. If you do extract main.dat, don't extract it directly into the multiwinia directory, as this will really mess up your map list. Always remember to rename your files back to what they should be afterwards if you do do this.

How do I bind to keys like - and = and '?

Short answer is, don't. A lot of these keys simply don't work due to some crazy input handler that Xwinia uses. Get the Darwinia Demo and this should let you work rebind your controls. Use the commands it thinks you're entering in input_preferences or your keyboards file to attach input to these keys. For example, it believes - is COMMA and = is COLON, ] is { and ` is }. , is =, . is -, and / is ., # is \ and other such insanity if you can find a key to check. Many other keys like these, like [, don't work at all and are referred to as unknown by pre 1.5 Darwinia (Darwinia shares its input handler with Multiwinia, apparently) - Darwinia 1.5.X refuses to acknowledge these keys at all, and they may be unusable.

They made the keyboard input stop hammertime working in the main menu? Can this functionality be added back in?

Yes it can! I was going to come and post about this but I was being totally lazy and gerph pretty much beat me to it, bar a few caveats. Pretty much you want to add;

Code: Select all

#don't try to be clever and change this to key enter down because bad things will happen >:(
MenuActivate                      = key space down

MenuLeft                          = key left down
MenuRight                         = key right down
MenuUp                            = key up down
MenuDown                          = key down down

to your keyboards/input preferences file and it all works pretty much as before except with space instead of enter. Why not go the whole hog and just use enter instead of space? Well, if you do, it seems like some wierd ass bug will make the game crash if you use enter to select a map in at least single player, crashing the game to desktop. I guess that might get fixed or something but in the mean time it's a bit of a barrier to use, so, I figure space is as good an alternative as we're going to get.

What are the currently available keyboard file names?

Taken from locales.txt, in the input folder,

Code: Select all


Just add .txt. The names apparently correspond to OSlanguage_OSKeyboardLayout.txt, so if you have a UK keyboard with a US layout selected (and no UK layout installed), it'll probably try to use en_US.txt.

Presumably, is the source of the locale codes the game uses and matches up in locals.txt in the input folder of main.dat, and you could add additional ones to locales.txt, but that's fairly advanced.


Finally, please do post here if you found this useful. I genuinly have no idea how many people use different controls, I know I have for many years. I was really rather irked when the ability to change them wasn't included with the game, and I'd like to know if other people feel the same way.

Posted: Wed Sep 24, 2008 6:17 am
by xander
stky, pls. kthxbye.


Posted: Wed Sep 24, 2008 9:53 am
by jelco
We need a FAQ to contain all this stuff, and that should be stickied.


Posted: Fri Oct 03, 2008 5:55 pm
by NeatNit
xander wrote:stky, pls. kthxbye.

Ehem, kthxbai. :wink:

Posted: Sun Oct 12, 2008 5:09 pm
by andrewf
Seriously? they're not going to include a way to change the controls? or at least correctly configure it for belgian keyboards?

I know we are but a little country, but we still have 10 million inhabitants. And days are as dark and rainy here as in the UK, so we have plenty of hours for gaming..

I hope they have stats of how many Belgians bought previous introversion games and reconsider.. Since last blogpost to "Save multiwinia", I have been promoting the demo, but I'm afraid that some more casual gamers won't want to buy the game if they have to fix the controls manually.

+1 for a fix

Posted: Sun Oct 12, 2008 5:25 pm
by RabidZombie
It should already configure itself correctly for Belgian keyboards. Doesn't it?

Posted: Sun Oct 12, 2008 5:47 pm
by jelco
The problem with a 'Belgian' keyboard, which is technically a French layout known as Azerty, is that Multiwinia only matches Azerty keyboards if the language system of the OS is fr_FR (French, France), not for nl_BE and other countries using the Azerty layout. I'll propose the minor change needed for this to work in the patch forums. ;)


Posted: Sun Oct 12, 2008 9:01 pm
by frenchfrog
Is it nl_BE or fr_BE? Or both?

Posted: Sun Oct 12, 2008 10:04 pm
by jelco
Ooh, uhm, I might have made a mistake there, I forgot that they use the French layout because they speak French there. :P

Yeah, it would appear to be both, but I can't confirm this. I know zjoere is Flemish, he should be able to tell you whether the Dutch people use Qwerty or Azerty.

EDIT: I assume Luxembourg has a high chance of using Azerty, as do Spain and maybe Portugal. Known countries using Qwertz (the German layout) are Switzerland, Austria, Liechtenstein, and a variety of Eastern European locales. Note that the use of keyboard layouts isn't exclusively related to the language of the region.


Posted: Wed Oct 15, 2008 2:09 am
by elexis
Maybe someone could create a program that makes this process more user friendly?

Posted: Wed Oct 15, 2008 3:09 am
by xander
elexis wrote:Maybe someone could create a program that makes this process more user friendly?

Maybe IV could create a better method for changing the control scheme in the first place...


Posted: Wed Oct 15, 2008 10:59 am
by cde
NeatNit wrote:
xander wrote:stky, pls. kthxbye.

Ehem, kthxbai. :wink:

My brother once said "kay-th'nx-bye" when ending a phone conversation, I almost had to change my name and burn all family photos...

Posted: Wed Oct 15, 2008 11:23 pm
by gerph
I added some extra controls to restore the menu to being functional with the keyboard cursor keys:

Code: Select all

MenuLeft                          = key left down
MenuRight                         = key right down
MenuUp                            = key up down
MenuDown                          = key down down

MenuLeft                          = key left repeat
MenuRight                         = key right repeat
MenuUp                            = key up repeat
MenuDown                          = key down repeat

MenuActivate                      = key enter down

Might be useful to others if they want to do the same thing.

Posted: Thu Oct 16, 2008 2:11 pm
by The GoldFish
You might prefer to use space rather than enter, although having experimented it really isn't that obtrusive to keep enter as both this and chat for the lobby. Obviously though, taking the 5 minutes to check, another good reason to use space is that it won't crash the game out when selecting a single player map, unlike enter, which totally does this (at least for me).

Also consider that you can have only one entry for each command in keyboards.txt, so technically the first group don't do anything any more IF you're using keyboards.txt. Also note that repeat is for apparently only for xbox controls, and just functions as down for the keyboard input, it seems (correct me if I'm wrong). I guess really if you wanted it to repeat you could use "pressed", but this makes the menu advance uncontrollably fast, so probably not really very ideal.

So for anyone who likes things that don't crash, I'd use:

Code: Select all

MenuActivate                      = key space down

MenuLeft                          = key left down
MenuRight                         = key right down
MenuUp                            = key up down
MenuDown                          = key down down

^^^^ I totally messed up and posted up my pressed test copy of my menu hax rather than the down version, which was totally stupid! Don't use pressed, it repeats way too fast! Use down instead, like I edited the above to read.

Posted: Thu Oct 16, 2008 5:44 pm
by gerph
The GoldFish wrote:You might prefer to use space rather than enter, although having experimented it really isn't that obtrusive to keep enter as both this and chat for the lobby. Obviously though, taking the 5 minutes to check, another good reason to use space is that it won't crash the game out when selecting a single player map, unlike enter, which totally does this (at least for me).

I've had this crash happen with the mouse, never mind the keyboard, so I wouldn't trust that it won't happen with space.

Ta for the suggestion - I had assumed that the repeat could be used that way; oh well.