HydroSim is a standalone Hydroplane racing simulator built with the Unity3D game engine. It currently simulates Unlimited Hydroplanes from the H1 Unlimited racing series and Grand Prix Hydroplanes from Hydroplane Racing League | HRL, Grand Prix America, and Hydro Thunder | NZGP


Get HydroSim Version

Extract the zip file to C:\HydroSim and run HydroSim.exe


Get HydroSim Version

Extract the zip file to ~/HydroSim and run ./HydroSim

Control Mappings:

Binding all the controls is now done in-game in the Controls Settings menu. You can get there
by clicking the Settings button from the main menu of the game.

Key Bindings

Almost all of the keybindings are configurable and can be viewed in the controls settings menu. There are still a handful of hardcoded ones, defined below.


  • Esc: Exit the boat
  • Ctrl+F: Show FPS/Ping

Join UHL server

There is now a server list, you can see the list of servers by clicking the Join button. From there you can select a server and join it.

Run in VR Mode

Goto Settings->Display and set VR Mode to Oculus or OpenVR.
Recenter the view with F4 key (Can be bound to a different key in the Input binding dialog when launching the game).

Run as borderless window

This can now be down in the Graphics settings by selecting the Fullscreen Window display mode.

Run as Dedicated Server

Create a shortcut to HydroSim.exe and add the following command line options to Target

"C:\HydroSim\HydroSim.exe" -nolog -dedicated -batchmode -nographics

Note: There is a server.xml file in Streaming Assets that should be configured when running a dedicated server. In the XML you can configure the following about the server:

  • announceServer - Whether or not to add your server to the server list.
  • address - The IP address of the network adapter to serve on.
  • port - The network port to host the server on.
  • name - The name of the server (displayed on server list)
  • description - Description of the server (displayed on server list)
  • maxClients - The max number of clients, this currently also includes spectators.
  • passwordRequired - Whether or not a server password is required.
  • password - The password that needs to be entered to connect to the server.
  • adminPassword - The password to enter to become an admin on the server. Can change race settings, advance sessions, change course.
  • refereePassword - The password to enter to become a referee on the server. In addition to admin abilities, can changed penalties and kick players.
  • superAdminPassword - The password to enter to become a super admin. In addition to referee abilities, can modify server config settings.
  • tickRate - This is how often clients send network updates when on the water. 30 is the default, I wouldn't recommend changing it.
  • allowMismatches - Whether or not to allow bundle mismatches when connecting to the server.

Make sure to keep a copy of the server.xml before updating the game, so you don't overwrite your settings. Some of the parameters to the xml can still be passed as command line arguments as well, so if you have an old server setup, the command line arguments will override the parameters in the xml.

Alternatively, a -serverConfig command line argument was added that allows you to specify the path to a server.xml file, so that it can be stored outside of the game folder. For example the UHL 1 server uses the following command.
"C:\Program Files\HydroSim1\HydroSim.exe" -dedicated -batchmode -nographics -serverConfig "C:\Users\UHL\Desktop\server1.xml" -logFile .\hydrosim1_log.txt

The server defaults to use port 25144 on both TCP and UDP. If you want other people to be able to connect to the server on the open internet, you will need to open the port on your firewall. If you're behind a router, which is likely, you'll need to login to the router and forward the port to your computer running the server.

Custom Teams / Paintjobs can be added to the game by adding a new folder to the StreamingAssets/Teams folder. There are lots of Teams (as well as Photoshop templates for making custom teams) available on this Google Drive: https://drive.google.com/drive/folders/1DIOr89tJfDemsREYHmlu6wHNi_Ua7C4M?usp=sharing

Within a team folder you can add the following DDS textures.

Hull.dds - The main hull texture.
Cowling.dds - The engine cowling texture.
Cockpit.dds - The cockpit texture.
SaltWaterScoop.dds - The salt water scoop (for turbine hulls).
Hardware.dds - Various other parts of the hydroplane.
Engine.dds - The engine texture (for piston hulls).
Trailer.dds - The texture for the boat trailer that gets placed in the pits.

Each of the above textures can also have a postfix in order to provide texture maps that affect how the material appears.

Color Map (Hull.dds) -> DDS DXT1 or BC1 (RGB: Color)
Metallic Map (Hull_met.dds) -> DDS DXT5 or BC3 (R: Metallicness, A: Smoothness)
Emissive Map (Hull_emis.dds) -> DDS DXT1 or BC1 (RGB: Color)
Normal Map (Hull_nrm.dds) -> DDS 3DC or BC5
Ambient Occlusion Map (Hull_ao.dds) -> DDS DXT1 or BC1 (G: Occlusion)

As of HydroSim v0.7.0.0, Crunch compressed DDS files can also be used. This can greatly reduce the file size of the custom paintjob textures. In order to compress the files the following Crunch command line application needs to be used:


HydroSim stores some persistent data to your system for settings, replays, setups, etc.

On Windows this data is all stored in: C:\Users\%username%\AppData\LocalLow\HydroSim\HydroSim
This path can be pasted into the File Explorer address bar.

Replays are stored in the "Replays" sub-folder.
Setups are stored in the "Setups" sub-folder.
Bundles are stored in the "Bundles" sub-folder.
Input bindings are stored in "inputBindings.json"
Settings are stored in "settings.xml"
Player info/settings are stored in "player.xml"


Scott Przybylski - Physics / UI / Netcode / Race logic / Replays / etc

3D Models

Scott Przybylski - Boats / Race Course Scenery
Kallen Washburn - GP Hydroplanes
Tim Johnson - Blue Bridge


Scott Przybylski
Kym Behrndt


Scott Przybylski - Scenery
Matt Johnson - UI Graphics / Logos / Boat paints
Craig Montgomery - Boat paints
Chris Porten - Boat paints / templates


Eddie Kanfoush - Prop noise
Gavin McClure - GP engine sounds

Special Thanks

Todd Wasson - Physics help
Brad Warren - Physics help

Everyone else I missed who has helped with testing, reporting bugs,
gathering info, pictures and data.


Matt Johnson
AIdan Shan
Pete Lacasse
Jeff Dewalt
DJ Miller
Craig Montgomery
Kyle Lewis
TJ Czerwinski
Jim Brittain
and Everyone else that I may have missed

Unity Assets

Crest Ocean SDK - https://github.com/crest-ocean/crest
Dynamic Water Physics 2 - Hull / Buoy water physics
Time of Day - Sky and Lighting
TerraLand - Real World terrain
MicroSplat - Terrain shaders
Vegetation Studio - Trees / foliage
NatureManufacture - Trees
MTree - Trees
EasyRoads3D - Roads / bridges
BuildR3 - Buildings