1. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Download Package Now!
  2. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  3. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant here. Do not following these rules will lead to permanent exclusion from this website: Read the forum rules.

SimTools Settings, Tips and Tricks

SimTools, Settings, Tips and Tricks

Here you will find useful information about SimTools settings, tips and tricks

Steps to create a motion profile

After installing the game plugin select the desired game in the Axis Assignments tab of the SimTools Game Engine.

For racing select a mid range car and a reasonably accurate track, say Monza in AC, do a base profile, test it on some other tracks to fine tune, then tweak in Game Manager profiles. That way you have a reasonable range to tune harsher or softer in Game Manager profiles. Start with surge only, allocate 20% in the Axis Assignments. The actual Axis % needed depends on the design of the simulator and what force is being tuned and takes some experimentation to find and refine. In many respects Axis allocation % is a bit like clipping in FFB settings, too much and you lose detail.

Total axis allocation should be around 100%, it can be a little over but do avoid huge allocations on axis that serve multiple DOF/forces, as clipping is likely: https://www.xsimulator.net/communit...-loss-moving-while-stopped.10397/#post-135974

For flight profiles start with roll and pitch, or where supported by the plugin you can use Extra 1 and 2 in place of pitch and roll, as the later invert from one axis extreme to the other at 180 degree in-game inversion. You will also likely need to use the washout, gain and return filters for best flight effect.

As of SimTools v2.3 there is a new option for flight profile tuning called Anti RollOver, designed to eliminate the 180 degree in-game inversion in rolls and loops. This setting returns the output value to zero when the input is at its max or min setting. For Instance, if we had a Max and a Min of 180°/-180° for an input and this setting was on, any values after 90° start counting back to zero. Making an input of 100° = 80°, 120° = 60°, and 180° = 0°. The same thing happens for the negative values also meaning that a -180° = 0°. (Note: This setting is only intended for the Roll and Pitch inputs from a game.): https://www.xsimulator.net/community/threads/simtools-v2-3-is-out.12483/#post-163409

Next, you do a base setting for the Tuning Center: http://www.xsimulator.net/community/faq/set-base-tuning-motion-values-in-the-tuning-center.122/

Raising the Tuning Center values will soften the motion over a greater axis movement, lowering the value will do the reverse. See here for an expanded explanation: https://www.xsimulator.net/community/threads/graphic-simtools-parameter-adjustment.9054/#post-113925

Test surge in game and manually adjust Tuning Center Values until surge feels right: http://www.xsimulator.net/community/faq/tuning-center-entering-manual-values.210/

With surge the Max value is generally smaller than the Min value in the Tuning Center, to give the effect of a snappy gear changes: http://www.xsimulator.net/community/faq/snappy-gear-change-motion.121/

Disable surge but leave the Axis Allocation % in place so you can easily re-enable it.

Do Sway next and follow the same procedure, then do heave the same way. Heave can in many cases be far less of an Axis allocation than 20%, while sway may be significantly more for best results. However, avoid allocating too much Axis % in total: http://www.xsimulator.net/community/faq/axis-assignment-percentage-totals.120/

Once you have surge, sway and heave sorted then you can then try adding roll and pitch.

Once you are satisfied with each you can re-enable them all and SimTools will mix the results. You may need to do some minor manual tweaking in the Tuning Center with all enabled.

When you are satisfied with the generic motion profile you created then you can refine it even further by creating specific car/track profiles in the Profile Editor, located in the SimTools Game Manager. Copy the Default Profile in Profile Editor under the Editor tab, name the copy by the Car/Track then use the sliders in the Editor to further tweak the settings.

You can change the Main Level % for different Game Manager profiles, this applies smoothing to All of the data coming from the game. (its how it adjusts the strength if you will). When this value is at 100 %, it uses no smoothing at all, and you are riding the direct data supplied from the game. As you lower the Main Level % value you are applying smoothing to all inputs from the game plugin: https://www.xsimulator.net/community/threads/simtools-v2-3-is-out.12483/#post-163173

