diff --git a/FlybyScript/Locales/Strings.it.resx b/FlybyScript/Locales/Strings.it.resx
new file mode 100644
index 0000000..bd41f14
--- /dev/null
+++ b/FlybyScript/Locales/Strings.it.resx
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Installazione patch bypass annullata dall'utente.
+
+
+ L'utente ha selezionato un'unità non rimovibile.
+
+
+ Nessuna unità USB selezionata per l'installazione della patch.
+
+
+ Impossibile applicare la patch bypass:
+
+
+ Il percorso selezionato non è un'unità rimovibile.\nSeleziona un'unità USB.
+
+
+ Seleziona l'unità USB contenente i file di installazione di Windows 11.\ntQuesta funzione aggiunge una patch di compatibilità per bypassare determinati requisiti di sistema.\nÈ compatibile con le unità preparate da qualsiasi strumento, incluso Rufus.\nAssicurati che l'unità sia pronta!
+
+
+ Ciò applicherà le impostazioni di bypass compatibilità nell'unità USB selezionata.\nVuoi continuare?
+
+
+ Patch bypass applicata correttamente!
+
+
+ Assistente aggiornamento Flyby11
+
+
+ Applica patch compatibilità a file ISO (installazione pulita)
+
+
+ Posso eseguire l'aggiornamento a Windows 11?
+
+
+ L'aggiornamento ha funzionato? Segnalacelo!
+
+
+ Trascina e rilascia il file ISO di Windows per patcharlo ed installare con hardware non supportato (aggiornamento inplace).
+
+
+ R: puoi scaricare la versione ISO più recente dal sito web ufficiale di Microsoft o usare il downloader di Fido.
+
+
+ R: se hai installato correttamente Windows 11 e hai risparmiato un po' di soldi, non esitare a lasciare qualcosa come ringraziamento qui.
+
+
+ Clic qui per donare e dimostrare il tuo supporto.
+
+
+ R: una volta montato il file ISO, il processo di configurazione verrà eseguito in background. Il programma di installazione di Windows si avvia, guidando i passaggi necessari per installare Windows 11 nel dispositivo.
+
+
+ R: controlla i messaggi di errore e segnalali in GitHub.
+
+
+ R: sì, Microsoft ha lasciato aperto un backdoor. Questo metodo sfrutta una funzione del processo di configurazione di Windows 11 che usa la variante di Windows Server dell'installazione. A differenza della normale configurazione di Windows 11, questa variante salta la maggior parte dei controlli di compatibilità hardware.
+
+
+ R: secondo Microsoft, dovresti buttare via il PC. Io ti suggerisco di installarci Linux e di lasciar stare Windows.
+
+
+ R: lo sviluppatore è Belim, noto anche come Buildbybel, che ha contribuito molto al codice alla comunità di Windows.
+
+
+ Fai clic qui per saperne di più sui lavori dello sviluppatore.
+
+
+ Scarica tramite Fido (consigliato)
+
+
+ Download dal sito Microsoft
+
+
+ Domande frequenti (FAQ)
+
+
+ D: dove posso scaricare il file ISO della versione più recente di Windows 11?
+
+
+ D: come posso supportare lo sviluppatore?
+
+
+ D: come funziona il processo di configurazione una volta montato il file ISO?
+
+
+ D: e se riscontro problemi durante l'installazione?
+
+
+ D: è legale usare questo metodo?
+
+
+ D: quali sono le alternative se l'hardware del PC non è supportato?
+
+
+ D: chi è lo sviluppatore?
+
+
+ 1. Il dispositivo contiene una versione di Windows 10 attualmente supportata. Se nel dispositivo non è attualmente in esecuzione una versione supportata di Windows 10, aggiorna ad una versione supportata di Windows 10.
+
+
+ 2. Il dispositivo soddisfa
+
+
+ 1. Download ed esecuzione di
+
+
+ 2. Seleziona il collegamento di Windows Update, quindi seleziona il pulsante 'Controlla aggiornamenti':
+
+
+ 3. Il dispositivo non soddisfa i requisiti ufficiali per Windows 11? È possibile applicare una patch di compatibilità per abilitare l'aggiornamento inplace tramite Windows Update.
+
+
+ Un dispositivo con una installazione Windows 10 esistente può essere aggiornata a Windows 11 se soddisfa i seguenti criteri:
+
+
+ Per vedere se un dispositivo Windows 10 è idoneo a passare a Windows 11, segui una di queste opzioni:
+
+
+ Le specifiche hardware minime per eseguire Windows 11.
+
+
+ l'app WhyNotwin11 per confermare se il dispositivo soddisfa i requisiti minimi di sistema
+
+
+ L'installazione di Windows 11 può ora procedere. Segui le istruzioni nella finestra di configurazione.
+ Install
+
+
+ Sei pronto per installare Windows 11 con hardware non supportato! Ignora il prompt "Windows Server"; tutto è pronto!
+ Install
+
+
+ Avvio processo configurazione con privilegi elevati ...
+ Install
+
+
+ Oops! Qualcosa è andato storto:
+ Mounting
+
+
+ Montaggio file...
+ Mounting
+
+
+ Impossibile montare il file ISO. Riprova.
+ Mounting
+
+
+ File ISO montato correttamente! Procediamo con l'installazione di Windows 11!
+ Mounting
+
+
+ Ci siamo quasi! Preparazione installazione ...
+ Install
+
+
+ File configurazione non trovato in
+ Mounting
+
+
+ Seleziona dal computer
+
+
+ Grazie per aver usato questa app!\n\nHo sviluppato questa app nel mio tempo libero per aiutarti ad aggiornare da Windows 10 a Windows 11 - anche su PC che, secondo i requisiti hardware di Microsoft, normalmente non sarebbero supportati.\nQuesta app ti aiuta ad evitare di acquistare un nuovo computer e contribuisce attivamente ad evitare di produrre rifiuti elettronici inutili.\nNormalmnte non chiedo nulla per i miei progetti - né per lo sviluppo né per il supporto.\nQuesta app è significativamente completa, offre tante funzionalità e richiede più supporto, ti sarei grato se considereresti di fare una piccola donazione volontaria, se sei in grado di farlo.\n\nOvviamente , solo se vuoi e puoi permettertelo.\nVuoi donare un piccolo contributo con Paypal?
+
+
diff --git a/Flyoobe.Extensions/EXTENSIONS.md b/Flyoobe.Extensions/EXTENSIONS.md
new file mode 100644
index 0000000..f1b9bef
--- /dev/null
+++ b/Flyoobe.Extensions/EXTENSIONS.md
@@ -0,0 +1,32 @@
+# Flyoobe Extensions
+
+Here you can find community extensions for Flyoobe.
+Copy the provided `.ps1` raw link and install it via the **Get Extensions → Install from URL** option in the app.
+
+---
+
+## 🛡 Microsoft Defender Maintenance
+**Description:** Update Defender signatures, repair definitions, or check Defender status.
+**Options:**
+- Update signatures
+- Repair definitions and update
+- Show Defender status
+
+🔗 [Raw script link](https://raw.githubusercontent.com/builtbybel/Flyoobe/refs/heads/main/Flyoobe.Extensions/Microsoft%20Defender%20maintenance.ps1)
+
+---
+
+## 🎮 Gaming Tweaks
+**Description:** Optimize Windows 11 for gaming (Game Mode, HAGS, Power Plans, DVR).
+**Options:**
+- Enable Game Mode
+- Disable Game Mode
+- Toggle Hardware GPU Scheduling
+- Switch Power Plans
+- Disable Game DVR
+- Clear Shader Cache
+
+🔗 [Raw script link](https://raw.githubusercontent.com/builtbybel/Flyoobe/refs/heads/main/Flyoobe.Extensions/Gaming%20tweaks.ps1)
+
+---
+
diff --git a/Flyoobe.Extensions/Gaming tweaks.ps1 b/Flyoobe.Extensions/Gaming tweaks.ps1
new file mode 100644
index 0000000..70f01b0
--- /dev/null
+++ b/Flyoobe.Extensions/Gaming tweaks.ps1
@@ -0,0 +1,74 @@
+# Description: Gaming Tweaks – optimize Windows 11 for games
+# Host: console
+# Options: Enable Game Mode; Disable Game Mode; Toggle Hardware GPU Scheduling; Switch Power Plans; Disable Game DVR; Clear Shader Cache
+
+param([string]$choice)
+
+function Is-Admin {
+ $id = [Security.Principal.WindowsIdentity]::GetCurrent()
+ $pr = New-Object Security.Principal.WindowsPrincipal($id)
+ return $pr.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
+}
+
+switch ($choice) {
+
+ "Enable Game Mode" {
+ Write-Output "✔ Enabling Game Mode..."
+ Set-ItemProperty -Path "HKCU:\Software\Microsoft\GameBar" -Name "AllowAutoGameMode" -Value 1
+ }
+
+ "Disable Game Mode" {
+ Write-Output "✔ Disabling Game Mode..."
+ Set-ItemProperty -Path "HKCU:\Software\Microsoft\GameBar" -Name "AllowAutoGameMode" -Value 0
+ }
+
+ "Toggle Hardware GPU Scheduling" {
+ if (-not (Is-Admin)) {
+ Write-Output "✘ Requires Administrator. Please run Flyoobe as Admin."
+ break
+ }
+
+ $path = "HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers"
+ $val = (Get-ItemProperty -Path $path -Name HwSchMode -ErrorAction SilentlyContinue).HwSchMode
+ if ($val -eq 2) {
+ Set-ItemProperty -Path $path -Name HwSchMode -Value 1 -Type DWord
+ Write-Output "✔ Hardware GPU Scheduling disabled (restart required)."
+ } else {
+ Set-ItemProperty -Path $path -Name HwSchMode -Value 2 -Type DWord
+ Write-Output "✔ Hardware GPU Scheduling enabled (restart required)."
+ }
+ }
+
+ "Switch Power Plans" {
+ Write-Output "Available power plans:"
+ powercfg /list
+
+ Write-Output ""
+ Write-Output "Use one of these commands to switch manually:"
+ Write-Output " - Balanced: powercfg /setactive SCHEME_BALANCED"
+ Write-Output " - High Performance: powercfg /setactive SCHEME_MIN"
+ Write-Output " - Ultimate Performance: powercfg /setactive SCHEME_MAX"
+ }
+
+ "Disable Game DVR" {
+ Write-Output "✔ Disabling Game DVR..."
+ Set-ItemProperty -Path "HKCU:\System\GameConfigStore" -Name "GameDVR_Enabled" -Value 0
+ Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\GameDVR" -Name "AppCaptureEnabled" -Value 0
+ }
+
+ "Clear Shader Cache" {
+ $cache = "$env:LOCALAPPDATA\D3DSCache"
+ if (Test-Path $cache) {
+ Write-Output "✔ Clearing shader cache..."
+ Remove-Item "$cache\*" -Force -Recurse -ErrorAction SilentlyContinue
+ } else {
+ Write-Output "ℹ Shader cache folder not found."
+ }
+ }
+
+ default {
+ Write-Output "✘ Unknown option: $choice"
+ }
+}
+
+Write-Output "`nDone. Some changes may require restart to take effect."
diff --git a/Flyoobe.Extensions/Microsoft Defender maintenance.ps1 b/Flyoobe.Extensions/Microsoft Defender maintenance.ps1
new file mode 100644
index 0000000..1d0e4ba
--- /dev/null
+++ b/Flyoobe.Extensions/Microsoft Defender maintenance.ps1
@@ -0,0 +1,102 @@
+# Microsoft Defender maintenance (update signatures, repair, show status)
+# Host: console
+# Options: Update signatures; Repair definitions and update; Show Defender status
+
+param([string]$choice)
+
+function Get-MpCmdPath {
+ $candidates = @(
+ "$env:ProgramFiles\Windows Defender\MpCmdRun.exe",
+ "$env:ProgramFiles\Microsoft Defender\MpCmdRun.exe"
+ )
+ foreach ($p in $candidates) { if (Test-Path $p) { return $p } }
+ return $null
+}
+
+function Is-Admin {
+ $id = [Security.Principal.WindowsIdentity]::GetCurrent()
+ $pr = New-Object Security.Principal.WindowsPrincipal($id)
+ return $pr.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
+}
+
+function Show-Status {
+ try {
+ $s = Get-MpComputerStatus
+ Write-Output "=== Microsoft Defender Status ==="
+ Write-Output ("Engine version: {0}" -f $s.AMEngineVersion)
+ Write-Output ("Platform version: {0}" -f $s.AMProductVersion)
+ Write-Output ("AV signature version: {0}" -f $s.AntivirusSignatureVersion)
+ Write-Output ("AV signature last update: {0}" -f $s.AntivirusSignatureLastUpdated)
+ Write-Output ("AS signature version: {0}" -f $s.AntispywareSignatureVersion)
+ Write-Output ("Real-time protection: {0}" -f $s.RealTimeProtectionEnabled)
+ Write-Output ("NIS enabled: {0}" -f $s.NISEnabled)
+ Write-Output ("Service enabled: {0}" -f $s.AMServiceEnabled)
+ } catch {
+ Write-Output "✘ Failed to read Defender status: $($_.Exception.Message)"
+ }
+}
+
+switch ($choice) {
+
+ "Update signatures" {
+ if (-not (Is-Admin)) {
+ Write-Output "ℹ Tip: Run as Administrator for the most reliable results."
+ }
+
+ try {
+ # Primary: PowerShell cmdlet
+ Update-MpSignature -ErrorAction Stop
+ Write-Output "✔ Signatures updated via Update-MpSignature."
+ } catch {
+ # Fallback: MpCmdRun
+ $mp = Get-MpCmdPath
+ if ($mp) {
+ Write-Output "↻ Falling back to MpCmdRun.exe ..."
+ & $mp -SignatureUpdate | Out-String | Write-Output
+ } else {
+ Write-Output "✘ MpCmdRun.exe not found and Update-MpSignature failed."
+ }
+ }
+
+ Show-Status
+ }
+
+ "Repair definitions and update" {
+ if (-not (Is-Admin)) {
+ Write-Output "✘ Please run this action as Administrator (required to reset definitions)."
+ break
+ }
+
+ $mp = Get-MpCmdPath
+ if (-not $mp) {
+ Write-Output "✘ MpCmdRun.exe not found."
+ break
+ }
+
+ try {
+ Write-Output "↻ Removing all definitions (repair) ..."
+ & $mp -RemoveDefinitions -All | Out-String | Write-Output
+ } catch {
+ Write-Output "✘ Failed to remove definitions: $($_.Exception.Message)"
+ }
+
+ try {
+ Write-Output "↻ Updating signatures ..."
+ Update-MpSignature -ErrorAction Stop
+ Write-Output "✔ Signatures updated."
+ } catch {
+ Write-Output "↻ Fallback: MpCmdRun signature update ..."
+ & $mp -SignatureUpdate | Out-String | Write-Output
+ }
+
+ Show-Status
+ }
+
+ "Show Defender status" {
+ Show-Status
+ }
+
+ default {
+ Write-Output "✘ Unknown option: $choice"
+ }
+}
diff --git a/Flyoobe.Extensions/Write-an-Extension.md b/Flyoobe.Extensions/Write-an-Extension.md
new file mode 100644
index 0000000..662760f
--- /dev/null
+++ b/Flyoobe.Extensions/Write-an-Extension.md
@@ -0,0 +1,38 @@
+# 🆕 Setup Extensions: Host + Options Support
+
+The **Setup Extensions** system now supports extended script metadata in the header.
+This allows script authors to define dropdown menus and control how the script is executed.
+
+---
+
+## ✅ New Metadata Parameters
+
+### `# Description: `
+- Short, user-friendly description of what the script does.
+- Displayed in the Extensions page below the title.
+
+### `# Host: embedded | console`
+- **embedded** = run inside OOBE, output is captured and shown in the app.
+- **console** = run in an external PowerShell window with `-NoExit`.
+- **Default:** `embedded` (if not specified).
+
+### `# Options: value1; value2; value3; ...`
+- Defines multiple selectable actions for a single script.
+- A dropdown is automatically shown in the Extensions page.
+- The selected value is passed to the script as `$choice`.
+
+---
+
+## 📄 Example Script Header
+
+```powershell
+# Description: File Explorer tweaks
+# Host: embedded
+# Options: Show file extensions; Hide file extensions; Open This PC
+
+param([string]$choice)
+switch ($choice) {
+ "Show file extensions" { ... }
+ "Hide file extensions" { ... }
+ "Open This PC" { ... }
+}