multiplayer

Announcements, support questions, and discussion forum for Grid Controller.
Post Reply
wrdwyer
Posts: 4
Joined: Sun Jun 22, 2025 7:08 am

multiplayer

Post by wrdwyer »

Hello,
Im attempting to implement local split screen multiplayer with the Grid Controller asset. I'm using the Unity Input System(new), and the Player Input Manager. I’m able to spawn in the player prefab and split the screen from top to bottom, but the controlls for keyboard and gamepad are controlling both players at once. I’ve tried this with sperate prefabs in the scene and ensured the player input scheme is set to Keyboard on one player and Gamepad on the other, but I get the same result. Any suggestions would be greatly appreciated.

Regards
Wayne
User avatar
Tony Li
Posts: 23359
Joined: Thu Jul 18, 2013 1:27 pm

Re: multiplayer

Post by Tony Li »

Hi,

Grid Controller isn't explicitly designed for multiplayer, but it shouldn't get in the way of setting it up for multiplayer either. All public and protected methods are virtual so you can override them in subclasses to handle multiplayer cases. For example, the Minimap script centers on GridController.Instance by default, but you could make a subclass that uses some other rule such as centering on a point between the two players.

For input, you can either write your own implementation of the IGridControllerInput C# interface to add to your player prefabs, or make a subclass of GridControllerInputSystem that handles different players. I haven't tried it since Grid Controller's focus has been on single player, but it might be as simple as adding a PlayerInputManager component to your scene and overriding the GridControllerInputSystem.EnableIInputActions() method to assign the correct player ID.

Edit:

1. Create a player prefab that uses a custom subclass of GridControllerInputSystem or replaces it entirely with your own IGridControllerInput implementation. Make sure it uses the PlayerInput's specific device.

2. Assign the player's Camera child GameObject to the PlayerInput component's Camera field.

3. Add a PlayerInputManager to your scene. Assign the player prefab to it. Tick Enable Split-Screen.

In the next update, I'll add some helper properties to make it simpler to subclass GridControllerInputSystem and also to support local multiplayer out of the box.
User avatar
Tony Li
Posts: 23359
Joined: Thu Jul 18, 2013 1:27 pm

Re: multiplayer

Post by Tony Li »

Version 1.0.18 was just released with integrated support for split-screen local multiplayer using the Input System package.

Some tips:
  • Remember to assign the player prefab's child Camera to the PlayerInput component's Camera field.
  • Deactivate the AudioListener component on your player prefab's Camera. Add an empty GameObject with an AudioListener to the scene.
  • Add an empty GameObject with a PlayerInputManager to the scene, and assign your player prefab and configure the other fields.
wrdwyer
Posts: 4
Joined: Sun Jun 22, 2025 7:08 am

Re: multiplayer

Post by wrdwyer »

Thanks for the update, ill give this a try later. Great Support!!

I did manage to get it working with the help of this video (Time Stamp 6.58)
User avatar
Tony Li
Posts: 23359
Joined: Thu Jul 18, 2013 1:27 pm

Re: multiplayer

Post by Tony Li »

Sounds good. Make sure to update to 1.0.18 anyway. I updated the GridControllerInputSystem script to better support local multiplayer using PlayerInputManager.
wrdwyer
Posts: 4
Joined: Sun Jun 22, 2025 7:08 am

Re: multiplayer

Post by wrdwyer »

I tested out the update and it works well, but I did notice that the interactions only work with the mouse click in the middle of the screen, they do not work with the UI, Keyboard controlls and GamePad controlls. Also, only one UI is spawned in the middle of the screen (But I can fix that myself.).

Regards
Wayne
User avatar
Tony Li
Posts: 23359
Joined: Thu Jul 18, 2013 1:27 pm

Re: multiplayer

Post by Tony Li »

Hi Wayne,

Try this patch:

GC_LocalMultiplayerPatch_2025-06-25.unitypackage

Fixes:
  • Interactor now handles split-screen local multiplayer interaction with gamepad/keyboard input.
  • Now supports multiple ArrowPads for local multiplayer. (Add ArrowPad as a child of player prefab. Will need to adjust screen position since it's in screen space.)
  • GridControllerAudio can now play in 2D for local multiplayer. (Tick GridControllerAudio's Play In 2D checkbox.)
wrdwyer
Posts: 4
Joined: Sun Jun 22, 2025 7:08 am

Re: multiplayer

Post by wrdwyer »

Amazing!! The patch worked a treat, thanks so much for getting this working.

Much appriciated.
User avatar
Tony Li
Posts: 23359
Joined: Thu Jul 18, 2013 1:27 pm

Re: multiplayer

Post by Tony Li »

Glad to help! The change is also in version 1.0.19, which is now available on the Asset Store.
Post Reply