Improved: [#24912] Staff now use an appropriate standing animation while waiting at level crossings.
Improved: [#25515] Path dragging can now be disabled via multiplayer group permissions.
Improved: [#25529] The map selection grid no longer redraws every frame if it has not changed.
Improved: [#25530] Wall dragging can now be cancelled without closing the Scenery window.
Improved: [#25575] Updated the network protocol to a new format that supports larger packets, allowing clients to connect reliably to servers with many objects or large maps.
Improved: [#25621] Added the Polish ZΕoty (PLN) to the list of available currencies.
Improved: [#25625] Renewing and refurbishing rides now also resets the downtime.
Improved: [#25662] The sprite build command is faster when building sprites from the same image file.
Change: [#21912] Toilet income is now categorised as shop sales instead of ride tickets.
Change: [#25403] Guests will not slide down the Spiral Slide if it's broken, even if they have already entered the ride structure.
Change: [#25485] Make the enlarged pressed swatch sprite more pronounced.
Change: [#25544] The default game window size is now 1280Γ720px instead of 640Γ480px.
Fix: [#9895] Stand-up coaster gets wrong intensity boost from the synchronisation bonus.
Fix: [#11617] Path corner connections are broken when hovering track design ghosts with paths over them in zero clearances.
Fix: [#22484] Lingering ghost entrance after placing park entrance.
Fix: [#24952] Duplicate track designs when running via Steam without having RCT1 linked.
Fix: [#25187] On-ride photo platform does not render as ghost when placing track design.
Fix: [#25229] Excessive logging of game actions, reduced to top-level game actions and filters ghost related ones.
Fix: [#25469] Drawing in the ui.imageManager.draw callback causes an assertion.
Fix: [#25524] The track construction arrow does not immediately change position when deleting track pieces.
Fix: [#25552] Clear Scenery does not show an error message about insufficient money if cash is negative.
Fix: [#25565] Chairlift station ends are missing tunnels at certain rotations.
Fix: [#25569] Placing park entrances in multiplayer does not show for other players, causing desyncs.
Fix: [#25571] Potential crash due to drawing a Crooked House ride.
Fix: [#25588] When the master server becomes unreachable the server would not register again until a restart.
Fix: [#25592] Log flume, river rapids, & splash boats can get control failure breakdown instead of brakes failure.
Fix: [#25595] Invisible entrance is added to imported SV4 saves.
Fix: [#25601] Inspection interval of a ride gets reset when opening the construction window.
Fix: [#25628] Availability of AVX2 and SSE4.1 is not detected correctly.
Fix: [#25639] Scenery window crashes when a no longer present object is still selected.
Fix: [#25641] Desync because of mismatching inspection intervals.
Fix: [#25642] The selection marker for purchasing land rights is not drawn with the correct colours.
Fix: [#25646] It is possible to remove scenery and paths when setting staff patrol areas and purchasing land.
Fix: [#25660] After saving a track design with scenery, that rideβs entrances and exits are visible in βHighlight path issuesβ mode.
Fix: [#25717] Umbrellas given to guests by means of cheats do not use the full (extended) range of colours.
Feature: [#24949] Add an option to the command line screenshot function to draw debug bounding boxes.
Improved: [#9890, #18714] Rides using block-sectioned operating modes can now enter simulating mode without having to complete the circuit first.
Improved: [#24734] Save files now use Zstd compression for faster saving and smaller files.
Improved: [#24890] The ride list is now searchable.
Improved: [#24893] The ride list now has headers, and can be sorted in both directions.
Improved: [#24921] The command line sprite build command now prints out the images table entry for the compiled sprite file.
Improved: [#24953] Opening the Scenario Editor, Track Designer or Track Designs Manager now display the progress bar.
Improved: [#25027] Land style dropdown now has tooltips with the name of the land types.
Improved: [#25057] The progress window now has a Go Karts variant.
Change: [#23351] Diagonal sloped Go-Kart track can no longer be built without cheats if the karts do not have sprites for them.
Change: [#24606] Increase Misc Entity limit from 1600 to 3200.
Change: [#24974] Raise the Go-Karts maximum support height to allow 2 large sloped turns to be built on flat ground.
Change: [#25024] Guests in mazes no longer jump during heavy snow or blizzards, as they would when it rains.
Fix: [#12831] Zooming to cursor on land edges sometimes causes the camera to move to the wrong position.
Fix: [#16988] AppImage version does not show changelog.
Fix: [#19137] Non-inverted left corkscrew supports are incorrect at one angle (original bug).
Fix: [#23440] Quarter loops do not block metal supports correctly (original bug).
Fix: [#24001] Sloped diagonal metal supports that are offset with a crossbeam draw incorrectly.
Fix: [#24151] Sprites are cut off by 1 row of pixels when using OpenGL on Intel Macs.
Fix: [#24173] Allow all game speeds between 1 and 8 when debugging tools are enabled.
Fix: [#24745] Potential crash when lighting effects are enabled and loading a save or a new scenario.
Fix: [#24835] Dive loop track pieces do not have tunnels.
Fix: [#24884] Smooth map and add beaches functions use incorrect map size with height map image files.
Fix: [#24915] LIM Launched (original bug), Corkscrew and Twister Roller Coaster inline twists have some incorrect tunnels.
Fix: [#24916] LIM Launched inline twists can draw over land edges when built underground (original bug).
Fix: [#24953] Crash when opening the Scenario Editor, Track Designer or Track Designs Manager.
Fix: [#24955] Hybrid Zero G Rolls do not fully block metal supports.
Fix: [#24958] Android: fix crash when device is offline.
Fix: [#24961] Queues with corner connections set with the tile inspector draw incorrect sprites.
Fix: [#24972] Fix crash when closing windows would open other windows.
Fix: [#24986] LIM Launched Roller Coaster inline twists block metal supports on the wrong side (original bug).
Fix: [#24989] Classic Wooden Roller Coaster small banked turns do not block metal supports correctly.
Fix: [#24993] The Mine Train Coaster sloped left medium turn has an incorrectly rotated support at one angle.
Fix: [#24994] The Alpine Coaster and Mine Ride left s-bends have an incorrectly rotated support at certain angles.
Fix: [#25001] The Hybrid Coaster small banked sloped right turn and large sloped right turn to orthogonal have some incorrectly rotated supports.
Fix: [#25002] The large right turn to diagonal on the Miniature Railway draws incorrectly at certain angles.
Fix: [#25005] The Corkscrew Roller Coaster inline twist inverted supports draw below the track.
Fix: [#25006] The Twister Roller Coaster inline twists do not draw in tunnels at some angles.
Fix: [#25046] Zooming with the zoom buttons on the extra viewport is not focused on the centre of the viewport.
Fix: [#25054] Panning a viewport in a window that is partially outside the gameβs window can draw incorrectly or crash in software rendering.
Fix: [#25062] Certain peep actions cannot be triggered if they are under or inside a track piece due to faulty verification of them being on a level crossing.
Fix: [#25067] Progress bars can flicker when downloading maps in multiplayer mode.
Fix: [#25075] The Hybrid Coaster quarter loops draw over land edges and walls directly next to them.
Fix: [#25080] Water has missing land edges when opposite corners of the tile and adjacent tile are the same height and the others are lower.
Feature: [#22476] βTime since last inspectionβ statistic is available in the rides window.
Feature: [#24313] [Plugin] Add API for setting a ride vehicleβs sprite to a smoke plume.
Improved: [#24345] Vehicle fallback sprites are less likely to glitch with the track.
Improved: [#24362, #24491] The Windows installer is now translated as well.
Improved: [#24364] Improve the fallback vehicle sprites for Zero G Rolls, and allow small ones to be built without cheats if the fallbacks are available.
Improved: [#24368] Clicking the in-game update notication now leads to a more user-friendly download page.
Improved: [#24400] Ride list in preservation window is now sorted alphabetically.
Improved: [#24409] Steam installs of RCT Classic are now detected automatically.
Improved: [#24413] Better performance when moving the viewport on Windows and Linux platforms.
Improved: [#24417] Improve the fallback vehicle sprites for Dive Loops.
Improved: [#24433] The ride, new ride, scenery, path, viewport, park and tool windows no longer redraw every frame if they have not changed.
Improved: [#24467] Apply tweening only to on-screen entities when not zoomed out for better performance with uncapped FPS.
Improved: [#24474] More efficiently search viewports when playing Audio.
Improved: [#24479] More descriptive error messages for set commands in the in-game console.
Improved: [#24563] The Linux .desktop file will now request the more powerful dedicated GPU on hybrid graphics systems.
Change: [#24342, #24484] g2.dat is now split into g2.dat, fonts.dat and tracks.dat.
Change: [#24362] The Windows installer now prevents installing to the same folder as RollerCoaster Tycoon 2 or Classic.
Change: [#24418] Small & Large Zero G Rolls can now be built on the LIM Launched RC without cheats if vehicle sprites are available.
Fix: [#5269] Font bugs when using the Russian release of RCT2 as the base game.
Fix: [#11071, #22958] The virtual floor does not always draw correctly.
Fix: [#18220] Some custom RCT1 scenarios are detected as competition DLC scenarios.
Fix: [#20095] UCES Halloween - Cemetery Ridge scenario has mismatched entrance/exit on haunted house.
Fix: [#20158] Custom animated scenery .DATs with frame offsets draw a random sprite at the end of their animation.
Fix: [#22628] Potential crash while rebuilding the scenario index.
Fix: [#23289] Dodgems and Flying Saucer cars can spawn on top of each other when the ride is opened.
Fix: [#24332] Banner font renders differently when using RCT Classic as the base game.
Fix: [#24343] Large gently sloped turns are buildable without cheats when the vehicles do not have sprites for them.
Fix: [#24346] Possible crash during line drawing in OpenGL mode.
Fix: [#24353] βShow dirty visualsβ is off by one pixel and does not work correctly with higher framerates.
Fix: [#24362] When upgrading from an older version on Windows, old versions of official objects are not always removed.
Fix: [#24366] Zero G Rolls have some incorrect vehicle yaw rotations.
Fix: [#24371] Fix divide by zero in the scenery window when there is no scenery.
Fix: [#24378] Prevent ride and stall statistics from overflowing.
Fix: [#24388] Shortcut keys are not localised based on the userβs language settings.
Fix: [#24403] Park fences draw underneath and through opaque water.
Fix: [#24406] The network status window uses an undefined string for its title.
Fix: [#24444] In the object load error window, the guide text overlaps when the title bar is enlarged.
Fix: [#24446] [Plugin] Fix regression breaking the track iterator on specific track pieces.
Fix: [#24447] Shortcut list is not refreshed when changing language.
Fix: [#24448] Shortcuts involving the Caps Lock key are wrongly localised to NumPad Dot.
Fix: [#24464] Window and viewport visibility is not calculated correctly causing minor performance issues.
Fix: [#24488] Objects are not always redrawn immediately when they are reloaded from the Object Selection window.
Fix: [#24544] RCT1 Maze designs with wooden walls are not imported correctly.
Fix: [#24567] Long flat-to-steep wooden mine support sprites don't connect to flat supports exactly.
Fixed a crash if some source data was null [Penwy]
Fixed a crash in Beta 1-2 and RC1 on Windows where OBS would crash on shutdown when started minimized to the system tray [Lordmau5]
Fixed a crash in Beta 1-2 and RC1 on Linux when renaming a source from the Audio Mixer [Warchamp7]
Fixed an issue in Beta 1-2 and RC1 where some buttons in the Audio Mixer were missing when using non-default font sizes [Warchamp7]
Fixed an issue in Beta 1-2 and RC1 where the Volume Controls in the Audio Mixer could render incorrectly with certain themes [Warchamp7]
Fixed an issue in Beta 1-2 and RC1 where sources with disabled audio would still appear in the Audio Mixer [Warchamp7]
Fixed an issue in Beta 1-2 and RC1 loading media files in Browser Sources [Warchamp7]
Improved plugin manager by allowing enabling/disabling missing plugins [Warchamp7]
Added partial support for Canvases to obs-websocket [exeldro/tt2468/Warchamp7]
Release Candidate 1 Changes
Removed new Add Source dialog [Warchamp7]
The Add Source dialog was deemed not ready for this release.
Fixed an issue in Beta 2 where an Image Slideshow could have its transition interrupted [Warchamp7]
Fixed an issue in Beta 1-2 where some strings were not translated [shiina424]
Fixed an issue in Beta 1-2 where full-height docks did not have the correct default setting [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer menu would not be correct [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer would not show the correct monitoring state [Warchamp7]
Fixed an issue in Beta 1-2 where Previewed sources weren't shown/hidden on enabling/disabling studio mode [Penwy]
Fixed an issue in Beta 1-2 where Previewed sources weren't added/removed to the mixer when adding/removing to the previewed scene [Penwy]
Fixed an issue in Beta 1-2 where changing the Peak Meter type would not be reflected correctly in the UI [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer used more resources on macOS than previously [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer did not use the correct colors for muted audio sources [Warchamp7]
Fixed an issue in Beta 1-2 where the rename dialog for the Audio Mixer and Transitions would unnecessarily ask for confirmation when closing without making changes [Warchamp7]
Fixed an issue in Beta 1-2 where visibility of items in the Audio Mixer could be incorrect [Warchamp7]
Fixed an issue in Beta 1-2 where the monitoring icon in the Audio Mixer would not update correctly [shiina424]
Fixed an issue in Beta 1-2 where some icons in the Audio Mixer were missing or not styled correctly [shiina424/Warchamp7]
Fixed an issue where PipeWire Camera framerates listed could be incorrect [tytan652]
Fixed an issue where HDR video playback in Media Source could be darker than expected [xtfo]
Fixed an issue on macOS where OBS Studio could crash on application shutdown if YouTube docks were active [PatTheMav]
Beta 2 Changes
Fixed an issue in Beta 1 causing buttons in the Audio Mixer to no longer display when changing font size [Warchamp7]
Fixed an issue in Beta 1 where some tooltips were missing from the Audio Mixer [Warchamp7]
Fixed an issue in Beta 1 where the dialogs spawned from the Audio Mixer on the Classic theme would be sized incorrectly [Warchamp7]
Fixed an issue in Beta 1 where changing themes would sometimes not update the Audio Mixer appearance [Warchamp7]
Fixed an issue in Beta 1 where the resolution and aspect ratio could be missing from the Video Format description for PipeWire Camera sources [pobrn]
Fixed an issue that could cause OBS to become unable to change profiles or video settings [exeldro]
Fixed an issue that could cause transitions to become locked [Warchamp7]
32.1 New Features
Added new Audio Mixer [Warchamp7]
Added new Add Source dialog [Warchamp7]
Added WebRTC Simulcast Support [Sean-Der]
Added missing undo/redo actions for scene items [cg2121]
Scale filtering, blending mode, blending method, deinterlacing mode and deinterlacing field order
32.1 Changes
Improved security of browser sources using local files [Warchamp7]
Removed "Source" from source names [Warchamp7]
Updated the Edit Transform dialog [Warchamp7]
Changed copying a scene item to copy all properties [cg2121/Warchamp7]
Disabled dock animations [Warchamp7]
Moved transition preview button to button box [exeldro]
Rearranged default dock positions [Warchamp7]
Increased media source playback slider update rate [Warchamp7]
Enabled palette for Light theme audio mixer [Warchamp7]
Changed default bitrates to 6000 kbps [mihawk90]
32.1 Bug Fixes
Fixed an issue where projector resolutions had decimals [Warchamp7]
Fixed sync of Preview/Program size and positioning [Warchamp7]
Refactored OBSBasic::Save to only save frontend canvas scenes/groups [dsaedtler]
Fixed NAL type for HEVC caption/BPM SEIs [dsaedtler]
Fixed an issue where video scaling could be incorrect in multivideo encoder scenarios [dsaedtler]
Fixed an issue with chapter markers having incorrect time when using file splitting [garyholmes]
Fixed an issue where some recordings could have black thumbnails [derrod]
Fixed an issue where the NVIDIA Blur and Background Blur could have banding or look splotchy [pkviet]
Fixed an issue where macOS Screen Capture would select an item for capture by default [jcm93]
Fixed an issue with PipeWire when capturing a device that does not require a framerate [tytan652]
This is not the final version, this is a test version. Please report problems and bugs in our issue tracker.
Highlights in OpenWrt 25.12
OpenWrt 25.12.0-rc5 incorporates over 4600 commits since branching the previous OpenWrt 24.10 release and has been under development for over one year.
Only the main changes are listed below. See changelog-25.12.0-rc5 for the full changelog.
General changes
The hardware requirements did not change significantly, most devices supported by OpenWrt 24.10 should also work with OpenWrt 25.12.
Switch package manager from opkg to apk
OpenWrt has transitioned from the traditional opkg package manager to apk (Alpine Package Keeper).
This change brings several advantages:
apk is still maintained, the OpenWrt opkg fork was not maintained any more.
apk supports most features of opkg. Only very few package names changed. The command line arguments of apk are different from the command line arguments of opkg.
For users migrating existing systems, an official opkg to apk cheatsheet is available to ease the transition and map common workflows.
Automatically rebuild firmware images with all currently installed packages
Preserve system configuration during upgrades
This dramatically simplifies upgrades: with just a few clicks in LuCI and a short wait, a custom firmware image is built and installed without manual intervention.
Shell history is preserved
Shell command history is now preserved across sessions by storing it in a RAM-backed filesystem.
Benefits:
Command history is no longer lost between logins
No unnecessary writes to flash storage by default
For users who prefer persistent history storage, this behavior can be changed by editing: /etc/profile.d/busybox-history-file.sh
β οΈ Note: Storing history on flash will increase write cycles and may impact flash endurance over time.
Integration of video feed
The OpenWrt video feed with Qt5 and UI applications is integrated by default.
Wi-Fi scripts in ucode
The wifi scripts were rewritten in ucode.
Target changes
Extend realtek target with support for more switch SoCs like 10G Ethernet switches.
Extend qualcommax target with support for ipq50xx and ipq60xx SoCs.
Added siflower target for Siflower SF21A6826/SF21H8898 SoCs
Added sunxi/arm926ejs subtarget for Allwinner F1C100/200s SoCs
Many new devices added
OpenWrt 25.12 supports over 2240 devices. Support for over 220 new devices was added in addition to the device support by OpenWrt 24.10.
Core components update
Core components have the following versions in 25.12.0-rc5:
Updated toolchain:
musl libc 1.2.5
glibc 2.41
gcc 14.3.0
binutils 2.44
Updated Linux kernel
6.12.71 for all targets
main packages:
cfg80211/mac80211 from kernel 6.18.7
hostapd master snapshot from August 2025
dnsmasq 2.91
dropbear 2025.89
busybox 1.37.0
In addition to the listed applications, many others were also updated.
Upgrading to 25.12
Upgrading from 24.10 to 25.12 should be transparent on most devices, as most configuration data has either remained the same or will be translated correctly on first boot by the package init scripts.
Sysupgrade from 23.05 to 25.12 is not officially supported.
Cron log level was fixed in busybox. system.@system[0].cronloglevel should be set to 7 for normal logging. 7 is the default now. If this option is not set, the default is used and no manual action is needed.
Bananapi BPI-R4: Interfaces eth1 was renamed to sfp-lan or lan4 and the interface eth2 was renamed to sfp-wan to match the labels. You have to upgrade without saving the configuration.
Scratch installs/upgrades
If you wish to start from scratch (always the safest, but also the most work), simply download the pre-built image from the downloads site or from the Firmware Selector to your device. Make sure to create and save a backup, then install the image using sysupgrade -n /tmp/firmware.bin or the LuCI Backup/Flash Firmware, being sure to set "Keep settings and retain the current configuration" to its off position. Restore or reconstruct your configuration using the contents of the backup as a template.
Attended Sysupgrade options
Attended Sysupgrade (ASU) allows you to build a custom image that retains all of your installed packages and their configuration transparently. You need to use one of the three ASU clients that interface with the ASU server to produce this custom image:
Firmware Selector - an online builder that requires you to manually supply it with the packages you wish to have installed. This package list is sent to the ASU server, and a new custom device image is created containing those packages. You may then download and install the image in LuCI Backup/Flash Firmware, but for this you would enable "Keep settings..."
Luci Attended Sysupgrade - the web interface to the ASU server. This tool allows you to choose a new OpenWrt version, then collects the names of the packages on your device and sends them up to the ASU server. LuCI ASU then downloads the created image directly to your device and allows you to install it, without having to do any of the bookkeeping tasks involved with using the Firmware Selector.
owut - a command line package that does the same job as LuCI ASU, but provides more diagnostics and better visibility into what's happening at the various steps before and during the build process.
Both the LuCI ASU app and owut are optional packages in 24.10, so if you have not installed them, they won't be there by default. Use either the LuCI Package Manager to install them, or you can do it from the command line with opkg:
Note that you can install one or the other, or both together, they are completely independent packages.
Upgrades with Firmware Selector
The Firmware Selector does an excellent job of searching through the thousands of available device configurations and getting you to the right place. But, some devices have several variants and possibly different image formats, so if you're unsure about which one you need or which device you're dealing with or anything else, go to the |Firmware Selector support thread and ask away.
Upgrades with LuCI Attended Sysupgrade
The LuCI web interface should be fairly self explanatory. Since you have fairly limited options there that should be pretty obvious, but if anything is unclear or you're unsure about something, go to the LuCI Attended Sysupgrade support thread and ask.
Upgrades with owut
If you choose to use owut, the fact that it's a command line program means you'll need a little more explanation regarding best practices. In any situation, it's always safe to do a check to see what's going on.
$ owut check --verbose --version-to 25.12
... a lot of output ...
This check should show you all the details of what this upgrade entails with regards to the packages available, and will point out any issues with package versions and so on.
Assuming the results of the check look good, you can simply do an upgrade next.
$ owut upgrade --verbose --version-to 25.12
... even more output ...
If you are unsure of anything you see in the check, during the upgrade, or simply have questions, jump on over to the owut support thread on the forum and ask.
Known issues
Users of Zyxel EX5601-T0 devices need to check their WAN interfaces as port was renamed from eth1 to wan.
UpSnap is, and always will be, free and open source software.
If someone is asking you to pay money for access to UpSnap binaries, source code, or licenses, you are being scammed.
The official and only trusted source for UpSnap is this repository (and its linked releases).
Do not pay third parties for something that is provided here for free.
Fixed metric list labels to no longer be cut off by bar value labels (#26527 by @Prasad7007)
@directus/api
Fixed asset transformation error when using withoutEnlargement with focal point and dimensions larger than the original image. Target dimensions are now clamped to the original image dimensions. (#26608 by @wotan-allfather)
Preserved SQL parameterization in relational count subquery and used content-disposition library for folder zip download header (#26592 by @dstockton)
@directus/extensions-sdk
Fixed linking scoped extensions created nested folders (#25957 by @Nitwel)
The Add Source dialog was deemed not ready for this release.
Fixed an issue in Beta 2 where an Image Slideshow could have its transition interrupted [Warchamp7]
Fixed an issue in Beta 1-2 where some strings were not translated [shiina424]
Fixed an issue in Beta 1-2 where full-height docks did not have the correct default setting [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer menu would not be correct [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer would not show the correct monitoring state [Warchamp7]
Fixed an issue in Beta 1-2 where Previewed sources weren't shown/hidden on enabling/disabling studio mode [Penwy]
Fixed an issue in Beta 1-2 where Previewed sources weren't added/removed to the mixer when adding/removing to the previewed scene [Penwy]
Fixed an issue in Beta 1-2 where changing the Peak Meter type would not be reflected correctly in the UI [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer used more resources on macOS than previously [Warchamp7]
Fixed an issue in Beta 1-2 where the Audio Mixer did not use the correct colors for muted audio sources [Warchamp7]
Fixed an issue in Beta 1-2 where the rename dialog for the Audio Mixer and Transitions would unnecessarily ask for confirmation when closing without making changes [Warchamp7]
Fixed an issue in Beta 1-2 where visibility of items in the Audio Mixer could be incorrect [Warchamp7]
Fixed an issue in Beta 1-2 where the monitoring icon in the Audio Mixer would not update correctly [shiina424]
Fixed an issue in Beta 1-2 where some icons in the Audio Mixer were missing or not styled correctly [shiina424/Warchamp7]
Fixed an issue where PipeWire Camera framerates listed could be incorrect [tytan652]
Fixed an issue where HDR video playback in Media Source could be darker than expected [xtfo]
Fixed an issue on macOS where OBS Studio could crash on application shutdown if YouTube docks were active [PatTheMav]
Beta 2 Changes
Fixed an issue in Beta 1 causing buttons in the Audio Mixer to no longer display when changing font size [Warchamp7]
Fixed an issue in Beta 1 where some tooltips were missing from the Audio Mixer [Warchamp7]
Fixed an issue in Beta 1 where the dialogs spawned from the Audio Mixer on the Classic theme would be sized incorrectly [Warchamp7]
Fixed an issue in Beta 1 where changing themes would sometimes not update the Audio Mixer appearance [Warchamp7]
Fixed an issue in Beta 1 where the resolution and aspect ratio could be missing from the Video Format description for PipeWire Camera sources [pobrn]
Fixed an issue that could cause OBS to become unable to change profiles or video settings [exeldro]
Fixed an issue that could cause transitions to become locked [Warchamp7]
32.1 New Features
Added new Audio Mixer [Warchamp7]
Added new Add Source dialog [Warchamp7]
Added WebRTC Simulcast Support [Sean-Der]
Added missing undo/redo actions for scene items [cg2121]
Scale filtering, blending mode, blending method, deinterlacing mode and deinterlacing field order
32.1 Changes
Improved security of browser sources using local files [Warchamp7]
Removed "Source" from source names [Warchamp7]
Updated the Edit Transform dialog [Warchamp7]
Changed copying a scene item to copy all properties [cg2121/Warchamp7]
Disabled dock animations [Warchamp7]
Moved transition preview button to button box [exeldro]
Rearranged default dock positions [Warchamp7]
Increased media source playback slider update rate [Warchamp7]
Enabled palette for Light theme audio mixer [Warchamp7]
Changed default bitrates to 6000 kbps [mihawk90]
32.1 Bug Fixes
Fixed an issue where projector resolutions had decimals [Warchamp7]
Fixed sync of Preview/Program size and positioning [Warchamp7]
Refactored OBSBasic::Save to only save frontend canvas scenes/groups [dsaedtler]
Fixed NAL type for HEVC caption/BPM SEIs [dsaedtler]
Fixed an issue where video scaling could be incorrect in multivideo encoder scenarios [dsaedtler]
Fixed an issue with chapter markers having incorrect time when using file splitting [garyholmes]
Fixed an issue where some recordings could have black thumbnails [derrod]
Fixed an issue where the NVIDIA Blur and Background Blur could have banding or look splotchy [pkviet]
Fixed an issue where macOS Screen Capture would select an item for capture by default [jcm93]
Fixed an issue with PipeWire when capturing a device that does not require a framerate [tytan652]
Attached prompts, content items, and visual editor elements to AI Assistant Context (#26512 by @bryantgillespie)
To use this feature, update @directus/visual-editing to v1.2.0+ on your website.
Disabled interfaces are not interactive anymore, which includes opening disabled read-only fields in a drawer (#26470 by @formfcw)
β¨ New Features & Improvements
@directus/app
Added deployment module for triggering deployments from Directus with Vercel as first supported provider (#26473 by @gaetansenn)
Attached prompts, content items, and visual editor elements to AI Assistant Context (#26512 by @bryantgillespie)
Added multi-provider AI support with Google and OpenAI-compatible providers. Extracted shared AI types into new @directus/ai package. (#26481 by @bryantgillespie)
Added toggle to allow comparing revision to previous revision (#26480 by @robluton)
Added relational field support on x-axis of bar chart (#26489 by @JamesW1)
Added visual editing support to the live preview split pane, including display options menu, full-width mode with drag-to-expand, and quick access to the Visual Editor module. (#26463 by @bryantgillespie)
Changed permission-blocked fields from disabled to non-editable appearance (#26572 by @HZooly)
@directus/api
Added deployment module for triggering deployments from Directus with Vercel as first supported provider (#26473 by @gaetansenn)
Attached prompts, content items, and visual editor elements to AI Assistant Context (#26512 by @bryantgillespie)
Added multi-provider AI support with Google and OpenAI-compatible providers. Extracted shared AI types into new @directus/ai package. (#26481 by @bryantgillespie)
@directus/sdk
Fixed race condition and allow accessing the connected state (#26511 by @Nitwel)
Added deployment module for triggering deployments from Directus with Vercel as first supported provider (#26473 by @gaetansenn)
@directus/system-data
Added deployment module for triggering deployments from Directus with Vercel as first supported provider (#26473 by @gaetansenn)
@directus/types
Added deployment module for triggering deployments from Directus with Vercel as first supported provider (#26473 by @gaetansenn)
Added multi-provider AI support with Google and OpenAI-compatible providers. Extracted shared AI types into new @directus/ai package. (#26481 by @bryantgillespie)
@directus/errors
Added deployment module for triggering deployments from Directus with Vercel as first supported provider (#26473 by @gaetansenn)
@directus/env
Added deployment module for triggering deployments from Directus with Vercel as first supported provider (#26473 by @gaetansenn)
Attached prompts, content items, and visual editor elements to AI Assistant Context (#26512 by @bryantgillespie)
Added multi-provider AI support with Google and OpenAI-compatible providers. Extracted shared AI types into new @directus/ai package. (#26481 by @bryantgillespie)
Added multi-provider AI support with Google and OpenAI-compatible providers. Extracted shared AI types into new @directus/ai package. (#26481 by @bryantgillespie)
Changed users.last_access display mode to absolute (#26548 by @JamesW1)
Make grid-highlight-same-text-color part of the predefined color schemes - (7854157)
Switch color scheme from Tools main menu - (c8c3b23)
Introduce global AppColorSchemes for managing SQL and grid colors, and sync both with the app's dark mode (still only on Windows) - (d313a59)
Sync active line color and brace highlight with the app's dark or light mode - (3510728)
Auto-switch to dark or light SQL colors in sync with the app's dark mode - (8a08e77)
Support dark mode, using MetaDarkStyle from OPM, and provide the 3 known custom settings: automatic, light and dark - (3f9e867)
Re-enable dropping files from file manager to "insert files to BLOB" dialog - (23fc9c0)
Upgrade DPI awareness to Per-Monitor v2, add TMainForm.FormChangeBounds as a replacement for the missing OnAfter/OnBeforeMonitorDpiChanged events - (9eab28e)
Re-enable menu item on list header context menu: "Toggle visibility of all columns" - (41169f7)
Support European umlauts/accents as \w (word char) in some regular expression areas - (304cd26)
Auto-uppercase keywords, data types and functions - (62cda84)
Recreate previous state of trigger after realizing the user edited code has errors - (e7e5e11)
Create a TSynEditMarkup descendant and use it for highlighting selected text occurrences - (8a667f2)
Create custom setting so the user may define a terminal app himself, and auto-detect terminal app if the setting is yet empty - (613e207)
Enable InnoSetup script for creating Windows installer - (317edcd)
Re-enable codepage => charset mapping using GetACP from DelphiCompat unit - (79e4654)
Re-enable ValidFilename function with platform specific lists of disallowed characters - (f3a0594)
Re-enable support for hyperlinks in message dialogues, and use TTaskDialog again for simple messages on Windows - (15eb52b)
Support portable mode with a portable.lock file in the app folder - (c528c5d)
ERangeError when editing text grid values which allow more than 2^31 chars, e.g. LONGTEXT - (42b5d52)
Set default value for ThemeIsDark for cases where AppleInterfaceStyle does not exist (= light mode) - (26ca75e)
Reload color scheme after auto-apply, reintroduce ThemeIsDark with a detection for Windows and macOS, use MetaDarkStyle units only on Windows - (b4afc3a)
Invalid typecast in List.Add(BaseForm.Components[i]), when running debug builds - (38faf57)
Wrong length of text detected (always 0) - (930a815)
Crash in data grid when switching to an empty table on ArchLinux - (e9b6835)
Next attempt to fix ERangeError crash in TBaseVirtualTree.UpdateVerticalRange - (c8e8bed)
Wrong ModalResult on "Replace all" button - (2367ac6)
This is not the final version, this is a test version. Please report problems and bugs in our issue tracker.
Highlights in OpenWrt 25.12
OpenWrt 25.12.0-rc4 incorporates over 4300 commits since branching the previous OpenWrt 24.10 release and has been under development for over one year.
Only the main changes are listed below. See changelog-25.12.0-rc4 for the full changelog.
General changes
The hardware requirements did not change significantly, most devices supported by OpenWrt 24.10 should also work with OpenWrt 25.12.
Switch package manager from opkg to apk
OpenWrt has transitioned from the traditional opkg package manager to apk (Alpine Package Keeper).
This change brings several advantages:
apk is still maintained, the OpenWrt opkg fork was not maintained any more.
apk supports most features of opkg. Only very few package names changed. The command line arguments of apk are different from the command line arguments of opkg.
For users migrating existing systems, an official opkg to apk cheatsheet is available to ease the transition and map common workflows.
Automatically rebuild firmware images with all currently installed packages
Preserve system configuration during upgrades
This dramatically simplifies upgrades: with just a few clicks in LuCI and a short wait, a custom firmware image is built and installed without manual intervention.
Shell history is preserved
Shell command history is now preserved across sessions by storing it in a RAM-backed filesystem.
Benefits:
Command history is no longer lost between logins
No unnecessary writes to flash storage by default
For users who prefer persistent history storage, this behavior can be changed by editing: /etc/profile.d/busybox-history-file.sh
β οΈ Note: Storing history on flash will increase write cycles and may impact flash endurance over time.
Integration of video feed
The OpenWrt video feed with Qt5 and UI applications is integrated by default.
Wi-Fi scripts in ucode
The wifi scripts were rewritten in ucode.
Target changes
Extend realtek target with support for more switch SoCs like 10G Ethernet switches.
Extend qualcommax target with support for ipq50xx and ipq60xx SoCs.
Added siflower target for Siflower SF21A6826/SF21H8898 SoCs
Added sunxi/arm926ejs subtarget for Allwinner F1C100/200s SoCs
Many new devices added
OpenWrt 25.12 supports over 2180 devices. Support for over 160 new devices was added in addition to the device support by OpenWrt 24.10.
Core components update
Core components have the following versions in 25.12.0-rc4:
Updated toolchain:
musl libc 1.2.5
glibc 2.41
gcc 14.3.0
binutils 2.44
Updated Linux kernel
6.12.66 for all targets
main packages:
cfg80211/mac80211 from kernel 6.18.7
hostapd master snapshot from August 2025
dnsmasq 2.91
dropbear 2025.89
busybox 1.37.0
In addition to the listed applications, many others were also updated.
Upgrading to 25.12
Upgrading from 24.10 to 25.12 should be transparent on most devices, as most configuration data has either remained the same or will be translated correctly on first boot by the package init scripts.
Sysupgrade from 23.05 to 25.12 is not officially supported.
Cron log level was fixed in busybox. system.@system[0].cronloglevel should be set to 7 for normal logging. 7 is the default now. If this option is not set, the default is used and no manual action is needed.
Bananapi BPI-R4: Interfaces eth1 was renamed to sfp-lan or lan4 and the interface eth2 was renamed to sfp-wan to match the labels. You have to upgrade without saving the configuration.
Scratch installs/upgrades
If you wish to start from scratch (always the safest, but also the most work), simply download the pre-built image from the downloads site or from the Firmware Selector to your device. Make sure to create and save a backup, then install the image using sysupgrade -n /tmp/firmware.bin or the LuCI Backup/Flash Firmware, being sure to set "Keep settings and retain the current configuration" to its off position. Restore or reconstruct your configuration using the contents of the backup as a template.
Attended Sysupgrade options
Attended Sysupgrade (ASU) allows you to build a custom image that retains all of your installed packages and their configuration transparently. You need to use one of the three ASU clients that interface with the ASU server to produce this custom image:
Firmware Selector - an online builder that requires you to manually supply it with the packages you wish to have installed. This package list is sent to the ASU server, and a new custom device image is created containing those packages. You may then download and install the image in LuCI Backup/Flash Firmware, but for this you would enable "Keep settings..."
Luci Attended Sysupgrade - the web interface to the ASU server. This tool allows you to choose a new OpenWrt version, then collects the names of the packages on your device and sends them up to the ASU server. LuCI ASU then downloads the created image directly to your device and allows you to install it, without having to do any of the bookkeeping tasks involved with using the Firmware Selector.
owut - a command line package that does the same job as LuCI ASU, but provides more diagnostics and better visibility into what's happening at the various steps before and during the build process.
Both the LuCI ASU app and owut are optional packages in 24.10, so if you have not installed them, they won't be there by default. Use either the LuCI Package Manager to install them, or you can do it from the command line with opkg:
Note that you can install one or the other, or both together, they are completely independent packages.
Upgrades with Firmware Selector
The Firmware Selector does an excellent job of searching through the thousands of available device configurations and getting you to the right place. But, some devices have several variants and possibly different image formats, so if you're unsure about which one you need or which device you're dealing with or anything else, go to the |Firmware Selector support thread and ask away.
Upgrades with LuCI Attended Sysupgrade
The LuCI web interface should be fairly self explanatory. Since you have fairly limited options there that should be pretty obvious, but if anything is unclear or you're unsure about something, go to the LuCI Attended Sysupgrade support thread and ask.
Upgrades with owut
If you choose to use owut, the fact that it's a command line program means you'll need a little more explanation regarding best practices. In any situation, it's always safe to do a check to see what's going on.
$ owut check --verbose --version-to 25.12
... a lot of output ...
This check should show you all the details of what this upgrade entails with regards to the packages available, and will point out any issues with package versions and so on.
Assuming the results of the check look good, you can simply do an upgrade next.
$ owut upgrade --verbose --version-to 25.12
... even more output ...
If you are unsure of anything you see in the check, during the upgrade, or simply have questions, jump on over to the owut support thread on the forum and ask.
Known issues
Users of Zyxel EX5601-T0 devices need to check their WAN interfaces as port was renamed from eth1 to wan.
The rockchip target does not build. rockchip will be included in the next release candidate again.
This is not the final version, this is a test version. Please report problems and bugs in our issue tracker.
Highlights in OpenWrt 25.12
OpenWrt 25.12.0-rc3 incorporates over 4300 commits since branching the previous OpenWrt 24.10 release and has been under development for over one year.
Only the main changes are listed below. See changelog-25.12.0-rc3 for the full changelog.
General changes
The hardware requirements did not change significantly, most devices supported by OpenWrt 24.10 should also work with OpenWrt 25.12.
Switch package manager from opkg to apk
OpenWrt has transitioned from the traditional opkg package manager to apk (Alpine Package Keeper).
This change brings several advantages:
apk is still maintained, the OpenWrt opkg fork was not maintained any more.
apk supports most features of opkg. Only very few package names changed. The command line arguments of apk are different from the command line arguments of opkg.
For users migrating existing systems, an official opkg to apk cheatsheet is available to ease the transition and map common workflows.
Automatically rebuild firmware images with all currently installed packages
Preserve system configuration during upgrades
This dramatically simplifies upgrades: with just a few clicks in LuCI and a short wait, a custom firmware image is built and installed without manual intervention.
Shell history is preserved
Shell command history is now preserved across sessions by storing it in a RAM-backed filesystem.
Benefits:
Command history is no longer lost between logins
No unnecessary writes to flash storage by default
For users who prefer persistent history storage, this behavior can be changed by editing: /etc/profile.d/busybox-history-file.sh
β οΈ Note: Storing history on flash will increase write cycles and may impact flash endurance over time.
Integration of video feed
The OpenWrt video feed with Qt5 and UI applications is integrated by default.
Wi-Fi scripts in ucode
The wifi scripts were rewritten in ucode.
Target changes
Extend realtek target with support for more switch SoCs like 10G Ethernet switches.
Extend qualcommax target with support for ipq50xx and ipq60xx SoCs.
Added siflower target for Siflower SF21A6826/SF21H8898 SoCs
Added sunxi/arm926ejs subtarget for Allwinner F1C100/200s SoCs
Many new devices added
OpenWrt 25.12 supports over 2180 devices. Support for over 160 new devices was added in addition to the device support by OpenWrt 24.10.
Core components update
Core components have the following versions in 25.12.0-rc3:
Updated toolchain:
musl libc 1.2.5
glibc 2.41
gcc 14.3.0
binutils 2.44
Updated Linux kernel
6.12.66 for all targets
main packages:
cfg80211/mac80211 from kernel 6.18.0
hostapd master snapshot from August 2025
dnsmasq 2.91
dropbear 2025.89
busybox 1.37.0
In addition to the listed applications, many others were also updated.
Upgrading to 25.12
Upgrading from 24.10 to 25.12 should be transparent on most devices, as most configuration data has either remained the same or will be translated correctly on first boot by the package init scripts.
Sysupgrade from 23.05 to 25.12 is not officially supported.
Cron log level was fixed in busybox. system.@system[0].cronloglevel should be set to 7 for normal logging. 7 is the default now. If this option is not set, the default is used and no manual action is needed.
Bananapi BPI-R4: Interfaces eth1 was renamed to sfp-lan or lan4 and the interface eth2 was renamed to sfp-wan to match the labels. You have to upgrade without saving the configuration.
Scratch installs/upgrades
If you wish to start from scratch (always the safest, but also the most work), simply download the pre-built image from the downloads site or from the Firmware Selector to your device. Make sure to create and save a backup, then install the image using sysupgrade -n /tmp/firmware.bin or the LuCI Backup/Flash Firmware, being sure to set "Keep settings and retain the current configuration" to its off position. Restore or reconstruct your configuration using the contents of the backup as a template.
Attended Sysupgrade options
Attended Sysupgrade (ASU) allows you to build a custom image that retains all of your installed packages and their configuration transparently. You need to use one of the three ASU clients that interface with the ASU server to produce this custom image:
Firmware Selector - an online builder that requires you to manually supply it with the packages you wish to have installed. This package list is sent to the ASU server, and a new custom device image is created containing those packages. You may then download and install the image in LuCI Backup/Flash Firmware, but for this you would enable "Keep settings..."
Luci Attended Sysupgrade - the web interface to the ASU server. This tool allows you to choose a new OpenWrt version, then collects the names of the packages on your device and sends them up to the ASU server. LuCI ASU then downloads the created image directly to your device and allows you to install it, without having to do any of the bookkeeping tasks involved with using the Firmware Selector.
owut - a command line package that does the same job as LuCI ASU, but provides more diagnostics and better visibility into what's happening at the various steps before and during the build process.
Both the LuCI ASU app and owut are optional packages in 24.10, so if you have not installed them, they won't be there by default. Use either the LuCI Package Manager to install them, or you can do it from the command line with opkg:
Note that you can install one or the other, or both together, they are completely independent packages.
Upgrades with Firmware Selector
The Firmware Selector does an excellent job of searching through the thousands of available device configurations and getting you to the right place. But, some devices have several variants and possibly different image formats, so if you're unsure about which one you need or which device you're dealing with or anything else, go to the |Firmware Selector support thread and ask away.
Upgrades with LuCI Attended Sysupgrade
The LuCI web interface should be fairly self explanatory. Since you have fairly limited options there that should be pretty obvious, but if anything is unclear or you're unsure about something, go to the LuCI Attended Sysupgrade support thread and ask.
Upgrades with owut
If you choose to use owut, the fact that it's a command line program means you'll need a little more explanation regarding best practices. In any situation, it's always safe to do a check to see what's going on.
$ owut check --verbose --version-to 25.12
... a lot of output ...
This check should show you all the details of what this upgrade entails with regards to the packages available, and will point out any issues with package versions and so on.
Assuming the results of the check look good, you can simply do an upgrade next.
$ owut upgrade --verbose --version-to 25.12
... even more output ...
If you are unsure of anything you see in the check, during the upgrade, or simply have questions, jump on over to the owut support thread on the forum and ask.
Known issues
Users of Zyxel EX5601-T0 devices need to check their WAN interfaces as port was renamed from eth1 to wan.
Microchip LAN969x devices are missing the network driver, so no network ports work.
Added multi-domain support for OAuth/OpenID (#26312)
SSO callback URL generation and redirect validation now includes port matching to ensure redirects target the correct server.
Fixed getAsset returning all file fields instead of only those allowed by the users permissions (#25905) getAsset / GET /assets/:id now respects directus_files permissions when returning file based fields.
@directus/app
Removed the deprecated /webhooks functionality across the stack. This includes the API route and its related tests, (#26311 by @mobml)
controller, and mocks, as well as the corresponding SDK commands and schema types, types and services, system fields and
collections, OpenAPI specifications, and App UI routes and components. This endpoint has been unused for over a year and
has now been fully removed.
Removed the deprecated /webhooks functionality across the stack. This includes the API route and its related tests, (#26311 by @mobml)
controller, and mocks, as well as the corresponding SDK commands and schema types, types and services, system fields and
collections, OpenAPI specifications, and App UI routes and components. This endpoint has been unused for over a year and
has now been fully removed.
Fixed getAsset returning all file fields instead of only those allowed by the users permissions (#25905 by @gaetansenn)
Added a new AI_ENABLED environment variable to allow opting out of our AI chat feature (#26458 by @bryantgillespie)
@directus/system-data
Removed the deprecated /webhooks functionality across the stack. This includes the API route and its related tests, (#26311 by @mobml)
controller, and mocks, as well as the corresponding SDK commands and schema types, types and services, system fields and
collections, OpenAPI specifications, and App UI routes and components. This endpoint has been unused for over a year and
has now been fully removed.
@directus/specs
Removed the deprecated /webhooks functionality across the stack. This includes the API route and its related tests, (#26311 by @mobml)
controller, and mocks, as well as the corresponding SDK commands and schema types, types and services, system fields and
collections, OpenAPI specifications, and App UI routes and components. This endpoint has been unused for over a year and
has now been fully removed.
@directus/types
Removed the deprecated /webhooks functionality across the stack. This includes the API route and its related tests, (#26311 by @mobml)
controller, and mocks, as well as the corresponding SDK commands and schema types, types and services, system fields and
collections, OpenAPI specifications, and App UI routes and components. This endpoint has been unused for over a year and
has now been fully removed.
@directus/sdk
Removed the deprecated /webhooks functionality across the stack. This includes the API route and its related tests, (#26311 by @mobml)
controller, and mocks, as well as the corresponding SDK commands and schema types, types and services, system fields and
collections, OpenAPI specifications, and App UI routes and components. This endpoint has been unused for over a year and
has now been fully removed.
β¨ New Features & Improvements
@directus/app
Added a new AI_ENABLED environment variable to allow opting out of our AI chat feature (#26458 by @bryantgillespie)
Added concurrency control for file uploads via a new FILES_MAX_UPLOAD_CONCURRENCY env variable (#26424 by @thomas-svrts)
Added nested validation rules to validation error notice (#26389 by @robluton)
Added Comparison modal wysiwyg diff highlighting (#26301 by @robluton)
Fixed an issue that would cause some drawer header icons from being displayed too large (#26442 by @kekekuli)
@directus/api
Added concurrency control for file uploads via a new FILES_MAX_UPLOAD_CONCURRENCY env variable (#26424 by @thomas-svrts)
This is not the final version, this is a test version. Please report problems and bugs in our issue tracker.
Highlights in OpenWrt 25.12
OpenWrt 25.12.0-rc2 incorporates over 4300 commits since branching the previous OpenWrt 24.10 release and has been under development for over one year.
Only the main changes are listed below. See changelog-25.12.0-rc2 for the full changelog.
General changes
The hardware requirements did not change significantly, most devices supported by OpenWrt 24.10 should also work with OpenWrt 25.12.
Switch package manager from opkg to apk
OpenWrt has transitioned from the traditional opkg package manager to apk (Alpine Package Keeper).
This change brings several advantages:
apk is still maintained, the OpenWrt opkg fork was not maintained any more.
apk supports most features of opkg. Only very few package names changed. The command line arguments of apk are different from the command line arguments of opkg.
For users migrating existing systems, an official opkg to apk cheatsheet is available to ease the transition and map common workflows.
Automatically rebuild firmware images with all currently installed packages
Preserve system configuration during upgrades
This dramatically simplifies upgrades: with just a few clicks in LuCI and a short wait, a custom firmware image is built and installed without manual intervention.
Shell history is preserved
Shell command history is now preserved across sessions by storing it in a RAM-backed filesystem.
Benefits:
Command history is no longer lost between logins
No unnecessary writes to flash storage by default
For users who prefer persistent history storage, this behavior can be changed by editing: /etc/profile.d/busybox-history-file.sh
β οΈ Note: Storing history on flash will increase write cycles and may impact flash endurance over time.
Integration of video feed
The OpenWrt video feed with Qt5 and UI applications is integrated by default.
Wi-Fi scripts in ucode
The wifi scripts were rewritten in ucode.
Target changes
Extend realtek target with support for more switch SoCs like 10G Ethernet switches.
Extend qualcommax target with support for ipq50xx and ipq60xx SoCs.
Added siflower target for Siflower SF21A6826/SF21H8898 SoCs
Added sunxi/arm926ejs subtarget for Allwinner F1C100/200s SoCs
Many new devices added
OpenWrt 25.12 supports over 2180 devices. Support for over 160 new devices was added in addition to the device support by OpenWrt 24.10.
Core components update
Core components have the following versions in 25.12.0-rc1:
Updated toolchain:
musl libc 1.2.5
glibc 2.41
gcc 14.3.0
binutils 2.44
Updated Linux kernel
6.12.63 for all targets
main packages:
cfg80211/mac80211 from kernel 6.18.0
hostapd master snapshot from August 2025
dnsmasq 2.91
dropbear 2025.89
busybox 1.37.0
In addition to the listed applications, many others were also updated.
Upgrading to 25.12
Upgrading from 24.10 to 25.12 should be transparent on most devices, as most configuration data has either remained the same or will be translated correctly on first boot by the package init scripts.
Sysupgrade from 23.05 to 25.12 is not officially supported.
Cron log level was fixed in busybox. system.@system[0].cronloglevel should be set to 7 for normal logging. 7 is the default now. If this option is not set, the default is used and no manual action is needed.
Bananapi BPI-R4: Interfaces eth1 was renamed to sfp-lan or lan4 and the interface eth2 was renamed to sfp-wan to match the labels. You have to upgrade without saving the configuration.
Scratch installs/upgrades
If you wish to start from scratch (always the safest, but also the most work), simply download the pre-built image from the downloads site or from the Firmware Selector to your device. Make sure to create and save a backup, then install the image using sysupgrade -n /tmp/firmware.bin or the LuCI Backup/Flash Firmware, being sure to set "Keep settings and retain the current configuration" to its off position. Restore or reconstruct your configuration using the contents of the backup as a template.
Attended Sysupgrade options
Attended Sysupgrade (ASU) allows you to build a custom image that retains all of your installed packages and their configuration transparently. You need to use one of the three ASU clients that interface with the ASU server to produce this custom image:
Firmware Selector - an online builder that requires you to manually supply it with the packages you wish to have installed. This package list is sent to the ASU server, and a new custom device image is created containing those packages. You may then download and install the image in LuCI Backup/Flash Firmware, but for this you would enable "Keep settings..."
Luci Attended Sysupgrade - the web interface to the ASU server. This tool allows you to choose a new OpenWrt version, then collects the names of the packages on your device and sends them up to the ASU server. LuCI ASU then downloads the created image directly to your device and allows you to install it, without having to do any of the bookkeeping tasks involved with using the Firmware Selector.
owut - a command line package that does the same job as LuCI ASU, but provides more diagnostics and better visibility into what's happening at the various steps before and during the build process.
Both the LuCI ASU app and owut are optional packages in 24.10, so if you have not installed them, they won't be there by default. Use either the LuCI Package Manager to install them, or you can do it from the command line with opkg:
Note that you can install one or the other, or both together, they are completely independent packages.
Upgrades with Firmware Selector
The Firmware Selector does an excellent job of searching through the thousands of available device configurations and getting you to the right place. But, some devices have several variants and possibly different image formats, so if you're unsure about which one you need or which device you're dealing with or anything else, go to the |Firmware Selector support thread and ask away.
Upgrades with LuCI Attended Sysupgrade
The LuCI web interface should be fairly self explanatory. Since you have fairly limited options there that should be pretty obvious, but if anything is unclear or you're unsure about something, go to the LuCI Attended Sysupgrade support thread and ask.
Upgrades with owut
If you choose to use owut, the fact that it's a command line program means you'll need a little more explanation regarding best practices. In any situation, it's always safe to do a check to see what's going on.
$ owut check --verbose --version-to 25.12
... a lot of output ...
This check should show you all the details of what this upgrade entails with regards to the packages available, and will point out any issues with package versions and so on.
Assuming the results of the check look good, you can simply do an upgrade next.
$ owut upgrade --verbose --version-to 25.12
... even more output ...
If you are unsure of anything you see in the check, during the upgrade, or simply have questions, jump on over to the owut support thread on the forum and ask.
Known issues
Users of Zyxel EX5601-T0 devices need to check their WAN interfaces as port was renamed from eth1 to wan.