Once the fundamentals are sorted you can use this handy tool by @perdixero to compare axis and analyze/refine filter settings: https://www.xsimulator.net/community/threads/application-to-compare-axis-filters-etc.10695/

Check here for further SimTools Settings, Tips and Tricks: http://www.xsimulator.net/community/faq/simtools-settings-tips-and-tricks.18/category

Credit @noorbeast

Tuning Centre and Axis Settings

To get you started you can check here to find member Tuning Centre and Axis Settings: http://www.xsimulator.net/community/threads/tuning-centre-and-axis-settings.8363/

Check here if you want to dive in a little deeper to refine your motion profile: http://www.xsimulator.net/community/faq/steps-to-create-a-motion-profile.228/

Here is a very handy animated graphical representation of Axis Assignment and Tuning Center setting effects by @fzxj520: https://www.xsimulator.net/community/threads/graphic-simtools-parameter-adjustment.9054/

Tuning Center:

Capture Max Min:

Axis Assignments:

RTFM - Start with the official SimTools documentation


Comprehensive guide to SimTools and Arduinos


SimTools Language setting bug - Change to English Local

There is a bug with SimTools and some language settings, so try this:

Please check the local settings for example they need to be like this: 13956

Here is an alternate method that can use the original settings on your control panel for those who uses unicode languages to avoid language compatibility issues with other applications here.

Thanks @jamesdio for the solution.

Simulating a 2DOF simulator

SimTools USB issues - Can cause crashes

SimTools is sensitive to any USB disruption when in use and it is useful to understand USB bandwidth, as on most sims there are also a multitude of peripherals, and of late VR devices (particularly the Rift), which combined can put a lot of strain on USB bandwidth.

A single on-board USB host controller almost always serves more than one USB port, so the total bandwidth available to those ports will be shared. The maximum bandwidth of devices connected to a single host controller is usually about 400MB/s in USB 3.0 mode and 36MB/s in USB 2.0 mode.

A significant problem with USB 3 ports is poor implementation of the Standards, which is also why high demand devices like the Rift often have issues with some USB 3 ports, particularly those on-board.

USB 2 is more stable and SimTools USB bandwidth needs are not high, so try using those USB 2 ports if possible, but keep in mind not to overload shared USB 2 controllers.

There are quality powered USB PCI cards you can add to a system to alleviate overloading on-board shared ports, though be aware that many do not have dedicated channels, but some do.

You can use USBtreeview to check out what devices are plugged in to which controllers, to help make the most of the USB ports you have, download it here: https://www.majorgeeks.com/files/details/usb_device_tree_viewer.html

Just as important is to ensure good cable management and shielding to avoid interference, so use quality USB cables and ferrite shields: https://www.ebay.com/sch/i.html?LH_... shield&_sacat=&_sadis=&_sop=12&_udhi=&_udlo=

See here for cable management tips: https://www.xsimulator.net/community/faq/cable-management.166/

In addition Windows by default has Selective Suspend enabled for USB ports and that should be turned off: https://www.windowscentral.com/how-prevent-windows-10-turning-usb-devices

Credit @noorbeast: https://www.xsimulator.net/community/threads/simtools-usb-issues-can-cause-crashes.12434/

Washout - Gain and Return

A flight sim profile takes a little finesse and digging into the SimTools Filters.

One of the most useful tweaks is properly understanding and setting up Washout Gain and Return.

This is yobuddy's overview: https://www.xsimulator.net/communit...s-in-the-washout-filter-do.12224/#post-159230

(Washout) Gain – This is how much we will react to changes in the input from the game. If your simulator is not moving enough from the output from the game, Increase this value.

(Washout) Return – This is how fast we try to return to zero after a movement has occurred. If your simulator is not homing (re-centering) fast enough after a movement, Increase this value.

The Washout Filter is needed when your DOF input fails to return to center after the force is applied to the Axis.

Example: when car's rear end slides out. The Axis is left in a non centered position. If the car then needs to slide out in the same direction again, there would be no room left for the needed travel. To overcome these circumstances, we use a washout filter as to slowly move the axis back to center without the rider’s knowledge of it occurring. A Gain of 1 or above must be used for the Washout system to be considered active. A setting of 50% for both Gain and Return is a good place to start for any game.

