Multiple Universal External Cameras v10.0 with look function for 1.38 to 1.54 - Updated 18/04/2025

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

Multiple Universal External Cameras v10.0 with look function for 1.38 to 1.54 - Updated 18/04/2025

Post by JHTrucker » January 11th, 2021, 4:15 pm

Note: This isn't a mod to just drop into your mod manager, you'll also need to follow instructions and edit your controls.sii file.

UPDATED 02/04/2025 - New menu mod, v10.0, for game version 1.51+. What's new? Look here: viewtopic.php?p=67705#p67705
UPDATED 03/04/2025 - Added 'smooth button look movement'. New & amended line edits date highlighted and new controls.sii file. What's new? Look here: viewtopic.php?p=67715#p67715
UPDATED 10/04/2025 - Added Toggle on/off for 'button look movement'. New & amended line edits date highlighted and new controls.sii file. What's new? Look here: viewtopic.php?p=67785#p67785
UPDATED 18/04/2025 - Added Toggle on/off for 'Joy look movement'. New & amended line edits date highlighted and new controls.sii file. What's new? Look here: viewtopic.php?p=67970#p67970

===================================================
Confirmed to work for ATS/ETS2 game versions 1.38 to 1.54
===================================================


If you find it annoying that the external cameras that SCS provide have no look functionality, then this may be for you.
Position multiple new cameras where you like outside the truck and have the ability to look around as required from that location. So, for example, you can have a bumper, hood or roof cam just like SCS provide but now you can look left, right & behind.

Use the attached Menu Mod (select CAM 5, 6, 7 or 8 first), press shift + numlock or shift + 9, to adjust where the camera is located or pick one of the supplied presets and adjust to suit. You can also add presets to one of 3 available buttons, making quick switching possible.
These cameras have collision enabled. Meaning a high up chase camera will duck under bridges as required so you don't loose sight of your truck.

Optional - In the driving seat.
Press 'CAM 1' to toggle look left/right movement control:
Button look - Game standard movement or 1.38-1.40 Instant movement with instant re-centre or 1.41+ Smooth movement with smooth re-centre.
Analogue gamepad - Game standard movement or direct/dynamic movement with auto centre.
See required edits for your config_local.cfg file to enable this function --> uset g_eye_preset_4 "g:tobii_4c".
If enabled in the line edits "mix eyepause `MUEC?1 * 1 * c_et_head`" then instant/smooth movement control is turned off when you move the mouse.

Note: You cannot use this with Tobii Eye as this uses the Tobii Eye menu and variables and will therefore mess up your Tobii Eye setup!!!
VR isn't supported.


Full Demo (17/05/2022) - Ignore the image quality - Game on lowest graphics settings and recorded on old camera phone (720p).

Note: This video shows 'instant button look movement' as it was recorded before 'smooth button look movement' was added.

Demo of keyboard 'Smooth look' movement (10/04/2025) - Ignore the image quality - Game on lowest graphics settings and recorded on old camera phone (720p).

Note: This quick video shows the newly added 'smooth button look movement', using 'Press & Hold' and 'Toggle on/off', for 'Look Behind', 'Hood', 'Chase Near' & 'Roof' as examples.

Demo of Joy/Thumbstick 'Smooth look' movement (18/04/2025) - Ignore the image quality - Game on lowest graphics settings and recorded on old camera phone (720p).


Requirements for use:
Attached Menu Mod and edited controls.sii & config_local.cfg files as detailed below.
At least one of the following:
Keyboard - 1.38-1.40 Instant look left/right/back or 1.41+ Smooth look left/right/back.
Standard game TrackIR - Look left/right/up/down & move left/right/up/down/forward/backward (TIR x/y/z) when using chase cam's.
Analogue gamepad - look left/right/up/down with auto centre.
Note: Mouse only works for the standard SCS cameras, CAM 1 & 2.

