SIM RACING - full mouse control or keyboard and mouse control

other games? SCROLL down or CLICK here!


SLOW INTERNET WARNING: THERE ARE PICTURES!


BEAMNG FULL MOUSE STEERING, THROTTLE AND (TRAIL)BRAKING TUTORIAL:


REQUIREMENTS: a mouse OR two (2) mice OR a trackball OR a mechanical mouse


1. MENU > OPTIONS > GAMEPLAY:

  • ABS MODE = REALISTIC ABS ONLY
  • DEFAULT GEARBOX BEHAVIOUR = REALISTIC
  • GEARBOX SAFETY ASSISTANT = OFF
  • CLUTCH ASSISTANT (MANUAL TRANSMISSION) = ON (!1)
  • THROTTLE ASSISTANT (MANUAL TRANSMISSION) = ON (!1)
  • OVERSTEER REDUCTION ASSISTANT = OFF
  • UNDERSTEER REDUCTION ASSISTANT = OFF
  • SLOWER STEERING AT HIGH SPEED = OFF
  • LIMIT STEERING AT HIGH SPEED = OFF
    …
  • DEFAULT IGNITION STATE = OFF (optional)
  • START VEHICLE ENGINES PREHEATED = OFF (optional)
  • START RACE BRAKES PREHEATED = OFF (optional)

(!1) - disable if you are driving automatic/DCT/sequential drivetrains


2. MENU > CONTROLS > BINDINGS > VEHICLE:


3. PICK YOUR POISON (CLICK):

COMBINED (CASUAL)

SIMPLIFIED MOUSE HANDLING SETUP FOR NEWBIES:


  • COMBINED THROTTLE&BRAKE = VERTICAL Y MOUSE AXIS:
    • FILTER = WHEEL (DIRECT)
    • INVERTED AXIS = ON
    • LINEARITY = 1
    • DEADZONE (REST) = 0
    • DEADZONE (END) = 0.5


  • STEERING (AXIS/MOUSE) = HORISONTAL X MOUSE AXIS:
    • FILTER = WHEEL (DIRECT)
    • 1:1 STEERING ANGLE = 0 (!1)
    • INVERTED AXIS = OFF
    • LINEARITY = 1
    • DEADZONE (REST) = 0
    • DEADZONE (END) = 0


(!1) - visual only. sets the interior steering wheel steering ratio.


…

SEPARATE (ADVANCED)

MOUSE TRAILBRAKING SETUP WITH OVERLAPPING AXES:


  • THROTTLE = VERTICAL Y MOUSE AXIS:
    • FILTER = WHEEL (DIRECT)
    • INVERTED AXIS = ON
    • LINEARITY = 1
    • DEADZONE (REST) = 0.5
    • DEADZONE (END) = 0.375


  • BRAKE = VERTICAL Y MOUSE AXIS:
    • FILTER = WHEEL (DIRECT)
    • INVERTED AXIS = OFF
      • (UNLESS using a ball mouse)
    • LINEARITY = 0.75
    • DEADZONE (REST) = 0.45
      • (LOWER = trailbrake start, smooth; HIGHER = trailbrake end, rough)
    • DEADZONE (END) = 0.25
      • (LOWER = less pressure, smooth; HIGHER = more pressure, rough)


  • STEERING (AXIS/MOUSE) = HORISONTAL X MOUSE AXIS:
    • FILTER = WHEEL (DIRECT)
    • 1:1 STEERING ANGLE = 0 (!1)
    • INVERTED AXIS = OFF
    • LINEARITY = 1
    • DEADZONE (REST) = 0
    • DEADZONE (END) = 0


  • CLUTCH = LEFT SHIFT:
    • FILTER = KEY (SMOOTH) (!2)
      • (also try static and dynamic bind modifiers)

  • PARKING BRAKE (HOLD) = SPACEBAR
    • FILTER = KEY (SMOOTH) (!2)
      • (also try static and dynamic bind modifiers)

