Releases: BoneFishStudio/BoneFish
Release list
BoneFish v5.5.3
v5.5.3 — Fix: FastFlags ComboBox Reset + ProductVersion Build Config
Release date: 2026-07-18
🐛 FastFlags Enum ComboBox — Nilai Tidak Bertahan
Bug: Saat FastFlags MSAA / RenderingMode / TextureQuality telah diaktifkan, membuka halaman FastFlags kembali membuat kontrol terlihat nonaktif/ter-reset ke posisi default.
Root Cause: Binding Text pada ComboBox untuk tipe enum dapat menyebabkan nilai ter-parse ulang dan mengubah state yang sudah disimpan saat halaman dibuka ulang.
Fix: Ganti Text="{Binding ...}" → SelectedItem="{Binding ...}" pada 3 ComboBox:
| ComboBox | Properti Binding |
|---|---|
| MSAA Level | SelectedMSAALevel |
| Rendering Mode | SelectedRenderingMode |
| Texture Quality | SelectedTextureQuality |
Ketiganya kini konsisten menggunakan SelectedItem, menjaga nilai enum tetap stabil saat halaman dibuka ulang.
🔧 ProductVersion — Selalu Terisi di Semua Build Config
Bug: ProductVersion pada binary kadang kosong di Debug build, menyebabkan logic HandleUpgrade() di Installer.cs salah mendeteksi versi dan memunculkan dialog version mismatch.
Fix: Tambahkan AssemblyVersion dan AssemblyInformationalVersion eksplisit di csproj:
<AssemblyVersion>$(Version)</AssemblyVersion>
<AssemblyInformationalVersion>$(Version)</AssemblyInformationalVersion>Dengan $(Version), cukup update <Version> di satu tempat — AssemblyVersion dan AssemblyInformationalVersion ikut otomatis. Ini memastikan FileVersionInfo.GetVersionInfo().ProductVersion selalu mengembalikan nilai yang benar di semua build config (Debug, Release, CI/CD).
Files Changed
| File | Perubahan |
|---|---|
Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml |
3 ComboBox: Text → SelectedItem |
Bloxstrap/Bloxstrap.csproj |
+<AssemblyVersion>, +<AssemblyInformationalVersion> |
BoneFish v5.5.0
v5.5.0 — Plan 1 Fixes + Plan 2: 4 Fitur Baru 🚀
Release date: 2026-07-17
🔧 Plan 1 — FastFlag New Bug Fixes
1. 🔑 Global Hotkey Tidak Berfungsi
- 🐛 Isu:
HotkeyServicecuma berjalan di Watcher process. Toggle ON/OFF di Settings cuma nyimpen setting, gak benar-benar start/stop service. - 🔧 Fix:
ExperimentalViewModel.EnableHotkeyssekarang start/stopHotkeyServicelangsung dari Settings UI — gak perlu nunggu Watcher process.
2. 🎯 Crosshair Tidak Muncul
- 🐛 Isu:
CrosshairService.Instancenull di Settings process karena Watcher belum jalan. - 🔧 Fix:
ExperimentalViewModel.EnableCrosshairsekarang create & startCrosshairServicesecara lokal jika Instance null.
3. 🖼️ Wallpaper Tidak Terlihat di UI
- 🐛 Isu:
BackgroundImageproperty ada di ViewModel tapi tidak di-bind ke XAML — wallpaper gak pernah tampak. - 🔧 Fix: Ditambahkan
ImageBrushbinding +ProgressBarloading indicator. Background sekarang tampil dengan opacity 0.15. - 🐛 Plus: Wallpaper Tidak Full Screen — background cuma selebar konten karena di-daleman ScrollViewer.
- 🔧 Fix: Restructure page layout: manual
Grid+ScrollViewer— background sekarang full viewport! ✅
4. 🧹 Wallpaper Tidak Hapus Saat Dinonaktifkan
- 🔧 Fix:
AppBackgroundService.ClearCache()dipanggil saat disable. Random mode mati → restore saved background.
5. 📂 Custom Background Fallback images/img/
- 🔧 Fix: Folder
images/img/otomatis discan sebagai fallback custom background. Browse default ke folder ini.
🚀 Plan 2 — 4 Fitur Baru
Fitur A 🔧 — Repair Shortcut Otomatis
- Method baru
Installer.RepairShortcuts()— verifikasi target shortcut Desktop & Start Menu, recreate jika rusak/salah path - UI: Tombol "🔧 Perbaiki Sekarang" di halaman Shortcuts + snackbar notifikasi hasil
- Manual action — tidak otomatis di background, user klik sendiri saat butuh
Fitur B 🗑️ — Auto-Cleaner Cache Roblox
- Service baru
CacheCleanerService.cs— two-phase cleanup:- Hapus file lebih tua dari
maxAgeDays(default 14 hari) - Jika total ukuran > 500MB, hapus file terlama sampai di bawah limit
- Hapus file lebih tua dari
- Safety: Cek dulu apakah Roblox sedang berjalan — skip cleanup jika ada proses Roblox aktif
- Startup: Non-blocking
Task.RundiApp.xaml.cs.OnStartup()— jalan sekali per sesi - Settings baru:
EnableAutoCacheCleanup(bool, default true),CacheCleanupMaxAgeDays(int, default 14) - UI: Toggle "Bersihkan cache otomatis" di halaman FastFlag New (Cache & Storage section)
Fitur C 💻 — Panel System Info di UI
- Card baru di halaman FastFlags (sebelum InfoBar warning) menampilkan:
- CPU Cores, RAM terdeteksi, Storage type (HDD/SSD), System Tier
- Data dari
AutoOptimizeService.GetSystemInfo()(reuse method existing) - Auto-refresh setiap kali
RequestPageReloadEventterpicu melaluiOnRequestPageReload()
Fitur D 🔋 — Mode Hemat Baterai untuk Auto-Wallpaper
- Helper baru
BatteryHelper.cs— deteksi status baterai viaSystem.Windows.Forms.SystemInformation.PowerStatus - Logic: Jika
EnableBatterySaverForWallpaperON + laptop tidak dicharge + ada baterai → skip auto-refresh wallpaper - Fallback: PC desktop (tanpa baterai) — toggle otomatis tersembunyi dari UI
- UI: Toggle "Hemat Baterai (Auto-Wallpaper)" di halaman FastFlag New — hanya muncul jika
HasBattery() == true
Files Changed (15 files)
| File | Perubahan |
|---|---|
Bloxstrap/Bloxstrap.csproj |
Version 5.3.0 → 5.5.0 |
Bloxstrap/Models/Persistable/Settings.cs |
+3 settings: EnableAutoCacheCleanup, CacheCleanupMaxAgeDays, EnableBatterySaverForWallpaper |
Bloxstrap/Integrations/CacheCleanerService.cs |
NEW — auto cache cleanup service |
Bloxstrap/Utility/BatteryHelper.cs |
NEW — battery detection utility |
Bloxstrap/Installer.cs |
+RepairShortcuts() method |
Bloxstrap/App.xaml.cs |
+Auto cache cleanup di startup |
Bloxstrap/Integrations/AppBackgroundService.cs |
+Fallback images/img/ scanning |
Bloxstrap/Paths.cs |
+CustomImagesDir, +GetCustomUserImages() |
Bloxstrap/UI/ViewModels/Settings/ExperimentalViewModel.cs |
Fix hotkey/crosshair/wallpaper + battery saver + cache cleanup toggle |
Bloxstrap/UI/Elements/Settings/Pages/ExperimentalPage.xaml |
Restructure full-screen background + battery/cache toggles |
Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs |
+SystemInfoText, +OnRequestPageReload() |
Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml |
+System Info card |
Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs |
+RepairShortcutsCommand, +RequestNotificationEvent |
Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml |
+Repair button + snackbar |
Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs |
+Notification handler |
BoneFish v5.3.0
v5.3.0 — Optimasi Total: Rounding Fix, HDD Detection, Custom Wallpaper, Memory Leak Fix 🚀
Release date: 2026-07-12
🎯 PART 1 — Optimasi Performa Laptop Low-End
🔧 Rounding Trap Fix — RAM 8GB Gak Kesiplah!
Dulu: totalMemGB = bytes / (1024^3) → integer division truncate ke bawah. Laptop 8GB yang lapor 7.6GB (karena reserved BIOS/iGPU) kebaca jadi 7GB → salah klasifikasi ke LowEnd! 😤
Sekarang: Pake MB comparison dengan toleransi:
- 8GB class →
totalMemMB >= 7800(toleransi ~200MB reserved) - 16GB class →
totalMemMB >= 15600 - 4GB class →
totalMemMB < 3800
Laptop 8GB lo sekarang bener-bener kebaca sebagai MidRange! ✅
💾 HDD Detection — Bukan Tebak-Tebakan Lagi!
Dulu: Tebak vendor name via WMI ("Samsung", "WDC", "Kingston" dll) — sering salah, apalagi kalo vendor bikin HDD + SSD.
Sekarang: DeviceIoControl + IOCTL_STORAGE_QUERY_PROPERTY + StorageDeviceSeekPenaltyProperty:
- Buka
\\.\C:viaCreateFile(volume handle, gak perlu admin) - Tanya driver storage: "lo punya seek penalty?" →
IncursSeekPenalty = 0= SSD,1= HDD - 100% presisi, zero dependencies (
System.Managementdihapus ✅) - Cache di static field — query cuma sekali seumur proses
🚀 HDD Balanced Preset — Otomatis Aktif!
Kalo storage lo HDD + tier LowEnd/MidRange + belom pilih preset manual → HDD Balanced otomatis ON!
Basis visual: SAMA dengan ExtremePerformance (FRM=3, texture rendah, SSAO off, LOD 250) — sudah terbukti gak bikin game gelap
+ I/O khusus HDD:
- Thread dibatasi (
FIntRuntimeMaxNumOfThreads=4) — head HDD gak oleng - Async compression (
DFFlagEnableRequestAsyncCompression=True) — aset cepet di-download - Texture compositor 2 thread (
DFIntTextureCompositorActiveJobs=2) — komposisi lancar - FPS cap 30 — kurangi render frame = kurangi I/O pipeline
- Telemetry mati total — kurangi write ke disk
💾 Persistence Fix — Setting Lo Gak Ilang Lagi!
- ForceExtremeMode + ExtremeModeFpsTarget: Sekarang auto
Save()tiap kali diubah 🛡️ - MainWindow closing:
App.Settings.Save()dipanggil sebelum window beneran nutup — gak ada lagi setting ilang 🎯
🎨 PART 2 — Wallpaper System Overhaul
🖼️ WallpaperService.cs — DIHAPUS!
Service yang ganti wallpaper DESKTOP WINDOWS lo (bukan background app) udah dihapus total. 0 references, 0 sisa.
🎨 Custom Background — Pake Gambar Lo Sendiri!
Sekarang lo bisa pilih gambar kustom dari komputer lo sebagai wallpaper background BoneFish!
Cara pake:
- Buka Settings → FastFlag New → Wallpaper Background
- Klik Browse... → pilih file
.jpg/.jpeg/.png - Langsung muncul! Background random mode otomatis mati
Validasi otomatis: Kalo file ilang / rusak → fallback ke Default + log error
💾 Background Persistence — Gak Lupa Lagi!
SelectedBackgroundType+BackgroundRandomMode= background lo keinget terus- Mode Random ON: Ganti background tiap buka app
- Mode Random OFF: Background tetap sesuai pilihan terakhir (Default/Cool/Quality/Extra/Custom)
- Startup auto-load: Kalo random mode ON → random. Kalo ada saved type → load saved
- Exit pre-select: Pas app ditutup, kalo random mode ON → pilih random untuk sesi berikutnya
🧹 Memory Leak Fix — CrosshairService Lazy Start
- Dulu: Thread + dispatcher CrosshairService jalan TERUS meski EnableCrosshair = false (boros ~2-5 MB)
- Sekarang:
Instancedi-set di constructor,Start()cuma dipanggil kalo crosshair beneran ON - Hotkey
Ctrl+Shift+Ctetep bisa lazy-start viaToggle()🎯
Files Changed (13 files)
| File | Perubahan |
|---|---|
AutoOptimizeService.cs |
Rounding trap fix, DeviceIoControl HDD detection, HDD Balanced preset, UserHasManualPreset() |
Bloxstrap.csproj |
Version 5.1.0 → 5.3.0, hapus System.Management NuGet |
Settings.cs |
+SelectedBackgroundType, +BackgroundRandomMode |
FastFlagsViewModel.cs |
+try/catch Save() di ForceExtremeMode + ExtremeModeFpsTarget |
MainWindow.xaml.cs |
+App.Settings.Save() di Closing |
AppBackgroundService.cs |
+Custom type, +GetCustomBackgroundAsync(), +_customCache |
ExperimentalViewModel.cs |
+Custom/Browse commands, +LoadSavedBackgroundAsync(), +BackgroundRandomMode |
ExperimentalPage.xaml |
+Custom row, +Browse button, +Mode Random toggle |
App.xaml.cs |
+Startup pre-select, +exit pre-select di SoftTerminate() |
WallpaperService.cs |
DELETED |
BoneFish v5.1.0
v5.1.0 — Crosshair, Hotkey, Turbo Mode, Wallpaper Restore + Memory Fix 🧹
Release date: 2026-07-12
🎯 Crosshair Overlay — Bikin Sendiri Crosshair Lo!
Bosan sama crosshair game yang jelek? Sekarang lo bisa bikin crosshair kustom sendiri! Overlay transparan di tengah layar yang bisa lo:
- Ganti style — ada 4: Cross, Dot, Circle, sama CrossDot (campuran Cross + Dot)
- Ganti warna — tinggal pencet salah satu dari 8 warna preset, dari ijo lime sampe putih
- Atur ukuran — dari kecil (20px) sampe gede (200px)
- Atur transparansi — dari 10% sampe 100%
- Drag & drop — tinggal klik & geser ke posisi mana aja, posisinya bakal keinget terus
- Toggle pake hotkey — pencet
Ctrl+Shift+Cbuat munculin/sembunyiin
Dimana? Settings → FastFlag New → Crosshair. Tinggal enable, langsung muncul!
⌨️ Global Hotkeys — Pake Keyboard Buat Semua!
Bosan harus alt-tab ke settings buat matiin/ngewaktifin fitur? Sekarang lo bisa pake keyboard shortcut! Works meski BoneFish di-minimize ke system tray:
| Tombol | Fungsi |
|---|---|
Ctrl+Shift+C |
Tampilin/Sembunyiin Crosshair |
Ctrl+Shift+F |
Tampilin/Sembunyiin FPS Monitor |
Ctrl+Shift+N |
Aktifin/Nonaktifin Night Vision |
Bisa lo matiin kalo ganggu di Settings → FastFlag New → Enable Hotkeys.
🚀 Turbo Mode — Satu Klik, PC Lo Ngebut!
Fitur paling gacor buat laptop kentang! Tinggal toggle ON, dan BoneFish langsung:
- Paksa Extreme Performance mode — sama kayak Potato Mode paling agresif
- Terapin FastFlags agresif — turunin render quality, tekstur low-res, shadow dikurangin
- Auto-reset pas restart — pas lo buka BoneFish lagi, Turbo Mode balik ke OFF otomatis. Gak bakal ngehek settingan permanen lo!
Pas di-click OFF — semua balik normal + FastFlags dihapus. Aman cuy!
🖼️ Wallpaper Background — Restored & Fixed!
Fitur wallpaper background di halaman FastFlag New balik lagi! Sekarang pake async loading jadi gak bikin UI lemot. Bisa pilih 4 wallpaper: Default, Cool, Quality, Extra.
Yang di-fix:
- ✅ Loading pake async + MemoryStream — gak blocking UI thread kayak dulu
- ✅ Auto-load pas buka halaman (sebelumnya cuma muncul kalo toggle manual)
- ✅ Cache 4 gambar — gak loading ulang tiap ganti halaman
🐛 Bug Fixes — Crosshair & Hotkeys Gak Jalan
Masalah: CrosshairService & HotkeyService di-init di DALEM blok EnableActivityTracking. Artinya:
- Kalo user matiin Activity Tracking → Crosshair & Hotkeys GAK PERNAH JALAN
- Kalo file log Roblox ilang (self-update) → Crosshair & Hotkeys GAK PERNAH JALAN
Fix: Pindahin inisialisasi ke LUAR blok ActivityTracking. Sekarang Crosshair & Hotkeys jalan INDEPENDEN — gak peduli tracking hidup/mati.
🏷️ Rename: "Experimental" → "FastFlag New"
Halaman Experimental sekarang bernama FastFlag New biar lebih jelas isinya.
🧠 Optimasi Memory — Lazy Start & Anti Leak
1. CrosshairService — Lazy Start 🎯
- Dulu: thread + dispatcher jalan TERUS meski crosshair mati (boros ~2-5 MB)
- Sekarang: thread cuma dibuat kalo EnableCrosshair ON. Kalo user pencet hotkey
Ctrl+Shift+C, auto lazy-start.
2. ActivityWatcher History — Auto-Prune 📜
- History game yang pernah lo mainin sekarang auto di-prune ke max 50 entries. Gak bakal numpuk sampe ribuan.
3. DNS Cache — Auto Cleanup 🌐
- Cache DNS yang expired (>5 menit) otomatis dibersihin tiap kali lookup. Gak numpuk.
4. HotkeyService — Constructor Pattern 🔧
- Instance sekarang di-set di constructor (konsisten sama CrosshairService).
🔧 Fix Lainnya
- HandleUpgrade Auto-Redirect — pas lo jalanin BoneFish versi lama dari folder download, sekarang otomatis ngarahin ke yang udah ke-install. Gak bakal muncul dialog aneh-aneh lagi.
- 🐛 Wallpaper auto-load di startup — sebelumnya wallpaper cuma muncul kalo user toggle ON/OFF manual. Sekarang otomatis loading pas buka halaman FastFlag New! (fix: pindahin loading dari MainWindow yang salah DataContext ke ExperimentalViewModel).
BoneFish v5.0.1
v5.0.1 - FIx Installers
Release date: 2026-07
- Mmerpbaiki Error Yang menimpa versi terbaru
BoneFish v5.0.0
v5.0.0 - Apply & Restart, Dark Game Fix, Flag Verification & Auto-Optimize Guard
Release date: 2026-07-05
Major release — menambahkan Apply & Restart Roblox, memperbaiki root cause game gelap, verifikasi flag otomatis, dan proteksi AutoOptimizeService terhadap preset user.
New Features — 🚀 Apply & Restart Roblox
Tombol baru di halaman Fast Flags yang memungkinkan user menerapkan semua flag dan restart Roblox dalam satu klik.
Cara kerja:
- User pilih preset / atur flag sesuai keinginan
- Klik 🚀 Apply & Restart Roblox
- Konfirmasi dialog muncul
- Otomatis: Save FastFlag + Settings → Kill Roblox + system tray → Launch BoneFish bootstrapper
- Settings window tertutup, bootstrapper mengambil alih
Yang dilakukan:
- Save semua
App.FastFlagsdanApp.Settingske disk - Kill proses
RobloxPlayerBetadanRobloxCrashHandler(async, UI tidak freeze) - Signal
BoneFish-WatcherExitEventuntuk clean up system tray - Launch
BoneFish.exe -playeruntuk restart dengan flag baru - Tutup settings window agar tidak ada 2 window aktif
New Features — ✅ FastFlag Verification (VerifyAndNotify)
Setiap kali user mengapply preset, sistem sekarang membaca kembali ClientAppSettings.json dari disk dan menghitung jumlah flag yang berhasil ditulis.
Contoh notifikasi:
✅ Ultra Low aktif — 32 FastFlag berhasil ditulis ke disk.✅ Balanced aktif — 28 FastFlag berhasil ditulis ke disk.✅ Potato Mode aktif — 41 FastFlag berhasil ditulis ke disk.✅ Stable aktif — 25 FastFlag berhasil ditulis ke disk.
Tujuan: memastikan user yakin flag sudah benar-benar tersimpan sebelum restart.
New Features — ⏳ Loading Indicator
ProgressRing + teks "Menerapkan preset..." muncul saat user mengklik preset, menggantikan tombol sementara. Snackbar timeout dinaikkan dari 3 detik ke 5 detik agar user sempat membaca verifikasi.
Bug Fixes — 🌑 Game Gelap (Root Cause Found & Fixed)
Penyebab sesungguhnya ditemukan dengan membaca file ClientAppSettings.json yang BENAR-BENAR ada di disk (bukan hanya di kode):
| Flag di Disk | Nilai Sebelumnya | Dampak |
|---|---|---|
DFIntDebugFRMQualityLevelOverride |
1 | FRM minimum → lighting pipeline rusak total |
FIntRenderShadowIntensity |
0 | Semua bayangan dimatikan → area gelap |
DFFlagDebugPauseVoxelizer |
True | Voxelizer dimatikan → baked lighting mati |
FIntCSGVoxelizerFadeRadius |
0 | Tidak ada transisi lighting |
3 flag terakhir (shadow=0 + voxelizer pause + fade=0) bersama FRM=1 MEMATIKAN seluruh pipeline lighting Roblox — bukan hanya mengurangi, tapi benar-benar mematikan. Ini menyebabkan game (terutama horror/RPG seperti Phasmophobia) menjadi hitam di area yang seharusnya terang.
Fix yang diterapkan:
-
ExtremePerformance preset (
FastFlagsViewModel.cs):- FRM:
1→3(masih sangat ringan, tapi preserve lighting pipeline) - HAPUS
FIntRenderShadowIntensity = 0(shadow biarkan default Roblox) - HAPUS
DFFlagDebugPauseVoxelizer = True(voxelizer biarkan jalan) - HAPUS
FIntCSGVoxelizerFadeRadius = 0(fade biarkan default)
- FRM:
-
AutoOptimizeService (
AutoOptimizeService.cs):- FRM:
1→3(sama, untuk auto-detected low-end) - HAPUS 3 flag shadow/voxelizer yang sama
- FRM:
-
UltraLow preset (
FastFlagsViewModel.cs):- FRM:
1→5(sedikit lebih tinggi dari Extreme, preserve lighting)
- FRM:
Bug Fixes — 💾 Save Order Bug (Preset Tidak Tersimpan ke Disk)
Root cause: Di ApplyUltraLowSpecPreset() dan ApplyExtremePerformancePreset(), SelectedPreset di-set SETELAH App.Settings.Save(). Jadi nama preset tidak pernah tertulis ke disk.
Akibat: Saat bootstrapper restart, AutoOptimizeService.CheckAndApply() baca SelectedPerformancePreset dari disk → preset tidak ditemukan → OVERWRITE semua flag user dengan FRM=1 + shadow=0 + voxelizer=True → game gelap.
Fix: Pindahkan SelectedPreset = "..." SEBELUM App.Settings.Save() di kedua method. Sekarang preset tertulis ke disk SEBELUM save, sehingga bootstrapper membaca nilai yang benar.
Bug Fixes — 🛡️ AutoOptimizeService Overwrite Guard
Root cause: ApplyAggressiveOptimizations() di AutoOptimizeService.cs berjalan setiap kali BoneFish launch dan OVERWRITE preset pilihan user — memaksa FRM=1, shadow=0, voxelizer=True meskipun user sudah memilih preset lain.
Fix: Early-return check di ApplyAggressiveOptimizations(): jika user sudah memilih preset manual (UltraLow/Balanced/Stable/ExtremePerformance), skip semua aggressive overrides dan return. Preset user dihormati.
Bug Fixes — 🔁 Auto-Upgrade Downgrade Loop pada HandleUpgrade()
Gejala: Dialog InstallChecker_VersionLessThanInstalled ("Versi BoneFish yang kamu jalankan adalah versi lama…") muncul tiap kali launch untuk user yang menjalankan BoneFish dari staging path auto-updater (%localappdata%\Temp\BoneFish\Updates\BoneFish.exe). Bukan cuma spam dialog — kalau user klik Yes, kode HandleUpgrade() di Installer.cs tetap lanjut ke File.Copy(Paths.Process, Paths.Application, true), yaitu staging binary di-copy ke lokasi install canonical. Kalau staging binary lebih lama dari installed, install canonical di-downgrade. Launch berikutnya: dialog fire lagi → user klik Yes → downgrade lagi. Loop tak berhingga sampai user secara manual hapus staging binary atau reinstall penuh.
Akar masalah: Di HandleUpgrade(), logika lama memblok File.Copy hanya kalau MD5 paths cocok atau kalau user klik No pada dialog. Untuk auto-upgrade session, dialog tetap ditampilkan (tidak di-skip meskipun isAutoUpgrade=true), dan setelah Yes, tidak ada cek apakah currentVer < existingVer (running < installed) — yang justru adalah kondisi downgrade yang harus di-block.
Fix yang diterapkan di Bloxstrap/Installer.cs HandleUpgrade():
- Pre-dialog early-return khusus auto-upgrade. Jika
isAutoUpgrade=trueANDcurrentVer < existingVer, langsungreturnsebelum dialog pertama sempat fire. Tidak adaFile.Copy, tidak ada downgrade, tidak ada yes/no dialog. - Log informatif 4 baris menggantikan dialog — user bisa langsung baca dari
BoneFish_*.logapa yang terjadi dan bagaimana cara recover:- Versi running vs installed
- Path staging vs path install
- Penyebab umum (stale staging binary dari versi sebelumnya)
- Solusi: hapus staging binary atau reinstall untuk membuat install canonical jadi build aktif
- Manual downgrade flow tetap utuh. Untuk run non-auto-upgrade (user klik kanan exe dari folder atau dari shortcut ke lokasi lama), dialog "older version" tetap ditampilkan dengan perilaku existing — supaya user tetap aware kalau mereka sengaja menjalankan binary lama.
Skenario yang sekarang ter-handle benar:
| Skenario | Sebelum fix | Sesudah fix |
|---|---|---|
| Auto-upgrade dengan staging lebih lama (running < installed) | Dialog Yes/No → kalau Yes, install canonical DOWNGRADE → loop | Silent abort + log informatif + no copy |
| Auto-upgrade dengan staging lebih baru (running > installed) | Quiet upgrade — sudah benar sebelumnya | Quiet upgrade — tetap |
| Auto-upgrade dengan staging = installed (MD5 match) | Early-return no-op — sudah benar sebelumnya | Early-return no-op — tetap |
| Manual run dengan binary lebih lama dari install | Dialog Yes/No — sudah benar sebelumnya | Dialog Yes/No — tetap (perilaku existing dipertahankan) |
Cara recover user yang sudah terkena downgrade loop:
- Delete
%localappdata%\Temp\BoneFish\Updates\BoneFish.exe - Run installer BoneFish dari canonical install location (
%localappdata%\Programs\BoneFish\BoneFish.exe) — sekarang akan rebuild staging fresh dengan versi sama dengan install - Atau reinstall penuh via
unins000.exe+ install dari distribusi terbaru
Performance Presets — Deskripsi Lengkap
BoneFish menyediakan 5 preset performa untuk menyesuaikan Roblox dengan spesifikasi perangkat:
🤖 Auto-Optimize (Default)
- Target: Semua spesifikasi
- Filosofi: Deteksi hardware otomatis, apply optimasi yang sesuai
- Yang diatur: FRM=21, Texture=Level0, MSAA=x1, Mesh=LOD0, D3D11, Disable Animations, Low Memory Mode
- Cocok untuk: User yang tidak ingin repot atur manual
🛡️ Stable
- Target: Semua spesifikasi, prioritaskan stabilitas
- Filosofi: Auto-Optimize base + Network optimization + Nonaktifkan background updates
- Yang diatur: Sama seperti Auto-Optimize + Network flags (No Delay) + BackgroundUpdates=False + FakeBorderlessFullscreen=False
- Cocok untuk: User yang sering crash/freeze, ingin pengalaman paling stabil
🐌 Ultra Low-Spec
- Target: PC kentang (2 core, 2-4GB RAM, Intel HD)
- Filosofi: Aggressif tapi TIDAK mematikan lighting
- Yang diatur: FRM=5, Texture=Level0, MSAA=x1, LOD=250, FPS=30, LightUpdates=4, Compositor=1, Animations Off, Low Memory Mode
- Cocok untuk: Laptop lawas, PC integrated graphics, ingin main Roblox di spek minimum
🥔 Extreme Performance (Potato Mode)
- Target: PC paling lemah (2 core, <4GB RAM, no GPU dedicated)
- Filosofi: Maksimal performa, pertahankan VISIBILITAS game
- Yang diatur: FRM=3, Texture=Level0, MSAA=x1, LOD=250/500/750, FPS=24-60 (configurable), LightUpdates=4, Compositor=1, Telemetry Off, Animations Off, Low Memory Mode
- Yang TIDAK dilakukan (perubahan dari v4.4.0):
- ❌ TIDAK mematikan shadow (sebelumnya
FIntRenderShadowIntensity=0→ game gelap) - ❌ TIDAK pause voxelizer (sebelumnya
DFFlagDebugPauseVoxelizer=True→ lighting baked mati) - ❌ TIDAK paksa Voxel lighting (merusak game ShadowMap/Future)
- ❌ TIDAK disable PostFx (visual game rusak)
- ❌ TIDAK ubah SkyGray (atmosphere berubah)
- ❌ TIDAK ubah LightAttenuation (model lighting berubah)
- ❌ TIDAK mematikan shadow (sebelumnya
- Cocok untuk: Device paling lemah yang ingin tetap bisa MELIHAT game dengan jelas
⚖️ Balanced
- Target: Mid-range PC (4 core, 8GB RAM)
- Filosofi: Keseimbangan antara performa dan visual
- **Yang ...
BoneFish v4.4.0
Automatic release for BoneFish v4.4.0
Built from commit: 93b95ae
Branch: main
BoneFish v4.3.0
Automatic release for BoneFish v4.3.0
Built from commit: 22c702c
Branch: main
BoneFish v4.0.0
Automatic release for BoneFish v4.0.0
Built from commit: 4d6596c
Branch: main
BoneFish v3.9.1
Automatic release for BoneFish v3.9.1
Built from commit: ae13ca8
Branch: main