Available cameras:
CAM 1 - Game standard driving view. (Default Keyboard 1 or assign a key/button of your choice)
CAM 2 - Game standard chase view. (Default Keyboard 2 or assign a key/button of your choice)
CAM 3 - Game standard top down view. (Default Keyboard 3 or assign a key/button of your choice)
CAM 4 - Game standard roof view. (Default Keyboard 4 or assign a key/button of your choice)
CAM 5 - New 'Look Behind' view. (Keyboard 5 - Shown as 'complex', see below note)
CAM 6 - New - Assign a preset via the menu. (Keyboard 6 - Shown as 'complex', see below note)
CAM 7 - New - Assign a preset via the menu. (Keyboard 7 - Shown as 'complex', see below note)
CAM 8 - New - Assign a preset via the menu. (Keyboard 8 - Shown as 'complex', see below note)
CAM 9 - Cam Cycle Disabled (Shown as 'complex'). It doesn't work with new cameras.
CAM 'Shift + Keyboard 6' - Game standard Bumper view. (You can't change this!)
CAM 'Shift + Keyboard 7' - Game standard On-Wheel view. (You can't change this!)
CAM 'Shift + Keyboard 8' - Game standard Drive-By view. (You can't change this!)

Note: If required, see "How to assign your own keys/buttons for CAM's 5/6/7/8" at the bottom of this post.

Preset Templates:
Cam 6/7/8 - Adjust Sliders & Save - Template (Origin - ground level in front of truck)
Cam 6/7/8 - Bumper...
Cam 6/7/8 - Chase...
Cam 6/7/8 - Drone...
Cam 6/7/8 - Hood...
Cam 6/7/8 - Look Behind...
Cam 6/7/8 - Lean Out Drivers Window...
Cam 6/7/8 - Lean Out Look Back...
Cam 6/7/8 - Refuel...
Cam 6/7/8 - Roof...
Cam 6/7/8 - Walk Around Truck - xHD xxx...
Note 1: 'xHD' is shown as LHR or RHD in menu - 'xxx' is shown as ATS or ETS in menu - Total of 24 'walk' presets.
Note 2: 'Walk Around Truck' & 'Walk Facing Truck' aren't templates you can make changes to, like the other presets, they're camera modes only.
Note 3: 'Offset' versions allow you to stand further away from your truck and trailer(s).
Note 4: 'Walk Around Truck' presets will keep your head facing back down the side of the truck as you turn your steering to walk around it.
Note 5: 'Walk Facing Truck' presets will keep your head facing the truck as you turn your steering to walk around it.

You can create your own presets as required, details available at the bottom of this post.
Note: The preset templates supplied are considered general, I used an ATS Mack Anthem to make them. You may want to copy and tweak the bumper/hood/roof templates to better suit the truck you use - Then add as a new preset "Hood - VNL" for example.
ETS2 can possibly use the same preset across all trucks whereas ATS trucks will require different bumper/hood/roof presets to suit the very different shaped trucks.

Example Presets (supplied in "eye_tracking_presets" folder):
Bumper - Kenworth W900
Hood - ETS LHD
Hood - ETS RHD
Hood - Freightliner Cascadia 2019
Hood - Kenworth T680
Hood - Kenworth W900
Hood - Peterbilt 389
Hood - Westernstar 49x
Roof - Peterbilt 389
Roof - Kenworth W900

In game menu - Select CAM 5, 6, 7 or 8 first and then press shift + numlock or shift + 9 to open.
Image

Game version 1.38 to 1.50 - The menu mod is in English only.
Here's what each option does from top to bottom - if you need to translate them.

Enable code (Tick) - Disable (Untick) then remove this mod.
*** Only untick to disable code & remove menu mod if you require a mod free profile with game standard cameras ***

Steer Look : 1.00=90 degrees Left / Right <-- Use with a steering wheel for best results.

Move Left / Right : Far Left=0.0 - Centre=2.5 - Far Right=5.0

Move Up / Down : Just above ground=0.0 - Very high=5.0

Move Forward / Backward : In Front of Truck=0.0 - Far behind=5.0

Pitch : 90 degrees Down=0.0 - Level=2.5 - 90 degrees Up=5.0

Rotate : 180 degrees Left=1.0 - 0 degrees Centre=3.0 - 180 degrees Right=5.0

Auto move camera position when looking left / right - Useful for chase cam views to get closer to truck at junctions.
*** See note below for extra info on 'Auto move camera' option ***

Camera Look movement - Half (untick) - Full (tick) : 'Half' is useful to prevent the camera rotating back through the truck (eg. Bumper).
*** See note below for extra info on 'Look Movement' option ***

----------

Game version 1.51+ - The menu mod is in English only.
Image
Note: The custom made MUEC menu is no longer possible from 1.51+
1 - 'Enable extended view' = MUEC On (tick) / Off (untick)
2 - 'Extended view presets' = Current 'active' preset. <-- Use this when you want a temporary change to the camera view.
Scroll down to the 'Keyboard Controls' section and use the preset 'drop downs' to setup your cameras
3 - Preset 1 = Cam 6 - Select any '678...' Preset. <-- Use this to always have your preferred camera selected when pressing '6'.
4 - Preset 2 = Cam 7 - Select any '678...' Preset. <-- Use this to always have your preferred camera selected when pressing '7'.
5 - Preset 3 = Cam 8 - Select any '678...' Preset. <-- Use this to always have your preferred camera selected when pressing '8'.
Note: The preset names had to be shortened to fit the limited space the games Tobii Eye menu provides.

==========

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

New 18/05/2024
Add the mod "Multiple Universal External Cameras.scs" to your mod folder.
v6.2 for game version 1.38-1.43
v7.1 for game version 1.44
v8.21 for game version 1.45-1.49
v9.0 for game version 1.50
(All mods have the exact same functions, just use the correct one for your game version).
Multiple Universal External Cameras v6.2, v7.1, v8.21 & v9.0.zip --> https://mega.nz/file/GlwQ2ZJb#UIGC8vJdm ... mdBpJdO4JY
OR
New 02/04/2025
Multiple Universal External Cameras v10.0.scs for game version 1.51+
Multiple Universal External Cameras v10.0.zip --> https://mega.nz/file/OpxSEKTA#-bEdYPwYu ... 8r7k4KM-vY

Optional - Put the supplied "eye_tracking_presets" folder into your games home directory (the one with your MOD folder).
Example - C:\Users\TEST\Documents\American Truck Simulator\MOD
Example - C:\Users\TEST\Documents\American Truck Simulator\eye_tracking_presets\xxxxxx.sii etc (all camera presets are stored here).
This folder is only created by the game if you have a Tobii Eye device. If you have and don't use Tobii Eye now then just rename your original folder to "OLD eye_tracking_presets" to avoid problems.

New 18/04/2025
This supplied 'controls.sii' file is a game default file with all current MUEC line edits applied to it.
By using this 'controls.sii' file you'll need to re-setup all your game controls for buttons, keys, wheel, pedals, shifter & Force Feedback settings etc.
Or don't use this file and apply the MUEC line edits to your 'controls.sii' file instead (see the bottom of this post for manual edits). The choice is yours!
MUEC controls 18-04-2025.zip --> https://mega.nz/file/T54mmaAL#siJ6G0w0Y ... NiEoYss2mg
NOTE: The supplied controls.sii file is game version 1.53 defaults with 'MUEC' 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, leaving the 'MUEC' line edits intact.
Example: "00:00:16.411 : <ERROR> [inp] mix "example_name" does not exist, ignoring change"
That's ok, it's just the game cleaning up the file, the first time it's used, to suit the game version you are playing on, it doesn't affect the 'MUEC' edits applied to it. Those errors won't appear again.

Here are the required edits for your config_local.cfg file that's in the same folder as your controls.sii file. Use notepad/wordpad etc:
(American/Euro Truck Simulator 2\profiles\Your Profile\config_local.cfg)

uset g_eye_preset_5 "g:tobii_head_only"

Set 'uset g_eye_preset_4' to setup your preferred movement control for CAM 1:
Setup that only has game standard look movement:
uset g_eye_preset_4 "g:default" <-- MUEC default
OR
Setup when using TrackIR:
uset g_eye_preset_4 "g:tobii_4c"
OR
Setup when using optional MUEC analogue controller thumbstick look or button look:
uset g_eye_preset_4 "g:tobii_4c"
Press 'CAM 1' to toggle between game standard look control and auto centre.

Game version 1.38-1.50 --> Set these for default CAM 6/7/8 cameras (you can change these in the MUEC menu):
uset g_eye_preset_3 "g:ext_drone_uhigh"
uset g_eye_preset_2 "g:ext_chase_near"
uset g_eye_preset_1 "g:ext_hood"
OR
Game version 1.51+ --> Set these for default CAM 6/7/8 cameras (you can change these in the MUEC menu):
uset g_eye_preset_3 "g:678 Drone Ultra High"
uset g_eye_preset_2 "g:678 Chase Near"
uset g_eye_preset_1 "g:678 Hood Look LR Down Side"

Close & save.

To use keyboard look functions:
In the games Keys Menu, assign your look keys for these actions (if required):
Look Left (Default Number Pad /) = To Look 60 Degrees Left
Look Right (Default Number Pad *) = To Look 60 Degrees Right
Look Left & Look Right = Look Behind
Interior Look Forward (Default Number pad 5) = 'Quick Press' = Re-centre view or 'Press & Hold' = Instant Look Behind
Interior Look Up Left (Default Number pad 7) = Look 180 Degrees Left
Interior Look Left (Default Number pad 4) = Look 70 Degrees Left
Interior Look Up Right (Default Number pad 9) = Look 180 Degrees Right
Interior Look Right (Default Number pad 6) = Look 70 Degrees Right
Press both Interior Look Up Left & Interior Look Left = Look 180 Degrees Left
Press both Interior Look Up Right & Interior Look Right = Look 180 Degrees Right
Note 1: The look view is instant (1.38-1.40) or smooth (1.41+). You can 'Press & Hold' or 'Toggle on/off' and the view will re-centre.
Note 2: You can set the look angles as required, 0 to 180 degrees.
Note 3: In the driving seat (LHD only) - Pressing 'Look Left' & 'Look Right' buttons together will instant look back out of the drivers window.
Note 4: Yes you can also assign game pad buttons instead of using the keyboard to look.

To use analogue look functions:
Setup controller as normal in game, like so:
OPTIONS - CONTROLLERS - Keyboard+Controller
Pick your "Look up/down axis" & "Look left/right axis"
Adjust dead zones & axis mode as required.

NOTE: Don't change any key bindings in the game menu's that state "complex".
The above edits are the reason those are "complex".

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


That's it, go try it out.

In the driving screen you just change camera views as normal (keys 1 to 8).
You have 4 new camera views assigned to keys 5, 6, 7 & 8 for quick switching. When using CAM 5, 6, 7 or 8 you can also just open the Menu mod, shift + numlock or shift + 9, and select from the main preset list (top right) a view you want to use temporarily, close menu (ESC), driving screen will change and stay on that view until you change cameras again.

==========

New 10/04/2025
How to change keyboard/Joy 'Interior Look Left/Right Angle' - Default Number pad 4 & 6 - (Game version 1.41+):
"mix eyepresenton `MUEC_Interior_Look_Left_Right_?1 * ((70 ...
70 = Look Left/Right will be 70 degrees - Max 180.

New 10/04/2025
How to change keyboard/Joy 'Interior Look Up Left/Right Angle' - Default Number pad 7 & 9 - (Game version 1.41+):
"mix eyepresent `MUEC_Interior_Look_Up_Left_Right_?1 * ((180 ...
180 = Look Up Left/Right will look back 180 degrees - Max 180.

New 10/04/2025
How to change keyboard 'Look Left/Right Angle' - Default Number pad / & * - (Game version 1.41+):
"mix eyegazeon `MUEC_Look_Left_Right_?1 * ((60 ...
60 = Look Left/Right will be 60 degrees - Max 180.

==========

New 03/04/2025
How to change smooth look speed for keyboard/Joy look functions. (Game version 1.41+):
"mix eyeposon `MUEC_Smooth_Look_Speed?1 * 20 ...
0 = Instant look.
20 = Smooth Look, change value to slow down or speed up as required.
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.

==========

New 18/04/2025
How to change Joy look functions, Direct or Dynamic. (Game version 1.41+):
"mix hmdon `MUEC_Joy_Look_Direct_0_or_Dynamic_1_?1 * 0 ...
0 = Direct, follow exactly where the 'look' thumbstick is positioned.
1 = Dynamic, use 'look' thumbstick to select the camera position, with either 'Press & Hold' or 'Toggle on/off', see below:
Joy Up = 'Quick Press' to re-centre view or 'Press & Hold' = Instant Look Behind - See also 'Dynamic Invert' setting below.
Joy Left = Look 70 Degrees Left (default).
Joy Left & Down = Look 180 Degrees Left (default) - See also 'Dynamic Invert' setting below.
Joy Right = Look 70 Degrees Right (default).
Joy Right & Down = Look 180 Degrees Right (default) - See also 'Dynamic Invert' setting below.

Image

New 18/04/2025
How to Invert Dynamic Joy look functions. (Game version 1.41+):
"mix hmdz `MUEC_Joy_Look_Up_Down_Dynamic_Invert_?1 * 0 ...
0 = Joy Look Up/Down Axis Mode: 'Centred'
1 = Joy Look Up/Down Axis Mode: 'Inverted & Centred'
Note: Set the above to match your setting in the controller menu to avoid it working in the opposite direction.

==========

How to add your own preset (Game version 1.38 to 1.50):
See this post for game version 1.51+ viewtopic.php?p=67719#p67719
Select CAM 5, 6, 7 or 8 first, then open the Menu Mod, pick a preset from the top right list that matches the type of camera you want to make or pick 'Cam 6/7/8 Template' (ground level in front of truck) and use the sliders to adjust where you want the camera to be located. Check how it looks (press ESC) but don't change cameras or you'll lose your settings! Just go back to the menu to make further adjustments until you are happy.

Where you see 'Custom' (after positioning your camera) on the menu top preset box, click '+' then type your preset name in the box and press 'enter'.
If you type the same name as an existing preset you can overwrite it if required.
You can also delete presets. On the top preset box, click 'x' and the currently displayed preset will be deleted.
Note: You can't delete or change the mod standard presets, 'Cam 1 - Mouse & Keyboard (Don't Use) / Cam 1 - TrackIR & Analogue Controller (Don't Use) / Cam 5 only (Don't Use)' & 'Cam 6/7/8 - Templates'.
All presets created are stored in the games 'eye_tracking_presets' folder.
The preset lists have all 'templates' listed first followed by:
"Templates above ---^^^ or User created presets below ---vvv"
and then user created presets.

Your new preset is now selectable from the Cam 6, 7 & 8 drop down lists.
Just repeat the above for other presets you make.

See this post for extra help to setup your camera presets: viewtopic.php?p=64510#p64510

Note: 'Auto move camera position when looking left / right'
When using any 'chase cam' your height and pitch will automatically reduce as you turn left/right until you are 180 degrees and facing your truck.
To disable this 'auto reduce height/pitch function', if required, for your 'preset chase cam', set it's 'camera rotation' from 3.00 (straight ahead) to 3.01 (almost straight ahead). Then a high up chase cam will always stay high up when turning the view.

Note: 'Look Movement' Half (90 degrees left/right) or Full (180 degrees left/right).
If you don't want the camera to rotate through the truck, for example 'lean out' or 'bumper' cams, then set to 'Half'.
Using 'Full' with Hood & Roof cams will rotate to look down the side of your truck if the camera is placed in the truck cab area and this strict criteria is followed:
Move Left / Right Slider = 2.31 to 2.69 (centre of truck area - centre varies per truck)
Move Up / Down Slider = 0.00 to 0.40 (ground to just above general roof height)
Move Forward / Backward = 0.00 to 0.99 (in front of the truck to approx back of cab area)
Camera Rotate = 3.00 (straight ahead only)
Auto Move - Untick
Look Movement - Tick
Any values outside of the above will disable this 'look around the side of truck' option.

==========

How to 'Walk Around Your Truck' (very basic method):
Add one of the 'Walk Around Your Truck' presets to CAM 6, CAM 7 or CAM 8 in the menu.
Select that 'Walk Around Your Truck' CAM to 'Walk Around Your Truck'.

Requires:
Setup your devices in games controls menu first.
Analogue Steer (Wheel / Thumbstick / Joystick) to walk around your truck
Analogue Accelerator (Pedal / Thumbstick / Trigger) to crouch beside your truck
Analogue Brake (Pedal / Thumbstick / Trigger) to stand back from your truck
Analogue Look Left/Right/Up/Down (Thumbstick / Joystick) to look Left/Right/Up/Down
or
TrackIR to look Left/Right/Up/Down/Crouch/Tip toes

This won't work, and can't be made to work, with mouse & keyboard only as they are digital and we need analogue inputs.

'Walking' works best when using a wheel as you can hold your position much easier than you can when using a gamepad thumbstick for steering.

Note: Your truck steering/accelerator/brake/clutch are all disabled to prevent your truck moving when using those same controls for 'walking'.

Walking movement limits:
The yellow line represents the 'walk' path around the truck.
Outside the drivers door (LHD or RHD) is the start point, when your steering is centered. Use your steering wheel/thumbstick/joystick to 'walk' around the path.
The blue line represents the path as you move away from your truck, by pressing your brake pedal/thumbstick/trigger.
Image
You can look around by using headtracking/analogue look left/right/up/down.
You can therefore refuel whilst stood next to the trucks tank or attach/detach your trailer.
SCS don't provide any further gameplay elements and so you'll have to pretend you are doing pre-delivery safety checks etc.

Note 1: If your brake pedal has a "dirty pot" then the 'move away' movement will be jittery due to the fluctuating values coming from the pedals potentiometer. Alternative line edit available that splits that movement into 4 steps instead - See line edit for "mix dclutch...
Note 2: If your truck & trailer(s) are not inline and you 'walk' into the side of your trailer, you'll hop over it rather than pass through it. It's not ideal but that's how the game code reacts to collision data.

==========

How to control DEVCAM using your analogue controls:
Ensure you have 'Multiple Universal External Cameras' setup and working correctly before adding this.
Click this link for the required extra line edits: viewtopic.php?p=50460#p50460

Select CAM 5 and open the menu mod.
Select "Cam 0 - DEVCAM analogue control - Close menu - Press '0'" from the top drop down list.
Close menu - The screen will go black.
Press '0' and DEVCAM will now have analogue control and default mouse & keyboard control.

Or when 'Walk Around Your Truck' camera mode is in use, press '0' and DEVCAM will now have analogue control and default mouse & keyboard control.

Note 1: When 'DEVCAM analogue control' is used your truck steering/accelerator/brake/clutch functions are disabled, otherwise your truck would drive around as you move the DEVCAM.

Note 2: If you want to drive your truck whilst using DEVCAM then don't pick the above preset. Just press '0' to have default mouse & keyboard control only.

==========

How to assign your own keys/buttons for CAM's 5/6/7/8.

For example, you may want CAM 5 (look behind) as a button on your wheel or gamepad rather than pressing keyboard 5.
But, by default, MUEC CAM's 5/6/7/8 assignments are shown as 'complex' and cannot be changed without breaking the MUEC code.
Therefore this alternate way and line edits will allow you to select any key/button for CAM's 5/6/7/8.

In game - KEYS & BUTTONS Menu - WALK MODE - Secondary assignments (keep your preferred walk mode keys/buttons as primary assignments for walking in the garage):
Image
Secondary Forward = MUEC CAM 5 (Look behind)
Secondary Back = MUEC CAM 6 (user specified via MUEC menu)
Secondary Left = MUEC CAM 7 (user specified via MUEC menu)
Secondary Right = MUEC CAM 8 (user specified via MUEC menu)

Note: In the garage view using 'walk mode', the above will not change cameras, they will simply move you in the direction stated, if pressed.

These are the required alternate line edits that you'll need to apply to your controls.sii file:
Match the "mix name" and paste the highlighted part into the correct line number to suit your game version.

"mix camwalk_for `keyboard.w?0 | keyboard.key5?0 | semantical.camwalk_for?0`"

"mix camwalk_back `keyboard.s?0 | keyboard.key6?0 | semantical.camwalk_back?0`"

"mix camwalk_righ `keyboard.d?0 | keyboard.key8?0 | semantical.camwalk_righ?0`"

"mix camwalk_left `keyboard.a?0 | keyboard.key7?0 | semantical.camwalk_left?0`"

"mix eyepreset1 `MUEC?1 * camwalk_back?0 * ! sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix eyepreset2 `MUEC?1 * camwalk_left?0 * ! sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix eyepreset3 `MUEC?1 * camwalk_righ?0 * ! sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix eyepreset5 `MUEC?1 * camwalk_for?0 * c_et_head`"

Note: From the above, MUEC CAM's 5/6/7/8 are still defaulted to keyboard 5/6/7/8, but you can now assign them as required in game using keys/buttons menu / Walkmode.

==========

Q & A:

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 MUEC line edits for, "mix steering", "mix aforward", "mix abackward" & "mix clutch" with new game default ones. Just copy/paste the MUEC ones from the manual edits shown below 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 - 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 - Why show line edits stating "<-- This is game default"?
A - If you want to test between ECC, MUEC or MUC you won't then have left over edits that would affect your current setup.

Q - Does it matter which preset I modify?
A - Never use 'Cam 1 - Mouse & Keyboard (Don't Use) / Cam 1 - TrackIR & Analogue Controller (Don't Use) / Cam 5 only (Don't Use)' as a starting point. Use one of the other presets that best matches what you want your camera to do. Note: Those presets are not views, they're used by my code to enable switching to CAM 1 & 5.

Q - When I press shift + numlock or shift + 9 nothing happens... why doesn't the menu appear?
A - You must already be using CAM 5, 6, 7 or 8 for the menu to open to prevent menu changes whilst using other CAM's that will give incorrect results. If you have no presets set for CAM 6, 7 or 8 then just select CAM 5 and then open the menu mod and add presets as required.
OR
A - Check your config_local.cfg file has been setup correctly - See setup step 3 - uset g_eye_preset_1/2/3/4/5.

Q - After adjusting the sliders to my liking I then change cameras and my adjustments have gone!
A - Never change cameras when making adjustments to the sliders. Save your preset as shown above so your new view will always be selectable.

Q - I have no mouse movement in CAM 1, what's wrong?
A - Look back at "Set 'uset g_eye_preset_4' to setup your preferred movement control for CAM 1:". Check "mix eyepause" value in the line edits (0 or 1).

Q - I want a roof cam that looks straight back but it keeps moving to the side when using 'Look movement full'.
A - Simply set 'Camera Rotation' to 3.01 instead of 3.00 to disable the 'look around the side' movement when camera is positioned within the 'trigger area'.

Q - Why use camcycle key 9 for the menu?
A - Camcycle doesn't display these new cams correctly, so best not to use it for that.

Q - Every time I try to open the menu mod the game crashes to desktop.
A - Check the statement for "Confirmed to work for ATS/ETS2 game versions..." at the top of the post. Ensure you are using the correct mod for your game version.

Q - I've removed the menu mod but the cameras are acting strange.
A - You must disable the MUEC code first (untick) in menu before removing the mod.
Or without mod loaded, Press '5' and then 'shift + 9'. You'll see the original Tobii Eye menu, untick 'Enable extended view', the menu will 'grey out' and you'll have game standard cameras again.

Q - I can't access cam 3 anymore, what's wrong?
A - That's an SCS known issue that can randomly happen. https://forum.scssoft.com/viewtopic.php?f=181&t=220925
Forum member "Dieling" had this issue and fixed it : viewtopic.php?p=44313#p44313

Q - Can I click 'Reset to default' at the bottom of the keys/buttons & controller menus?
A - No. That will remove the MUEC line edits!

Q - Can I click 'Force Feedback - Reset to defaults'?
A - Yes.

Q - I'm far too lazy to do all that stuff, just give me a roof cam mod that can look around!
A - Enjoy... viewtopic.php?p=34287#p34287

==========

If required, here are the manual edits for your controls.sii file:
Note: These are for game version 1.41+, for 1.38-1.40 use the supplied controls.sii file only.
Make a backup copy of controls.sii file for safe keeping, just in case.
(American/Euro Truck Simulator 2\profiles\Your Profile\controls.sii)

Just match the "mix name" and paste the highlighted part into the correct line number to suit your game version.

"mix cam1 `keyboard.key1?0 | semantical.cam1?0`" <-- This is game default

"mix cam2 `keyboard.key2?0 | semantical.cam2?0`" <-- This is game default

"mix cam3 `keyboard.key3?0 | semantical.cam3?0`" <-- This is game default

"mix cam4 `keyboard.key4?0 | semantical.cam4?0`" <-- This is game default

"mix cam5 `MUEC?1 * ((eyepreset1?0 | eyepreset2?0 | eyepreset3?0 | eyepreset5?0) * c_et_hv_mode * c_et_head) + (keyboard.key5?0 * ! c_et_head)`"

"mix cam6 `MUEC?1 * keyboard.key6?0 * ! c_et_head | keyboard.key6?0 * sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix cam7 `MUEC?1 * keyboard.key7?0 * ! c_et_head | keyboard.key7?0 * sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix cam8 `MUEC?1 * keyboard.key8?0 * ! c_et_head | keyboard.key8?0 * sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

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

New 18/04/2025
"mix hmdon `MUEC_Joy_Look_Direct_0_or_Dynamic_1_?1 * 0 * c_et_head`"

New 18/04/2025
"mix hmdyaw `MUEC?1 * lookpos5?0 | sign(deadzone(clamp(looklranaraw, -0.0, 1.0), 0.5)) * ! sign(abs(deadzone(lookudanaraw, 0.25))) * hmdon * c_et_head`"

New 18/04/2025
"mix hmdpitch `MUEC?1 * lookpos4?0 | sign(deadzone(clamp(-looklranaraw, -0.0, 1.0), 0.5)) * ! sign(abs(deadzone(lookudanaraw, 0.25))) * hmdon * c_et_head`"

New 18/04/2025
"mix hmdroll `MUEC?1 * lookpos3?0 | sign(deadzone(clamp(looklranaraw, -0.0, 1.0), 0.25)) * sign(abs(clamp(deadzone(lookudanaraw, 0.25), -! hmdz, hmdz))) * hmdon * c_et_head`"

New 18/04/2025
"mix hmdx `MUEC?1 * lookpos2?0 | sign(deadzone(clamp(-looklranaraw, -0.0, 1.0), 0.25)) * sign(abs(clamp(deadzone(lookudanaraw, 0.25), -! hmdz, hmdz))) * hmdon * c_et_head`"

New 18/04/2025
"mix hmdy `MUEC?1 * lookpos1?0 | ! sign(abs(deadzone(looklranaraw, 0.25))) * sign(abs(clamp(deadzone(lookudanaraw, 0.25), -hmdz, ! hmdz))) * hmdon * c_et_head`"

New 18/04/2025
"mix hmdz `MUEC_Joy_Look_Up_Down_Dynamic_Invert_?1 * 0 * hmdon * c_et_head`"

New 10/04/2025
"mix eyepresenton `MUEC_Interior_Look_Left_Right_?1 * ((70 * sign(c_etwm_yawsc + ! c_etwm_pitsc + ! c_et_hv_mode + ! sign(abs(c_et_gv_ext - 0.123456)))) + (35 * ! sign(c_etwm_yawsc) * sign(abs(c_et_hv_exp - 3.0)) * c_et_hv_mode * sign(abs(c_et_gv_ext - 0.123456)))) / 180 * c_et_head`"

New 10/04/2025
"mix eyepresent `MUEC_Interior_Look_Up_Left_Right_?1 * ((180 * sign(c_etwm_yawsc + ! c_etwm_pitsc + ! c_et_hv_mode + ! sign(abs(c_et_gv_ext - 0.123456)))) + (35 * ! sign(c_etwm_yawsc) * sign(abs(c_et_hv_exp - 3.0)) * c_et_hv_mode * sign(abs(c_et_gv_ext - 0.123456)))) / 180 * c_et_head`"

New 10/04/2025
"mix eyegazeon `MUEC_Look_Left_Right_?1 * ((60 * sign(c_etwm_yawsc + ! c_etwm_pitsc + ! c_et_hv_mode + ! sign(abs(c_et_gv_ext - 0.123456)))) + (35 * ! sign(c_etwm_yawsc) * sign(abs(c_et_hv_exp - 3.0)) * c_et_hv_mode * sign(abs(c_et_gv_ext - 0.123456)))) / 180 * c_et_head`"

New 03/04/2025
"mix eyeposon `MUEC_Smooth_Look_Speed?1 * 20 * c_et_head`"

Amended 18/04/2025
"mix eyeposyaw `MUEC?1 * (hmdyaw?0 * ! sign(eyeposon)) + (max(min(memory(long_press(hmdyaw?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)), 100) | eyeposwmyaw | ! hmdyaw?0, eyeposyaw + sel(hmdyaw?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)) | eyeposwmyaw, 0.0012 * eyeposon, -0.001 * eyeposon)), 1.0), -0.0)) * sign(eyeposon) * ! trackiron * c_et_head`"

Amended 18/04/2025
"mix eyepospitch `MUEC?1 * (hmdpitch?0 * ! sign(eyeposon)) + (max(min(memory(long_press(hmdpitch?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)), 100) | eyeposwmpitc | ! hmdpitch?0, eyepospitch + sel(hmdpitch?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)) | eyeposwmpitc, 0.0012 * eyeposon, -0.001 * eyeposon)), 1.0), -0.0)) * sign(eyeposon) * ! trackiron * c_et_head`"

Amended 18/04/2025
"mix eyeposroll `MUEC?1 * (hmdroll?0 * ! sign(eyeposon)) + (max(min(memory(hmdroll?0 | eyeposwmroll | ! hmdroll?0, eyeposroll + sel(hmdroll?0 | eyeposwmroll, 0.0012 * eyeposon, -0.001 * eyeposon)), 1.0), -0.0)) * sign(eyeposon) * ! trackiron * c_et_head`"

Amended 18/04/2025
"mix eyeposx `MUEC?1 * (hmdx?0 * ! sign(eyeposon)) + (max(min(memory(hmdx?0 | eyeposwmx | ! hmdx?0, eyeposx + sel(hmdx?0 | eyeposwmx, 0.0012 * eyeposon, -0.001 * eyeposon)), 1.0), -0.0)) * sign(eyeposon) * ! trackiron * c_et_head`"

Amended 18/04/2025
"mix eyeposy `MUEC?1 * (lookleft?0 * ! sign(eyeposon)) + (max(min(memory(long_press(lookleft?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)), 100) | eyeposwmy | ! lookleft?0, eyeposy + sel(lookleft?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)) | eyeposwmy, 0.0012 * eyeposon, -0.001 * eyeposon)), 1.0), -0.0)) * sign(eyeposon) * ! trackiron * c_et_head`"

Amended 18/04/2025
"mix eyeposz `MUEC?1 * (lookright?0 * ! sign(eyeposon)) + (max(min(memory(long_press(lookright?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)), 100) | eyeposwmz | ! lookright?0, eyeposz + sel(lookright?0 * ! sign((hmdyaw?0 * hmdpitch?0) + (lookleft?0 * lookright?0)) | eyeposwmz, 0.0012 * eyeposon, -0.001 * eyeposon)), 1.0), -0.0)) * sign(eyeposon) * ! trackiron * c_et_head`"

Amended 18/04/2025
"mix eyeposwmyaw `MUEC?1 * memory(short_press(hmdyaw?0 * long_press(! eyeposwmyaw, 500), 600) + (sign(hmdyaw?0 + hmdpitch?0 + hmdroll?0 + hmdx?0 + hmdy?0 + lookleft?0 + lookright?0 + ! headtron + eyepreset5?0) * long_press(eyeposwmyaw, 500)), ! eyeposwmyaw) * c_et_head`"

Amended 18/04/2025
"mix eyeposwmpitc `MUEC?1 * memory(short_press(hmdpitch?0 * long_press(! eyeposwmpitc, 500), 600) + (sign(hmdyaw?0 + hmdpitch?0 + hmdroll?0 + hmdx?0 + hmdy?0 + lookleft?0 + lookright?0 + ! headtron + eyepreset5?0) * long_press(eyeposwmpitc, 500)), ! eyeposwmpitc) * c_et_head`"

Amended 18/04/2025
"mix eyeposwmroll `MUEC?1 * memory(short_press(hmdroll?0 * long_press(! eyeposwmroll, 500), 600) + (sign(hmdyaw?0 + hmdpitch?0 + hmdroll?0 + hmdx?0 + hmdy?0 + lookleft?0 + lookright?0 + ! headtron + eyepreset5?0) * long_press(eyeposwmroll, 500)), ! eyeposwmroll) * c_et_head`"

Amended 18/04/2025
"mix eyeposwmx `MUEC?1 * memory(short_press(hmdx?0 * long_press(! eyeposwmx, 500), 600) + (sign(hmdyaw?0 + hmdpitch?0 + hmdroll?0 + hmdx?0 + hmdy?0 + lookleft?0 + lookright?0 + ! headtron + eyepreset5?0) * long_press(eyeposwmx, 500)), ! eyeposwmx) * c_et_head`"

Amended 18/04/2025
"mix eyeposwmy `MUEC?1 * memory(short_press(lookleft?0 * long_press(! eyeposwmy, 500), 600) + (sign(hmdyaw?0 + hmdpitch?0 + hmdroll?0 + hmdx?0 + hmdy?0 + lookleft?0 + lookright?0 + ! headtron + eyepreset5?0) * long_press(eyeposwmy, 500)), ! eyeposwmy) * c_et_head`"

Amended 18/04/2025
"mix eyeposwmz `MUEC?1 * memory(short_press(lookright?0 * long_press(! eyeposwmz, 500), 600) + (sign(hmdyaw?0 + hmdpitch?0 + hmdroll?0 + hmdx?0 + hmdy?0 + lookleft?0 + lookright?0 + ! headtron + eyepreset5?0) * long_press(eyeposwmz, 500)), ! eyeposwmz) * c_et_head`"

"mix headtron `MUEC?1 * ((c_et_hv_mode | (! sign(c_et_yawsc) * ! sign(c_et_pitchsc) * ! sign(c_etwm_yawsc) * ! sign(c_etwm_pitsc) * sign(c_et_hv_exp) * ! c_et_hv_mode * c_ht_on)) * c_et_head) | trackiron | ! sign(abs(c_et_gv_ext - 0.123456)) * c_et_head`"

Amended 18/04/2025
"mix headtryaw `MUEC?1 * ((((deadzone(steering, c_steer_dz ) * (c_et_gv_res * 0.5)) * c_et_hv_mode * ! hmdy?0 * ! hmdx?0 * ! hmdroll?0 * ! hmdpitch?0 * ! hmdyaw?0 * ! lookleft?0 * ! lookright?0) + (((((-c_et_hv_exp + 3.0) * 0.5 * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) + sign(long_press(hmdy?0, 333) + (lookleft?0 * lookright?0)) + (clamp((eyepresenton * eyeposyaw) + (eyepresent * eyeposroll) + (((1.0 - eyepresenton) * eyeposyaw) * ((1.0 - eyepresent) * eyeposroll)) + (eyegazeon * eyeposy), -0.0, (0.5 * ! c_et_pos) + (1.0 * c_et_pos))) + -(clamp((eyepresenton * eyepospitch) + (eyepresent * eyeposx) + (((1.0 - eyepresenton) * eyepospitch) * ((1.0 - eyepresent) * eyeposx)) + (eyegazeon * eyeposz), -0.0, (0.5 * ! c_et_pos) + (1.0 * c_et_pos)))) * c_et_hv_mode) + (((eyepresenton * eyeposyaw) + (eyepresent * eyeposroll) + (eyegazeon * eyeposy) + (-eyepresenton * eyepospitch) + (-eyepresent * eyeposx) + (-eyegazeon * eyeposz) + (lookleft?0 * lookright?0)) * ! sign(c_et_yawsc) * ! sign(c_et_pitchsc) * ! sign(c_etwm_yawsc) * ! c_et_hv_mode * ! trackiron * c_et_head) + (clamp(deadzone(pow(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0) * ! hmdon, 3), c_lr_dz) * (0.5 + (0.5 * c_et_pos)), -0.5 - (0.5 * c_et_pos), 0.5 + (0.5 * c_et_pos)) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0) * ! trackiron * (1.0 - 0.5 * ! abs(sign(c_et_hv_exp - c_et_hv_mode)))) + clamp(sel(trackiron * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0), trackiryaw, 0), -0.5 - (0.5 * c_et_pos), 0.5 + (0.5 * c_et_pos))) * (1.0 - abs((steering * (c_et_gv_res * (0.5 + 0.5 * ! c_et_pos))) * c_et_hv_mode * ! long_press(hmdy?0, 333) * ! hmdx?0 * ! hmdroll?0 * ! hmdpitch?0 * ! hmdyaw?0 * ! lookleft?0 * ! lookright?0 * (1.0 - 0.5 * ! abs(sign(c_et_hv_exp - 1)))))) * sign(abs(c_et_gv_ext - 0.123456)) * c_et_head) + ((sel(trackiron, trackiryaw, 0) + (deadzone(pow(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0) * ! hmdon, 3), c_lr_dz))) * ! c_et_head) + (((sel(trackiron, trackiryaw, 0)) + (sign(! c_et_pos - 0.5) + (((0.5 - c_et_pos) + (clamp(-msteering, -0.375 * ! c_et_pos, 0.375 * c_et_pos) * 2.667)) * c_et_hv_res) + deadzone(-sel(c_jilooklr, -j_look_lr?0, j_look_lr?0) * ! hmdon, c_lr_dz) + (((eyepresenton * eyeposyaw) + (eyepresent * eyeposroll) + (eyegazeon * eyeposy)) + -((eyepresenton * eyepospitch) + (eyepresent * eyeposx) + (eyegazeon * eyeposz))))) * ! sign(abs(c_et_gv_ext - 0.123456)) * sign(abs(c_et_pitchsc + 100.0)) * c_et_head)`"

Amended 18/04/2025
"mix headtrpitch `MUEC?1 * (((((-0.1 * sign(long_press(hmdy?0, 333) + (lookleft?0 * lookright?0))) + (((c_etwm_pitsc - ((c_etwm_pitsc - 2.28) * abs(headtryaw)) * c_et_hv_ac * ! abs(sign(c_et_hv_exp - 3.0))) - 2.5) * 0.2) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) * c_et_hv_mode) + (deadzone(pow(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0) * ! hmdon, 3), (c_ud_dz * ! c_et_hv_ac) + ((c_etwm_yawsc * 0.1) * c_et_hv_ac)) * (0.2 + (0.8 * c_et_pos * ! c_et_hv_ac * sign(4.0 - ! abs(sign(deadzone(c_et_yawsc - 2.5, 0.2))) - ! sign(deadzone(c_et_pitchsc, 0.4)) - ! sign(deadzone(c_etwm_yawsc, 0.99)) - ! abs(sign(c_et_hv_exp - 3.0))))) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0) * ! trackiron) + clamp(sel(trackiron * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0), trackirpitch, 0), -0.25 - (0.75 * c_et_pos * sign(4.0 - ! abs(sign(deadzone(c_et_yawsc - 2.5, 0.2))) - ! sign(deadzone(c_et_pitchsc, 0.4)) - ! sign(deadzone(c_etwm_yawsc, 0.99)) - ! abs(sign(c_et_hv_exp - 3.0)))), 0.25 + (0.75 * c_et_pos * sign(4.0 - ! abs(sign(deadzone(c_et_yawsc - 2.5, 0.2))) - ! sign(deadzone(c_et_pitchsc, 0.4)) - ! sign(deadzone(c_etwm_yawsc, 0.99)) - ! abs(sign(c_et_hv_exp - 3.0)))))) * sign(abs(c_et_gv_ext - 0.123456)) * c_et_head) + ((sel(trackiron, trackirpitch, 0) + (deadzone(pow(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0) * ! hmdon, 3), c_ud_dz))) * ! c_et_head) + (((sel(trackiron, trackirpitch, 0)) + ((deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0) * ! hmdon, c_ud_dz) * 0.5) - ((eyeposyaw * 0.05) + (eyepospitch * 0.05)))) * ! sign(abs(c_et_gv_ext - 0.123456)) * sign(abs(c_et_pitchsc + 100.0)) * c_et_head) + (! sign(abs(c_et_pitchsc + 100.0)) * -0.5 * c_et_head)`"

"mix headtrroll `MUEC?1 * sel(trackiron & c_ht_roll, trackirroll, 0) * sign(sign(abs(c_et_pitchsc + 100.0)) + ! c_et_head)`"

Amended 18/04/2025
"mix headtrx `MUEC?1 * ((((((0.0 * sign(long_press(hmdy?0, 333) + (lookleft?0 * lookright?0))) + ((c_et_yawsc * 3.0) - 7.5) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) * c_et_hv_mode) + ((clamp(headtryaw * (1.0 + (c_etwm_yawsc * 0.1)), -0.5, 0.5) * (c_etwm_yawsc * 10)) * (1.0 - abs(deadzone(headtryaw, 0.5))) * c_et_hv_ac) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) * sign(c_et_hv_exp - 1) + (((((-headtryaw + 1.0) * 25.0) * c_et_hv_ac) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) * ! sign(c_et_hv_exp - 1)) + (clamp(sel(trackiron, trackirx, 0), -0.1, 0.1) * ! c_et_hv_mode) + (clamp(sel(trackiron, trackirx, 0), -1.0, 1.0) * c_etwm_yawsc * c_et_hv_mode * c_et_hv_ac * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0) * ! abs(sign(c_et_hv_exp - 3))) + (-((abs(headtryaw) - 0.4) * 3.0) * sign(deadzone(headtryaw, 0.4)) * (c_et_pos * ! c_et_hv_ac * ! abs(sign(deadzone(c_et_yawsc - 2.5, 0.2))) * ! sign(deadzone(c_et_pitchsc, 0.4)) * ! sign(deadzone(c_etwm_yawsc, 0.99)) * ! abs(sign(c_et_hv_exp - 3.0)) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)))) * sign(abs(c_et_gv_ext - 0.123456)) * c_et_head) + (clamp(sel(trackiron, trackirx, 0), -0.1, 0.1) * ! c_et_head) + (((((-(((sign(msteering + abs(msteering))) * abs((0 - (abs(deadzone(clamp(msteering * 4, -1.0, 1.0), 0.5)))) * 3.9 * (1 + (dclutch * 2.4))) - (1.6 * (1 + (dclutch * 3)))) * -1)) * ! c_et_pos) + (((((sign(msteering - abs(msteering))) * abs((0 - (abs(deadzone(clamp(msteering * 4, -1.0, 1.0), 0.5)))) * 3.9 * (1 + (dclutch * 2.4))) + (1.6 * (1 + (dclutch * 3)))))) * c_et_pos))) * ! sign(abs(c_et_gv_ext - 0.123456)) * sign(abs(c_et_pitchsc + 100.0)) * c_et_head)`"

Amended 18/04/2025
"mix headtry `MUEC?1 * (((((2.0 * sign(long_press(hmdy?0, 333) + (lookleft?0 * lookright?0))) + ((((c_et_pitchsc - ((c_et_pitchsc - 0.4) * abs(headtryaw)) * c_et_hv_ac * ! abs(sign(c_et_hv_exp - 3.0))) + clamp(sel(trackiron, trackiry, 0), -c_et_pitchsc * (1.0 - abs(headtryaw * abs(sign(c_et_hv_exp - 1)))), c_et_pitchsc * (1.0 - abs(headtryaw * abs(sign(c_et_hv_exp - 1))))) * c_et_hv_mode * c_et_hv_ac) * 10.0) - 1.5) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) * c_et_hv_mode) + clamp(sel(trackiron, trackiry, 0), -0.05, 0.05) * ! c_et_hv_mode) * sign(abs(c_et_gv_ext - 0.123456)) * c_et_head) + (clamp(sel(trackiron, trackiry, 0), -0.05, 0.05) * ! c_et_head) + ((-0.8 - (0.8 * (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))) + clamp(sel(trackiron, trackiry, 0), -0.8, 0.1)) * ! sign(abs(c_et_gv_ext - 0.123456)) * sign(abs(c_et_pitchsc + 100.0)) * c_et_head) + (! sign(abs(c_et_pitchsc + 100.0)) * -10 * c_et_head)`"

Amended 18/04/2025
"mix headtrz `MUEC?1 * (((((-7.5 * sign(long_press(hmdy?0, 333) + (lookleft?0 * lookright?0))) + (((c_etwm_yawsc * 10.0) - 7.5) * (1.0 - (abs(clamp(deadzone(-sel(c_jilookud, -j_look_ud?0, j_look_ud?0) * ! hmdon, c_ud_dz * 2), -(1.0 - abs(headtryaw)), 0.0)) * c_et_hv_ac * ! trackiron * sign(c_et_hv_exp - 1)) + (clamp(sel(trackiron, trackirz, 0), -1.0, 0.5) * c_et_hv_ac)) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) * abs(clamp(abs((headtryaw * 2) * c_et_hv_ac * sign(c_et_hv_exp - 1)), -0.0, 1.0) - 1)) * c_et_hv_mode) + (clamp(sel(trackiron, trackirz, 0), -0.2, 0.05) * ! c_et_hv_mode) - ((abs(clamp(deadzone(headtryaw, 0.5), -0.93, 0.93)) * 11) * c_et_hv_ac * sign(c_et_hv_exp - 1) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) + abs(((((-headtryaw + 1.0) * 15.0) * c_et_hv_ac) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)) * ! sign(c_et_hv_exp - 1)) + (-abs(headtryaw) * 0.5 * (c_et_pos * ! c_et_hv_ac * ! abs(sign(deadzone(c_et_yawsc - 2.5, 0.2))) * ! sign(deadzone(c_et_pitchsc, 0.4)) * ! sign(deadzone(c_etwm_yawsc, 0.99)) * ! abs(sign(c_et_hv_exp - 3.0)) * ! long_press(hmdy?0, 333) * sign(! lookleft?0 + ! lookright?0)))) * sign(abs(c_et_gv_ext - 0.123456)) * c_et_head) + (clamp(sel(trackiron, trackirz, 0), -0.2, 0.05) * ! c_et_head) + (((0.0 - abs(clamp(-msteering * 2, -0.25 * ! c_et_pos, 0.25 * c_et_pos) * ((14 - (5.5 * c_et_hv_ac)) + (dclutch * 50 * (abs(clamp(msteering * 2, -0.375, 0.375)) - abs(deadzone(clamp(msteering * 2, -0.625, 0.625), 0.375)))))) + abs(deadzone(clamp(-msteering * 1.25, -1.0 * ! c_et_pos, 1.0 * c_et_pos), 0.75) * (3.75 - (1.46 * c_et_hv_ac))) + abs(deadzone(msteering, (0.25 * (sign(msteering - (msteering * 2) + abs(msteering))) * c_et_pos) + (0.25 * (-sign(msteering - (msteering * 2) - abs(msteering))) * ! c_et_pos)) * (8 + (c_et_hv_end * 100))))) * ! sign(abs(c_et_gv_ext - 0.123456)) * sign(abs(c_et_pitchsc + 100.0)) * c_et_head)`"

"mix headtrwmon `MUEC?1 * trackiron`"

Amended 02/04/2025
"mix steering `MUEC?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) * sign(abs(c_et_gv_ext - 0.123456) + ! c_et_head)`"

"mix msteering `MUEC?1 * ((-mouse.rel_position.x?0 * c_msens) * sign(abs(c_et_gv_ext - 0.123456) + ! c_et_head)) + (-sel(c_jisteer, -j_steer?0, j_steer?0) * ! sign(abs(c_et_gv_ext - 0.123456)) * c_et_head)`"

Amended 02/04/2025
"mix aforward `MUEC?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) * sign(abs(c_et_gv_ext - 0.123456) + ! c_et_head)`"

Amended 02/04/2025
"mix abackward `MUEC?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) * sign(abs(c_et_gv_ext - 0.123456) + ! c_et_head)`"

Amended 10/04/2025
"mix dclutch `MUEC?1 * ((c_et_hv_sta * 10) + 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)) * 1.5 * ! sign(abs(c_et_gv_ext - 0.123456)) * c_et_head`"
OR
Alternative line edit that splits the 'walk away' movement (brake pedal/thumbstick) into 4 steps instead of a continuous, but twitchy, movement.
"mix dclutch `MUEC?1 * ((c_et_hv_sta * 10) + (sign(deadzone(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), 0.25)) * 0.25) + (sign(deadzone(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), 0.5)) * 0.25) + (sign(deadzone(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), 0.75)) * 0.25) + (sign(deadzone(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), 0.95)) * 0.25)) * 1.5 * ! sign(abs(c_et_gv_ext - 0.123456)) * c_et_head`"

Amended 02/04/2025
"mix clutch `MUEC?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) + ! sign(abs(c_et_gv_ext - 0.123456)) * c_et_head`"

"mix eyecfg `MUEC?1 * (modifier(shift_only, keyboard.key9?0) | modifier(shift_only, keyboard.numlock?0)) * c_et_hv_mode * sign(sign(abs(c_et_gv_ext - 0.123456)) + sign(abs(c_et_pitchsc + 100.0))) * c_et_head | (modifier(shift_only, keyboard.key9?0) | modifier(shift_only, keyboard.numlock?0)) * ! c_et_head`"

"mix headtren `MUEC?1 * ((cam1?0 | sign(abs(mouse.rel_position.x?0)) * c_ht_on * eyepause?0) * ! sign(c_et_yawsc) * ! sign(c_et_pitchsc) * ! sign(c_etwm_yawsc) * ! c_et_hv_mode) * ! trackiron * c_et_head | cam1?0 * ! c_ht_on * trackiron * c_et_head`"

"mix eyepause `MUEC?1 * 0 * c_et_head`" <-- Allow button toggle to switch CAM 1 game standard look control and auto centre.
OR
"mix eyepause `MUEC?1 * 1 * c_et_head`" <-- Allow above toggle and moving the mouse to switch CAM 1 from auto centre to game standard look control.
OR
"mix eyepause `MUEC?1 * 1 * c_et_head`" <-- If using TrackIR, set this to 1 to ensure CAM 1 always has mouse movement if TrackIR is turned off during game play.

"mix eyepreset1 `MUEC?1 * keyboard.key6?0 * ! sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix eyepreset2 `MUEC?1 * keyboard.key7?0 * ! sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix eyepreset3 `MUEC?1 * keyboard.key8?0 * ! sign(keyboard.lshift?0 + keyboard.rshift?0) * c_et_head`"

"mix eyepreset4 `MUEC?1 * (cam1?0 | cam2?0 | cam3?0 | cam4?0 | (sign(abs(mouse.rel_position.x?0)) * c_ht_on * eyepause?0 * ! sign(c_et_yawsc) * ! sign(c_et_pitchsc) * ! sign(c_etwm_yawsc) * ! c_et_hv_mode * ! trackiron) | (keyboard.key6?0| keyboard.key7?0 | keyboard.key8?0) * sign(keyboard.lshift?0 + keyboard.rshift?0) | cam0?0 * sign(abs(c_et_gv_ext - 0.123456))) * c_et_head`"

"mix eyepreset5 `MUEC?1 * keyboard.key5?0 * c_et_head`"

Close & save.

TIP: Re-open the saved control.sii file before running the game for the first time. This prevents the game resetting your controls.sii file if you made an error.
If the new cameras don't work then open the console, if you see one of the above lines in red text, you need to check that line again for a typo or a bad copy/paste. Save controls.sii but don't close then run game again.
Once you are happy all is working as intended you can keep the controls.sii file closed.
Here's an example of an error in line "mix headtrx `........ as indicated in the red box. The green box is how it should look when correct.
Image
Example errors in your game.log.txt file and how to fix them:
This error will prevent MUEC from working all together. It's caused by missing a " from the end of one of the line edits. Be careful when copy/pasting as this error can cause the game to reset the whole file back to game defaults.
00:00:04.454 : <ERROR> [unit] File '<C:/Users/TEST/Documents/American Truck Simulator | /home>/profiles/xxxx/controls.sii', line 519:
00:00:04.454 : <ERROR> Expecting string value, found '"'
00:00:04.454 : <ERROR> load_unit_tree() - Failed to load unit tree from file (/home/profiles/xxxx/controls.sii)

To locate the problem subtract 6 from the line number stated. For example: 519-6=513
So the error is caused by the line starting "config_lines[513]:..."
Re-copy/paste the matching "mix name..." line edit from your line 513 into your controls.sii file.

This error will allow some MUEC functions to work but the MUEC function associated to this line won't. The game will reset this line to game default.
00:00:04.453 : <ERROR> [inp] line "mix name...`" is malformed
Re-copy/paste the matching "mix name..." line edit into your controls.sii file.
Last edited by JHTrucker on April 18th, 2025, 5:05 pm, edited 223 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
BenganJ
Moderator
Posts: 9589
Joined: December 15th, 2018, 11:54 am
Location: Gothenburg, Sweden

Re: Multiple Universal External Cameras for ATS & ETS2 1.38/1.39

Post by BenganJ » January 11th, 2021, 4:26 pm

@JHTrucker

DAMN, you're a creative bastard! I've many times, I'm testing maps before release most often with the roof camera,
sworn that I can't "look around" in that view. Looking forward to this later!
---------------------------------------------------------------------------------------------------------------------------------------------
System: Windows 8.1
Processor: Intel Core i7-4790@
Memory: 16GB
Graphics: ASUS GeForce GTX1660Ti
Image
User avatar
JHTrucker
Expert
Posts: 1404
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Multiple Universal External Cameras for ATS & ETS2 1.38/1.39

Post by JHTrucker » January 11th, 2021, 5:07 pm

@BenganJ - Well i thought of it and decided to do it even though it's not something i need.
But using TIR and "chase very far" is oddly entertaining. You are far behind your truck and trailers but when leaning forwards you zoom to the truck roof for better view at junctions etc. Maybe better for map checking?
Enjoy.
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: 1404
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Multiple Universal External Cameras for ATS & ETS2 1.38/1.39

Post by JHTrucker » January 14th, 2021, 5:23 pm

First post updated:
Line 255 amended to allow TrackIR 'y' (up/down) movement whilst having "Auto move position when looking left/right" enabled.

That means TrackIR users can now move left/right/up/down/forward/backwards when using chase cam's etc (when auto move menu option is enabled).
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
kmorreison
Posts: 18
Joined: October 6th, 2020, 8:29 pm

Re: Multiple Universal External Cameras with look function - 1.38/1.39

Post by kmorreison » January 24th, 2021, 5:32 am

pleaseee!! i love this for change my cams!! buut i have a best problem!! i cant have a numpad!! i cant have key numlock!! pls how need to change this key for open menu?? for use insert or supr key?? help me pls!!

Thanks for you work!
User avatar
JHTrucker
Expert
Posts: 1404
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Multiple Universal External Cameras with look function - 1.38/1.39

Post by JHTrucker » January 24th, 2021, 6:16 pm

@kmorreison - Thanks for being the first to comment after 13 downloads, but too bad you can't open the menu. Shift Numlock is SCS default for Tobii eye menu.

I'll update soon to allow another key... Done. Read the next post.
Last edited by JHTrucker on January 24th, 2021, 7:45 pm, edited 1 time 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: 1404
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Multiple Universal External Cameras with look function - 1.38/1.39

Post by JHTrucker » January 24th, 2021, 7:43 pm

First post updated to allow opening the menu with key '9' as well as the original 'shift + numlock'

Line 181 added and line 343 amended.

As already stated in the first post, the menu won't open unless you are already using cam 5 or 6.
If you are using cam 1 and press '9' then nothing will happen.
Change to cam 5 or 6 before pressing '9' to show the menu.
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
kmorreison
Posts: 18
Joined: October 6th, 2020, 8:29 pm

Re: Multiple Universal External Cameras with look function - 1.38/1.39

Post by kmorreison » January 24th, 2021, 11:15 pm

Sorry for the inconvenience, the truth already works perfectly with the 9 key !!! thank you.

My English is not very good, I use google hahaha ...

Could you help me on how to make a camera like the original 6 of the game which is seen from the bumper, but what I would like is to be able to raise it a little to the height of the real window! and to be able to have the functions of turning the head like this now !!

I love camera 5 that looks like the cabin! but the 6th I would like to do what I tell you!

Thank you for all the work you do so that others can enjoy it!
kmorreison
Posts: 18
Joined: October 6th, 2020, 8:29 pm

Re: Multiple Universal External Cameras with look function - 1.38/1.39

Post by kmorreison » January 24th, 2021, 11:35 pm

I managed to make the configuration I wanted by touching the parameters !! but is there any way to save it ?? if not every time I change the camera to 1 they are erased.

And another doubt when I put the camera as close as if it were the first person I have a problem ... and that is that when I turn the camera to look to the sides I really see the cab of the truck from the opposite side.

Sorry and Thanks!

Edited: Removing the automove tab I solve the problem of looking to the right and left !! I just need to know if there is any way to save the camera!, i would like the configuration that I put to always be saved in 6.
Edited2: Is there a way with the keyboard that when you look to the right or left it will turn your head slowly? that it was not instantaneous?
User avatar
JHTrucker
Expert
Posts: 1404
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: Multiple Universal External Cameras with look function - 1.38/1.39

Post by JHTrucker » January 25th, 2021, 12:23 am

@kmorreison - Glad you got it to work.
Everything you are asking for help with is already in the first post,
The Q&A section has your exact question regarding losing your camera.

Perhaps you know someone that can read the main post and help you rather than google?
Keep playing this and trying the options out so you better understand what does what.

Use "HOOD" to get a window height camera that looks left/right or "ROOF"?

Read "How to add your own preset" <--- that is how to save your camera.
Move the menu sliders to where you want them.
Write down their numbers.
Edit a spare preset file by adding those numbers.

EDIT: I've added a simple picture to help explain "how to save a preset" in the main post.
EDIT 2: Added description of menu mod sliders to main post to help you translate.

As stated in the main post, pressing look left/right is instant and can't be moved slowly unless you use a gamepad (xbox360 etc).
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