1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Here's how to run split screen on UT2K4

Discussion in 'Unreal Tournament 2003/2004' started by Denny, Jan 15, 2013.

  1. Denny

    Denny Engulfed In Flames

    Mar 19, 2005
    Likes Received:
    UPDATED: 1-15-13, Updates in bold.

    Hey guys, wow it's been awhile. I wanted to share this accomplishment with you folks looking to split screen on UT2K4 and provide a central post of information on how to set this up as I could not find ANY documentation to do such.

    Before we begin, this tutorial is made in the sense that one player will use a mouse+keyboard and the other a joystick. However I don't see it not working for 2 joysticks so try it and see how it goes. Also this only works for local or LAN game play, not internet.

    You'll need 2 additional programs to set this up.

    1. AutoHotkey
    2. XPadder *or similar software

    Let's get started. Install UT2K4 as per normal and browse to the install directory. Copy the "System" folder and paste it elsewhere, rename it something like "System1" and move it back to the UT2K4 install.

    Now open the "System1" folder and rename UT2004.exe to UT2004b.exe and send a shortcut to the desktop, run it once then close. This creates a separate program instance, user.ini and ut2004.ini (which will be called ut2004b.ini now) file for you to configure independently of your main install. This will be the configuration for Player 2.

    Next open both the ut2004.ini the original system folder and the ut2004b.ini file in the System1 folder and edit the following....

    Under the section "[WinDrv.WindowsClient]" use the following settings.


    This will cause both copies to run in a window sized vertically to fit on screen. The viewports will vary depending on resolutions. Mine is 1360x768. So you would divide the first number in half and subtract around 53 from the second (to make up for the taskbar) and put those in accordingly. Save when your finished.

    Now load up one copy (ut2004.exe and ut2004b.exe) at a time and set controls and settings accordingly, even player name. MAKE SURE NOT TO SET THE SAME KEYS FOR BOTH PLAYERS, they will interfere with each other while playing. Also for ut2004b.exe player 2's copy I recommend turning the music volume all the way down and turning off the announcer otherwise you'll get nasty echo. Also you may wanna set small weapons on your HUD in both games to make the smaller screen work better. Also set the look keys for Player 2's game.

    After you get that all setup write down all the controls you set for player 2 and open XPadder this program will bind keyboard keys to controller buttons. You'll have to look online for directions how to set that up, you'll need to adjust the Dead Zone for your axis in Xpadder to adjust sensitivity as the default is crazy fast. After you set that save eveything. You will need to load this every time you plan to play split screen.

    Next open a notepad file and copy and paste the following in it. HUGE thanks to Leef_me from the AutoHotkey forums for helping me with this.
    global UTWinId1
    global UTWinId2
    global UTWinId3
    global UTWinId4
    global UTWinId5
    IfWinNotActive, ahk_id %UTWinId1%
    ControlSend, , %strKeys%, ahk_id %UTWinId1%
    IfWinNotActive, ahk_id %UTWinId2%
    ControlSend, , %strKeys%, ahk_id %UTWinId2%
    IfWinNotActive, ahk_id %UTWinId3%
    ControlSend, , %strKeys%, ahk_id %UTWinId3%
    IfWinNotActive, ahk_id %UTWinId4%
    ControlSend, , %strKeys%, ahk_id %UTWinId4%
    IfWinNotActive, ahk_id %UTWinId5%
    ControlSend, , %strKeys%, ahk_id %UTWinId5%
    ;This command affects the behavior of all windowing commands
    SetTitleMatchMode RegEx
    ;Grab unique window ID's
    WinGet, UTWinId, List, ahk_class UT2004bUnrealWWindowsViewportWindow
    ; *******************************
    ; *** Only if win is in focus ***
    ; *******************************
    #IfWinActive, ahk_class UT2004UnrealWWindowsViewportWindow
    #maxhotkeysperinterval 200
    ; *** Move clones ***
    ~f::ClonesPush("{f down}")	;Alt-Fire
    ~f Up::ClonesPush("{f up}")
    ~b::ClonesPush("{b down}")	;Previous Weapon
    ~b Up::ClonesPush("{b up}")
    ~n::ClonesPush("{n down}")	;Scoreboard
    ~n Up::ClonesPush("{n up}")
    ~m::ClonesPush("{m down}")	;Strafe Left
    ~m Up::ClonesPush("{m up}")
    ~k::ClonesPush("{k down}")	;Look up
    ~k Up::ClonesPush("{k up}")
    ~r::ClonesPush("{r down}")	;Fire
    ~r Up::ClonesPush("{r up}")
    ~t::ClonesPush("{t down}")	;Jump
    ~t Up::ClonesPush("{t up}")
    ~g::ClonesPush("{g down}")	;Next Weapon
    ~g Up::ClonesPush("{g up}")
    ~v::ClonesPush("{v down}")	;Crouch
    ~v Up::ClonesPush("{v up}")
    ~h::ClonesPush("{h down}")	;Use
    ~h Up::ClonesPush("{h up}")
    ~y::ClonesPush("{y down}")	;Horn
    ~y Up::ClonesPush("{y up}")
    ~u::ClonesPush("{u down}")	;Forward
    ~u Up::ClonesPush("{u up}")
    ~j::ClonesPush("{j down}")	;Backward
    ~j Up::ClonesPush("{j up}")
    ~i::ClonesPush("{i down}")	;Strafe Right
    ~i Up::ClonesPush("{i up}")
    ~o::ClonesPush("{o down}")	;Look Left
    ~o Up::ClonesPush("{o up}")
    ~p::ClonesPush("{p down}")	;Look Right
    ~p Up::ClonesPush("{p up}")
    ~l::ClonesPush("{l down}")	;Look Down
    ~l Up::ClonesPush("{l up}")
    Then save as "UT2K4_SS.ahk". Now use the AutoHotkey compiler to compile the script which will create an executable that also must be launched every time you play split screen.

    In brief this script sends keyboard commands to an inactive copy of UT2K4 (which will most likely be ut2k4b.exe) while keeping Player 1 active. The keys above are my binded keys for Player 2. You can change them or add as many as you like.


    Now with the hard stuff out of the way. Now its time to connect to each other. Load Xpadder then open both copies of UT2004 and align them as desired. Minimize both games then load the AutoHotkey macro created prior then bring back up both windows. In Player 1 host a listen game over LAN (MapMixer will work as well). Once connected, use the windows button or Alt+Tab to switch to Player 2 and select Join Game. Go to the LAN tab, select your server and connect. Hit windows key again and click back on Player 1's window and play.

    NOTE: You may run into an issue on the onslaught spawn menu. Being Player 1 uses the mouse Player 2 cannot select a spawn point. I've tried to find a fix with no luck (still looking, will update if I find anything). So for Player 2 just use the default spawn for the time being.

    And there you go. Hopefully this guide was written well. It's not hard to setup, should only take about an hour or so but sure is fun. :)
    Last edited: Jan 15, 2013

Share This Page