Guide - How to configure a controller to play the game + Script

Hello world,

Name’s Vincent, hehe this is my first post in this forum. I made a script for AutoHotkey for the game.
It’s quite useful because it allows playing with less keys, so users with Xpadder and controllers can find it useful.

Note: Xpadder is an application that emulates the keyboard by getting gamepad input, it’s paid software, but there are free alternatives online,

So, in order to use the utility, It’s important to first have installed the application AutoHotkey

AutoHotkey website

After having installed the application, now the PMUtool.ahk file can be easily installed by opening the file through the application.

How it works?

The script only affects the game if it’s the active window. The custom keys are:

F1 - Enables/Disables the utility, making the game work by default.
Tab - It changes the move to be used, they are used with F.
Left Alt - It locks and unlocks aiming.
AltGr - This key changes the held item to be used from the members.
Q - It changes the pokemon, by rotating the members clockwise.
Spacebar - It uses the selected item from AltGr.

Recommendations:

It’s recommended to take into consideration that the application doesn’t prevent the usual keys from working, therefore using WASD, 1234, or ZXCV won’t deal issues.

So, this is the file and I’m glad to be able to contribute here.

9 Likes

Hehe… Just noticed that some file extensions can’t be uploaded…

So the following script needs to be written on Notepad or any text editor, and then saved as .ahk in order to proceed with the installation.

Script
Rotate(ByRef KeyVar){
	KeyVar := KeyVar == 4 ? 1 : KeyVar+1
}

KeyReset(){
	Send {w up}
	Send {a up}
	Send {s up}
	Send {d up}	
}

Moves(KeyVar, ByRef aux){
	aux := not aux
	if aux
		switch KeyVar{
			Case 1:Send {w down}
			Case 2:Send {w down}
			Case 3:Send {s down}
			Case 4:Send {d down}
		}
	else
		KeyReset()
}

#If winActive("Pokemon Mystery Universe")
	
	Enabler := True
	
	; Pokemon	
	KeyVar1 := 1
	; Moves
	KeyVar2 := 1
	; Item
	KeyVar3 := 1
	aux := false
	
	Items := Object()
	Items[1] := "z"
	Items[2] := "x"
	Items[3] := "c"
	Items[4] := "v"
	
	$F1::
		Enabler := not Enabler
		return
	
    q::	
		if(Enabler){
			Rotate(KeyVar1)
			Send, %KeyVar1%
		}
		; 1, 2, 3, 4 [ok]
		return
		
    Tab::
		if(Enabler){
			Rotate(KeyVar2)
			MsgBox, 0, Pokemon Mystery Universe, Moveset Value: %KeyVar2%, 0.5
			IfMsgBox Timeout
				WinActivate
			; w, a, s, d [ok]
		}
		return
	LAlt::
		if(Enabler){
			Moves(KeyVar2, aux)
			; Alt -> aim toggle on/off [ok]
		}
		return
		
	Space::
		if(Enabler){
			Send, % Items[KeyVar3]
			; Item button [ok]
		}
		return
	LControl & RAlt::
		if(Enabler){
			;AltGr -> z, x, c, v [ok]
			Rotate(KeyVar3)
			MsgBox, 0,Pokemon Mystery Universe,Held Item: %KeyVar3%, 0.5
			IfMsgBox Timeout
				WinActivate
		}
		return
    return
#if

:sweat_smile:

Thank you and happy first post !

So, I have been playing with Gamepad and had to make some fixes to the script, because the idea is to make it comfortable in the play experience, this is the new script,

Script
Rotate(ByRef KeyVar, Mode){
	if (Mode){
		KeyVar := KeyVar == 4 ? 1 : KeyVar+1
	} else {
		KeyVar := KeyVar == 1 ? 4 : KeyVar-1
	}
}