Here is @Spit40's succinct summary of how Gain and Return function, though please note the Smoothing settings are a bit too high in his example settings: https://www.xsimulator.net/community/threads/aerofly-fs-2-plugin.9096/page-6#post-135790

Washout Gain/Return (Updated and Corrected)

After many hours and some extra help from @yobuddy I now have a much better handle on washout gain/return and my flying feels a lot better. I really think its essential to use this properly with flight sim to get a good feeling. The problem is if you don't know quite what both gain & return do then pure experimentation can give very confusing results.

I'm mainly using this for banking mapped to the Extra2 roll/sec DOF. What I was after was a fairly responsive roll without being snatchy which would imperceptibly return to neutral once I had completed applying the roll, so that I feel the force of the roll taking effect but not the return axis movement. I'm also using it for yaw mapped to Extra3 yaw/sec. This is my current setting, though I may tweak it more now I know what's going on.

These are my main DOF mappings.

I'm finding 100% fine as I'm flying cessna's rather than fast jets, so no extreme combined DOFs.

This is the Extra2 setting.

Smoothing: I want it very smooth so 100%
Washout Gain: This determines how responsive SimTools is to the DOF input. 100% means very responsive. 1% means very unresponsive, which means changes to this DOF would have a very diluted impact. 0% means all washout functionality disabled. I'm not sure if 100% is what you get if washout is disabled, but I found 100% too snatchy for flying, in fact it seemed to undermine all that 100% smoothness. Settings around 75% seem to give the smooth responsiveness I was after when applying the roll.

Washout Return: This is all about the subtle return to neutral. Without it if I, for example, start banking to the right then hold the bank angle at 20 degrees what I feel is a strong banking force followed by an often stronger returning force once I reach 20 degrees. Very unnatural. Now once I reach 20 degrees and my roll acceleration returns to 0, the axis returns gently to neutral. It can feel a little gritty but I think I'm now hitting the limits of the motors & gearing and their ability to make smooth fine adjustments.

SimTools 2 Input Settings

The difference from SimTools 1.3 to SimTools 2 in setup is that in the Interface Settings instead of axis defined like this <Axis1> it now has designate grouping for a or b in SimTools 2 for each axis assignment, like this <Axis1a>

Most simulators will only use the a grouping, the b grouping is to allow additional axis for using thing things like a G-Seat in conjunction with a motion rig.

Devs - how to add Telemetry output into a game + Unity and UE4 code

If you are using either Unity or Unreal Engine 4 then @Claudio Silva has done the hard work for you in creating function code for SimTools integration, including a UDP server, see the original post here: https://www.xsimulator.net/community/threads/generic-unity-plugin.7804/page-2#post-146168

And the GitHub QuplaySimTools repository where you can grab the code: https://github.com/ddkclaudio/QuplaySimTools

The SimTools dev @yobuddy gives this example guide to adding telemetry to your game: https://www.xsimulator.net/communit...ow-to-add-telemetry-output-into-a-game.11080/

First, let’s make the game a settings file to hold the Telemetry settings for the game.
I’m suggesting a ‘Telemetry.cfg’ file that holds the motion configuration for the game.

You may already have a configuration file for the game that you want to put these settings in, this is just an example. (This also gives SimTools a file to patch for motion, and allows the telemetry outputting to be on or off as needed.)

The Telemetry.cfg file holds these 4 settings:
- Enable_Telemitry = False
- IpAddress =
- Port = 4123
- MS_OutputRate = 10

I wrote the following example code in VB.net, as its dead simple to read and see what I’m doing.
Basically thou, I’m creating a looping background thread that builds and sends the needed output with UDP.
Once you have ‘something like’ this code in the game, all you have to do is:
Call ‘Start_Telemetry_Output()’ when the game starts up.
And ‘Stop_Telemety_Output()’ when the game shuts down.

Ok, now some code:
Private Telemetry_Sender As New UdpClient
Private Telemetry_Loop_ms As Integer
Private Telemetry_Running As Boolean = False
Private Telemetry_Thread As Threading.Thread

