Driving Enhancements - ATS/ETS2 (Released)

Make your game even better
Post Reply
User avatar
JHTrucker
Expert
Posts: 1379
Joined: February 7th, 2020, 3:19 pm
Location: UK

Driving Enhancements - ATS/ETS2 (Released)

Post by JHTrucker » January 10th, 2025, 10:49 pm

Post 1 of 5 - Driving Enhancements - Description.

==============================================================================

This isn't a mod to just drop into your mod manager, you'll also need to follow instructions and edit your controls.sii & config_local.cfg files, using Notepad or similar.

For ATS/ETS2 game version 1.41+
The supplied mod contains no game version specific files, but the code that controls all the functions does require at least game version 1.41.

Confirmed to work for game versions 1.41 to 1.53

Note 1: This will NOT work with VR or Tobii Eye devices, see these links instead:
Tobii Eye Driving Enhancements - viewtopic.php?p=57548#p57548
VR Driving Enhancements - viewtopic.php?p=55557#p55557

Note 2: This will NOT work if you use 'Steam Controller Support', that will remove all of the required code from the controls.sii file.
To disable steam controller support:
In Steam Library - Right Click Game - Properties - Controller - Select - Disable Steam Input.
If you don't know how to configure your controller without using steam input, it's probably best not to even attempt trying this mod.

Note 3: If you have '-sysmouse' set in the games steam launch options, remove it, else the 'Driving Enhancements' features will not function correctly.

==============================================================================


If like to role play or just want a little more immersion in your sim...

Driving Enhancements features:
In the driving seat, select from:
SCS game default look functions (interior instant look & variable look or from 1.53+ smooth look motion with auto centre options).
Or
New, for 1.41+, 'Driving Enhancements' smooth look left, right, behind (out of window) & down at dash (for a closer look) either with 'Press & Hold' or 'Toggle', all with smooth re-centre.
Pressing CAM 1 will also smooth re-centre the view.
You can adjust smooth look speed to how fast you want it.
You can set your required look left/right angle to 50, 60, 70, 80 or 90 degrees.
You can select the above to have mouse look enabled or disabled.

Optional - Auto zoom when 'Toggle' looking at the passenger side mirror.

Optional - Press & Hold or Toggle Interior Zoom on/off.

CAM 1, Driving seat - CAM 2, Passenger Seat - CAM 3, Sleeper area - CAM 4, Outside.
You can only drive from the driving seat or any game default external camera.

First person animated movement between drivers seat, passenger seat, sleeper area & outside.
You can therefore move into the sleeper before you activate 'sleep', you must first be parked in a sleep area.

'Action' Button, can be used to move to and from sleeper area & to and from outside.

