Skip to content

Instantly share code, notes, and snippets.

@Bluscream
Last active July 9, 2025 22:54
Show Gist options
  • Save Bluscream/15d58187b357ed1f10ab1372110ac576 to your computer and use it in GitHub Desktop.
Save Bluscream/15d58187b357ed1f10ab1372110ac576 to your computer and use it in GitHub Desktop.
Euro Truck Simulator 2 Launch Options (Command Line Arguments)
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
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"
@Bluscream
Copy link
Author

haha

@Bluscream
Copy link
Author

Graish7:

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

@jannistpl
Copy link

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