Skip to content

Releases: BoneFishStudio/BoneFish

BoneFish v7.0.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 13:58

No changelog entry found for v7.0.0. See CHANGELOG.md for details.

BoneFish v6.3.1

Choose a tag to compare

@github-actions github-actions released this 22 Jul 06:56

v6.3.1 — Fix: Icon Sidebar Tofu (Global Font Override) 🔤

Release date: 2026-07-22

🐛 Bug — Global TextBlock Style Merusak SymbolIcon

Global Style TargetType="TextBlock" di App.xaml meng-override FontFamily untuk semua TextBlock,
termasuk yang dipakai internal WPF UI's SymbolIcon untuk render icon glyph (Segoe Fluent Icons).
Karena JetBrains Mono tidak punya glyph icon, semua ikon sidebar muncul sebagai kotak kosong (tofu).

🔧 Fix — Ganti dari Implicit Style ke Attached Property Inheritance

Akar masalah:

  • Implicit Style (Style TargetType="TextBlock") → precedence lebih tinggi dari TemplatedParent template properties
  • SymbolIcon internal template set FontFamily="Segoe Fluent Icons" via TemplatedParent — tapi kalah sama implicit style

Perbaikan:

Sebelum (❌) Sesudah (✅)
App.xaml: Style TargetType="TextBlock" (blanket override) Dihapus
MainWindow.xaml root Grid +TextElement.FontFamily="{StaticResource JetBrainsMonoRegular}"
12 file halaman Pages/*.xaml (root ui:UiPage) +TextElement.FontFamily="{StaticResource JetBrainsMonoRegular}"

Mengapa ini bekerja:
TextElement.FontFamily adalah inherited attached property — prioritinya lebih rendah dari eksplisit
FontFamily="Segoe Fluent Icons" yang di-set di template SymbolIcon. Regular TextBlocks tanpa FontFamily
eksplisit mewarisi JetBrains Mono, sementara SymbolIcon tetap pakai Segoe Fluent Icons.

✅ Verifikasi

  • Semua 10 ikon sidebar muncul normal (bukan kotak kosong) ✅
  • Font JetBrains Mono di teks label/heading tetap utuh di semua halaman ✅
  • Build 0 error, 0 warning ✅

Files Changed (14 files)

File Perubahan
Bloxstrap/App.xaml Hapus Style TargetType="TextBlock" global
Bloxstrap/UI/Elements/Settings/MainWindow.xaml +TextElement.FontFamily di root Grid
Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/ExperimentalPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/ChannelPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorWarningPage.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/FastFlagsDisabled.xaml +TextElement.FontFamily
Bloxstrap/UI/Elements/Settings/Pages/GlobalSettingsPage.xaml +TextElement.FontFamily

BoneFish v6.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 05:18

v6.1.0 — Auto-Reconnect + Documentation Polish 📝

Release date: 2026-07-22

🚀 Fitur Baru — Auto-Reconnect Setelah Crash

Saat Roblox crash (exit code != 0 dan negatif / NTSTATUS error), BoneFish sekarang mendeteksi dan menawarkan tombol "Sambung Ulang":

  • Deteksi crash via exit code — Exit code 0 = normal (user klik Leave/X). Negatif (e.g. -1073741819 / 0xC0000005) = crash.
  • Session duration guard — Hanya trigger jika sesi > 2 menit (hindari false trigger pas Roblox gagal buka).
  • Notifikasi system tray — Balloon notification + klik untuk sambung ulang ke server yang sama (PlaceId + JobId).
  • Fallback server baru — Jika JobId sudah tidak valid, join server baru di PlaceId yang sama.
  • Manual only — User harus klik notifikasi / tombol Yes. Tidak auto-rejoin.
  • Setting toggleEnableAutoReconnectPrompt (bool, default true) di Settings.

📖 Documentation — v7.0.0 Preparation

📜 License Fix

Kontradiksi diperbaiki:

  • LICENSE: Copyright "returnrqt" → BoneFishStudio (+ atribusi Bloxstrap)
  • LICENSE.Bloxstrap: NEW — file lisensi terpisah untuk original Bloxstrap (MIT, pizzaboxer)
  • README.md TL;DR: ❌ "Commercial use not allowed" → ✅ "Free for any use (personal & commercial)" — MIT-compliant

🔗 Badge & Link Updates

Semua link faizinuha/BoneFishBoneFishStudio/BoneFish di README.md dan YOUTUBE-CONTENT-SCRIPT.md.

Badge statis → dinamis (shields.io):

Badge Sebelum Sesudah
Version v3.5.0 hardcoded github/v/release — auto dari tag
Downloads 10k+ hardcoded github/downloads/total — auto dari API
Build build-passing statis github/actions/workflow/ci-release.yml — real-time
License BoneFish custom MIT standar
Stars faizinuha BoneFishStudio

🌐 Website Link

Tombol "Visit Website" → https://bonefishstudioo.vercel.app di header README.

✨ Key Features — Sinkron dengan Kode Terkini

Rewrite total bagian fitur untuk mencakup semua fitur yang sudah ditambahkan:

  • 🎯 Crosshair Overlay (4 style, drag-to-move, color/size/opacity)
  • ⌨️ Global Hotkeys (Ctrl+Shift+C/F)
  • 🚀 Turbo Mode
  • 💾 HDD/SSD Auto-Detection + HDD Balanced preset
  • 🛡️ Anti Not-Responding System (3-layer)
  • 🔄 Auto-Reconnect After Crash
  • 🗑️ Auto-Cache Cleaner
  • 🔧 Quick Repair Shortcuts
  • 🔋 Battery Saver Mode
  • 🚀 Fast Loading Toggle
  • 💻 System Info Panel
  • 🎨 Custom Wallpaper (upload sendiri)
  • 📐 2-column responsive layout

Files Changed

File Perubahan
Bloxstrap/Bloxstrap.csproj Version 6.0.0 → 6.1.0
Bloxstrap/Models/WatcherData.cs +PlaceId, +JobId fields
Bloxstrap/Bootstrapper.cs Pass _joinData.PlaceId/JobId ke Watcher
Bloxstrap/Models/Persistable/Settings.cs +EnableAutoReconnectPrompt
Bloxstrap/Watcher.cs +IsCrashExit(), crash detection, RejoinRoblox()
Bloxstrap/Resources/Strings.resx +4 entries (balloon, message, title, desc)
Bloxstrap/Resources/Strings.id.resx +4 entries
Bloxstrap/Resources/Strings.Designer.cs +4 properties
LICENSE Copyright returnrqt → BoneFishStudio
LICENSE.Bloxstrap NEW — original Bloxstrap MIT license
README.md Badges dinamis, link BoneFishStudio, +website, License fix, Key Features rewrite
YOUTUBE-CONTENT-SCRIPT.md faizinuhaBoneFishStudio

BoneFish v6.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 06:34

v6.0.0 — Network Refactor, Fast Loading Toggle, Anti Not-Responding Audit + Night Vision Removal 🧹

Release date: 2026-07-20

♻️ Refactor — Network Flags Ekstrak ke Method Reusable

5 lokasi duplikasi App.FastFlags.SetValue("...") untuk flag network (FIntRakNetPacketRateLimit, DFIntMaxReceivePPS, DFIntMaxSendPPS, DFIntConnectionMTUSize, DFIntOptimizeSendQueue) diekstrak ke AutoOptimizeService.ApplyNetworkOptimizations(). Semua 5 preset (AutoOptimize, Stable, UltraLow, Balanced, ExtremePerformance) panggil method ini — 100% identik, zero drift.

Sebelum Sesudah
5× copy-paste 7 baris 1× method reusable
Risiko: update nilai di 1 tempat lupa 4 lainnya Update di 1 tempat, semua preset ikut

🚀 Fitur Baru — Fast Loading Toggle

Toggle independen baru "Fast Loading (Percepat Muncul Aset)" di halaman FastFlags (kolom kanan, setelah Force Extreme Mode):

  • DFIntTextureCompositorActiveJobs=2 — jika cpuCores >= 4
  • FIntRuntimeMaxNumOfThreads=6 — jika cpuCores >= 8
  • Stack dengan preset apa pun — bukan preset berdiri sendiri, tapi toggle tambahan
  • Persisten — state disimpan di Settings.EnableFastLoadingFlags
  • Re-apply otomatis — setiap kali preset diterapkan, Fast Loading flags di-set ulang jika toggle ON

Flag yang TIDAK dipakai (ditemukan melalui riset Allowlist):

  • FFlagEnableAsyncResourceLoading ❌ Tidak di Allowlist
  • FIntRenderChunkLODThreshold ❌ Tidak di Allowlist
  • FFlagEnableTextureStreamingFix ❌ Tidak di Allowlist
  • FIntPartSizeBoostThreshold ❌ Tidak di Allowlist

📋 Audit — Anti Not-Responding (Long Session) — Laporan Lengkap

Dokumentasi lengkap di XML comment ApplyExtremePerformancePreset():

Aspek Temuan
Status ACTIVE Manual only (button click). Tidak auto-activate.
Visual flags FFlagDebugSSAOForce=False, FIntSSAOMipLevels=0, FIntRobloxGuiBlurIntensity=0, FIntRenderGrainScale=0 — efek kosmetik, tidak gameplay-breaking
Anti-freeze flags DFIntMaxActiveAnimationTracks=32, 7 telemetry flags, FIntRenderLocalLightFadeInMs=0
Keputusan Tidak dibuat toggle terpisah. Preset ini SATU PAKET agresif untuk target low-end extreme (dual-core, <4GB RAM).

🧹 Pembersihan — Night Vision Dihapus Total

FFlagFastGPULightCulling3 dan FFlagNewLightAttenuation sudah deprecated sejak September 2025 (Roblox Allowlist). Client Roblox abaikan flag ini. Semua kode dihapus:

  • Settings.EnableNightVision → dihapus
  • NightVisionEnabled property → dihapus
  • ToggleNightVision() + ToggleNightVisionCommand → dihapus
  • Ctrl+Shift+N dari HotkeyService → dihapus
  • NightVisionEnabled = false dari semua preset method → dihapus

🎯 Crosshair — Preview Panel Real-Time

Panel preview crosshair di halaman FastFlag New menampilkan perubahan style/size/opacity/color secara real-time via binding ke CrosshairColor property baru.

📐 Layout — Redesign 2 Kolom (Responsive)

3 halaman Settings di-redesign dari 1 kolom panjang jadi 2 kolom kiri-kanan:

  • AppearancePage (232→2 kolom): Theme+Language kiri, Bootstrapper+Custom kanan
  • ChannelPage (191→2 kolom): Fishstrap kiri, Channel info kanan
  • IntegrationsPage (162→2 kolom): Activity Tracking kiri, Discord RPC kanan

Tidak diubah (konten pendek/cukup 1 kolom): Mods(114), Bootstrapper(131), FastFlagEditor(100), Shortcuts(89), GlobalSettings(90). Responsive fallback otomatis ke 1 kolom jika lebar window < 700px.

🔧 GAP Fixes Lainnya

GAP Fix
GAP 1 — HotkeyService leak Dikonfirmasi pakai HwndSource (bukan Thread). IsWatcherRunning() + CleanupServices() sudah terpasang.
GAP 2 — Custom Loading Screen Flow diverifikasi: Pilih gambar → NewStateExecute() → copy file ✅. Tidak ada bug.
GAP 5 — Crosshair drag-to-move Kode Window_MouseDown/Move/Up + SavePosition() diverifikasi ✅. Hanya 1 instance setelah FIX 1.

Files Changed

File Perubahan
Bloxstrap/Bloxstrap.csproj Version 5.5.3 → 6.0.0
Bloxstrap/Integrations/AutoOptimizeService.cs +3 methods: ApplyNetworkOptimizations(), ApplyFastLoadingFlags(), RemoveFastLoadingFlags()
Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs Refactor 5→1 network call. +EnableFastLoadingFlags. +Audit doc di ApplyExtremePerformancePreset(). Night Vision dihapus.
Bloxstrap/Models/Persistable/Settings.cs +EnableFastLoadingFlags (bool, default false)
Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml +Toggle Fast Loading
Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml Redesign 2 kolom
Bloxstrap/UI/Elements/Settings/Pages/ChannelPage.xaml Redesign 2 kolom
Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml Redesign 2 kolom
Bloxstrap/Resources/Strings.resx +2 entries Fast Loading
Bloxstrap/Resources/Strings.id.resx +2 entries Fast Loading

BoneFish v5.5.3

Choose a tag to compare

@github-actions github-actions released this 18 Jul 09:31

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: TextSelectedItem
Bloxstrap/Bloxstrap.csproj +<AssemblyVersion>, +<AssemblyInformationalVersion>

BoneFish v5.5.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 13:52

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: HotkeyService cuma berjalan di Watcher process. Toggle ON/OFF di Settings cuma nyimpen setting, gak benar-benar start/stop service.
  • 🔧 Fix: ExperimentalViewModel.EnableHotkeys sekarang start/stop HotkeyService langsung dari Settings UI — gak perlu nunggu Watcher process.

2. 🎯 Crosshair Tidak Muncul

  • 🐛 Isu: CrosshairService.Instance null di Settings process karena Watcher belum jalan.
  • 🔧 Fix: ExperimentalViewModel.EnableCrosshair sekarang create & start CrosshairService secara lokal jika Instance null.

3. 🖼️ Wallpaper Tidak Terlihat di UI

  • 🐛 Isu: BackgroundImage property ada di ViewModel tapi tidak di-bind ke XAML — wallpaper gak pernah tampak.
  • 🔧 Fix: Ditambahkan ImageBrush binding + ProgressBar loading 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:
    1. Hapus file lebih tua dari maxAgeDays (default 14 hari)
    2. Jika total ukuran > 500MB, hapus file terlama sampai di bawah limit
  • Safety: Cek dulu apakah Roblox sedang berjalan — skip cleanup jika ada proses Roblox aktif
  • Startup: Non-blocking Task.Run di App.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 RequestPageReloadEvent terpicu melalui OnRequestPageReload()

Fitur D 🔋 — Mode Hemat Baterai untuk Auto-Wallpaper

  • Helper baru BatteryHelper.cs — deteksi status baterai via System.Windows.Forms.SystemInformation.PowerStatus
  • Logic: Jika EnableBatterySaverForWallpaper ON + 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

Choose a tag to compare

@github-actions github-actions released this 16 Jul 06:47

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: via CreateFile (volume handle, gak perlu admin)
  • Tanya driver storage: "lo punya seek penalty?" → IncursSeekPenalty = 0 = SSD, 1 = HDD
  • 100% presisi, zero dependencies (System.Management dihapus ✅)
  • 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:

  1. Buka Settings → FastFlag New → Wallpaper Background
  2. Klik Browse... → pilih file .jpg / .jpeg / .png
  3. 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: Instance di-set di constructor, Start() cuma dipanggil kalo crosshair beneran ON
  • Hotkey Ctrl+Shift+C tetep bisa lazy-start via Toggle() 🎯

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

Choose a tag to compare

@github-actions github-actions released this 12 Jul 12:40

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+C buat 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

Choose a tag to compare

@github-actions github-actions released this 11 Jul 04:50

v5.0.1 - FIx Installers

Release date: 2026-07

  1. Mmerpbaiki Error Yang menimpa versi terbaru

BoneFish v5.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 09:51

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:

  1. User pilih preset / atur flag sesuai keinginan
  2. Klik 🚀 Apply & Restart Roblox
  3. Konfirmasi dialog muncul
  4. Otomatis: Save FastFlag + Settings → Kill Roblox + system tray → Launch BoneFish bootstrapper
  5. Settings window tertutup, bootstrapper mengambil alih

Yang dilakukan:

  • Save semua App.FastFlags dan App.Settings ke disk
  • Kill proses RobloxPlayerBeta dan RobloxCrashHandler (async, UI tidak freeze)
  • Signal BoneFish-WatcherExitEvent untuk clean up system tray
  • Launch BoneFish.exe -player untuk 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:

  1. ExtremePerformance preset (FastFlagsViewModel.cs):

    • FRM: 13 (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)
  2. AutoOptimizeService (AutoOptimizeService.cs):

    • FRM: 13 (sama, untuk auto-detected low-end)
    • HAPUS 3 flag shadow/voxelizer yang sama
  3. UltraLow preset (FastFlagsViewModel.cs):

    • FRM: 15 (sedikit lebih tinggi dari Extreme, preserve lighting)

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():

  1. Pre-dialog early-return khusus auto-upgrade. Jika isAutoUpgrade=true AND currentVer < existingVer, langsung return sebelum dialog pertama sempat fire. Tidak ada File.Copy, tidak ada downgrade, tidak ada yes/no dialog.
  2. Log informatif 4 baris menggantikan dialog — user bisa langsung baca dari BoneFish_*.log apa 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
  3. 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:

  1. Delete %localappdata%\Temp\BoneFish\Updates\BoneFish.exe
  2. Run installer BoneFish dari canonical install location (%localappdata%\Programs\BoneFish\BoneFish.exe) — sekarang akan rebuild staging fresh dengan versi sama dengan install
  3. 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)
  • 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 ...
Read more