Outside the truck:
Basic first person 'walking' movement with a fixed height, head bob and crouch (don't expect GTA style exploring!).
You can 'Walk' around the general area of your truck, stand next to the fuel tank when refueling or the crank handle when you attach/detach the trailer.
If parked on an 'Activate' icon you can 'walk' to a suitable location before pressing your 'Activate' key/button.
For example Service, Showroom, Job select (nearby office/hut), hotel etc. Once activated, 'walk' back to your truck.

All features can be controlled via a keyboard, gamepad or wheel.
TrackIR can also be used, if required, but VR and Tobii Eye are NOT supported and will not function at all.

A 'Quick Start' controls.sii file is available, using game default keyboard setup for WASD driving and 'walking', so you can quickly test this out.

Here's a quick demo of some of the above features:

Xbox360 controller was setup as:
Left thumbstick = Steer & Turn 'walk' view left/right.
Right trigger = Throttle & 'walk/run' forwards.
Left trigger = Brake & 'walk' backwards.
Button Yellow (Y) = 'Action'.
Button Blue (X) = Attach/detach trailer.
Button Red (B) = Activate.
Button Green (A) = Park brake.
Note: You can setup your controller the way you want it.

If you use TrackIR and want some more features, see 'TrackIR Driving Enhancements' instead: viewtopic.php?p=46457#p46457

==============================================================================

Driving Enhancements cameras:
CAM 1 - Keyboard 1 - Game standard driving view - Set your 'look' option via Preset 1 in Tobii Eye menu.
CAM 2 - Keyboard 2 - NEW - Passenger Seat. *** You cannot drive from this camera ***
CAM 3 - Keyboard 3 - NEW - Sleeper Area. *** You cannot drive from this camera ***
CAM 4 - Keyboard 4 - NEW - Outside truck. *** You cannot drive from this camera ***
CAM 5 - Keyboard 5 - Game standard chase view.
CAM 6 - Keyboard 6 - Game standard top down view.
CAM 7 - Keyboard 7 - Game standard roof view.
CAM 8 - Keyboard 8 - Game standard Drive-By view.
CAM 9 - Keyboard 9 - Game standard bumper view.
CAM 10 - ALT + Keyboard 9 - Game standard On-Wheel view.
Note 1: You can switch from (cam 1/2/3/4) to (cam 5/6/7/8/9/10) OR switch from (cam 5/6/7/8/9/10) to (cam 1).
Note 2: You can't switch from an external 'driving' camera (cam 5/6/7/8/9/10) to a 'non-driving' camera (cam 2/3/4) to avoid losing control of your truck.
Note 3: Game standard 'Cam Cycle' function is disabled because it breaks 'DE' functionality.

==============================================================================

Use the games Tobii Eye menu to setup the Driving Enhancements features:
Open Tobii Eye menu (shift + numlock).
Image
At the top of the menu:
1 - Enable/Disable 'DE' code (only game default functions when disabled).
Note: This is provided so you can quickly disable the 'DE' code if you think it's causing an issue with a certain aspect of the game, perhaps garage mode, photo mode, editor etc? and then re-enable when you're back to doing driving and 'walking'. Further note: Original cam 5 (lean out) won't function correctly until the 'DE' mod is also removed.
At the bottom of the menu:
2 - Assign 'Action' Button.
3 - Select Driving Seat 'look' option.
4 - Select Passenger Seat.
5 - Select Sleeper Area.
Note: Don't click 'Reset to defaults' or any item not highlighted in a green box.

==============================================================================

How to select driving seat look options:
Open Tobii Eye menu (shift + numlock).
Scroll down to the very bottom of the menu and click on the drop down for 'Apply Extended View Preset 1'
Only choose presets that start with '1' and match your trucks driving side, LHD 'L' or RHD 'R'.
Example '1L ....' for LHD trucks or '1R ....' for RHD trucks.

1L - Game Default Look Options <-- LHD using game look functions.

1L - Game Default TrackIR <-- LHD using TrackIR - Passenger seat, sleeper & outside will also use TrackIR.

1L 50 Toggle + Press & Hold + Mouse <-- LHD Look angle 50 degrees and mouse can also be used.
1L 60 Toggle + Press & Hold + Mouse <-- LHD Look angle 60 degrees and mouse can also be used.
1L 70 Toggle + Press & Hold + Mouse <-- LHD Look angle 70 degrees and mouse can also be used.
1L 80 Toggle + Press & Hold + Mouse <-- LHD Look angle 80 degrees and mouse can also be used.
1L 90 Toggle + Press & Hold + Mouse <-- LHD Look angle 90 degrees and mouse can also be used.
Note: If you're mouse is too sensitive it may keep toggling off your selected look preference, if so, use the below to disable it.

1L 50 Toggle + Press & Hold <-- LHD Look angle 50 degrees.
1L 60 Toggle + Press & Hold <-- LHD Look angle 60 degrees.
1L 70 Toggle + Press & Hold <-- LHD Look angle 70 degrees.
1L 80 Toggle + Press & Hold <-- LHD Look angle 80 degrees.
1L 90 Toggle + Press & Hold <-- LHD Look angle 90 degrees.

1R - Game Default Look Options <-- RHD using game look functions.

1R - Game Default TrackIR <-- RHD using TrackIR - Passenger seat, sleeper & outside will also use TrackIR.

1R 50 Toggle + Press & Hold + Mouse <-- RHD Look angle 50 degrees and mouse can also be used.
1R 60 Toggle + Press & Hold + Mouse <-- RHD Look angle 60 degrees and mouse can also be used.
1R 70 Toggle + Press & Hold + Mouse <-- RHD Look angle 70 degrees and mouse can also be used.
1R 80 Toggle + Press & Hold + Mouse <-- RHD Look angle 80 degrees and mouse can also be used.
1R 90 Toggle + Press & Hold + Mouse <-- RHD Look angle 90 degrees and mouse can also be used.
Note: If you're mouse is too sensitive it may keep toggling off your selected look preference, if so, use the below to disable it.

1R 50 Toggle + Press & Hold <-- RHD Look angle 50 degrees.
1R 60 Toggle + Press & Hold <-- RHD Look angle 60 degrees.
1R 70 Toggle + Press & Hold <-- RHD Look angle 70 degrees.
1R 80 Toggle + Press & Hold <-- RHD Look angle 80 degrees.
1R 90 Toggle + Press & Hold <-- RHD Look angle 90 degrees.

Example: 1L 60 Toggle + Press & Hold <-- LHD truck with look angle 60 degrees and mouse look disabled.

Note: It's important to choose the correct driving position, LHD or RHD to suit your current truck, to prevent unintended results.

Once you exit the Tobii Eye menu press '1' to apply the preset you just selected.

==============================================================================

How to select the passenger seat to use:
Open Tobii Eye menu (shift + numlock).
Scroll down to the very bottom of the menu and click on the drop down for 'Apply Extended View Preset 2'
Only choose presets that start with '2' and match your trucks driving side, LHD 'L' or RHD 'R'.
2L (truck) Passenger Seat <-- LHD that matches your (truck) model
2R (truck) Passenger Seat <-- RHD that matches your (truck) model
Note: If using a mod truck you'll need to choose, what you think, may be a suitable preset from the ones provided.

Example: 2L Freightliner Cascadia Passenger Seat <-- LHD passenger seat for Freightliner Cascadia

==============================================================================

How to select the sleeper to use:
Open Tobii Eye menu (shift + numlock).
Scroll down to the very bottom of the menu and click on the drop down for 'Apply Extended View Preset 3'
Only choose presets that start with '3' and match your trucks driving side, LHD 'L' or RHD 'R'.
3L (truck) Sleeper <-- LHD that matches your (truck) model
3R (truck) Sleeper <-- RHD that matches your (truck) model
Note: If using a mod truck you'll need to choose, what you think, may be a suitable preset from the ones provided.

Example: 3R Iveco S-Way Sleeper <-- RHD sleeper for Iveco S-Way

==============================================================================

How to look around in the driver seat:
Using game default look options: (1L - Game Default Look Options OR 1R - Game Default Look Options).
Assign keys/buttons/gamepad thumbstick etc to these as required:
Look Left (default numpad /)
Look Right (default numpad *)
Interior Look Left (default numpad 4)
Interior Look Up Left (default numpad 7)
Interior Look Right (default numpad 6)
Interior Look Up Right (default numpad 9)
Interior Look Up Middle (default numpad 8)
Interior Look Forward (default numpad 5)
Note: This is exactly how SCS provide the look function in game, there's nothing new or different here.

Using keys/buttons with Driving Enhancements Look Functions: (1L/R xx Toggle + Press & Hold + Mouse OR 1L/R xx Toggle + Press & Hold)
Assign keys/buttons to these as required:
Look Left (default numpad /) <-- Smooth look to 50/60/70/80/90 degrees based on your preset 1 choice.
Look Right (default numpad *) <-- Smooth look to 50/60/70/80/90 degrees based on your preset 1 choice.
Interior Look Left (default numpad 4) <-- Smooth look to 50/60/70/80/90 degrees based on your preset 1 choice.
Interior Look Right (default numpad 6) <-- Smooth look to 50/60/70/80/90 degrees based on your preset 1 choice.
Interior Look Up Middle (default numpad 8) <-- Smooth look down at dash.
Interior Look Forward (default numpad 5) <-- Smooth re-centre. If required, this also toggles off any toggled on view.
Interior Look Up Left (default numpad 2) <-- Smooth look out of the drivers window to look behind you.
Note: 'Look Left/Interior Look Left' & 'Look Right/Interior Look Right' have the same functions, just choose which of them you want to assign a key too.

See post 3 - Configuration options - Driver seat 'look' speed.

Using gamepad thumbstick with Driving Enhancements Look Functions: (1L/R xx Toggle + Press & Hold + Mouse OR 1L/R xx Toggle + Press & Hold)
Assign gamepad look thumbstick as required:
Look Up/Down Axis <-- Smooth look down at dash & smooth look out of the drivers window to look behind you.
Set 'Look Up/Down Axis mode' as required:
Centered = Up is look behind & Down is look at dash.
Inverted and centered = Up is look at dash & Down is look behind.
Look Left/Right Axis <-- Smooth look left/right to 50/60/70/80/90 degrees based on your preset 1 choice.
You can also assign your look thumbstick button press to:
Interior Look Forward <-- Smooth re-centre. If required, this also toggles off any toggled on view.

See post 3 - Configuration options - Adjust Driver seat 'look' speed.

==============================================================================

How to move from the driver seat:
Using game default look functions: (1L - Game Default Look Options OR 1R - Game Default Look Options):
Driver Seat --> Press 2 --> Passenger Seat --> Press 1 --> Driver Seat.
Driver Seat --> Press 3 --> Sleeper Area --> Press 1 --> Driver Seat.
Driver Seat --> Press 4 --> Outside --> Press 1 --> Driver Seat.
OR
Driver Seat --> Press 'Action' --> Outside --> Press 'Action' --> Driver Seat.

Using Driving Enhancements Look Functions: (1L/R xx Toggle + Press & Hold OR 1L/R xx Toggle + Press & Hold + Mouse):
Driver Seat --> Press 2 --> Passenger Seat --> Press 1 --> Driver Seat.
Driver Seat --> Press 3 --> Sleeper Area --> Press 1 --> Driver Seat.
OR
Driver Seat --> 'Toggle Look to passenger side' and then Press 'Action' --> Sleeper Area --> Press 'Action' --> Driver Seat.
Driver Seat --> Press 4 --> Outside --> Press 1 --> Driver Seat.
OR
Driver Seat --> 'Toggle Look to drivers door window' and then Press 'Action' --> Outside --> Press 'Action' --> Driver Seat.

Using Driving Enhancements Look Functions: (1L - Game Default TrackIR OR 1R - Game Default TrackIR):
Driver Seat --> Look at the passenger seat and Press 'Action' --> Passenger Seat --> Look at the driver seat and Press 'Action' --> Driver Seat.
Driver Seat --> Look at the sleeper area and Press 'Action' --> Sleeper Area --> Press 'Action' --> Driver Seat.
Driver Seat --> Look out of the driver side door window and press 'Action' --> Outside --> Press 'Action' --> Driver Seat.
Note: You can still just press 1, 2, 3 & 4 but using above 'Look Action' is better!

==============================================================================

How to look around in the passenger seat, sleeper or outside:
Using the same keys/buttons you assigned for the driving seat look options:
Look Left (default numpad /) <-- Smooth look left, 'Press & Hold'.
Look Right (default numpad *) <-- Smooth look right, 'Press & Hold'.
Interior Look Left (default numpad 4) <-- Smooth look left, 'Press & Hold'.
Interior Look Right (default numpad 6) <-- Smooth look right, 'Press & Hold'.
Interior Look Up Middle (default numpad 8) <-- Smooth look up, 'Press & Hold'.
Interior Look Forward (default numpad 5) <-- Smooth re-centre, 'Quick Press'.
Interior Look Up Left (default numpad 2) <-- Smooth look down, 'Press & Hold'.

Using the same gamepad thumbstick you assigned for the driving seat look options:
Look Up/Down Axis <-- Smooth look up/down, 'Press & Hold'.
Look Left/Right Axis <-- Smooth look left/right, 'Press & Hold'.
Interior Look Forward <-- Smooth re-centre, 'Quick Press'.

See post 3 - Configuration options - Adjust Passenger, Sleeper & Outside 'look' speed.

==============================================================================

How to 'walk' around outside your truck:
Using keyboard Steering, Throttle and Brake:
Press 'Steer Left' to turn the 'walk' view left.
Press 'Steer Right' to turn the 'walk' view right.
Press 'Throttle' to 'walk' forward.
Press 'Brake' to 'walk' backward.
Note: The above same keys also need to be assigned to the games WALKMODE keys for Left/Right/Forward/Back (which they are as 'DE' default WASD).

Using gamepad or wheel & pedals for Steering, Throttle and Brake:
Thumbstick left or turn wheel left to turn the 'walk' view left.
Thumbstick right or turn wheel right to turn the 'walk' view right.
Thumbstick forward, Throttle trigger or Throttle pedal to 'walk' forward.
Thumbstick backward, Brake trigger or Brake pedal to 'walk' backward.

Using whatever keys/buttons you have assigned in the games WALKMODE menu:
Press 'WALKMODE Left' to turn the 'walk' view left.
Press 'WALKMODE Right' to turn the 'walk' view right.
Press 'WALKMODE Forward' to 'walk' forward.
Press 'WALKMODE Back' to 'walk' backward.
Press 'WALKMODE Run' to run.
Press 'WALKMODE Crouch to crouch.
Note: If the WALKMODE keys you use are the same used for other functions (except steer/throttle/brake), those other functions will operate while you're 'walking'. To prevent this see post 3 - Configuration options.

General notes:
1 - When you are 'walking' around your truck the trucks steering, throttle, brake & clutch are all disabled to prevent it from moving whilst using the same controls to 'walk', but you should always apply the park brake first to prevent your truck rolling down a hill.
2 - There's no collision, you can 'walk' through everything. During development, with collision enabled, it just resulted in all sorts for strange jumping/lurking movements.
3 - For best results, only 'walk' around a flat area, you cannot 'walk' up/down slopes, you'll just 'walk' through them.
4 - There's a limit to how far you can 'walk' away from your truck, you'll know when you get there.
5 - Look left/right/up/down using your chosen method.

See post 3 - Configuration options - Adjust 'Walk' speed.

==============================================================================

Zoom Interior Camera:

You can Press & Hold or Toggle Interior Zoom on/off as required.
See post 3 - Configuration options - Zoom Interior Camera - key/button.

You can enable Auto Zoom when looking at the passenger side mirror.
See post 3 - Configuration options - Auto zoom when looking at the passenger mirror.

You can enable Auto Zoom when looking at the dash.
See post 3 - Configuration options - Auto zoom dash.

Note: If you just assign a key/button to 'Zoom Interior Camera' in the games key/buttons menu, you'll lose the above optional features.

==============================================================================

Glitches that you may encounter:

'Driving Enhancements' works best when always using your own truck and not doing 'Quick Jobs'.
This is because, when you're outside 'walking' around the 'Quick Job' truck the game mechanics can sometimes automatically change to cam 1, to put you back in the driving seat, for example:

If you do a 'Quick Job', and at the end of it you get out of the truck to detach the trailer, then at the start of the next 'Quick Job' you'll still be outside but the 'walking' movement will no longer work because the game has automatically changed to cam 1 and the 'DE' code is still in 'walking' mode.
To fix that, just press '1' or 'Action' to get into the truck.

If you want to buy a new truck, park your current truck on the Showroom Icon, switch off and get out of the truck, 'walk' to Showroom entrance and press 'Activate' to enter it.
Buy a new truck and select 'yes' to drive it straight away (selecting 'no' will prevent this problem from happening).
After the fly-around new truck cut scene you'll be back to outside the Showroom entrance but you'll be unable to 'walk' back to the truck because the game has auto changed the camera to cam 1 whilst the 'DE' code is still in 'walking' mode.
To fix that, just press '1' or 'Action' to get into your new truck.

There may well be other situations like the above examples, but the simple fix of pressing '1' or 'Action' should always apply.

==============================================================================

Post 1 - Description: viewtopic.php?p=67254#p67254
Post 2 - Quick start guide: viewtopic.php?p=67255#p67255
Post 3 - Configuration options: viewtopic.php?p=67256#p67256
Post 4 - Manual edits: viewtopic.php?p=67257#p67257
Post 5 - Help / Q & A: viewtopic.php?p=67258#p67258
Last edited by JHTrucker on February 19th, 2025, 11:10 pm, edited 16 times in total.
multimon_config.sii files: viewtopic.php?p=17658#p17658
controls.sii edits: viewtopic.php?p=24744#p24744
Driving Enhancements: viewtopic.php?p=67254#p67254
TrackIR Driving Enhancements: viewtopic.php?p=46613#p46613
User avatar
JHTrucker
Expert
Posts: 1379
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Driving Enhancements

Post by JHTrucker » January 10th, 2025, 10:49 pm

Post 2 of 5 - Driving Enhancements - Quick Start Guide.
This is an easy way to test if you want to use 'Driving Enhancements' or not.

By using the supplied 'quick start' controls.sii file you will need to re-setup all your game control buttons, keys, wheel, pedals, shifter & Force Feedback settings etc.
OR
Don't use the 'quick start' controls.sii file and instead refer to Post 4 - Manual edits. The choice is yours!

Note 1: Using steam controller support will cause problems. I've never used it and have it disabled, that way the game will use all control functions that are specified within the games controls.sii file.
To disable steam controller support:
In Steam Library - Right Click Game - Properties - Controller - Select - Disable Steam Input.

Note 2: If you have '-sysmouse' set in the games steam launch options, remove it, else the 'Driving Enhancements' features will not function correctly.

=============================================================================================================

Setup - You need to do these 3 steps:
1 - Add the required mod.
2 - Edit your controls.sii file or use the supplied one.
3 - Edit your config_local.cfg file.

1 - Download Driving Enhancements v1.0.zip --> https://mega.nz/file/b8R1SSiK#ieokMCahi ... S2HyR3ZBoU
The zip file contains 2 folders, Singleplayer & Multiplayer:
Singleplayer - Driving Enhancements v1.0.scs - Use this mod when playing in singleplayer, it removes your character from the driving seat when you are outside of your truck, your not in your truck and so the seat should be empty!
Multiplayer - Driving Enhancements v1.0.scs - Use this mod when playing multiplayer, so that all other players are not seen as driver less trucks.
As you can see, both mods have the exact same name, just pick the one you need and add it to your games MOD folder.

2 - Download DE controls 30-01-2025.zip --> https://mega.nz/file/Ogx03B5S#t6orBEdkp ... 8woVIz_0kU

Look here --> American or Euro Truck Simulator 2\profiles\Your Profile\controls.sii
Rename your controls.sii file for backup.
Copy the supplied controls.sii file into your profile folder.

3 - Look here --> American or Euro Truck Simulator 2\profiles\Your Profile\config_local.cfg
Edit your config_local.cfg with the following:
uset g_eye_preset_5 "g:CAM 4 RHD - Walk Keys Free Roam"
uset g_eye_preset_4 "g:CAM 4 LHD - Walk Keys Free Roam"
uset g_eye_preset_3 "g:3 Setup LHD Sleeper Area" <-- Change this via the Tobii Eye menu to suit your current truck.
uset g_eye_preset_2 "g:2 Setup LHD Passenger Seat" <-- Change this via the Tobii Eye menu to suit your current truck.
uset g_eye_preset_1 "g:1L 70 Toggle + Press & Hold" <-- Change this via the Tobii Eye menu to select your preferred 'look' function.

Close & save your config_local.cfg file.
If required, here's the above setup instructions in picture form:
Image

Start the game and add the mod 'Driving Enhancements' to the top of your mod manager list.

Image

Pick a game default LHD truck, don't use a mod truck for testing, they should work, but they may have edited interior cam files that may cause unintended movement.

At the driving screen press 1 for driver seat.
Look around with the below keys, either 'Press & Hold' or 'Toggle':
Interior Look Left (numpad 4) <-- Smooth look left to 70 degrees.
Interior Look Right (numpad 6) <-- Smooth look right to 70 degrees.
Interior Look Up Middle (numpad 8) <-- Smooth look down at dash.
Interior Look Up Left (numpad 2) <-- Smooth look out of the drivers window to look behind you (if it turns into the sleeper, you've incorrectly picked a RHD truck for this test).
Interior Look Forward (numpad 5) <-- Smooth re-centre, 'Quick Press'.

Now move from the driver seat:
Driver Seat --> Press 2 --> Passenger Seat --> Press 1 --> Driver Seat.
Driver Seat --> Press 3 --> Sleeper Area --> Press 1 --> Driver Seat.
Driver Seat --> Press 4 --> Outside --> Press W A S D to 'walk' around --> Press 1 --> Driver Seat.
Note 1: You can only move to/from driver seat, for example, you can't move from passenger seat to sleeper.
Note 2: The passenger seat and sleeper position are just generic locations for testing, for best results, choose the correct truck CAM 2 & CAM 3 presets for these in the Tobii Eye menu.
Note 3: You can use the same 'Interior Look' keys stated above to look around in passenger seat, sleeper & outside.
Interior Look Left (numpad 4) <-- Smooth look left, 'Press & Hold'.
Interior Look Right (numpad 6) <-- Smooth look right, 'Press & Hold'.
Interior Look Up Middle (numpad 8) <-- Smooth look up, 'Press & Hold'.
Interior Look Up Left (numpad 2) <-- Smooth look down, 'Press & Hold'.
Interior Look Forward (numpad 5) <-- Smooth re-centre, 'Quick Press'.
Image

Don't click 'Reset to default' at the bottom of the keys/buttons & controller menus as that will remove the 'DE' line edits!
You can click 'Force Feedback - Reset to defaults' if required.

Now re-setup your controls for windows, steering & pedals etc.
In the games 'Keys & Buttons' menu don't assign anything to these functions marked as 'complex' as that will remove the Driving Enhancements code.
Image
Truck:
Throttle, Brake/Reverse, Steering Left & Steering Right.
Camera Controls:
Next Camera, Interior Camera, Chasing Camera, Top-Down Camera, Roof Camera, Lean Out Camera, Bumper Camera, Drive-By Camera & Zoom Interior Camera.
Auxiliary Cameras:
Zoom Interior Camera.
See Post 3 - Configuration options - For assigning the above key functions, if required.

By default, Driving Enhancements uses the following keys:
W = Throttle & 'Walk' forward.
S = Brake/Reverse & 'Walk' backward.
A = Steering Left & 'Walk' turn left.
D = Steering Right & 'Walk' turn right.

You can change WASD to other keys or disable them if using a controller and require those keys for other functions, see Post 3 - Configuration options - For further information.

Note: The supplied controls.sii file is game version 1.53 defaults with 'DE' edits added, on first startup the game will 'clean it up' by automatically adding or removing lines that are only applicable to the game version you're running.
Example: If you're running game version 1.41 then you'll see a few errors in the game log, starting with this one:
00:00:05.234 : <ERROR> [inp] mix "cstm_mod_1" does not exist, ignoring change
Those [inp] errors are ok, they won't appear again, as the game has just removed them.

==============================================================================

Post 1 - Description: viewtopic.php?p=67254#p67254
Post 2 - Quick start guide: viewtopic.php?p=67255#p67255
Post 3 - Configuration options: viewtopic.php?p=67256#p67256
Post 4 - Manual edits: viewtopic.php?p=67257#p67257
Post 5 - Help / Q & A: viewtopic.php?p=67258#p67258
Last edited by JHTrucker on February 4th, 2025, 4:15 pm, edited 9 times in total.
multimon_config.sii files: viewtopic.php?p=17658#p17658
controls.sii edits: viewtopic.php?p=24744#p24744
Driving Enhancements: viewtopic.php?p=67254#p67254
TrackIR Driving Enhancements: viewtopic.php?p=46613#p46613
User avatar
JHTrucker
Expert
Posts: 1379
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Driving Enhancements

Post by JHTrucker » January 10th, 2025, 10:50 pm

Post 3 of 5 - Driving Enhancements - Configuration options:
Note: You need to edit your 'DE' controls.sii file to make changes for the below options.

Optional - Another CAM 1 button on controller rather than pressing '1':
Replace your_cam1_button?0 with your preferred key/button (if required, see 'How to find a key/button name').
"mix dbgmodcrea `(DE_Cam1_?1 * your_cam1_button?0 * c_et_head) + (keyboard.num0?0 * ! c_et_head)`"
Note: If you use 'DE Toggle Look' in the driving seat, pressing this alternative CAM 1 button or '1' will also smooth re-centre the view.


Optional - Another CAM 5 (3rd person cam) button on controller rather than pressing '5':
Replace your_cam5_button?0 with your preferred key/button (if required, see 'How to find a key/button name').
"mix dbgmodremo `(DE_Cam5_?1 * your_cam5_button?0 * c_et_head) + (keyboard.numperiod?0 * ! c_et_head)`"


Adjust Driver seat 'look' speed:
"mix dbgmodsele `(DE_Driver_Seat_Look_Speed_?1 * 30 * c_et_head) + (keyboard.numenter?0 * ! c_et_head)`"

30 <-- It's a multiplier: Higher values = faster and Lower values = slower.
Note: The speed is also linked to your fps, the higher your fps the faster the smooth look motion speed will be. For best results, always cap your fps at a value that your system can maintain across the whole map. Wildly fluctuating fps will cause the smooth motion to speed up and down.


Adjust Passenger, Sleeper & Outside 'look' speed:
"mix dbgnxcrty `(DE_Passenger_Sleeper_Outside_Look_Speed_?1 * 10 * c_et_head) + (keyboard.numslash?0 * ! c_et_head)`"

10 <-- It's a multiplier: Higher values = faster and Lower values = slower.
Note: The speed is also linked to your fps, the higher your fps the faster the smooth look motion speed will be. For best results, always cap your fps at a value that your system can maintain across the whole map. Wildly fluctuating fps will cause the smooth motion to speed up and down.


Adjust 'Walk' speed:
"mix dbgcuracti `(DE_Walk_Speed_?1 * (20 + (40 * camwalk_for * camwalk_run)) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head) + (mouse.button_left?0 * ! c_et_head)`"

20 = 'Walk' speed when using 'Walk Keys Free Roam'.
40 = 'Run' speed when using 'Walk Keys Free Roam'.
They're multipliers: Higher values = faster and Lower values = slower.
Note: The speed is also linked to your fps, the higher your fps the faster the 'walking' will be. For best results, always cap your fps at a value that your system can maintain across the whole map. Wildly fluctuating fps will cause 'walking' to speed up and down.


Optional - Disable 'get in' animation when driving from external cams:
"mix dbgchngsta `(DE_Disable_get_in_animation_for_cam56789_?1 * 0 * c_et_head) + (modifier(ctrl_only, mouse.button_middle?0) * ! c_et_head)`"

0 <-- DE default, get in animation always on.
1 <-- Get in animation disabled.

Note: This disables 'get in' animation when driving from external cams 56789 so that when switching back to cam 1 it's instant, allowing uninterrupted driving.


Zoom Interior Camera - key/button:
Replace your_zoom_button?0 with your preferred key/button (if required, see 'How to find a key/button name').
"mix dbgselacti `(DE_Zoom_view_?1 * your_zoom_button?0 * ! dbgmacrost?0 * ! dbgmacrosa?0 * c_et_head) + (mouse.button_right?0 * ! c_et_head)`"


Optional - Auto zoom when 'toggle' looking at the passenger mirror - Default off:
"mix dbgmacrost `((DE_Auto_zoom_passenger_mirror_?1 * 0 * gt(abs(eyeposyaw), c_et_gv_ext) * sign((eyeposy * ! c_et_pos) + (eyeposx * c_et_pos)) * sign(abs(mouse.rel_position.x?0) + 1)) * c_et_head) + (keyboard.i?0 * ! c_et_head)`"

0 <-- Disable auto zoom passenger mirror (default)
1 <-- Enable auto zoom passenger mirror

Note: This option is setup to only zoom when you 'Toggle' look at the passenger side, using 'Press & Hold' will just view the passenger side as normal.


Optional - Auto zoom dash, when looking down at dash, to further increase visibility - Default off:
"mix dbgmacrosa `((DE_Auto_zoom_dash_?1 * 0 * gt(abs(eyeposroll), 0.8) * sign(abs(mouse.rel_position.x?0) + 1)) * c_et_head) + (keyboard.o?0 * ! c_et_head)`"

0 <-- Disable auto zoom dash (default)
1 <-- Enable auto zoom dash


Optional - Enable mouse for passenger seat, sleeper & outside:
"mix dbgmacrolo `(DE_Mouse_for_passenger_sleeper_outside_?1 * 0 * c_et_head) + (keyboard.p?0 * ! c_et_head)`"

0 <-- Disable basic mouse look (default)
1 <-- Enable basic mouse look

Note 1: Click 'Left Mouse Button' to smooth re-centre the view.
Note 2: This provides a rather rough mouse movement that is not as good as normal mouse movement, but it's useable.


Optional - Change Tobii Eye menu access key:
"mix eyecfg `keyboard.tab?0`" <--- Example using TAB key instead of default (shift + numlock)

==============================================================================

How to find a key/button name:
If you don't know what a key/button is called, do a horn test:
In game assign the key/button to the horn, exit game.
Then open the controls.sii file and look for 'mix horn' to see what it's called.
Example only: "mix horn `joy.b4?0 | semantical.horn?0`"

==============================================================================

Select how you want to control the 'walking' movement when outside:

"Walk Keys Free Roam" - Always use the games 'WALKMODE' keys/buttons regardless of what you are using to drive with.
"Gamepad1 Free Roam" - Thumbstick Steering to turn 'walking' left/right - Thumbstick/Triggers for Throttle & Brake to 'walk' forward/backward - Thumbstick 'Direct' Look, view follows your movement and will centre when you let go.
"Gamepad2 Free Roam" - Thumbstick Steering to turn 'walking' left/right - Thumbstick/Triggers for Throttle & Brake to 'walk' forward/backward - Thumbstick 'Move' Look, view remains as is when you let go, if required, press 'Interior Look Forward' to re-centre.
"Wheel Free Roam" - Steering wheel to turn 'walking' left/right - Throttle & Brake pedals to 'walk' forward/backward.

Edit your config_local.cfg file with the following:
uset g_eye_preset_5 "g:CAM 4 RHD - Walk Keys Free Roam"
uset g_eye_preset_4 "g:CAM 4 LHD - Walk Keys Free Roam"
OR
uset g_eye_preset_5 "g:CAM 4 RHD - Gamepad1 Free Roam"
uset g_eye_preset_4 "g:CAM 4 LHD - Gamepad1 Free Roam"
OR
uset g_eye_preset_5 "g:CAM 4 RHD - Gamepad2 Free Roam"
uset g_eye_preset_4 "g:CAM 4 LHD - Gamepad2 Free Roam"
OR
uset g_eye_preset_5 "g:CAM 4 RHD - Wheel Free Roam"
uset g_eye_preset_4 "g:CAM 4 LHD - Wheel Free Roam"

Close & save your config_local.cfg file.


To change the default WASD keys used for driving but marked as 'complex' in the menu:
Note: You need to edit your 'DE' controls.sii file to make changes for the below options.

Replace "keyboard.a?0" with your preferred key or button to steer left.
"mix dsteerleft `DE?1 * keyboard.a?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

Replace "keyboard.d?0" with your preferred key or button to steer right.
"mix dsteerright `DE?1 * keyboard.d?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

Replace "keyboard.w?0" with your preferred key or button to accelerate.
"mix dforward `DE?1 * keyboard.w?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

Replace "keyboard.s?0" with your preferred key or button to brake/reverse.
"mix dbackward `DE?1 * keyboard.s?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

Note 1: Important, if you just assign your own driving keys via the game keys/buttons menu, your truck will start driving when ever you are 'walking' around it.
Note 2: If you want to disable keyboard driving to use the keys elsewhere, change DE?1 to DE?0. That will disable them and also keep showing as 'complex' as a reminder to not assign keys via the menu.


To change the default WASD keys used for 'walking':
Use the games keys/button menu and scroll down to 'WALKMODE' section.
Assign required keys/buttons to Forward, Back, Left, Right, Run & Crouch.


If your 'WALKMODE' keys are also used by other game functions, then those other functions will operate while you're 'walking':
Example only:
WALKMODE Forward = Up arrow key
Front suspension up = Up arrow key.
To prevent the suspension from moving up while 'walking' forward, do this:
Replace this line:
"mix frontsuspup `keyboard.uarrow?0 | semantical.frontsuspup?0`"

With this line:
"mix frontsuspup `keyboard.uarrow?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

The above means, 'suspension up' will only operate when sat in the driver seat, using a game default external camera or when the 'DE' code is disabled. Therefore 'walking' will no longer interfere with it.

To re-cap, to prevent unwanted functions when 'walking' outside your truck, just add this to the associated lines:
* ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)

==============================================================================

Post 1 - Description: viewtopic.php?p=67254#p67254
Post 2 - Quick start guide: viewtopic.php?p=67255#p67255
Post 3 - Configuration options: viewtopic.php?p=67256#p67256
Post 4 - Manual edits: viewtopic.php?p=67257#p67257
Post 5 - Help / Q & A: viewtopic.php?p=67258#p67258
Last edited by JHTrucker on February 4th, 2025, 4:38 pm, edited 11 times in total.
multimon_config.sii files: viewtopic.php?p=17658#p17658
controls.sii edits: viewtopic.php?p=24744#p24744
Driving Enhancements: viewtopic.php?p=67254#p67254
TrackIR Driving Enhancements: viewtopic.php?p=46613#p46613
User avatar
JHTrucker
Expert
Posts: 1379
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Driving Enhancements

Post by JHTrucker » January 10th, 2025, 10:51 pm

Post 4 of 5 - Driving Enhancements - Manual edits:

For your reference, here's all the 'DE' line edits (added to the supplied 'Quick Start' controls.sii file), so you can quickly apply them to your own controls.sii file.

NOTE: For required MOD and edits to your config_local.cfg file, refer to top of Post 2 'Quick Start Guide': viewtopic.php?p=67255#p67255

Make a backup copy of your controls.sii for safe keeping, just in case.
Edit with notepad/wordpad etc your controls.sii file.
(American/Euro Truck Simulator 2\profiles\Your Profile\controls.sii)

Note: Match the "mix name" and paste the highlighted part into it.

Note: The line edits shown below are in the same order as they appear in the controls.sii file.

"constant c_ht_roll 1.000000"

"mix dbgfovup `DE?1 * (keyboard.numplus?0 * ! c_et_head) + memory(((eyepreset2?0 + eyepreset3?0) * ! c_et_xscale * c_et_yscale * ! dbgfovup?0) + (sign(long_press(dbgfovup, 3100) + sign(keyboard.key1?0 + dbgmodcrea?0) + mouse.button_left?0 + keyboard.esc?0) * dbgfovup?0), ! dbgfovup) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head`"

"mix dbgfovdown `DE?1 * (keyboard.numminus?0 * ! c_et_head) + memory((((long_press(dbgprev, 500) + (dbglockrot?0 * trackiron) + (eyepause?0 * sign(deadzone(c_etwm_yawsc, 0.05)) * trackiron))) * ! dbgfovup * long_press(! c_et_xscale, 1000) * c_et_yscale * ! dbgfovdown?0) + (sign(long_press(dbgfovdown, 3100) + keyboard.key2?0 + keyboard.key3?0 + keyboard.key4?0 + mouse.button_left?0 + keyboard.esc?0 + sign(lookpos3?0 + lookpos4?0 + lookpos5?0 + lookpos6?0 + lookleft?0 + lookright?0 + sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.5))) + sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.5))))) * dbgfovdown?0), ! dbgfovdown) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head`"

"mix dbgfovreset `DE?1 * (modifier(no_modifier, keyboard.nummultiply?0) * ! c_et_head) + memory((sign(keyboard.key4?0 + (eyepause?0 * ! c_et_hv_mode * ! trackiron) + (((eyepause?0 * eyeposx?0 * ! c_et_pos) + (eyepause?0 * eyeposy?0 * c_et_pos)) * ! trackiron) + (eyepause?0 * abs(sign(deadzone(clamp(trackiryaw, -c_et_pos, ! c_et_pos), 0.4))) * trackiron)) * c_et_xscale * c_et_yscale * ! dbgfovreset?0) + (sign((c_et_xscale * long_press(! c_et_yscale, 10)) + sign(keyboard.key1?0 + dbgmodcrea?0) + mouse.button_left?0 + keyboard.esc?0) * dbgfovreset?0), ! dbgfovreset) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head`"

"mix dbgshowhud `DE?1 * (keyboard.del?0 * ! c_et_head) + memory((sign(keyboard.key1?0 + dbgmodcrea?0 + eyepause?0) * c_et_xscale * ! c_et_yscale * sign(! hmdz + ! dbgchngsta) * ! dbgshowhud?0) + (sign(long_press(dbgshowhud, 3100) + mouse.button_left?0 + keyboard.esc?0) * dbgshowhud?0), ! dbgshowhud) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head`"

"mix dbgchngpip `DE?1 * (keyboard.ins?0 * ! c_et_head) + (sign(dbgfovup?0 + dbgfovdown?0 + dbgfovreset?0 + dbgshowhud?0) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head)`"

"mix dbgnextmode `DE?1 * (keyboard.num7?0 * ! c_et_head) + (long_press(dbgchngpip?0, 30) + long_press(dbgchngpip?0, 60) + long_press(dbgchngpip?0, 90) + long_press(dbgchngpip?0, 120) + long_press(dbgchngpip?0, 150) + long_press(dbgchngpip?0, 180) + long_press(dbgchngpip?0, 210) + long_press(dbgchngpip?0, 240) + long_press(dbgchngpip?0, 270) + long_press(dbgchngpip?0, 300) + long_press(dbgchngpip?0, 330) + long_press(dbgchngpip?0, 360) + long_press(dbgchngpip?0, 390) + long_press(dbgchngpip?0, 420) + long_press(dbgchngpip?0, 450) + long_press(dbgchngpip?0, 480) + long_press(dbgchngpip?0, 510) + long_press(dbgchngpip?0, 540) + long_press(dbgchngpip?0, 570) + long_press(dbgchngpip?0, 600) + long_press(dbgchngpip?0, 630) + long_press(dbgchngpip?0, 660) + long_press(dbgchngpip?0, 690) + long_press(dbgchngpip?0, 720) + long_press(dbgchngpip?0, 750) + long_press(dbgchngpip?0, 780) + long_press(dbgchngpip?0, 810) + long_press(dbgchngpip?0, 840) + long_press(dbgchngpip?0, 870) + long_press(dbgchngpip?0, 900) + long_press(dbgchngpip?0, 930) + long_press(dbgchngpip?0, 960) + long_press(dbgchngpip?0, 990) + long_press(dbgchngpip?0, 1020) + long_press(dbgchngpip?0, 1050) + long_press(dbgchngpip?0, 1080) + long_press(dbgchngpip?0, 1110) + long_press(dbgchngpip?0, 1140) + long_press(dbgchngpip?0, 1170) + long_press(dbgchngpip?0, 1200) + long_press(dbgchngpip?0, 1230) + long_press(dbgchngpip?0, 1260) + long_press(dbgchngpip?0, 1290) + long_press(dbgchngpip?0, 1320) + long_press(dbgchngpip?0, 1350) + long_press(dbgchngpip?0, 1380) + long_press(dbgchngpip?0, 1410) + long_press(dbgchngpip?0, 1440) + long_press(dbgchngpip?0, 1470) + long_press(dbgchngpip?0, 1500) + long_press(dbgchngpip?0, 1530) + long_press(dbgchngpip?0, 1560) + long_press(dbgchngpip?0, 1590) + long_press(dbgchngpip?0, 1620) + long_press(dbgchngpip?0, 1650) + long_press(dbgchngpip?0, 1680) + long_press(dbgchngpip?0, 1710) + long_press(dbgchngpip?0, 1740) + long_press(dbgchngpip?0, 1770) + long_press(dbgchngpip?0, 1800) + long_press(dbgchngpip?0, 1830) + long_press(dbgchngpip?0, 1860) + long_press(dbgchngpip?0, 1890) + long_press(dbgchngpip?0, 1920) + long_press(dbgchngpip?0, 1950) + long_press(dbgchngpip?0, 1980) + long_press(dbgchngpip?0, 2010) + long_press(dbgchngpip?0, 2040) + long_press(dbgchngpip?0, 2070) + long_press(dbgchngpip?0, 2100) + long_press(dbgchngpip?0, 2130) + long_press(dbgchngpip?0, 2160) + long_press(dbgchngpip?0, 2190) + long_press(dbgchngpip?0, 2220) + long_press(dbgchngpip?0, 2250) + long_press(dbgchngpip?0, 2280) + long_press(dbgchngpip?0, 2310) + long_press(dbgchngpip?0, 2340) + long_press(dbgchngpip?0, 2370) + long_press(dbgchngpip?0, 2400) + long_press(dbgchngpip?0, 2430) + long_press(dbgchngpip?0, 2460) + long_press(dbgchngpip?0, 2490) + long_press(dbgchngpip?0, 2520) + long_press(dbgchngpip?0, 2550) + long_press(dbgchngpip?0, 2580) + long_press(dbgchngpip?0, 2610) + long_press(dbgchngpip?0, 2640) + long_press(dbgchngpip?0, 2670) + long_press(dbgchngpip?0, 2700) + long_press(dbgchngpip?0, 2730) + long_press(dbgchngpip?0, 2760) + long_press(dbgchngpip?0, 2790) + long_press(dbgchngpip?0, 2820) + long_press(dbgchngpip?0, 2850) + long_press(dbgchngpip?0, 2880) + long_press(dbgchngpip?0, 2910) + long_press(dbgchngpip?0, 2940) + long_press(dbgchngpip?0, 2970)) * 0.01 * c_et_head`"

"mix dbgdraw `DE?1 * (keyboard.num1?0 * ! c_et_head) + long_press(dbgchngpip?0, 3000) * c_et_head`"

"mix dbglockpos `DE?1 * (keyboard.num0?0 * ! c_et_head) + memory((sign(c_et_gv_ext) * ((eyeposx * c_et_pos) + (eyeposy * ! c_et_pos)) * c_et_xscale * c_et_yscale * ! dbglockpos) + (((! eyeposx * c_et_pos) + (! eyeposy * ! c_et_pos)) * ! dbgfovup?0 * dbglockpos) + long_press(dbglockpos * dbgfovup?0 * dbglockpos, 1000), ! dbglockpos) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head`"

"mix dbglockrot `(memory((eyepause?0 * sign(abs(deadzone(clamp(-trackiryaw?0, -c_et_pos, ! c_et_pos), 0.375))) * ! sign(abs(deadzone(trackiryaw?0, 0.55))) * c_et_xscale * c_et_yscale * trackiron * ! dbglockrot) + (eyepause?0 * sign(abs(deadzone(clamp(trackiryaw?0, -c_et_pos, ! c_et_pos), 0.375))) * ! sign(abs(deadzone(trackiryaw?0, 0.55))) * ! c_et_xscale * c_et_yscale * trackiron * ! dbglockrot) + long_press(dbglockrot, 3000), ! dbglockrot) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head) + (keyboard.numperiod?0 * ! c_et_head)`"

"mix dbgslowdwn `(DE?1 * memory(long_press((sign(lookpos1 + (mouse.button_left?0 * dbgmacrolo) + dbgprev?0) * ! dbgslowdwn * ((! c_et_xscale * c_et_yscale) + (c_et_xscale * ! c_et_yscale))) + long_press(dbgslowdwn, 600), 10), ! dbgslowdwn) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head) + (keyboard.pgdn?0 * ! c_et_head)`"

"mix dbgspeedup `(DE?1 * (long_press(dbgslowdwn, 20) + long_press(dbgslowdwn, 40) + long_press(dbgslowdwn, 60) + long_press(dbgslowdwn, 80) + long_press(dbgslowdwn, 100) + long_press(dbgslowdwn, 120) + long_press(dbgslowdwn, 140) + long_press(dbgslowdwn, 160) + long_press(dbgslowdwn, 180) + long_press(dbgslowdwn, 200) + long_press(dbgslowdwn, 220) + long_press(dbgslowdwn, 240) + long_press(dbgslowdwn, 260) + long_press(dbgslowdwn, 280) + long_press(dbgslowdwn, 300) + long_press(dbgslowdwn, 320) + long_press(dbgslowdwn, 340) + long_press(dbgslowdwn, 360) + long_press(dbgslowdwn, 380) + long_press(dbgslowdwn, 400) + long_press(dbgslowdwn, 420) + long_press(dbgslowdwn, 440) + long_press(dbgslowdwn, 460) + long_press(dbgslowdwn, 480) + long_press(dbgslowdwn, 500)) * 0.04 * c_et_head) + (keyboard.pgup?0 * ! c_et_head)`"

"mix dbgprev `(DE?1 * memory(long_press((sign(sign(keyboard.key1?0 + dbgmodcrea?0) + (eyepause?0 * ! trackiron)) * ! dbgprev * ((! c_et_xscale * c_et_yscale) + (c_et_xscale * ! c_et_yscale))) + long_press(dbgprev, 600), 10), ! dbgprev) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head) + (keyboard.pgdn?0 * ! c_et_head)`"

"mix dbgmodcrea `(DE_Cam1_?1 * your_cam1_button?0 * c_et_head) + (keyboard.num0?0 * ! c_et_head)`"

"mix dbgmodremo `(DE_Cam5_?1 * your_cam5_button?0 * c_et_head) + (keyboard.numperiod?0 * ! c_et_head)`"

"mix dbgmodsele `(DE_Driver_Seat_Look_Speed_?1 * 30 * c_et_head) + (keyboard.numenter?0 * ! c_et_head)`"

"mix dbgnxcrty `(DE_Passenger_Sleeper_Outside_Look_Speed_?1 * 10 * c_et_head) + (keyboard.numslash?0 * ! c_et_head)`"

"mix dbgcuracti `(DE_Walk_Speed_?1 * (20 + (40 * camwalk_for * camwalk_run)) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head) + (mouse.button_left?0 * ! c_et_head)`"

"mix dbgchngsta `(DE_Disable_get_in_animation_for_cam56789_?1 * 0 * c_et_head) + (modifier(ctrl_only, mouse.button_middle?0) * ! c_et_head)`"

"mix dbgselacti `(DE_Zoom_view_?1 * your_zoom_button?0 * ! dbgmacrost?0 * ! dbgmacrosa?0 * c_et_head) + (mouse.button_right?0 * ! c_et_head)`"

"mix dbgmacrost `((DE_Auto_zoom_passenger_mirror_?1 * 0 * gt(abs(eyeposyaw), c_et_gv_ext) * sign((eyeposy * ! c_et_pos) + (eyeposx * c_et_pos)) * sign(abs(mouse.rel_position.x?0) + 1)) * c_et_head) + (keyboard.i?0 * ! c_et_head)`"

"mix dbgmacrosa `((DE_Auto_zoom_dash_?1 * 0 * gt(abs(eyeposroll), 0.8) * sign(abs(mouse.rel_position.x?0) + 1)) * c_et_head) + (keyboard.o?0 * ! c_et_head)`"

"mix dbgmacrolo `(DE_Mouse_for_passenger_sleeper_outside_?1 * 0 * c_et_head) + (keyboard.p?0 * ! c_et_head)`"

"mix cam1 `DE?1 * (((eyepreset1?0 | eyepreset2?0 | eyepreset3?0) * sign(sign(! lookpos3?0 * ! lookpos4?0 * ! lookpos5?0 * ! lookpos6?0 * ! lookleft?0 * ! lookright?0 * ! sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.5))) * ! sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.5))) * c_et_xscale * c_et_yscale) + dbgshowhud?0 + hmdz?0)) * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head) | (sign(keyboard.key1?0 + dbgmodcrea?0) * ! c_et_head)`"

"mix cam2 `DE?1 * sign(keyboard.key5?0 + dbgmodremo?0) * c_et_head | keyboard.key2?0 * ! c_et_head`"

"mix cam3 `DE?1 * keyboard.key6?0 * c_et_head | keyboard.key3?0 * ! c_et_head`"

"mix cam4 `DE?1 * keyboard.key7?0 * c_et_head | keyboard.key4?0 * ! c_et_head`"

"mix cam5 `DE?1 * (sign(dbgdraw?0 + eyepause?0 + keyboard.key1?0 + dbgmodcrea?0) * c_et_xscale * ! c_et_yscale * sign(abs(mouse.rel_position.x?0) + 1) * c_et_head) | (keyboard.key5?0 * ! c_et_head)`"

"mix cam6 `DE?1 * modifier(! alt_only, keyboard.key9?0) * c_et_head | keyboard.key6?0 * ! c_et_head`"

"mix cam7 `DE?1 * modifier(alt_only, keyboard.key9?0) * c_et_head | keyboard.key7?0 * ! c_et_head`"

"mix cam8 `DE?1 * keyboard.key8?0 * 1`"

"mix camcycle `DE?1 * keyboard.key9?0 * ! c_et_head`"

"mix camzoom `DE?1 * sign((long_press(dbgselacti?0, 500) + memory(short_press((dbgselacti?0 * c_et_xscale * c_et_yscale) + (gt(dbgnextmode, 0.05) * lt(dbgnextmode, 0.1) * camzoom), 499), ! camzoom)) + (sign(dbgmacrost?0 + dbgmacrosa?0) * c_et_xscale * c_et_yscale * ! dbgchngpip * ! camzoom)) * c_et_head`"

"mix lookpos1 `keyboard.num5?0 | semantical.lookpos1?0`"

"mix lookpos2 `keyboard.num9?0 | semantical.lookpos2?0`"

"mix lookpos3 `keyboard.num2?0 | semantical.lookpos3?0`"

"mix lookpos4 `keyboard.num6?0 | semantical.lookpos4?0`"

"mix lookpos5 `keyboard.num4?0 | semantical.lookpos5?0`"

"mix lookpos6 `keyboard.num8?0 | semantical.lookpos6?0`"

"mix trackiron `DE?1 * memory(long_press((((! sign(abs(c_et_gv_inf - 0.123456)) * ! trackiron) + (sign(abs(c_et_gv_inf - 0.123456)) * trackiron)) * trackir.device.active?0 * c_et_xscale * c_et_yscale), 1), ! trackiron) * c_et_head`"

"mix trackiryaw `DE?1 * (((max(min(memory(sign(abs(mouse.rel_position.x?0 * c_msens) * dbgmacrolo) | sign(abs(deadzone(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.4))) | lookpos5?0 | lookpos4?0 | lookleft?0 | lookright?0 | dbgchngpip?0 | gte(dbgspeedup, 0.95), trackiryaw + sel(sign(clamp(-mouse.rel_position.x?0 * c_msens, -0.0, 1.0)) * dbgmacrolo | sign(clamp(deadzone(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.4), -0.0, 1.0)) | lookpos5?0 | lookleft?0, (0.00125 * dbgnxcrty * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)), (-0.00125 * dbgnxcrty * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)))), 0.5 * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)), -0.5 * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)) * sign(dbgnxcrty) * sign(abs(c_et_rollsc - 2))) + (deadzone(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.4) * c_et_pitchsc * ! sign(abs(c_et_rollsc - 2)) * 0.4)) * (1 - dbgspeedup) * ! trackiron * c_et_head) + (trackiron * trackir.device.position.yaw?0 * c_et_head)`"

"mix trackirpitch `DE?1 * (((max(min(memory(sign(abs(mouse.rel_position.y?0 * sel(c_minvert, -c_msens, c_msens)) * dbgmacrolo) | sign(abs(deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.4))) | lookpos6?0 | lookpos3?0 | dbgchngpip?0 | gte(dbgspeedup, 0.95), trackirpitch + sel(sign(clamp(-mouse.rel_position.y?0 * sel(c_minvert, -c_msens, c_msens), -0.0, 1.0)) * dbgmacrolo | sign(clamp(deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.4) * 0.5, -0.0, 1.0)) | lookpos6?0, (0.001 * dbgnxcrty * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)), (-0.001 * dbgnxcrty * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)))), 0.25 * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)), -0.25 * ! dbgchngpip?0 * ! gte(dbgspeedup, 0.95)) * sign(dbgnxcrty) * sign(abs(c_et_rollsc - 2))) + (deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.4) * c_et_pitchsc * ! sign(abs(c_et_rollsc - 2)) * 0.3)) * (1 - dbgspeedup) * ! trackiron * c_et_head) + (trackiron * trackir.device.position.pitch?0 * c_et_head)`"

"mix trackirroll `DE?1 * trackiron * trackir.device.position.roll?0`"

"mix trackirx `DE?1 * trackiron * trackir.device.position.x?0`"

"mix trackiry `DE?1 * trackiron * trackir.device.position.y?0`"

"mix trackirz `DE?1 * trackiron * trackir.device.position.z?0`"

"mix hmdon `DE_spare?0`"

"mix hmdyaw `DE_spare?0`"

"mix hmdpitch `DE_spare?0`"

"mix hmdroll `DE?1 * (1.0 - (abs(clamp((dbgfovup) - dbgnextmode - (dbgdraw * 0.01), -1.0, 1.0)))) * sign(! c_et_xscale + dbgfovreset?0 + dbgshowhud?0) * c_et_head`"

"mix hmdx `DE_spare?0`"

"mix hmdy `DE_spare?0`"

"mix hmdz `DE?1 * memory(short_press((((cam2 | cam3 | cam4 | cam6 | cam7 | cam8) * ! hmdz) + ((cam1 | camdbg) * hmdz)), 1000), ! hmdz) * c_et_head`"

"mix eyepresenton `DE_spare?0`"

"mix eyepresent `DE_spare?0`"

"mix eyegazeon `DE_spare?0`"

"mix eyegazex `DE_spare?0`"

"mix eyegazey `DE?1 * memory(short_press((sign(lookpos6?0 + sign(clamp(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555), -0.0, 1.0))) * c_et_xscale * c_et_yscale * sign(c_et_gv_ext) * long_press(! eyegazey, 500)) + (sign(lookpos9?0 + lookpos8?0 + lookpos7?0 + lookpos6?0 + lookpos5?0 + lookpos4?0 + lookpos3?0 + lookpos2?0 + lookpos1?0 + lookleft?0 + lookright?0 + sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555))) + sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555))) + cam1?0 + keyboard.key4?0 + eyepreset2?0 + eyepreset3?0 + eyepreset4?0 + eyepreset5?0 + headtren?0) * long_press(eyegazey, 500)), 600), ! eyegazey) * c_et_head`"

"mix eyeposon `DE_spare?0`"

"mix eyeposyaw `DE?1 * (max(min(memory(long_press(sign(lookpos5?0 + lookleft?0 + sign(clamp(deadzone(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555), -0.0, 1.0))), 1) * ! sign((lookpos5?0 * lookpos4?0) + (lookleft?0 * lookright?0)) | eyeposx?0 | 1, eyeposyaw + sel(long_press(sign(lookpos5?0 + lookleft?0 + sign(clamp(deadzone(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555), -0.0, 1.0))), 1) | eyeposx?0, (0.0025 * c_et_gv_ext * 2 * dbgmodsele), (-0.0025 * c_et_gv_ext * 2 * dbgmodsele))), c_et_gv_ext * 2), -0.0) + max(min(memory(long_press(sign(lookpos4?0 + lookright?0 + sign(clamp(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555), -0.0, 1.0))), 1) * ! sign((lookpos5?0 * lookpos4?0) + (lookleft?0 * lookright?0)) | eyeposy?0 | 1, eyeposyaw + sel(long_press(sign(lookpos4?0 + lookright?0 + sign(clamp(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555), -0.0, 1.0))), 1) | eyeposy?0, (-0.0025 * c_et_gv_ext * 2 * dbgmodsele), (0.0025 * c_et_gv_ext * 2 * dbgmodsele))), 0.0), -c_et_gv_ext * 2)) * sign(dbgmodsele) * c_et_hv_mode * ! trackiron * c_et_head`"

"mix eyepospitch `DE?1 * (max(min(memory(long_press(sign((lookpos5?0 * lookpos4?0) + (lookleft?0 * lookright?0) + lookpos3?0 + sign(clamp(deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555), -0.0, 1.0))), 1) | eyeposz?0 | 1, eyepospitch + sel(long_press(sign((lookpos5?0 * lookpos4?0) + (lookleft?0 * lookright?0) + lookpos3?0 + sign(clamp(deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555), -0.0, 1.0))), 1) | eyeposz?0, (0.0025 * sign(0.5 - c_et_pos) * dbgmodsele), (-0.0025 * sign(0.5 - c_et_pos) * dbgmodsele))), 1.0 * ! c_et_pos), -1.0 * c_et_pos)) * sign(dbgmodsele) * c_et_hv_mode * ! trackiron * c_et_head`"

"mix eyeposroll `DE?1 * (max(min(memory(lookpos6?0 + sign(clamp(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555), -0.0, 1.0)) | eyegazey?0 | 1, eyeposroll + sel(long_press(lookpos6?0 + sign(clamp(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555), -0.0, 1.0)), 1) | eyegazey?0, (0.005 * dbgmodsele), (-0.005 * dbgmodsele))), 1.0), -0.0)) * sign(dbgmodsele) * c_et_hv_mode * ! trackiron * c_et_head`"

"mix eyeposx `DE?1 * memory(short_press((sign(long_press(sign(lookpos5?0 + lookleft?0) * ! lookpos4?0 * ! lookright?0, 50) + sign(clamp(deadzone(-sel(c_jilooklr?0, -j_look_lr?0, j_look_lr?0), 0.555), -0.0, 1.0))) * c_et_xscale * c_et_yscale * sign(c_et_gv_ext) * long_press(! eyeposx, 500)) + (sign(lookpos9?0 + lookpos8?0 + lookpos7?0 + lookpos6?0 + lookpos5?0 + lookpos4?0 + lookpos3?0 + lookpos2?0 + lookpos1?0 + lookleft?0 + lookright?0 + sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555))) + sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555))) + cam1?0 + eyepreset2?0 + eyepreset3?0 + eyepreset4?0 + eyepreset5?0 + headtren?0) * long_press(eyeposx, 500 * ! lookpos4?0 * ! lookright?0)), 600), ! eyeposx) * c_et_head`"

"mix eyeposy `DE?1 * memory(short_press((sign(long_press(sign(lookpos4?0 + lookright?0) * ! lookpos5?0 * ! lookleft?0, 50) + sign(clamp(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555), -0.0, 1.0))) * c_et_xscale * c_et_yscale * sign(c_et_gv_ext) * long_press(! eyeposy, 500)) + (sign(lookpos9?0 + lookpos8?0 + lookpos7?0 + lookpos6?0 + lookpos5?0 + lookpos4?0 + lookpos3?0 + lookpos2?0 + lookpos1?0 + lookleft?0 + lookright?0 + sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555))) + sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555))) + cam1?0 + eyepreset2?0 + eyepreset3?0 + eyepreset4?0 + eyepreset5?0 + headtren?0) * long_press(eyeposy, 500 * ! lookpos5?0 * ! lookleft?0)), 600), ! eyeposy) * c_et_head`"

"mix eyeposz `DE?1 * memory(short_press((sign(lookpos3?0 + long_press(lookpos5?0 * lookpos4?0, 50) + long_press(lookleft?0 * lookright?0, 50) + sign(clamp(deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555), -0.0, 1.0))) * c_et_xscale * c_et_yscale * sign(c_et_gv_ext) * long_press(! eyeposz, 500)) + (sign(lookpos9?0 + lookpos8?0 + lookpos7?0 + lookpos6?0 + lookpos5?0 + lookpos4?0 + lookpos3?0 + lookpos2?0 + lookpos1?0 + lookleft?0 + lookright?0 + sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.555))) + sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.555))) + cam1?0 + eyepreset2?0 + eyepreset3?0 + eyepreset4?0 + eyepreset5?0 + headtren?0) * long_press(eyeposz, 500)), 600), ! eyeposz) * c_et_head`"

"mix eyeposwmyaw `DE?1 * max(min(memory(sign(abs(clamp(-sel(c_jisteer, -j_steer?0, j_steer?0), -1.0, 1.0))) | camwalk_left?0 | camwalk_righ?0 | c_et_yscale, eyeposwmyaw + sel(sign(abs(clamp(-sel(c_jisteer, -j_steer?0, j_steer?0), -1.0, 1.0))) * c_et_pitchsc | (camwalk_left?0 | camwalk_righ?0) * ! c_et_pitchsc * sign(c_et_rollsc), (0.0006 * dbgcuracti * pow(deadzone(clamp(-sel(c_jisteer, -j_steer?0, j_steer?0) * ((6 * ! sign(abs(c_et_rollsc - 1))) + (1 * ! sign(abs(c_et_rollsc - 2))) + (1 * ! sign(abs(c_et_rollsc - 3)))), -1.0, 1.0), c_steer_dz + 0.033), 3) * c_et_pitchsc * sign(c_et_rollsc)) + ((((0.0004 * ! camwalk_run) + (0.0001 * camwalk_run)) * dbgcuracti) * (camwalk_left?0 - camwalk_righ?0) * ! c_et_pitchsc * sign(c_et_rollsc)) + (-2.0 * gte(eyeposwmyaw, 1.0)) + (2.0 * lte(eyeposwmyaw, -1.0)), (0.0))), 1.0 * ! c_et_yscale), -1.0 * ! c_et_yscale) * c_et_head`"

"mix eyeposwmpitc `DE?1 * max(min((sign(camwalk_for?0 + camwalk_back?0) * ! c_et_pitchsc) + (sign(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz) + normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz)) * c_et_pitchsc), eyeposwmpitc + sel((sign(camwalk_for?0 + camwalk_back?0) * ! c_et_pitchsc) + (sign(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz) + normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz)) * c_et_pitchsc), (0.004 * dbgcuracti * sign(camwalk_for?0 + camwalk_back?0) * ! c_et_pitchsc) + (0.004 * dbgcuracti * ((normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz) + normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz)) * c_et_pitchsc)), -1.0), 1.0), 0.0) * ! gte(eyeposwmpitc?0, 1.0) * ! c_et_yscale * c_et_head`"

"mix eyeposwmroll `DE_spare?0`"

"mix eyeposwmx `DE?1 * (max(min(memory((camwalk_for?0 | camwalk_back?0 | sign(normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz)) | sign(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz)) | c_et_yscale | ! camdbg?0), eyeposwmx + sel(camwalk_for?0 | camwalk_back?0 | sign(normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz)) | sign(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz)), (-0.00005 * ((camwalk_for?0 * ! c_et_pitchsc) + (3 * pow(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz), 3) * c_et_pitchsc)) * clamp(eyeposwmyaw * 2, -1.0, 1.0)) + (0.00005 * ((camwalk_for?0 * ! c_et_pitchsc) + (3 * pow(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz), 3) * c_et_pitchsc)) * clamp(deadzone(eyeposwmyaw, 0.5), -1.0, 1.0)) + (-0.00005 * ((camwalk_back?0 * ! c_et_pitchsc) + (normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz) * c_et_pitchsc)) * clamp(-eyeposwmyaw * 2, -1.0, 1.0)) + (-0.00005 * ((camwalk_back?0 * ! c_et_pitchsc) + (normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz) * c_et_pitchsc)) * clamp(deadzone(eyeposwmyaw, 0.5), -1.0, 1.0)), (0.0)) * dbgcuracti * 0.25), 1.0 * ! c_et_yscale * ! camdbg?0), -1.0 * ! c_et_yscale * ! camdbg?0)) * c_et_head`"

"mix eyeposwmy `DE?1 * (max(min(memory(camwalk_crou?0 | 1, eyeposwmy + sel(long_press(camwalk_crou?0, 1), (0.005 * dbgmodsele), (-0.005 * dbgmodsele))), 1.0 * ! c_et_yscale), -0.0)) * sign(dbgmodsele) * ! trackiron * c_et_head`"

"mix eyeposwmz `DE?1 * (max(min(memory((camwalk_for?0 | camwalk_back?0 | sign(normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz)) | sign(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz)) | c_et_yscale | ! camdbg?0), eyeposwmz + sel(camwalk_for?0 | sign(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz)), (-0.00005 * ((camwalk_for?0 * ! c_et_pitchsc) + (3 * pow(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz), 3) * c_et_pitchsc)) * (1 - abs(clamp(eyeposwmyaw * 2, -1.0, 1.0)))) + (0.00005 * ((camwalk_for?0 * ! c_et_pitchsc) + (3 * pow(normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz), 3) * c_et_pitchsc)) * abs(clamp(deadzone(eyeposwmyaw, 0.5), -1.0, 1.0))), (0.00005 * ((camwalk_back?0 * ! c_et_pitchsc) + (normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz) * c_et_pitchsc)) * (1 - abs(clamp(eyeposwmyaw * 2, -1.0, 1.0)))) + (0.00005 * ((camwalk_back?0 * ! c_et_pitchsc) + (normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz) * c_et_pitchsc)) * -abs(deadzone(eyeposwmyaw, 0.5)))) * dbgcuracti * 0.25), 1.0 * ! c_et_yscale * ! camdbg?0), -1.0 * ! c_et_yscale * ! camdbg?0)) * c_et_head`"

"mix headtron `DE?1 * (c_et_hv_mode * c_ht_on | trackiron | ! sign(abs(c_et_gv_inf - 0.123456)) | dbgfovup?0 | dbgfovdown?0 | dbgfovreset?0 | dbgshowhud?0 | ! c_et_xscale | ! c_et_yscale) * c_et_head`"

"mix headtryaw `DE?1 * ((((((eyeposyaw + eyepospitch) * c_et_hv_mode * c_et_xscale * sign(dbgmodsele) * ! trackiron)) * c_et_yscale * ! dbgfovup?0 * ! dbgfovdown?0 * ! dbgfovreset?0 * ! dbgshowhud?0) + (trackiryaw * sign(c_et_xscale + ! sign(deadzone(c_etwm_yawsc, 0.05))) * c_et_yscale * ! dbgfovreset?0 * ! dbgshowhud?0 * trackiron) + (((sign(0.5 - c_et_pos) * 25.0) + trackiryaw + eyeposwmyaw) * ! c_et_yscale * ! dbgshowhud?0) + (((clamp(trackiryaw, -0.5, 0.5) * ! sign(deadzone(c_etwm_yawsc, 0.05)) * gte(hmdroll, 0.99) * ! trackiron) + (clamp(trackiryaw, -(c_et_gv_ext * 2), (c_et_gv_ext * 2)) * sign(deadzone(c_etwm_yawsc, 0.05)) * gte(hmdroll, 0.99)) + (((((clamp(hmdroll, -0.0, 0.25) * 2.0) - (deadzone(hmdroll, 0.8) * 0.5)) * dbgfovup?0 * sign(c_et_pos - 0.5)) + (((clamp(-hmdroll, -0.2, 0.0) * 2.0) + (deadzone(hmdroll, 0.8) * 0.4)) * dbgfovdown?0 * sign(c_et_pos - 0.5))) * ! sign(deadzone(c_etwm_yawsc, 0.05)) * ! dbglockrot) + ((((clamp((dbglockpos * 0.388888) + (hmdroll * 2.5), -0.0, 0.7) - (deadzone(clamp(hmdroll, -0.0, 0.7), 0.4) * 1.4)) * dbgfovup?0) + (((-c_et_hv_exp + 3.0) * 0.25) * deadzone(hmdroll * sign(c_et_pos - 0.5), (0.7 * dbgfovup?0) + (0.1 * dbgfovdown?0))) - ((clamp(hmdroll * 5, -0.0, 0.5) - deadzone(hmdroll, 0.5) * 0.5) * 0.6 * sign(! gte(abs(c_et_yawsc - 2.5), 0.5)) * dbgfovdown?0)) * sign(c_et_pos - 0.5) * sign(deadzone(c_etwm_yawsc, 0.05)))) * ! c_et_xscale * ! dbgfovreset?0 * ! dbgshowhud?0) + (((-(c_et_gv_ext * 2 * ((eyeposx * ! c_et_pos) + (eyeposy * c_et_pos))) + clamp((1 - hmdroll) * (1.5 + (c_et_gv_ext * 8 * ((eyeposx * ! c_et_pos) + (eyeposy * c_et_pos)))), -0.0, 0.5 + (c_et_gv_ext * 2 * ((eyeposx * ! c_et_pos) + (eyeposy * c_et_pos))))) * c_et_yscale * dbgfovreset?0 * sign(c_et_pos - 0.5)) + ((-0.5 - clamp((1 - hmdroll) * 2.0, -0.0, 0.2125) * 1.5) * ! c_et_yscale * dbgshowhud?0 * sign(0.5 - c_et_pos)) + (((-0.5 * sign(deadzone(abs(headtry?0), 0.2125))) + ((0.0 - (hmdroll * 0.9)) * ! sign(deadzone(abs(headtry?0), 0.2125)))) * sign(0.5 - c_et_pos) * c_et_yscale * dbgshowhud?0))) * c_et_head)`"

"mix headtrpitch `DE?1 * (-0.125 * eyeposroll * c_et_xscale * c_et_yscale * c_et_head) + (((((clamp(trackirpitch, -0.5, 0.5) * c_et_yscale * ! dbgchngpip?0 * trackiron) + (clamp(trackirpitch, -0.5, 0.5) * ! c_et_yscale * ! dbgshowhud?0)) * c_et_xscale) + (((clamp(trackirpitch, (-0.0 - (c_etwm_pitsc * 0.085) + (-0.175 + clamp((c_etwm_pitsc - 2.5) * 0.1, -0.0, 0.25))), 1.0 ) * gte(hmdroll, 0.99)) + -((clamp(hmdroll, -0.0, 0.5) - deadzone(hmdroll, 0.5) * 0.5) * 0.4 * ! sign(deadzone(c_etwm_yawsc, 0.05))) + (((((c_etwm_pitsc - 2.5) * 0.2) * deadzone(clamp(hmdroll, -0.0, 1.0), 0.5)) + -((clamp(hmdroll * 6, -0.5, 0.5) - deadzone(hmdroll * 2, 0.5) * 0.5) * 0.6 * dbgfovdown?0)) * sign(deadzone(c_etwm_yawsc, 0.05)))) * ! c_et_xscale * ! dbgfovreset?0 * ! dbgshowhud?0) + (((clamp(-(1 - hmdroll), -0.2, 0.0) + (clamp(deadzone(1 - hmdroll, 0.41), -0.0, 0.6) * 0.666)) * c_et_yscale * dbgfovreset?0) + ((0.22 - clamp((1 - hmdroll) * 2.0, -0.0, 0.22)) * ! c_et_yscale * dbgshowhud?0) + (clamp(hmdroll - 0.26, -0.0, 0.3) * 0.666 * c_et_yscale * dbgshowhud?0))) * c_et_head)`"

"mix headtrroll `DE?1 * (((clamp(hmdroll, -0.0, 0.5) - deadzone(hmdroll, 0.5) * 0.5) * 0.3 * ! c_et_xscale * sign(0.5 - c_et_pos) * ! dbgfovreset?0 * ! dbgshowhud?0) + (trackirroll * c_ht_roll * c_et_xscale * c_et_yscale * ! dbgfovreset?0) + (trackirroll * c_et_xscale * ! c_et_yscale * ! dbgshowhud?0) + (trackirroll * ! c_et_xscale * gte(hmdroll, 0.99))) * c_et_head`"

"mix headtrx `DE?1 * (((((clamp(trackirx, -0.1, 0.1) * c_et_yscale) + (1.15 * ! c_et_yscale * sign(c_et_pos - 0.5)) + (-eyeposwmx * 200 * ! c_et_yscale * sign(c_et_rollsc))) * c_et_xscale * ! dbgchngpip?0) + (((((c_et_yawsc - 2.5) * 0.8) * hmdroll * ! sign(deadzone(c_etwm_yawsc, 0.05))) + ((clamp(hmdroll * 2, -0.0, 0.65) - (deadzone(hmdroll, 0.6) * 0.65)) * sign(0.5 - c_et_pos) * sign(deadzone(c_etwm_yawsc, 0.05)))) * ! c_et_xscale * ! dbgfovreset?0 * ! dbgshowhud?0) + ((clamp(-(1 - hmdroll), -0.495, 0.0) * sign(0.5 - c_et_pos) * c_et_yscale * dbgfovreset?0) + (-1.15 * sign(0.5 - c_et_pos) * ! c_et_yscale * dbgshowhud?0) + (-clamp(hmdroll - 0.2, -0.0, 0.495) * sign(0.5 - c_et_pos) * c_et_yscale * dbgshowhud?0))) * c_et_head)`"

"mix headtry `DE?1 * (-0.1 * eyeposroll * c_et_xscale * c_et_yscale * ! trackiron * c_et_head) + (((((clamp(trackiry, -0.05, 0.05) * c_et_yscale) + ((-0.9 - (eyeposwmy * 0.5) + clamp(trackiry, -1.0, 0.15) + (eyeposwmpitc * 0.04)) * ! c_et_yscale * ! dbgshowhud?0)) * c_et_xscale * ! dbgchngpip?0) + ((((clamp(hmdroll, -0.0, 0.5) - (deadzone(hmdroll, 0.5) * 0.5)) * 0.45 * ! sign(deadzone(c_etwm_yawsc, 0.05))) + ((clamp(hmdroll, -0.0, (0.15 + (c_etwm_yawsc * 0.04))) + (((c_et_pitchsc - 2.5) * 0.45) - ((0.15 + (c_etwm_yawsc * 0.04)) * hmdroll)) * deadzone(clamp(hmdroll * (1.0 + (c_et_pitchsc * 0.1)), -0.0, 1.0), 0.35 + (c_etwm_yawsc * 0.08))) * sign(deadzone(c_etwm_yawsc, 0.05)))) * ! c_et_xscale * ! dbgfovreset?0 * ! dbgshowhud?0) + ((clamp(-deadzone((1 - hmdroll), 0.3) * 0.4, -1.0, 0.0) * c_et_yscale * dbgfovreset?0) + (-0.9 * ! c_et_yscale * dbgshowhud?0) + (deadzone(-clamp(hmdroll * 0.7, -0.0, 1.0), 0.2125) * c_et_yscale * dbgshowhud?0))) * c_et_head)`"

"mix headtrz `DE?1 * (-0.35 * eyeposroll * c_et_xscale * c_et_yscale * ! trackiron * c_et_head) + (((((clamp(trackirz, -0.2, 0.05) * c_et_yscale) + (-eyeposwmz * 200 * ! c_et_yscale * sign(c_et_rollsc))) * c_et_xscale * ! dbgchngpip?0) + ((((c_etwm_yawsc * 0.5)) * deadzone(hmdroll, 0.3)) * ! c_et_xscale * ! dbgfovreset?0 * ! dbgshowhud?0)) * c_et_head)`"

"mix headtrwmon `trackiron | ! sign(abs(c_et_gv_inf - 0.123456))`"

"mix headtrwmyaw `sel(trackiron, trackiryaw, 0)`"

"mix headtrwmpitc `sel(trackiron, trackirpitch, 0)`"

"mix headtrwmroll `sel(trackiron & c_ht_roll, trackirroll, 0)`"

"mix headtrwmx `clamp(sel(trackiron, trackirx, 0), -0.1, 0.1)`"

"mix headtrwmy `clamp(sel(trackiron, trackiry, 0), -0.1, 0.1)`"

"mix headtrwmz `clamp(sel(trackiron, trackirz, 0), -0.1, 0.1)`"

"mix dsteerleft `DE?1 * keyboard.a?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix dsteerright `DE?1 * keyboard.d?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix steering `DE?1 * (dsteering - memory(j_steer_c?1, (pow(normalize(abs(sel(c_jisteer, -j_steer?0, j_steer?0)), c_steer_dz), (1.0 + c_steer_func * 0.5)) * sign(sel(c_jisteer, -j_steer?0, j_steer?0)))) - semantical.steering?0) * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix msteering `DE?1 * -mouse.rel_position.x?0 * c_msens * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix mpedals `DE?1 * -mouse.rel_position.y?0 * c_msens * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix dforward `DE?1 * keyboard.w?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix dbackward `DE?1 * keyboard.s?0 * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix aforward `DE?1 * (memory(j_throttle_c?1, normalize(sel(c_jzthrottle, sel(c_jithrottle, -j_throttle?0, j_throttle?0), sel(c_jithrottle, j_throttle?1 * -0.5 + 0.5, j_throttle?-1 * 0.5 + 0.5)), c_throt_dz)) + semantical.aforward?0) * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix abackward `DE?1 * (memory(j_brake_c?1, normalize(sel(c_jzbrake, sel(c_jibrake, -j_brake?0, j_brake?0), sel(c_jibrake, j_brake?1 * -0.5 + 0.5, j_brake?-1 * 0.5 + 0.5)), c_brake_dz)) + semantical.abackward?0) * ! dbgchngpip * sign((c_et_xscale * c_et_yscale) + hmdz + ! c_et_head)`"

"mix clutch `DE?1 * (memory(j_clutch_c?1, normalize(sel(c_jzclutch, sel(c_jiclutch, -j_clutch?0, j_clutch?0), sel(c_jiclutch, j_clutch?1 * -0.5 + 0.5, j_clutch?-1 * 0.5 + 0.5)), c_clutch_dz)) + semantical.clutch?0) + (! c_et_yscale * ! hmdz * c_et_head)`"

"mix headtren `DE?1 * (abs(mouse.rel_position.x?0) * c_et_xscale * c_et_yscale * c_ht_on * c_et_hv_inf * c_et_head) | (lookpos3?0 | lookpos4?0 | lookpos5?0 | lookpos6?0 | lookleft?0 | lookright?0 | sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.5))) | sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.5))) | keyboard.key1?0 | dbgmodcrea?0) * ! c_ht_on * c_et_head`"

"mix eyepreset1 `DE?1 * ((long_press(dbgchngpip?0, 600) * dbgshowhud?0 * ! c_et_yscale * sign(! hmdz + ! dbgchngsta) | (sign(keyboard.key1?0 + dbgmodcrea?0 + eyepause?0) * hmdz * dbgchngsta) | dbgdraw?0 * dbgfovdown?0 * ! c_et_xscale | sign(keyboard.key1?0 + dbgmodcrea?0) * c_et_xscale * c_et_yscale | (sign(lookpos3?0 + lookpos4?0 + lookpos5?0 + lookpos6?0 + lookleft?0 + lookright?0 + ((sign(abs(deadzone(sel(c_jilooklr, -j_look_lr?0, j_look_lr?0), 0.5))) + sign(abs(deadzone(sel(c_jilookud, -j_look_ud?0, j_look_ud?0), 0.5)))) * c_et_hv_mode)) * c_et_xscale * c_et_yscale)) * c_et_head)`"

"mix eyepreset2 `DE?1 * (keyboard.key2?0 + (dbglockrot?0 * trackiron)) * c_et_xscale * c_et_yscale * ! hmdz * c_et_head`"

"mix eyepreset3 `DE?1 * (sign(keyboard.key3?0 + (((eyepause?0 * eyeposy?0 * ! c_et_pos) + (eyepause?0 * eyeposx?0 * c_et_pos)) * ! trackiron) + (eyepause?0 * sign(abs(deadzone(clamp(-trackiryaw?0, -c_et_pos, ! c_et_pos), 0.65))) * trackiron)) * c_et_xscale * c_et_yscale) * ! hmdz * c_et_head`"

"mix eyepreset4 `DE?1 * ((dbgdraw?0 * dbgfovreset?0 * c_et_xscale * c_et_yscale) | (cam2?0 | cam3?0 | cam4?0 | cam6?0 | cam7?0 | cam8?0 | camdbg?0)) * ! c_et_pos * c_et_head`"

"mix eyepreset5 `DE?1 * ((dbgdraw?0 * dbgfovreset?0 * c_et_xscale * c_et_yscale) | (cam2?0 | cam3?0 | cam4?0 | cam6?0 | cam7?0 | cam8?0 | camdbg?0)) * c_et_pos * c_et_head`"

==============================================================================

Post 1 - Description: viewtopic.php?p=67254#p67254
Post 2 - Quick start guide: viewtopic.php?p=67255#p67255
Post 3 - Configuration options: viewtopic.php?p=67256#p67256
Post 4 - Manual edits: viewtopic.php?p=67257#p67257
Post 5 - Help / Q & A: viewtopic.php?p=67258#p67258
Last edited by JHTrucker on January 30th, 2025, 5:49 pm, edited 4 times in total.
multimon_config.sii files: viewtopic.php?p=17658#p17658
controls.sii edits: viewtopic.php?p=24744#p24744
Driving Enhancements: viewtopic.php?p=67254#p67254
TrackIR Driving Enhancements: viewtopic.php?p=46613#p46613
User avatar
JHTrucker
Expert
Posts: 1379
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Driving Enhancements

Post by JHTrucker » January 10th, 2025, 10:51 pm

Post 5 of 5 - Driving Enhancements - Help / Q & A Section:

Controller questions:
Q - 'DE' doesn't work or the control.sii file changes/resets when using a gamepad controller, can this be fixed?
A - Using the steam controller support will cause problems. I've never used it and have it disabled, that way the game will use all control functions that are specified within the games controls.sii file.
To disable steam controller support:
In Steam Library - Right Click Game - Properties - Controller - Select - Disable Steam Input

A - If you have '-sysmouse' set in the games steam launch options, remove it, else these 'Driving Enhancements' features will not function correctly.
If you really need to use '-sysmouse', remove from steam launch and do this in your controls.sii file instead:
config_lines[1]: "device mouse `fusion.mouse`" <-- Game default (don't change), if it states 'sys.mouse' then you have it set in steam launch options, remove from steam launch.
config_lines[4]: "device phys_mouse `sys.mouse`" <-- Add this instead of the steam '-sysmouse' launch option.

General questions:
Q - Can I change the Tobii Eye menu access keys (shift + Numlock) to something else?
A - Yes - Edit your controls.sii file - "mix eyecfg `keyboard.tab?0`" <--- Example using TAB key instead of default (shift + numlock)

Q - Do I have to apply all those line edits every time SCS update the game?
A - No. At least I've never had to. The line numbers may change but that's not a problem.

Q - Do I need to press '1' every time I start the game?
A - No. Just when ever you open the menu and change CAM 1 (Preset 1) to a different 'driving preset' and close it, you then have to apply that preset by pressing '1'.

Q - At game startup I'm using a game default external camera but my driving controls are disabled, why?
A - Just re-select that external camera and you'll have full control once again.

Q - Why don't the 'zoom' features work for multimonitor setups that use an overridden FOV?
A - SCS coded the 'zoom interior camera' to dynamically reduce your FOV to ~20 to make everything bigger/closer. It can't reduce an overridden FOV.

Q - Can I adjust the 'walking' speed when outside the truck?
A - Yes, see Post 3 - Configuration options.

Q - Can I adjust the 'look' speed?
A - Yes, see Post 3 - Configuration options.

Q - Can I disable TrackIR head roll in the driver seat?
A - Yes, in your controls.sii file, edit "constant c_ht_roll 1.000000" <-- 1.0 = Enable / 0.0 = Disable

Q - Can I use 'DE' with other camera mods?
A - No, the 'DE' code assumes the interior cameras are in game default format.
A - For best results, always keep the 'DE' mod at the top of the mod manager list or at least above any truck mods.

Q - Can I use 'DE' with other mods, graphics, sound, physics, traffic, maps etc?
A - Yes, but for best results, always keep the 'DE' mod at the top of the mod manager list.

-----

'Driving Enhancements' problems:
Q - In game version 1.51+, my truck is now driving when 'walking' around it, what's wrong?
A - Game update 1.51 automatically replaces the 'DE' line edits for, "mix steering", "mix aforward", "mix abackward" & "mix clutch" with new game default ones. Just copy/paste the 'DE' ones from post 4 to fix it. The game shouldn't do that again.
Note: Any profile you use that hasn't been used on game version 1.51+ will get the above problem. There's no fix required if you choose to use the supplied 'quick start' controls.sii file.

Q - 'DE' doesn't work as I expected it too, what's wrong?
A - You made a copy/paste mistake in your controls.sii file and the game has probably reset the controls.sii file, removing the 'DE' code.
A - You made a copy/paste mistake in your config_local.cfg file.
A - Watch the demo video in post 1 so that you know what to expect.

Q - When I use 'look action' or press '4' for outside the interior just changes to low quality, what's wrong?
A - Check that you made the required edits to your config_local.cfg file for 'uset g_eye_preset_4 & 5'
A - If you copy your 'DE' controls.sii file to another profile you also need to copy config_local.cfg file or at least do the edits as stated.

Q - I can't select camera 5 (lean out drivers window).
A - Default Camera 5 has been repurposed for 'walking' outside. See first post for all available cameras.

Q - The outside view is under the passenger seat inside the truck.
A - Ensure you have the correct preset 1 for LHD/RHD in the Tobii Eye menu.

Q - When getting in or out of the truck the animation slightly clips through the steering wheel / drivers seat, what's wrong?
A - The animation path is the same for all trucks, depending on how you position your seat and/or steering wheel you may see this slight clipping issue. This path was created, tweaked and tested with default seat and steering wheel positions. Plus all the trucks have slightly different shapes and sizes.

Q - The keys menu had 'complex' shown on buttons that I assigned buttons to, now 'DE' doesn't work properly or at all.
A - The controls.sii file edits detailed in post 4 are the reason they are 'complex'. Assign all buttons you need in game and then manually add all the required line edits again, taking note of lines that you can copy/paste your current button into.

Q - How can I get 'DE' extra zoom features back after I incorrectly assigned a button to 'Zoom interior view'?
A - Re-copy/paste from post 4 "mix camzoom...'
and then see post 3 - Configuration options - 'Zoom Interior View' to assign your zoom button.

-----

How to assign keys/buttons that are now shown as 'complex':
Cam 1 (Interior)
Cam 5 (3rd person, original cam 2)
Zoom Interior View
Steering Left
Steering Right
Throttle
Brake/Reverse

See post 3 - Configuration options - To make changes to the above.

==============================================================================

To Do List:

1 - Possibly improve 'mouse look' for Passenger Seat, Sleeper & Outside.

2 - Fix any reported problems.

3 - Add some more optional features?

==============================================================================

Post 1 - Description: viewtopic.php?p=67254#p67254
Post 2 - Quick start guide: viewtopic.php?p=67255#p67255
Post 3 - Configuration options: viewtopic.php?p=67256#p67256
Post 4 - Manual edits: viewtopic.php?p=67257#p67257
Post 5 - Help / Q & A: viewtopic.php?p=67258#p67258

==============================================================================

If you use TrackIR and want some more features, see 'TrackIR Driving Enhancements' instead: viewtopic.php?p=46457#p46457

==============================================================================

NOTE: Everything you need to use 'Driving Enhancements' is contained within the above 5 posts.
Any subsequent posts are for bug reporting, help or just to say 'Thanks'.
multimon_config.sii files: viewtopic.php?p=17658#p17658
controls.sii edits: viewtopic.php?p=24744#p24744
Driving Enhancements: viewtopic.php?p=67254#p67254
TrackIR Driving Enhancements: viewtopic.php?p=46613#p46613
Post Reply