(!1) - visual only. sets the interior steering wheel steering ratio.
(!2) - smoothens binary input (0 AND 1 becomes 0.0 to 1.0).

…


NOTE: to aid with sensitivity and/or coordination, use UI APPS > ADD APP > PEDALS AND AXIS to see your current input values. i recommend placing it in the middle of the screen.

1 Like

Think you could do a forum tutorial on how to actually drift, not “drift” like sean boswell in the beginning of tokyo drift. I always end up in a ditch, a wall, or spinning out. Or atleast a way to practice

1 Like
richard burns rally (RSF), dirt rally, ea sports wrc, assetto corsa, iracing, rfactor, forza horison, gran turismo, project cars, automibilista, farming simulator, ea sports f1, trackmania, need for speed, ridge racer, midnight club, wipeout, ballisticng, mario kart, test drive, bus driver simulator, my summer car, my winter car, snowrunner, mudrunner, wreckfest, ms flight simulator, VATSIM, x-plane, dcs world, war thunder, euro truck simulator, grand theft auto, and BLAH BLAH BLAH… YOU’RE WINNER!!!

COLLECTION OF INPUT REMAPPERS, FEEDERS AND BUS (DEVICE) DRIVERS, SUCH AS VIRTUAL JOYSTICKS (HID):

some of which you are probably already using…

SLOW INTERNET WARNING: THERE ARE PICTURES!


THE OLD WAY (vJoy only, LEGACY):


VJOY TUTORIAL (CLICK)

THE DEVICE DRIVER (JOYSTICK EMULATOR):

  • vJoy v2.1.8 (Github) - works (win7, win8, win10)
  • vJoy v2.1.9.1 (Github / SourceForge) - works 100%! (win7, win8, win10)
    • installs as an HID device. uninstall via Win+R > appwiz.cpl or C:\Program Files\vJoy\unins000.exe
    • vJoy is a digitally signed 32/64 bit driver.
      • PSA: NEWER versions DID NOT work for me - winutil Win10, march 2025, but they still potentially MAY WORK for your system. tl;dr get v2.1.9.1 instead!
    • NOTE1: on mobile devices, e.g. laptops, vJoy may disable itself to conserve battery. this feature can be turned off in Device Manager > Human Interface Devices > vJoy Device > Energy Management
    • NOTE2: ViGEmBus (see below) is more popular than vJoy (to clarify).
  • vJoy v2.2.1.1 (Github) - works? (win10, win11)
  • vJoy v2.2.2.0 (Github) - works? (win10, win11)

AND!

THE FEEDER (CONTROLS EDITOR):

  • Virtual Controller (SourceForge)
    • WARNING: may not work for Windows 11 (its trash anyway)
    • translates (feeds) editable inputs of HID devices, e.g. a mouse, to vJoy.
    • also supports vXbox (Github), vKeyboard (Github) and vMouse (Github)!
    • do NOT close this feeder during the game (should be minimised instead).
    • uninstall via Win+R > appwiz.cpl or C:\Program Files\Virtual Controller\unins000.exe

alternatives are provided down below. check them all out! ^_^


THE NEW WAY (ViGEmBus, no vJoy):



(i am controlling this with a mouse! EPIC SWAG STYLE!!!1)