'Starts up the Telemetry Sender.
Private Sub Start_Telemetry_Output()
'only startup if not already started.
If Telemetry_Running = False Then
'read from Telemtry cfg file.
Dim Telemitry_Enabled AsString = "Get Enabled_Telemetry value from the Telemetry.cfg file"
Dim IpAddress AsString = "Get IpAddress value from the Telemetry.cfg file"
Dim Port AsString = "Get Port value from the Telemetry.cfg file"
Dim MS_OutputRate AsString = "Get MS_OutputRate value from the Telemetry.cfg file"

If CBool(Telemitry_Enabled) = True Then
'startup a new client.
Telemetry_Sender = New UdpClient
Telemetry_Sender.Connect(IpAddress, CInt(Port))

'set loop speed & start sending data.
Telemetry_Loop_ms = CInt(MS_OutputRate)
Telemetry_Running = True
Telemetry_Thread = New Threading.Thread(AddressOf Telemetry_Loop)
Telemetry_Thread.IsBackground = True
Catch ex As Exception
'Could not create the UDP sender, no need to do anything.
End TryEnd IfEnd IfEnd Sub

'Send Telemetry
Public Sub SendTelemetry()
'Collect the data.
Dim Roll As String = ""
Dim Pitch As String = ""
Dim Yaw As String = ""
Dim RollSpeed As String = ""
Dim PitchSpeed As String = ""
Dim YawSpeed As String = ""
Dim Vertical As String = ""
Dim Lateral As String = ""
Dim Longitudinal As String = ""
'add anything else you want to add, its easy now!
'Dim Rpm As String = ""
'Dim Speed As String = ""

'check the status to see if the game is being played (In Game, In Menus, Paused).
Dim Game_Is_Playing As Boolean = 'Get if the game is being played)

'game is actually being played check.
If Game_Is_Playing = True Then

'If game is actually being played (not in menus or paused).
Roll = "Get value from your game" 'in degrees - (-180 to 180)
Pitch = "Get value from your game" 'in degrees - (-180 to 180)
Yaw = "Get value from your game" 'in degrees - (-180 to 180)
RollSpeed = "Get value from your game" 'in (rad/sec)
PitchSpeed = "Get value from your game" 'in (rad/sec)
YawSpeed = "Get value from your game" 'in (rad/sec)
Vertical = "Get value from your game" 'in g's acceleration
Lateral = "Get value from your game" 'in g's acceleration
Longitudinal = "Get value from your game" 'in g's acceleration
'If the game is paused or in the menus. (not actually being played)
Roll = "0" 'in degrees - (-180 to 180)
Pitch = "0" 'in degrees - (-180 to 180)
Yaw = "0" 'in degrees - (-180 to 180)
RollSpeed = "0" 'in (rad/sec)
PitchSpeed = "0" 'in (rad/sec)
YawSpeed = "0" 'in (rad/sec)
Vertical = "0" 'in g's acceleration
Lateral = "0" 'in g's acceleration
Longitudinal = "0" 'in g's acceleration
End If

'Build the output string. (The 'S~' and the '~E' is so the user can see if they have a complete string of inputs)
Dim WhatToSend As String = "S~Roll:" & Roll & "Pitch:" & Pitch & ":Yaw:" & Yaw & "RollSpeed:" & RollSpeed & "PitchSpeed:" & PitchSpeed & ":YawSpeed:" & YawSpeed & "Vertical:" & Vertical & ":Lateral:" & Lateral & ":Longitudinal:" & Longitudinal & "~E"

'Send the string
Dim bytCommand As Byte() = NewByte() {}
bytCommand = Encoding.ASCII.GetBytes(WhatToSend)
Telemetry_Sender.Send(bytCommand, bytCommand.Length)Catch ex As Exception
'something went wrong, turn off telemetry output.
End TryEnd Sub

'Stop Telemetry Output
Public Sub Stop_Telemetry_Output()
'only shutdown if already started.
If Telemetry_Running = True Then
'turn output off.
Telemetry_Running = False
'let it finish what its doing.
'Close Client.
End IfEnd Sub

