Parameter | Arguments | Description | Version | Reference |
---|---|---|---|---|
-32bit | launch directly in 32bit mode | |||
-64bit | launch directly in 64bit mode | |||
-conversion_dump_path | ||||
-dlc_dep_cont | ||||
-dummy_oculus_hd | ||||
-dump_units | <file_path> | https://forum.scssoft.com/viewtopic.php?p=559724#p559724 | ||
-edit | <europe/usa> | launch the map editor directly | https://forum.scssoft.com/viewtopic.php?p=369711#p369711 | |
-edit_unit | ||||
-env | ||||
-error_overlay | ||||
-fast | ||||
-force_mods | completely overpass the mod manager, mods will be directly load into the games in an alphabetical order so be careful of mod dependencies | |||
-gamepad_ui | ||||
-hardcoded_key_names | ||||
-hmd_adapter | ||||
-hmd_no_adapter | ||||
-hmd_no_refresh | ||||
-hmd_no_res | ||||
-hmd_no_win_pos | ||||
-homedir | <folder_path> | |||
-lang | ||||
-lenv | ||||
-log | ||||
-logall | ||||
-mm_max_resource_size | ||||
-mm_max_resource_size | 22 [in Megabytes. This is the memory allocation for any resource (Could be .pmg file or large .dds texture) If any of your mods' files are larger than 22Mb, the game simply allocates more 'blocks' of 22Mb.] Maximal value: 100 | https://forum.scssoft.com/viewtopic.php?p=993740#p993740 | ||
-mm_max_tmp_buffers_size | ||||
-mm_max_tmp_buffers_size | Size of entire buffer array in Mb | Size of entire buffer array in Mb (Default: 112, Max: 1000) | https://forum.scssoft.com/viewtopic.php?p=993740#p993740 | |
-mm_no_lowfrag | ||||
-mm_pool_size | ||||
-no_dlc | < dlc_name> | Disables the entered DLC | https://forum.scssoft.com/viewtopic.php?p=1189897#p1189897 | |
-no_extra_mount | ||||
-no_steamvr | ||||
-nocpu | disables cpu specific optimizations (core numbres, threading etc) | |||
-nodx9ex | ||||
-nointro | skips the intro videos | |||
-nolfh | ||||
-noonline | ||||
-noproxy | ||||
-nosingle | ||||
-nosingle | allows you to run multiple entities of the e2 executable, at the same time | |||
-nostdio | ||||
-noworkshop | Disables Steam Workshop functionality | |||
-oculus | ||||
-openvr | ||||
-perfhud | ||||
-preview | <europe/usa> | spawns truck at location marked in the map with the "start position" command | ||
-proxy | ||||
-pure | the opposite of force_mods, will stop the loading of mods | |||
-quiet | ||||
-rdevice | <dx9/dx11/gl> | |||
-resetstats | ||||
-rpath | ||||
-safe | Launch in safe mode | |||
-sdevice | ||||
-small | ||||
-stdio | ||||
-sysmouse | ||||
-test | ||||
-traceout | ||||
-unlimitedlog | removes the limit of the gamelog.txt file size | |||
-validate | ||||
-window_pos |
Last active
July 9, 2025 22:54
-
-
Save Bluscream/15d58187b357ed1f10ab1372110ac576 to your computer and use it in GitHub Desktop.
Euro Truck Simulator 2 Launch Options (Command Line Arguments)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
param( | |
[string]$GamePath = $PSScriptRoot, | |
[switch]$Backup = $true, | |
[switch]$Force = $false, | |
[string]$inputFile = "./autoexec.cfg", | |
[switch]$deleteBackups = $false, | |
[switch]$deleteConfigs = $false | |
) | |
$profileDirs = @("profiles", "steam_profiles", "preview_profiles") | |
$configHeader = "# prism3d variable config data`n`n" # Autoexec settings deployed on {datetime}`n`n" | |
function Delete-Files { | |
param( | |
[Parameter(Mandatory = $true)] | |
[System.IO.FileInfo[]]$Files | |
) | |
foreach ($file in $Files) { | |
try { | |
Remove-Item $file.FullName -Force | |
Write-ColorOutput "Deleted file: $($file.FullName)" "Cyan" | |
} catch { | |
Write-ColorOutput "Failed to delete: $($file.FullName) - $_" "Red" | |
} | |
} | |
} | |
function Delete-Backups { | |
$files = Get-ChildItem -Path $GamePath -Recurse -File -Filter "*.bak" | |
$files += Get-ChildItem -Path $GamePath -Recurse -File -Filter "*.backup.*" | |
Write-ColorOutput "Found $($files.Count) backup files to delete." "Magenta" | |
Delete-Files -Files $files | |
} | |
if ($deleteBackups) { | |
Delete-Backups | |
exit | |
} | |
function Delete-Configs { | |
$files = Get-ChildItem -Path $GamePath -Recurse -File -Filter "config.cfg" | |
$files += Get-ChildItem -Path $GamePath -Recurse -File -Filter "config_local.cfg" | |
Write-ColorOutput "Found $($files.Count) config files to delete." "Magenta" | |
Delete-Files -Files $files | |
} | |
if ($deleteConfigs) { | |
Delete-Configs | |
exit | |
} | |
function Write-ColorOutput { | |
param( | |
[string]$Message, | |
[string]$Color = "White" | |
) | |
Write-Host $Message -ForegroundColor $Color | |
} | |
function Backup-File { | |
param([string]$FilePath) | |
if (Test-Path $FilePath) { | |
$backupPath = "$FilePath.bak" # .$(Get-Date -Format 'yyyyMMdd_HHmmss')" | |
Copy-Item $FilePath $backupPath | |
Write-ColorOutput "Backed up: $FilePath -> $backupPath" "Yellow" | |
return $backupPath | |
} | |
return $null | |
} | |
function Add-ToConfigFile { | |
param( | |
[string]$ConfigPath, | |
[string[]]$LinesToAdd, | |
[string]$SourceFile | |
) | |
try { | |
if (-not (Test-Path $ConfigPath)) { | |
$configDir = Split-Path $ConfigPath -Parent | |
if (-not (Test-Path $configDir)) { | |
New-Item -ItemType Directory -Path $configDir -Force | Out-Null | |
} | |
$datetime = (Get-Date -Format 'yyyy-MM-dd HH:mm:ss') | |
$autoexecContent = $configHeader -replace "{datetime}", $datetime | |
$autoexecContent += ($LinesToAdd -join "`n") + "`n" | |
Set-Content -Path $ConfigPath -Value $autoexecContent | |
Write-ColorOutput "Created new config file: $ConfigPath" "Green" | |
return $true | |
} | |
$existingContent = Get-Content $ConfigPath | |
if ($Backup) { | |
Backup-File $ConfigPath | |
} | |
$newLinesToAdd = @() | |
foreach ($line in $LinesToAdd) { | |
$trimmedLine = $line.Trim() | |
if ($trimmedLine -ne "" -and -not $trimmedLine.StartsWith("#")) { | |
$settingExists = $false | |
foreach ($existingLine in $existingContent) { | |
$existingTrimmed = $existingLine.Trim() | |
if ($existingTrimmed -eq $trimmedLine) { | |
$settingExists = $true | |
break | |
} | |
} | |
if (-not $settingExists) { | |
$newLinesToAdd += $line | |
} else { | |
} | |
} | |
} | |
if ($newLinesToAdd.Count -gt 0) { | |
$autoexecContent = ($newLinesToAdd -join "`n") + "`n" | |
Add-Content -Path $ConfigPath -Value $autoexecContent | |
Write-ColorOutput "Added $($newLinesToAdd.Count) new lines to: $ConfigPath" "Green" | |
return $true | |
} else { | |
Write-ColorOutput "All autoexec lines already exist in: $ConfigPath" "Yellow" | |
return $true | |
} | |
return $true | |
} | |
catch { | |
Write-ColorOutput "Error updating $ConfigPath : $($_.Exception.Message)" "Red" | |
return $false | |
} | |
} | |
Write-ColorOutput "=== ETS2 Config Deployer ===" "Cyan" | |
Write-ColorOutput "Game Path: $GamePath" "White" | |
$inputFilePath = Join-Path $GamePath $inputFile | |
if (-not (Test-Path $inputFilePath)) { | |
Write-ColorOutput "Error: Input file not found at: $inputFilePath" "Red" | |
exit 1 | |
} | |
try { | |
$autoexecContent = Get-Content $inputFilePath | |
Write-ColorOutput "Successfully read $($inputFile) ($($autoexecContent.Count) lines)" "Green" | |
} | |
catch { | |
Write-ColorOutput "Error reading $($inputFile) $($_.Exception.Message)" "Red" | |
exit 1 | |
} | |
$processedCount = 0 | |
$errorCount = 0 | |
Write-ColorOutput "`nProcessing: Main Directory" "Cyan" | |
$mainConfigPath = Join-Path $GamePath "config.cfg" | |
if (Add-ToConfigFile -ConfigPath $mainConfigPath -LinesToAdd $autoexecContent -SourceFile $inputFile) { | |
$processedCount++ | |
} else { | |
$errorCount++ | |
} | |
$mainConfigLocalPath = Join-Path $GamePath "config_local.cfg" | |
if (Add-ToConfigFile -ConfigPath $mainConfigLocalPath -LinesToAdd $autoexecContent -SourceFile $inputFile) { | |
$processedCount++ | |
} else { | |
$errorCount++ | |
} | |
foreach ($profileDir in $profileDirs) { | |
$fullProfilePath = Join-Path $GamePath $profileDir | |
if (-not (Test-Path $fullProfilePath)) { | |
Write-ColorOutput "Profile directory not found: $fullProfilePath" "Yellow" | |
continue | |
} | |
Write-ColorOutput "`nProcessing: $profileDir" "Cyan" | |
$profileSubdirs = Get-ChildItem -Path $fullProfilePath -Directory | |
foreach ($subdir in $profileSubdirs) { | |
Write-ColorOutput " Profile: $($subdir.Name)" "White" | |
$configPath = Join-Path $subdir.FullName "config.cfg" | |
if (Add-ToConfigFile -ConfigPath $configPath -LinesToAdd $autoexecContent -SourceFile $inputFile) { | |
$processedCount++ | |
} else { | |
$errorCount++ | |
} | |
$configLocalPath = Join-Path $subdir.FullName "config_local.cfg" | |
if (Add-ToConfigFile -ConfigPath $configLocalPath -LinesToAdd $autoexecContent -SourceFile $inputFile) { | |
$processedCount++ | |
} else { | |
$errorCount++ | |
} | |
} | |
} | |
Write-ColorOutput "`n=== Deployment Summary ===" "Cyan" | |
Write-ColorOutput "Successfully processed: $processedCount files" "Green" | |
if ($errorCount -gt 0) { | |
Write-ColorOutput "Errors encountered: $errorCount files" "Red" | |
} | |
Write-ColorOutput "`nDeployment completed!" "Green" | |
Write-ColorOutput "`nUsage:" "Yellow" | |
Write-ColorOutput " .\Deploy-Configs.ps1 # Deploy autoexec.cfg to current directory" "White" | |
Write-ColorOutput " .\Deploy-Configs.ps1 -GamePath 'C:\path' # Deploy to specific path" "White" | |
Write-ColorOutput " .\Deploy-Configs.ps1 -inputFile 'myconfig.cfg' # Use custom input file" "White" | |
Write-ColorOutput " .\Deploy-Configs.ps1 -Backup:$false # Skip backup creation" "White" |
What about the "spawn" command? I mean, I know about the fact that you can spawn specific traffic types with that command, but what about the optional "[parameters]" field?
This is not about console commands, purely about command line arguments.
https://steamcommunity.com/sharedfiles/filedetails/?id=907382792
Heya! Thanks for this awesome list. There doesn't seem to be an argument for loading a profile directly and skipping the main menu. Or have I missed something?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
haha