Skip to main content

No project description provided

Project description

HydroSim SDK Python

This is a python package for connecting to the Shared Memory API of the boat racing sim HydroSim.

Install

The package can be installed with pip.

pip install hydrosim_sdk

Usage

First import the HydroSimSDK.

from hydrosim_sdk import HydroSimSDK

Then create an instance of the SDK.

hydrosim = HydroSimSDK()

This will automatically start a thread that reads from the Memory Mapped Files that HydroSim writes to at 60hz.

The data can be accessed through several member properties.

Note: You can look at the hydrosim.running property to check if the game is currently running.

  • hydrosim.hydro_sim - Returns the game and API version and a tick value that will increment as long as the game is running.
  • hydrosim.telemetry - Telemetry data for the local player
  • hydrosim.timing - Live timing data for all drivers.
  • hydrosim.spectators - Spectators connected to the server.
  • hydrosim.course_info - Information about the current course and layout.
  • hydrosim.session - Session time and status data.
  • hydrosim.buoys - Location and state of all the buoys.
  • hydrosim.chat_messages - Chat messages that have been received.

Dealing with multiple instances

In case you need to work with multiple instances of HydroSim, for instance, if running multiple dedicated servers on the same machine.

You can pass the command line parameter -mmapName with any string value when launching HydroSim. This will append the name to the default memory mapped file names.

For instance if you pass -mmapName "Server1", then the names will change from:

hydro_sim_file_name = "Local\\HydroSim"
telemetry_file_name = "Local\\HydroSimTelemetry"
session_file_name = "Local\\HydroSimSession"
timing_file_name = "Local\\HydroSimTiming"
spectators_file_name = "Local\\HydroSimSpectators"
course_info_file_name = "Local\\HydroSimCourseInfo"
buoys_file_name = "Local\\HydroSimBuoys"
server_file_name = "Local\\HydroSimServerSettings"
chat_file_name = "Local\\HydroSimChat"

to

hydro_sim_file_name = "Local\\HydroSim.Server1"
telemetry_file_name = "Local\\HydroSimTelemetry.Server1"
session_file_name = "Local\\HydroSimSession.Server1"
timing_file_name = "Local\\HydroSimTiming.Server1"
spectators_file_name = "Local\\HydroSimSpectators.Server1"
course_info_file_name = "Local\\HydroSimCourseInfo.Server1"
buoys_file_name = "Local\\HydroSimBuoys.Server1"
server_file_name = "Local\\HydroSimServerSettings.Server1"
chat_file_name = "Local\\HydroSimChat.Server1"

To connect the python SDK to this instance, you then need to specify the name to the HydroSimSDK constructor.

hydrosim = HydroSimSDK(mmap_name='Server1')

Some commands can be sent to the game as well. This requires enabling commands when instantiating the HydroSimSDK.

hydrosim = HydroSimSDK(enable_commands=True)

Most of the commands will only work if the local instance over HydroSim is running as a server. The following are commands that can be sent to the game.

hydrosim.commands.send_chat(message: str, targetId=-1)
hydrosim.commands.change_course(course: str)
hydrosim.commands.change_session(session: SessionType)
hydrosim.commands.set_server_settings(server_settings: ServerSettingsCommandIPC)
hydrosim.commands.set_rules(rules: RuleCommandIPC)
hydrosim.commands.add_penalty(
    connectionId: int, infraction: InfractionTypes, severity: SeverityTypes, lap: int
)
hydrosim.commands.remove_penalty(
    connectionId: int, infraction: InfractionTypes, severity: SeverityTypes, lap: int
)
hydrosim.commands.revoke_admin(connectionId: int)
hydrosim.commands.leave_water(connectionId: int)
hydrosim.commands.kick(connectionId: int)
hydrosim.commands.make_admin(connectionId: int, admin_type: ClientTypes)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

hydrosim_sdk-1.1.0b2-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file hydrosim_sdk-1.1.0b2-py3-none-any.whl.

File metadata

File hashes

Hashes for hydrosim_sdk-1.1.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 52c3ac0876acdc4eace81a232209d61eb59c46700de47e8c3920ce91e86167ed
MD5 24a617aed98c46c486df93d079f7838d
BLAKE2b-256 4770a76053f3a7a6c9c64577618178c56db5a6b9bd549ca17f42cf1537f6b26d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page