'Send Telemetry Loop
Private Sub Telemetry_Loop()
'Send Telemetry.
'pause till next packet is needed.
'loop again if needed.
If Telemetry_Running = True Then
Telemetry_Thread = New Threading.Thread(AddressOf Telemetry_Loop)
Telemetry_Thread.IsBackground = True
End IfEnd Sub

Source Code:

Startup and Shutdown positional controls

Your Startup and Shutdown options affects how the sim behaves when connecting and disconnecting from a game, see @speedy's explanation here: https://www.xsimulator.net/communit...and-windows-utilities.4957/page-33#post-83250

You can use Startup and Shutdown options to hold you sim in position when using motors that can be back driven when not powered: https://www.xsimulator.net/communit...ation-for-oculus-rift.7684/page-3#post-111568

With JRKs 221 is the on command for Position, 63 tells it where to go and 225 turns it off: https://www.xsimulator.net/communit...ght-with-oculus-rift.6179/page-14#post-106293


Which way to set SimTool axis movements

Which way an axis moves is determined by the Dir box being checked orange or not. Both boxes will be either checked or unchecked for surge and pitch, while only one will be checked for sway and the opposite one will be checked for roll.


Nomenclature of movements in SimTools by @value1:

Pitch is the tilt of the car forwards or backwards in [°]
Roll is how much the car is dipped to the left or right in [°]
Yaw is the heading of the car (north, east, south, west) in [°]

Surge means the acceleration of the car in longitudinal direction [g]
Sway means the acceleration of the car in lateral direction [g]
Heave means the acceleration up and down [g]
Direction of movements in SimTools
Acceleration → pitch slider moves to left, surge slider moves to right
Deceleration (braking) → pitch slider moves to right, surge slider moves to left
Right turn → roll slider moves to left, sway slider moves to right, yaw slider moves to left
Left turn → roll slider moves to right, sway slider moves to left, yaw slider moves to right
Driving downhill → pitch slider moves to right
Driving uphill → pitch slider moves to left
Tilted to the left → roll slider moves to left
Tilted to the right → roll slider moves to right

Tuning Center - Entering manual values

When fine tuning motion profiles you can find the need to manually enter a Tuning Center value, which for some games can be less than 1, particularly for heave.

To do so in the Tuning Center un-check the tick in the box next to the name of the axis you want to manually enter a value for, say Heave. The check boxes are Green by default, which means the Min and Max values will default to the same value, Blue is to capture values and uncheck them to Pink (Off) to manually enter values. Hit Capture Max Min, change the values, then hit save.You can then manually enter Max and Min values all the way down to 0.01.

The values must be entered like this, 0.5 not like this 0,5 as a decimal point is the recognized deliminator. Sometimes the computer language setting may be an issue when trying to enter a decimal point if they are set to something other than US English.

Source: http://www.xsimulator.net/community...ter-simulation-plugin.4777/page-17#post-91187

Manually removing a game patch

Ideally you should unpatch a game plugin with Game Manager before you delete or install a game to a different directory.

If you don't then the SimTools patching button will be greyed out and you won't be able to patch the new install because SimTools stores the old game installation path.

You can follow @eaorobbie's advice to manually unpatch a game: http://www.xsimulator.net/community/threads/how-to-unpatch-plugin-without-game.5831/#post-61244

"You will need to go to this directory c:\user\(yourPCname)\AppData\Local\SimTools\GameManager\GamePathSaves

And delete the save file for the affected game.

Restart Game Manager and you should now be able to patch the new game directory".

When & how to run SimTools in Admin mode

UDP games produce no output data

Please check the local settings for example they need to be like this:

Here is an alternate method that can use the original settings on your control panel for those who uses unicode languages to avoid language compatibility issues with other applications here.

The SimTools developer @yobuddy has advised that the output bug has been found and will be fixed in the next release of SimTools: http://www.xsimulator.net/community/threads/game-data-input-0.4909/page-2#post-50117

Thanks @jamesdio for the solution.