Skip to content

8ug8ird/BlockScience

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BlockScience 🚫

A lightweight, set-and-forget plugin to kill Discord's built-in tracking and telemetry. Works right out of the box as a plugin for BetterDiscord. Just put it in your plugins folder and forget it exists.

🛠️ What it does

  • Stops Sentry & Crash Reports: Intercepts window.__SENTRY__ and DiscordSentry at startup, closing the hub, clearing the scope, and dropping crash logs before they leave your machine.
  • Blocks Trackers (Fetch, XHR & Beacon): Catches outbound requests using runtime proxies. If a request is trying to talk to /api/science, Google Analytics, Sentry, Hotjar, Fullstory, Segment or other known telemetry routes, it gets a fake 200 OK so the client thinks everything went through.
  • Canvas Fingerprinting Protection: Intercepts toDataURL and getImageData to inject imperceptible per-session noise into canvas output. The visual result is identical — the fingerprint hash isn't.
  • AudioContext Fingerprinting Protection: Patches AudioContext and OfflineAudioContext oscillators to shift the audio-hash fingerprint between sessions without any audible effect.
  • Hardware & Navigator Spoofing: Overrides WebGL renderer info, hardwareConcurrency, deviceMemory, userAgent, platform and vendor with generic, non-identifiable values.
  • Wipes Tracking Storage: On startup, purges known tracking keys from localStorage and sessionStorage and blocks new writes to those keys. If Discord has removed these APIs entirely (as recent builds do), the category detects this and marks itself inactive rather than failing silently.
  • Silences Analytics & Science: Patches Discord's internal analytics pipeline and Science event system so telemetry events are dropped before they're queued.
  • Mutes Voice Telemetry: Intercepts voice quality reports, call analytics and stats submissions from the voice engine, including engines created mid-session after a disconnect.
  • Disables Process Monitor: Blocks rich presence / game detection callbacks from reaching Discord's native layer.
  • Fail-Safe Built-in: Every block runs in its own isolated try/catch. If Discord updates something and a patch breaks, it fails quietly. The rest of the plugin keeps working and your client won't crash.

📦 How to Use

For BetterDiscord

  1. Download BlockScience.plugin.js.
  2. Go to your Discord Settings > Plugins.
  3. Click Open Plugins Folder and drop the file inside.
  4. Turn it on.

⚙️ Settings

The settings panel gives you granular control over every block category.

Per-category toggles

Each of the seven block categories can be enabled or disabled independently:

Category What it controls
Sentry Sentry error reporting and telemetry hub
Network Fetch, XHR and sendBeacon to tracking endpoints
Storage Tracking key writes to localStorage / sessionStorage
Fingerprinting WebGL, Canvas, AudioContext and navigator spoofing
Analytics Discord's internal analytics and Science event pipeline
Voice Telemetry Voice quality reports and call analytics
Process Monitor Rich presence / game detection callbacks

Each category shows one of three states next to its name:

  • 🟢 active — enabled and working.
  • 🟡 inactive — enabled, but the underlying mechanism couldn't be found in this Discord build (hover the badge or check the console for why).
  • off — disabled by you.

If a category is inactive it means Discord changed something internally — the plugin is still running fine, that specific vector just has nothing to intercept right now.

Changes to toggles take effect on the next Discord restart.

Live block counters

A counter bar at the top of the settings panel shows how many blocks each category has recorded since the plugin was last started. Counters update in real time — no need to open the console.

Console logs

A toggle to print every blocked request, storage write and fingerprint attempt to the Ctrl+Shift+I console as it happens. Useful to confirm the plugin is active. All blocks remain in effect regardless of this setting.


🔒 Privacy

No data collection, no external servers, no configurations phoned home. Everything stays inside your local client memory.


📄 License

MIT. Do whatever you want with the code.


Made by 8ug8ird 🐦