(Win+R > joy.cpl)

  • MouseSteering (Github) - the GUI
    AND!
  • REQUIRES ViGEmBus (Github) - the driver (it turns your mouse, the relative position of your cursor from the middle of the screen, into a joystick!)
    • ViGEmBus is a digitally signed kernel-mode 64 bit (also 32!) device (bus) driver (for those who are paranoid by insecure software).
      • TRIVIA: ViGEmBus is a fork of vXbox, also known as ScpVBus.
    • easy to uninstall via Win+R > appwiz.cpl
    • ViGEmBus’s XBOX 360 controller shows up ONLY when in use (by a feeder, e.g. MouseSteering). AFAIK emulation of DualShock 4 controller is dependant on the feeder
    • works for Win7 up to Win11. it is deprecated (archived), but still works! ^_^
    • MouseSteering DOES NOT require vJoy installed! feel free to uninstall vJoy!
    • 1:1 linear controls… duh!
    • WRITTEN IN RUST BTW!!! has X, Y & Z axes. (to be precise, XInput button 6 & 7)
    • possible to bind overlapping inputs for trailbraking!
    • also has key bindings to disable any axis on demand.
    • comes in a .zip portable archive (no installation). has a .toml text config.
      • TIP: set snap_input = false in config.toml for unfiltered linear movement.
      • TIP: set edge_scaling = true under [throttle_config] for more sensitive pedals
        (technically edge_scaling option is the deadzone, but i digress)

OTHER REMAPPERS/FEEDERS/VIRTUAL DEVICES:

(they could be better for YOU!)

LINUX alternatives included!

(sorry, nothing for OSX, womp…)

  • MouseSteering_V1.7.2 (Steam Discussions)
    • a popular autohotkey (aka AHK) (Website) script for mouse steering that only has an X axis.
    • uses RawInput (no input interpolation or smoothing).
    • if you need only the steering via X axis - GET THIS.
    • has a mouse “force feedback” in the form of a “push back” to centre
    • has key binds and input/steering telemetry (input values).
      • TRIVIA: iirc was first scripted for assetto corsa, but then was forked and further developed for dirt rally games. works with ANY game, just like everything else listed here!

  • AntiMicroX (Github)
    • also works on linux!
    • keyboard and mouse to joystick remapping.
    • unless remapping a PHYSICAL joystick, use a VIRTUAL one!
    • i HIGHLY recommend this!

  • InputPlumber (Github)
    • linux only. rust btw!
    • it has EVERYTHING and some more!
    • i HIGHLY recommend this!

  • Xremap (Github)
    • linux only. x11 AND wayland!
    • uses evdev AND uinput!
    • supports mouse and keyboard

  • Input Remapper (Github)
    • linux only. supports x11 AND wayland!
    • works with mice too!
      • you may also want a device driver to have something to remap - xpadneo (Github) or even Steam Input Configurator (archwiki)!
      • OR simply connect a physical joystick (even a steam deck!).

  • QJoyPad (Github)
    • linux only. supports mouse & keyboard. X11 only!
    • the oldest anarchy remapper (that still works)

  • UCR - Universal Control Remapper (Github) - C# version
    • same features as Virtual Controller (feeder) above.
    • DOES NOT detect keyboard and mouse WITHOUT PLUGINS!
    • previously known as UJR - Universal Joystick Remapper (Github)

  • UCR - Universal Control Remapper (Github) - AHK version
    • has a lot of various input remaps for various devices, including MOUSE!
    • possible to change absolute AND relative modes for mouse deltas!

  • Mouse2Joystick (Github)
    • changes XY coordinates on CONSTANT cursor movement (absolute input mode).
    • movement is limited when near the screen boundaries!
    • boundable / remappable mouse buttons to joystick buttons.
    • requires ViGEmBus (Github)
    • DOES NOT require vJoy!

  • mouse2joystick (Github)
    • dont be confused! there are more like these!!
    • this one is for linux only. sketchy self-compiling C code.
    • however, steering is hardcoded to be used with held mouse buttons.
      • for other linux feeders and drivers, read further.

  • MouseToJoystick (Github)
    • similar to above, but not really. changes XY value on CONSTANT (speed) movement (absolute input mode).
    • it is a mouse joystick in the most LITERAL sense.
    • the mouse cursor is locked to the centre.
    • double right click to activate / deactivate.