#If winActive("Pokemon Mystery Universe")
	KeyVar1 := 1
	KeyVar2 := 1
	aux := false
	
	Items := Object()
	Items[1] := "z"
	Items[2] := "x"
	Items[3] := "c"
	Items[4] := "v"
	
    $F1::			
		Rotate(KeyVar1,false)
		Send, %KeyVar1%
		return
	
	$F2::	
		Rotate(KeyVar1,true)
		Send, %KeyVar1%
		return
		
	$F3::
		Send, % Items[KeyVar2]
		return
		
	$F4::
		Rotate(KeyVar2,true)
		MsgBox, 0,Pokemon Mystery Universe,Held Item: %KeyVar2%, 0.25
		IfMsgBox Timeout
			WinActivate
		return
    return
#if

image

I’d recommend this configuration, and now instead of using common keys, it now uses

F1 to F4
F1-F2, team member changing
F3, using selected held item
F4, select held item from team members

Take care you all. Enjoy the game!

Edit: I’m working on a video tutorial in order to help as guidance… :sneezing_face:

1 Like

Good evening everyone…! :vulpixjoy:

It’s been a year after I did this guide for people interested on using Gamepad with the game.

However, I’ve decided to make an easier guide that can help users to use their gamepads without issue, but this time instead of using Xpadder, we can simply use Steam

In Steam, we go to the buttom left corner, in order to Add a game, (which is a Non-Steam game of course)

image

Then, we would proceed to select PMU in the list, if it doesn’t show there, we can simply use Browse… and select the PMU game

Then, we press the Add Selected Programs

Now as we are in Steam, we can select PMU to start playing it as usual

After adding the game to our library, It’s important to follow the next steps.

First, we go to Steam > Settings In the top left corner.

So if you have a Xbox, Playstation or Nintendo controller, you need to select it in the following tab.

Controller > General Controller Settings

Then we’d proceed to select the kind of controller that fits the detected devices.

In which, we return back to the menu, and select Desktop Configuration

In that menu, we will be able to set up the controller to work as desired by the users.

And there ya go, now you can play with your controllers (and my script from the posts above)

Have fun you all…!

7 Likes

Actually amazing, got it to work in minutes. So simple & easy through Steam. Thank you for sharing this, definitely gonna start playing the game this way. Just a nice way to sit back and relax. Only thing that so far has troubled me is having enough buttons to utilize the hotkey item but I rarely use that so who really cares. Thanks again for sharing.

This guide is exactly what I needed. Thank you so much.

For those with a Nintendo Switch Pro Controller, I’ve exported my config for It, for both desktop and PMU as a non-Steam game for quick setup. It should be mapped relative to Tails’ Playstation controller. However, I changed the Start button Esc to Backspace In order to go backwards In menus such as storage since there was already a button for Esc, and clicking the right analog stick enables or disables the minimap.

Paste the link of the config you want to use In your browser, and It should ask to open In Steam. Top for desktop config, bottom for PMU config.
steam://controllerconfig/413080/2631120154
steam://controllerconfig/pokemon%20mystery%20universe/2631120388

If you don’t have a cord which plugs your controller Into your laptop, Pro Controllers also work via Bluetooth. If you need to do that, here’s how:

On the top of the controller next to the cable port, you will see a tiny circluar button. Holding that should make the lights at the bottom flash back and forth. While It’s like that, you can go to Windows’ Bluetooth settings ( use the Windows search or If It’s not disabled, the Bluetooth Icon In the system tray ).

Click this:
image
Your controller should show up under this when trying to sync:
image

Once you pair your controller, you should be able to connect It to your laptop as long as Steam Is open. Simply pressing a button will trigger the connection. It can/will go to sleep after some time which Is configurable In Steam’s general controller settings. If you reconnect your controller to your Switch, you will have to go through the syncing process again for your computer In order to connect It there again.

Adding this here for any future troubleshooting purposes.

If your controller does not work or you’re having trouble switching to your custom controller profile for PMU, try launching PMU with the steam setting:

  • Use Desktop Configuration Enabled :white_check_mark:
    OR
  • Use Desktop Configuration Disabled :x:

You can find this setting on PMU in Steam Library → “Gear Icon” → Properties → Controller Tab

For me, the controller only works with this enabled. While I heard, for some it works while disable.
Could be either for you!

Big thanks and full credit to neovee/akeuroma on discord who pointed this out.

1 Like