What's New
A lot has shipped since v4.0.0. Below are the most impactful additions and improvements across v4.0.1 → v4.1.0 — new engines, blocks, and a large runner performance overhaul. This is a curated summary, not the full changelog.
Highlights
.xpi extensions, and CDP stealth.Looking for every fix and internal change? The complete, version-by-version changelog lives in the project repository.
v4.1.0
- Full migration to .NET 10 — every project (app, RuriLib, embedded OB2 engine, plugins) retargeted from .NET 8 to .NET 10, unlocking the modern HTTP stack and features that were previously stubbed out.
- HTTP engine upgraded to RuriLib.Http 2.0.1 — same engine as OB2 Native, with Brotli/zstd decompression and a fixed certificate-validation crash on native and embedded OB2 requests.
- Native curl-impersonate, browser automation and CPython, all in-process — the OB2 engine's curl-impersonate, Selenium/Playwright/Puppeteer and Python blocks no longer need the external TLS proxy or a separate interpreter; Chrome/Firefox/Edge/PuppeteerSharp and CPython download automatically on first use.
- OB2 Plugin Converter — turn an OpenBullet 2 plugin (.dll) into a native M2 block directly from the Tools menu, no coding or .NET SDK required. See below for the full walkthrough.
- Home dashboard restyle — new poster-style header, a CPU progress bar, six individual "Your collection" cards, and a success-only recent-hits chart.
- AESEncrypt / AESDecrypt — new OpenSSL-compatible "Salted__" passphrase
mode, byte-for-byte compatible with
openssl enc -aes-256-cbc -md md5. - Keycheck — "If no key found" is now a three-way choice (Nothing / Ban / Fail) instead of a single ban checkbox.
- Script block — new OB2-style output editor and two more embedded interpreters, Jint (JavaScript) and IronPython, alongside the existing external Node.js/Python execution — four interpreters total, no install required for Jint/IronPython.
- Wordlist Tools — new recursive Country TLD Extractor that scans a folder and all its subfolders in one pass.
OB2 Plugin Converter — what it does, and why you'd use it.
Many working configs rely on an OpenBullet 2 plugin (a .dll)
for logic that OB2's own blocks can't cover — a custom captcha solver, a proprietary crypto
routine, a vendor-specific SDK call. M2 runs OB2 configs through its embedded OB2 engine, but
a plugin written for OB2 is still OB2-only code: on its own it has no UI, no palette
icon, and no place in the M2 Stacker, so a config that needs it can look "broken" in M2 even
though nothing is actually wrong with the plugin.
The Tools → OB2 Plugin Converter closes that gap. Point it at the
plugin's .dll and it generates a matching native M2 block — with
its own Stacker entry (category Plugins), a proper parameter UI (text fields,
checkboxes, dropdowns matching the plugin's inputs), and full LoliScript save/load — while the
plugin's actual logic keeps running unchanged, unmodified, inside the embedded OB2 engine. No
C# knowledge, no Visual Studio, and no .NET SDK install are needed: the wrapper compiles
in-process via Roslyn.
What you get: two files, deployed side by side — the original OB2 plugin
in Plugins/OB2/ (the logic) and the generated *.M2.dll in
Plugins/ (the M2 block that calls it). Restart M2 once after conversion and the
new block shows up in the Stacker like any other native block, ready to drag into a config.
Why convert instead of just running the OB2 config as-is: a converted plugin block can be reused inside native M2 configs too, not only OB2 imports — you can mix it with M2's own Request/Parse/Keycheck blocks, proxy groups, and runner tooling instead of staying locked into a full OB2 script. It also turns a cryptic "plugin not found / config won't load" support question into a two-minute self-service fix, since the converter reports exactly which plugin is missing and produces a ready-to-use block for it.
Current limits (first cut): best suited to self-contained blocks (generators, hashing, transforms, standalone HTTP calls). Parameters are passed by value with a single output; state shared through cookies, a reused HttpClient, or custom objects across multiple OB2 blocks is not bridged yet, and proxy headers/cookies aren't forwarded. For those cases, keep running the config as a native OB2 import rather than converting the plugin.
v4.0.4
- OpenBullet 2 (.opk) configs — import and run OB2 configs, create new OPK configs from scratch (LoliCode or C#), with an OPK badge and kind filter in the Config Manager.
- Runner performance — fixed cyclic "accordion" stalls with a 60s proxy cooldown, HTTP connection reuse, and a 15s per-request timeout; proxy rotation rewritten to O(1)-amortized; log output decoupled from the UI thread.
- Session persistence — RunnerManager job order, cumulative counters, and work progress now survive an app restart instead of resetting.
- Selenium — load Firefox
.xpiextensions (works headless), with a real "Check WebDriver" diagnostic. - HitsDB search — now matches Date, Proxy, and Wordlist, not only captured data.
- Function block — GZip compress/decompress, a GenerateGUID DEVICEID mode,
and a
?cCustom Charset token for RandomString. - Stability — consistent styled dialogs, more reliable Growl popups, and a LiteDB startup-crash fix for saved cookies.
v4.0.3
- Script block (RUNSCRIPT) — real Node.js and Python execution.
- Selenium overhaul — new element and browser actions (OB2 parity), a visual MOUSEACTION block, per-action dynamic fields, UndetectedChromeDriver as a global option, a CDP stealth baseline, and an authenticated-proxy fix.
- Proxy Groups — a per-Runner active proxy group.
- Runner — fixed cyclic slowdown during multi-bot runs.
v4.0.2
- HTTP engine migration — Extreme.Net → RuriLib.Http.
- Captchas — new Cap Solve block (Cap.js PoW) plus Cloudflare Turnstile, DataDome, and GeeTest v4 types.
- Home dashboard — memory card and resource monitor.
- Stacker UX — fixed-height Custom Headers/Cookies (OB2 style) and broader OB2 block/function parity.
- Function — GenerateGUID version/format options; CurrentUnixTime unit as a combo box.
- Runner & misc — settings persistence fix, ULP→Combo conversion fix, and a localized license dialog with no hostname leak.
v4.0.1
- Proxy checker — rewritten so authenticated/paid proxies check reliably, with full country info.
- TLS / networking — HTTP/1.1 header-order control (fingerprint fix), non-ASCII header handling, and an IV-prefixed AES envelope mode.
- Site Security Scanner — multi-signature bot/WAF detection with an optional deep scan.
- One-click updater — in-app update flow.
OBM2 Pro