(hidden: author advertises ai slop)

  • x360ce - Xbox 360 Controller emulator (Website / Github)
    • mouse works! supports XInput, as well as other many API’s.
    • has its own built-in virtual joystick emulator (in versions 4.x.x.x).
    • very extensive settings, in fact, THE MOST customisable feeder.
    • works with all joystick emulators, e.g. vJoy, vXbox, ViGEmBus, etc.
    • has 32 and 64 bit versions. digitally SIGNED application! (for those who are paranoid by insecure software)
    • the website is viewed better in austrian version.
    • also has a neat little tutorial on how to split a joystick axis into two axes (link)

  • MTVJ - MouseToVJoy (itchio)
    • mouse steering works, however, throttle and brake is mouse button click only.
    • has separate clutch & handbrake axes. shifting is bound to scroll wheel (weird)

  • msfs_mouse_yoke (Github)
    • standalone python script. windows only.
    • uses X, Y & THROTTLE (bound to mouse wheel) axes.
    • flight simulators only (?)

  • KeyboardSplitterXbox (Github)
    • a very very specific feeder. it treats every connected keyboard (virtual or physical) as a separate device (otherwise windows will receive inputs all the same)


  • vJoySerialFeeder (Github)
    • for nerds. also supports linux (uinput).
    • too many â– â– â– â– â– â– â–  buttons, could be scary!

  • map2 (Github)
    • for nerds. linux only.
    • written in RUST! easy to configure (python config)

  • FreePIE (Github)
    • for nerds, even more so! python config. windblows only.
    • there are pre-made user-submitted scripts for mouse-to-joystick control…
    • …but sim racers are not coders, so feel free to ignore.

thats all i could find…


LEGACY vJoy + Virtual Controller tutorial i made years ago, keeping it for history sake:


VIRTUAL JOYSTICK TUTORIAL (CLICK)
  1. install vJoy
    (you may have to restart)

  2. install virtual controller
    (can be any feeder of choice - the list is above)

  3. in Start open / search Configure vJoy
    (C:\Program Files\vJoy\x64\vJoyConf.exe)

  4. configure like so:


  5. (axis may differ depending on your vJoy version).
    plural of axis is axes, however, for searchability sake,
    i will omit this easily confusing word.

  6. close vJoyConf
    (there can only be one (1) vJoy interface active)

  7. in Start open / search Virtual Controller
    (C:\Program Files\Virtual Controller\VirtualController.exe)
    (next steps may differ depending on your feeder application,
    but essentially they are all the same -
    the goal is to bind / remap mouse XYZ input to vJoy XYZ input)

  8. Settings > IO Devices > Setup > Mouse.
    with this feeder, we will be using the LLHook API (“low level” hook) to feed mouse inputs. this is because other API, such as RawInput will not be able to “lock” the mouse INSIDE the screen edges / bounds (of the window or screen’s native resolution) (not to be confused with the “lock” features in this window), because, as mentioned in the optional trivia, it is a relative input mode, so it sends input data to vJoy infinitely, exceeding the maximum value range. once again, a joystick is both a relative and absolute input device, and the XYZ axis is referring to thumbsticks AND/OR triggers of a joystick (they differ model to model), which usually are relative, however, in this case they are, in fact, absolute, unless you have changed their input mode, so the mouse has no virtual boundaries because it is also a relative device of input. if the joystick always has physical boundaries and limitations to how far it is allowed to go, mouse does not.
    anyway, unfortunately, i have yet to find a better solution on how to make this better, because using the LLHook API (in this particular feeder) comes at a cost - it is NOT CALIBRATED (unless it is not, but make sure!) !!! this basically means that: 1. IT DOES NOT RESPECT NEUTRAL POSITION (centre of the screen), to be precise, it is not directly in the middle of the screen, instead it has “drifted” away to some side. high level API, like XInput, could be better for this matter, but this feeder does not have it. feel free to try another! 2. it may overflow negative or positive value range (below 0 or over 16384 / 32768 / 65536, e.g. -100% or 200%) - example photo of this situation provided below. in this case it would be easier to somehow limit vJoy’s maximum value range, but i think it is impossible without compiling your own vJoy via its SDK and you will be left with an unsigned driver. EDIT: wrong! it would be futile. the value range exceeding problem has to do with input being relative (explained somewhere in this post). if your feeder has an absolute mode for mouse input - use it. nevertheless, luckily, joy.cpl has a calibrate feature, read down below. 3. moreover, you may have noticed there is no XInput or even DirectInput in this feeder whatsoever, instead we are using an LLHook library, which may or may not be even WORSE than DirectInput API (which is also low level and deprecated, pre 2006 era) !!! you may stop and refer to other feeders if this does not suit your needs, as always.


    (API can be RawInput, however, axis input on movement will be choppy and laggy DESPITE the update interval or polling (which can be 1ms, btw), because RawInput NOTORIOUSLY has no input interpolation (smoothing). this is not a problem though, because we are playing a sim racing game, most incredibly! anyway, when using RawInput, all physical HID devices will be shown in the IO Devices menu. 1. untick “Lock Feature” and “Entire Device Lock” if they have been turned on - unless i am wrong, needs testing, maybe not !!! 2. you will need to know the GUID of your mouse, which can be done in Controls > Tools > Quick Binding, or in the Windows’ Device Manager system app)

  9. IO Devices > Setup > vJoy 1


    (completely straightforward, just turn it on)

  10. close IO Devices and go to Settings > Controls > Bind > Create
    remapping / binding / assigning time…


    (Modifier can also be “Increase”, but you will probably have to create another binding with “Decrease” modifier so that it will not change its input value infinitely! the “Set” modifier is BASICALLY the same thing but in one single binding. other feeders follow the same principles, just via different interfaces. but DO note that having different modifiers for the input and the output can have vastly different effects (especially if the virtual joystick is not calibrated - more on that below). however, if you are not into mathematics and experimentation, then simply blindly continue to follow my guide)
    Output Modifier > “Set”
    click Settings > Use Input ON = (%) 100
    this is the steering (or aelirons / rudder),
    where horisontal X axis = left and right mouse position relative to the centre of the screen (neutral position)
    NOTE: oh for ■■■■■ sake, perhaps i should have mentioned this earlier… so some joysticks actually split its value range of an axis in two. left trigger could have a value range from Y0 to Y16384, and right trigger could be Y16384 to Y32768, and vice versa. so, in SOME CASES you will have to split an axis into two halves.

    Input Name: Y
    Output Name: Y
    Output Modifier > “Set”
    Settings > Use Input ON = (%) -100

    ^^^ NEGATIVE MINUS ONE HUNDRED ^^^
    this is the throttle OR braking (or elevators),
    where vertical Y axis = up and down mouse position relative to the centre of the screen (neutral position)
    (it is negative so that Y and Z axis move in opposite directions of each other
    in my experience, the values fed to the Y axis always come inverted (i.e. up is negative, down is positive - you probably dont think that way), so just remember that THIS axis has a negative input!

    NOTE: when using combined (!) bindings in-game, you may not even need to use the third Z axis or assign negative input to it since it is redundant. THIS Z AXIS CAN BE SKIPPED!
    Input Name: Y
    Output Name: Z
    Output Modifier > “Set”
    Settings > Use Input ON = (%) 100
    this is the throttle AND / OR braking (or elevators),
    where mouse vertical Y axis is remapped to joystick Z axis,
    also an up and down mouse input relative to the centre of the screen (neutral position)
    you can simulate the “combined throttle and brake” by adding deadzones to both halves of the screen for Y and Z respectively (to simulate split screen axis like in beamNG), in case there is no “combined” bindings in-game, but im afraid it is not possible with this particular feeder.
    EDIT: you may want to assign an additional key to activate and / or alternate between Y and Z vertical axis (for flight simulators).

  11. close Controls and go back to main window menu, activate (run) the feeder.
    Main > Run

  12. test in Start open / search Monitor vJoy or Win+R > run> joy.cpl.
    (C:\Program Files\vJoy\x64\JoyMonitor.exe)


    (notice Y and Z axis are opposite of each other - which is useful for trailbraking, but NOT for normal driving! again, for those with ADHD: you can use JUST THE Y axis for the split (combined) axis of gas & brake!)
    to edit any settings, first deactivate (stop) the feeder.
    if sensitivity is low, increase it from 100 to 200, 500, 1000, etc.
    ALTERNATIVELY, change your mouse DPI (if possible).
    if it is returning back to the centre of the screen (neutral position), check Mouse API in IO Devices or bindings in Controls, tick / untick “Lock Feature / Entire Device Lock” or better yet, try XInput (modern, high level API) or DirectInput API (deprecated, low level API) (found in other feeders). also make sure they are not “Speed X/Y/Z”, which is “change value only on movement”.
    once again, if there is no response in vJoy Monitor, check your feeder’s bindings.
    however, if nothing works, try another vJoy version (it uninstalls itself, but you can do it manually) AND / OR try another feeder! trust me, it took me as much time and pain to make this work.
    lastly, as mentioned earlier, it IS possible to enable another joystick device, if your goal is to control double or more the amount of the same axis.

  13. IF axis is not fully 0%-100%, you will have to CALIBRATE your virtual joystick device - Win+R > run > joy.cpl > Calibrate > move your mouse all the way to the corners / edges of the SCREEN, not just X/Y/Z > Apply > OK !!!


    (example of Y axis being offset, when it should be 0)

    (example of Z axis being offset, when it should be 100% @ 32768)
    incredibly, Windows has a built-in “calibrate” feature that ACTUALLY works for VIRTUAL joysticks and their axis! do this EVERY TIME your input values are offset / overflowing below 0% or over 100%, as shown on the example above.
    NOTE: Y and Z axis have different value ranges!!!

  14. finally, test in-game, bind / map / assign controls to your new axis!
    FEEDERS SHOULD REMAIN ACTIVE (can be minimised) !!!


    example in Richard Burns Rally, the game:
    Steering > X axis (move your mouse horisontally left or right)
    (Combined) Accelerate and Brake > Y axis (move your mouse vertically up or down)
    if you have bound Y AND Z axis, then use Y for upwards motion, Z for downwards motion!
    you could then additionally bind the shifter to your device of choice.
    now, the in-game combined input splits the axis for us AUTOMATICALLY, so one of them could be more sensitive than the other. if that is the case, you will have to CALIBRATE your virtual joystick again (in Win+R > joy.cpl). my guess is that vJoy (NOT the game!) could have split (initialised and/or detected?) the axis UNEVENLY (due to relativeness and windlows shenanigans), where one half reaches its maximum input value faster than the other axis. so, make sure their value range go precisely FROM 0 TO 16384; FROM 16384 TO 32768; FROM 32768 TO 65536, etc. NOTE: some feeders have built-in calibrators.
    anyway, as usual, if there are no such (combined) bindings in your game, then you will have to come up with your own bindings via the feeder. so, back in the feeder’s bindings and controls you would want to somehow “split” the screen into two axis, where middle is the neutral position for Y and Z (Y0, Z0), where Z is inverted, so its Z0 starts in the centre, not at the bottom of the screen. this is something that i was previously completely stuck on with this feeder, virtual controller, so MAYBE you are better off using another feeder (scroll up for the list). this was honestly a nightmare to figure out myself, so i wish you the best of luck!!!
    EDIT: x360ce’s FAQ section has a guide on how to split the axis into two!

  15. if nothing worked and you are panicking and â– â– â– â– â– â– â– â–  yourself > uninstall vJoy via Win+R > appwiz.cpl (C:\Program Files\vJoy\unins000.exe) and try other options!


i really encourage you to try the other feeders if you havent! also switch from windows! ^_^


little known fun fact: did you know that the playstation 2’s dualshock 2 & 3 controllers had analogue pressure-sensitive directional buttons? they are the first and the last controllers to ever feature analogue action buttons that are NOT triggers. when dualshock 4 came out, pressure-sensitive action buttons were considered redundant, since the rise of 2 trigger + 2 stick formula. this makes “button mashing” have less meaning nowadays… please keep your playstation 2 alive! jailbreak it! :3

P.S. feel free to share

<3

NO AI POLICY:

i REJECT clankers in use of my work to “train” models.


sometimes, you just dont wanna crash…

:collision: :automobile: :exclamation_question_mark:

but you still do. here’s why:

:triangular_ruler: :wheel: :dashing_away:


(where V(x) is the longitudinal (forward) velocity vector, and V(y) is the sum of V(x) and lateral (horisontal) velocity vector V(y))

(SIDE)SLIP ANGLE

is an angle of rolling subsequent viscoelastic contact patch deflections relative to the centreline of a steered tyre, i.e. the difference in degrees between where the tyres are pointing to (heading) and where they are actually travelling to (course).

no literal slippage occurs, actually. :nerd_face: :backhand_index_pointing_up:

tyre’s “sticky” (adhesive) nature, like honey, resists (stretches and relaxes) the twisting motion and static (dry) friction with the ground texture, as well as centrifugal, inertial and drag forces, and produces a reaction force - a (lateral) cornering (side) force (or stiffness, like a spring) as a result of shearing strain (deformation) and mechanical stress (which generate mechanical traction (grip) and dissipate as heat).


NOTE1: wheel turning RIGHT.
NOTE2: albeit confusing, the last picture is relative to the direction of actual travel, which appears to be turned in the opposite direction of steering.

at any slip angle, the lateral forces of the front tyres generate a “twisting” yaw moment around the vehicle’s centre of gravity (CoG), which results in additional slip angles on the rear tyres, supporting the vehicle’s turning (inertial) motion - a centripetal force.

the assymetric slip angles of the front and rear axles will determine the behaviour of the vehicle as it is negotiating a turn.


NOTE1: wheel turning LEFT.
NOTE2: the cornering force is created perpendicular (90 degrees) to the direction of travel! horisontal (lateral) forces is everything else (inertial, frictional, centrifugal, centripetal F, etc.), that is sometimes mixed up with the cornering force. [idk]

per every degree of slip angle, the cornering force increases to a maximum (peak; limit), until the adhesive area (stick zone) of the contact patch is exceeded by the slippage (slip area) (creepage), as it begins to decrease. the rate at which it builds up is described by relaxation length and the distance of the pneumatic trail, which creates a self aligning torque (moment) at the trailing edge (behind) of the contact patch, before returning to its original (linear) shape.

you can test how much of this lateral force your vehicle is able to withstand at a given slip angle by observing it dynamically via a GG diagram (accelerometer) and experimenting to determine at what limit (peak) does frictional (kinetic) slip and loss of traction (grip) develop.


(example: to achieve a larger contact patch and better traction (grip), a greater vertical tyre load must be applied, which would increase cornering force proportionally (!), which means that at the same slip angle there is potential for more lateral forces possible (see further below). however, it is NOT necessary to add more to the overall sprung weight or change (deflate) the tyre pressure! it is also possible to change the shape of the body (bodykit) and install aerofoils: a splitter (air dam), bonnet (hood) scoop, roof scoop, spoiler or wing and a diffuser, etc., that would create a greater downwards lift force - downforce (the same principle as the horisontal stabiliser of a plane), which is also proportional (!) to the aerodynamic drag (air resistance), meaning that it increases with the square of the car’s speed (velocity) and requires a certain minimum speed in order to produce a significant effect, so that the excessive use of which may hinder (worsen) acceleration, top speed and the overall handling of the vehicle! it is always a compromise to find the perfect L/D (lift to drag ratio) balance, spring (ride) height and the angle of attack of the aerofoils for a given racetrack (as well as its inclinations!) and average speeds)

NOTE: it is worth noting that, in beamNG, fluid dynamics are simplified - the drag coefficient is predetermined (baked) into each and every coltris (triangle) of the jbeam:

the aero system in beamNG works by calculating drag on all triangles based purely on the speed of the airflow, the surface area and drag properties of the triangles. the drag and lift forces are then applied on the adjacent nodes. triangles are NOT affected by other triangles, meaning that triangle in the back of your vehicle will still create the full drag.

because of this, you might need to fine tune the drag coefficient of your various components based on how exposed to airflow they are. this also lets you add surfaces to simulate ground effect, or fine tune the lift distribution on your vehicle.


sideslip angle varies with slip ratio (longitudinal rolling percentage), (vertical) tyre load, aerodynamic forces (downforce, ground effect, drag coefficient, centre of pressure), weight and/or load transfer (centre of mass, centre of gravity), atmospheric pressure (pneumatic inflation), engine power and engine (machine) torque, speed (torque, horsepower, angular acceleration, angular velocity, rotational inertia, etc.), unsprung (suspension) mass and sprung (gross) mass, roll centre, weight distribution, body roll, automotive electronics (ABS, TCS, ESC, etc.), suspension geometry (height or clearance, anti-dive and anti-squat, anti-roll or anti-sway bars), steering geometry (ackermann, power steering), wheel alignment (camber and centripetal forces, castor, toe), tyre tread (pattern) (racing slick, stiction, tractive (traction) force, rolling resistance) and surface conditions (static and kinetic (dry) friction and their coefficients), etc.



slip angle is NOT to be confused with slip ratio - forward (longitudinal) forces as a percentage of the velocity of the vehicle relative to the observed (theoretical) angular velocity (free-rolling speed) of the tyre, i.e. apparent (evidental) slipping (sliding) or “locking” due to excessive acceleration (throttle) and/or deceleration (braking). however, it is just as important, e.g. in trailbraking and drifting.

please see anti-lock braking system (ABS), traction control system (TCS), electronic stability control (ESC), weight & load transfer, anti-dive & anti-squat, coefficient of friction (mu) (static and kinetic frictions), coefficient of traction, etc.


:nerd_face: :nerd_face: :nerd_face:

:yawning_face: :yawning_face: :yawning_face:


tl;dr

in layman’s terms, there are four (4) rubber bands that get squishy and stretchy - two (2) in the front and two (2) in the rear. they are going in different ways, because the rear cant turn. this can make you turn too little or too much.

in gamer’s terms, try bunnyhopping without strafing (-mlook). every time you touch the ground for 10ms, only then you are able to turn and look with your mouse. similarly, the tyre steers as if it was lagging - it has a high ping with the ground, as if it registers an input from an australian server. moreover, if sv_gravity is increased, you would be able to turn better (harder, faster, stronger)! this is exactly what happens to the tyres as more vertical tyre load (i.e. downforce) is applied.

alternatively, imagine walking or running (irl). when you turn, you make a sharp (angled) stepping pattern with your feet. that is because it is impossible to turn smoothly in the middle of walking or running because of static friction and inertia - the current foot that is in the contact with the ground is unable to turn on its own, while the other is in the air, unless you are stationary (or a ballet dancer / figure skater) - which is what rubber does when it “sticks” (adheres) to the ground every millisecond as it appears to be “rolling”, when in fact, as far as physics are concerned, the tyre is static (stationary). it is only “temporarily” in motion, as it overcomes static friction. so, you are NOT moving RELATIVE to the ground, UNLESS you are on ice or slipping, which is no longer static - it is kinetic friction!


(example: banger racing in reliants (three-wheelers) at aldershot)
NOTE1: perhaps, in a sense, having less (<2) wheels could be and should be more “controllable” than having four or more (4+) wheels, since there would be less counteracting forces of and on every tyre. however, this is not always laterally stable nor usually feasible.
NOTE2: this is why automobiles are designed to slide before rollover occurs.

…

1 Like