Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.
A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.
We talked about the 15.1 release: See announcement, the new functions and release notes.
(more)
In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 25.2.
LibXL
Let's start with what's new in the LibXL topic. LibXL supports you since years in creating, reading and modifying Excel files. This release adds the XLTableMBS class which allows you to add and format tables.
First, we can add a table with the AddTable method from the XLSheetMBS class. You can give this table a name, a range, if it has a header and a style. You can change the name and style later using the properties of the class we have added.You can find out which styles you can use here.
With the properties we also can decide whether we want to apply the formatting to the colum and row stripes. With theproperties ShowLastColumn and ShowFirstColumn you can decide whether the first and last column should have the style applied. If you want to know how many columns are in your table, use the ColumnSize property.
Would you like to give a specific area in your table a border? This is no problem with the SetBorder method from the XLSheetMBS class. First define the area in the parameters and then specify the border style and color.
(more)
With the release of MBS Xojo Plugins version 25.2, developers now have access to a powerful new class for multithreaded programming: AtomicIntegerMBS
. This class brings low-level atomic operations into your Xojo toolkit, enabling thread-safe manipulation of integer values across all major platforms (macOS, Windows, Linux, and iOS).
Whether you’re managing counters, flags, or other shared numeric resources between threads, AtomicIntegerMBS
ensures consistent and safe updates without requiring traditional locking mechanisms like Mutex
.
(more)

In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 15.2.
LibXL
Let's start with what's new in the LibXL component. LibXL supports you since years in creating, reading and modifying Excel files. In this release you get the possibility to add and format tables. First, we can add a table with the XL.Sheet.AddTable function. You can give this table a name, a range and a style. You can change the name and style later using the other functions we have added. To change the name, we use the XL.Table.SetName function. To change the style, use the XL.Table.SetStyle function. You can find out which styles you can use here (https://www.libxl.com/table.html).
Now we can decide whether we want to apply the formatting to the colum and row stripes. With the functions XL.Table.SetShowLastColumn and XL.Table.SetShowFirstColumn you can decide whether the first and last row should have the style applied. If you want to know how many columns are in your table, use the XL.Table.ColumnSize function.
ListDialog
We also have some new functions for the ListDialog. You can now also assign a value to the various buttons, which can then be used in a script to differentiate between cases, for example. To set this value, use the functions ListDialog.SetCancelButtonValue, ListDialog.SetOtherButtonValue and ListDialog.SetSelectButtonValue. You then have the corresponding counter functions to query these values: ListDialog.GetCancelButtonValue, ListDialog.GetOtherButtonValue and ListDialog.GetSelectButtonValue. In the list dialog, you can also press the Cancel button if you have not made a selection. With the Select button, you always need a selection to be able to use it. With the OtherButton button, you can now use the ListDialog.SetOtherButtonNeedsSelection function to decide for yourself whether or not a selection must be made when using this button.
By default Mac shows Cancel left and OK right. On Windows it is reversed and OK is left and Cancel right.
So that you can standardize this, we now provide you with the ListDialog.SetSwapButtons function that can swap these buttons.
(more)
Today we reveal the website for the MBS Xojo Conference and start registration. By adding a training day and some sight seeing days, we can fill a week for our guests:
Day | Date | Day | Evening |
Monday | 20th April | | Welcome in Germany |
Tuesday | 21st April | Sight Seeing Tour | Dinner |
Wednesday | 22nd April | Training Day | Reception in Hotel |
Thursday | 23rd April | 1st day conference | Dinner Event |
Friday | 24th April | 2nd day conference | Farewell Dinner |
Saturday | 25th April | | |
Basically we repeat the 2024 conference. That makes planning much easier.
The prices increased a bit, but we would like to keep the same ticket prices and provide almost the same service. For example the speaker discount for the tickets is lower and we remove the Saturday tour. You are still encouraged to stay the weekend and explore the area. If there are several first-time visitors, who like to do the Geysir trip, we could provide help to plan that.
Like last year, we have the hotel for ourselves. All hotel guest rooms should be filled with Xojo developers. At the bar, at the breakfast, in the garden, everywhere you find Xojo developers to talk to.
The hotel is easy to get to via train or car. Please consider coming by train (to Andernach) and walk to the hotel (1.2 km).
We have a second room for labs and un-conference sessions. Your chance to spontaneously meet with developers and discuss a topic. In the lab sessions, we can meet and and implement a new feature in Xojo or add-ons.
The ticket prices stay the same as 2024. The regular rate is 399 €, but we give those who can afford more the chance to pay 799 € and support the event. On the lower end, we like to give young or hobby developers a chance to buy a discounted ticket for 199 € or even get a free ticket. And those are early bird pricing and we raise them in 2026. (all plus VAT if needed)
If you can stay a few more days, please spend some more time with your fellow Xojo developers and enjoy some history, culture and landscape. We plan a sight seeing trip for Tuesday with our oversea attendees.
The hotel rate is affordable with 120 Euro/night including breakfast and VAT (130 for double room). Other hotels nearby should have plenty of rooms available at similar or cheaper rates. And of course you can find luxury accommodation, too.
This community event is organized by Monkeybread Software. We expect to have a Xojo staff around to present and answer questions.
Please do not hesitate to send us questions.
XSLT (Extensible Stylesheet Language Transformations) has been a core technology for XML data transformation since the early 2000s. While XSLT 1.0 laid the groundwork, subsequent versions — 2.0 and 3.0 — significantly expanded the language’s capabilities, power, and usability.
You can use XSLT 3.0 in FileMaker with MBS FileMaker Plugin and our Saxon functions. The built-in XSLT in FileMaker itself is only doing XSLT 1.0.
You can use XSLT 3.0 in Xojo with MBS Xojo Plugins and our Saxon classes. Please check the MBS Xojo XML Plugin. The built-in XSLT in Xojo itself is only doing XSLT 1.0.
(more)
With the release of version 25.2 of the MBS Xojo Plugins, we’re excited to introduce the new AtomicQueueMBS class—a powerful tool for managing thread-safe job queues in your Xojo applications.
Whether you’re building a multithreaded server, a background processing system, or any app where tasks need to be scheduled and executed safely across threads, AtomicQueueMBS gives you a robust, atomic queue implementation that works across macOS, Windows, Linux, and iOS.
(more)
A client asked about using Gmail with oAuth 2 and our SendMail functions in MBS FileMaker Plugin. We have an existing example for Microsoft Office 365, which we can adapt for Google Mail. We change a couple of URLs, the scope and then it works fine. But let's go step by step.
As part of the oAuth, we later get a callback. Usually this is for contacting a web server, but we like to do it locally. We use our WebHook functions to do within the FileMaker Pro application and catch the answer from the JavaScript running in the browser.
Set Variable [ $$WebHooks ; Value: MBS("WebHook.Create") ]
Set Variable [ $r ; Value: MBS("WebHook.Listen"; $$WebHooks; 9999) ]
Set Variable [ $r ; Value: MBS("WebHook.SetScript"; $$WebHooks; Get(FileName); "WebHookReceived") ]
Set Variable [ $text ; Value: "<html><p>Request arrived.</p></html>" ]
Set Variable [ $text ; Value: "HTTP/1.1 200 OK¶Server: MyServer 1.0¶Connection: close¶Content-Type: text/html¶Content-Length: 36¶¶" & $text ]
Set Variable [ $text ; Value: MBS( "Text.ReplaceNewline"; $Text; 3 ) ]
Set Variable [ $r ; Value: MBS("WebHook.SetAutoAnswer"; $$Webhooks; $text; "UTF-8") ]
As you see we let the WebHook just answer any request with OK and a short html answer. That one is sent to the JavaScript in the WebViewer and it only cares for the 200 OK. The plugin triggers a script to report the incoming connection.
(more)
Nickenich, Germany - (May 6th, 2025) -- Monkeybread Software today is pleased to announce MBS FileMaker Plugin 15.2 for Claris FileMaker for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for Claris FileMaker produce line. As the leading database management solution for Windows, macOS, iOS and the web, the Claris FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 15.2 has been updated and now includes over 7600 different functions, and the versatile plugin has gained more new functions:
Our Integration of the Saxon XML processing library into Xojo completed with the Saxon 12.6 release. You can use XSLT 3.0 for transformations, XQuery 3.1 for queries, XSD 1.1 for document validation and XPath 3.1 for navigation within documents.
We added new shortcuts for developers on macOS for calculation dialogs defining formulas: Press key combinations to define the return type just like field types, e.g. command-N for number.
For DynaPDF we have a new DynaPDF.RenderJob function to perform rendering pages in a background thread. This keeps the main thread free while you receive a script trigger when it finished. The DynaPDF library can now incrementally update PDF documents and better handle big TIFF images. We added functions to control bidi modes for right to left languages and ReadImageFormatFile and DynaPDF.ReadImageResolutionFile functions to query information for image files.
We improved our ListDialog functions. You can define the value returned for the buttons and define whether an extra button needs a selection. And you can control whether we swap OK and cancel button on Windows.
You can use auto complete on macOS for file path dialogs. The auto completion now handles XL function names better with two dots. The If/Loop highlighting can show the blocks defined by enter find mode and perform find.
Plugin defined variables can contains value lists. Use Variable.ValueCount to count values in the variable and use Variable.AppendValue and Variable.PopValue to add and remove values. Similarly you can store JSON in a plugin based variable and add JSON using Variable.AppendJSON and remove it later using Variable.PopJSON thread safely.
For auditing you can set the name of the table occurence for the AuditLog table. If you use UUIDs as primary key, you can use Audit.SetUUIDFields to define the exact names of the fields with the UUID.
We added the XL functions to define styled tables in an Excel files, a JSON.ToCSV function to turn JSON into CSV text and added ExtensionFilter parameter for Files.ListRecursive function.
Finally we updated the CURL library to version 8.13.0, DynaPDF to 4.0.100.285, expat to 2.7.1, libarchive to 3.7.9, LibXL to 4.6, SQLAPI to 5.3.6, Saxon to 12.6 and we updated the plugin SDK.
See release notes for a complete list of changes.
Nickenich, Germany - (May 6th, 2025) -- Monkeybread Software today is pleased to announce MBS Xojo Plugins 25.2 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 3000 classes and 82,000 documented features, and the versatile plugins have gained more new functions:
Our Integration of the Saxon XML processing library into Xojo completed with the Saxon 12.6 release. You can use XSLT 3.0 for transformations, XQuery 3.1 for queries, XSD 1.1 for document validation and XPath 3.1 for navigation within documents.
We improved our MongoDB integration with adding grid fiel classes around MongoGridFSMBS class. It allows you to store files in a database inside records.
For Windows we add WindowsDecompressorMBS and WindowsCompressorMBS classes to use built-in compression and decompression functionality. We added more methods and events to WinSparkleMBS class to do in-app updates.
Since we got more threading in Xojo, we found a need for atomic integers, flags and a queue or stack. The AtomicIntegerMBS class allows you to have a value to read and write atomically from multiple threads. Similar the AtomicFlagMBS can be used to with multiple threads. And the AtomicQueueMBS can be used as a queue with threads to manage jobs as well as serving as a thread safe stack.
On macOS you can use VNGeneratePersonInstanceMaskRequestMBS and VNGenerateForegroundInstanceMaskRequestMBS to identify a person or object in an image and get a mask for it.
We added the XLTableMBS class to define styled tables in an Excel files. New methods help to add a table and find tables by name or index.
For DynaPDF we have a new DynaPDFRenderJobMBS class to perform rendering pages in a background thread. This keeps the main thread free while you receive events for page pictures. The DynaPDF class can now incrementally update PDF documents and better handle big TIFF images.
We improved CFBinaryDataMBS class to include new methods to get data pointer. Use the base64 encode or decode methods or the compression methods to use built-in compression on macOS and iOS.
Use CountValueMBS method to count values in an array quickly, we added a present method to AVPlayerViewControllerMBS class to show it right away and we added an execution time limit to JSContextMBS class.
Finally we updated the CURL library to version 8.13.0, DynaPDF to 4.0.100.285, expat to 2.7.1, libarchive to 3.7.9, LibXL to 4.6, Saxon to 12.6 and SQLAPI to 5.3.6.
See release notes for a complete list of changes.
6. Mai 2025 - Monkeybread Software veröffentlicht heute das MBS FileMaker Plugin für Claris FileMaker in Version 15.2, mit inzwischen über 7600 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:
Unsere Integration der Saxon XML-Verarbeitungsbibliothek in FileMaker wurde mit der Saxon Version 12.6 abgeschlossen. Sie können XSLT 3.0 für Transformationen, XQuery 3.1 für Abfragen, XSD 1.1 für die Dokumentenvalidierung und XPath 3.1 für die Navigation in Dokumenten verwenden.
Wir haben Tastenkombinationen für Entwickler auf macOS für Berechnungsdialoge hinzugefügt, die Formeln definieren: Drücken Sie Tastenkombinationen wie Befehl-N für Zahlen, um den Rückgabetyp genau wie Feldtypen zu definieren.
Für DynaPDF gibt es eine neue DynaPDF.RenderJob Funktion, um das Rendern von Seiten in einem Hintergrund-Thread durchzuführen. Dies hält den Haupt-Thread frei, und Sie bekommen einen Skript-Trigger, wenn der Vorgang abgeschlossen ist. Die DynaPDF Bibliothek kann nun PDF Dokumente inkrementell aktualisieren und besser mit großen TIFF Bildern umgehen. Wir haben Funktionen hinzugefügt, um Bidi-Modi für Rechts-nach-Links-Sprachen zu steuern und ReadImageFormatFile und DynaPDF.ReadImageResolutionFile Funktionen, um Informationen für Bilddateien abzufragen.
Wir haben unsere ListDialog-Funktionen verbessert. Sie können den Wert definieren, der für die Buttons bei einem Klick zurückgegeben wird, und festlegen, ob zusätzliche Buttons eine Selektion in der Liste benötigt. Und Sie können festlegen, ob wir unter Windows die OK- und die Abbruch-Schaltfläche vertauschen.
Sie können die Autovervollständigung unter macOS für Dateipfaddialoge verwenden. Die Autovervollständigung kann jetzt XL-Funktionsnamen mit zwei Punkten besser verarbeiten. Die If/Loop-Hervorhebung kann die Blöcke anzeigen, die durch die Eingabe des Suchmodus und die Durchführung der Suche definiert sind.
Plugin definierte Variablen können Wertelisten enthalten. Verwenden Sie Variable.ValueCount, um die Werte in der Variable zu zählen und verwenden Sie Variable.AppendValue und Variable.PopValue, um Werte hinzuzufügen oder zu entfernen. In ähnlicher Weise können Sie JSON in einer Plugin-basierten Variable speichern und JSON mit Variable.AppendJSON hinzufügen und später mit Variable.PopJSON thread sicher entfernen.
Für das Auditing können Sie den Namen des Tabellenvorkommens für die Tabelle AuditLog festlegen. Wenn Sie UUIDs als Primärschlüssel verwenden, können Sie mit Audit.SetUUIDFields die genauen Namen der Felder mit der UUID festlegen.
Wir haben XL-Funktionen hinzugefügt, um formatierte Tabellen in einer Excel-Datei zu definieren, eine JSON.ToCSV-Funktion, um JSON in CSV-Text umzuwandeln, und einen ExtensionFilter-Parameter für die Files.ListRecursive-Funktion.
Schließlich haben wir die CURL-Bibliothek auf Version 8.13.0, DynaPDF auf 4.0.100.285, expat auf 2.7.1, libarchive auf 3.7.9, LibXL auf 4.6, SQLAPI auf 5.3.6, Saxon auf 12.6 und das Plugin SDK aktualisiert.
Alle Änderungen in den Release Notes.
So far we know about 14 conferences around the world. Time to pick which ones to join. Please pick a few from this menu:
Event | Language | Date | Where | Links |
Claris Engage Japan |
Japanese |
5th to 7th November 2025 |
Tokyo, Japan |
claris.com/ja/conference |
EngageU |
English |
9th to 11th November 2025 |
Antwerpen, Belgium |
engageu.eu |
Full Access |
English |
20th to 23rd October 2025 |
Los Altos, USA |
fullaccess.us |
Reconnect.Melbourne |
English |
16th to 17th October 2025 |
Melbourne, Australia |
reconnect.fm |
Naples FileMaker Week |
English |
8th to 10th October 2025 |
Naples, Italy |
filemakerweek.com |
FileMaker Konferenz |
German |
15th to 17th September 2025 |
Hamburg, Germany |
filemaker-konferenz.com |
Build Grow Learn |
English |
8th to 10th September 2025 |
Greenville, USA |
buildgrowlearn.com |
Vienna Calling |
English |
4th to 7th June 2025 |
Vienna, Austria |
viennacalling.eu |
Elevate FM |
English |
26th to 27th May 2025 |
Toronto, Canada |
elevatefm.ca |
FMTR Zirvesi '25 |
Turkish/English |
24th May 2025 |
Istanbul, Turkey |
fmtrzirvesi.com |
Rendez-vous::FM[2025] |
French |
15th to 17th May 2025 |
Reimes, France |
rendez-vous-fm.fr |
CodeWave |
Spanish |
25th to 26th April 2025 |
Valencia, Spain |
codewave.es |
Claris Engage USA |
English |
25th to 27th March 2025 |
Austin, Texas |
claris.com |
(more)
Feature flags (also known as feature toggles) are a powerful technique in modern development. They allow you to turn features on or off dynamically—without modifying scripts or deploying updates. While widely used in web and SaaS platforms, this strategy works extremely well in FileMaker, especially when building scalable, multi-user solutions or managing access to licensed features.
(more)
Sometimes the personal hotspot on iOS doesn’t work. You get on the Wifi from your iPhone, but Internet doesn’t work since you don’t get an IP.
In that case you could restart the iPhone to restart the dhcp server for the hotspot. Or you switch to manual configuration, which often helps.
(more)
The May/June (23.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
An AI Image Tagger By Marc Zeedar
Can so-called "Artificial Intelligence" actually be useful? Marc had an idea to use ChatGPT to examine his photos and tag them with keywords for possible organizing and sorting. It took some work to learn the ChatGPT API, but he finally got his Xojo project working. Now he can drop photos onto his app and get back descriptions of what's in each picture!
Raspberry Pi Sensor Fun with ADS1115 by Eugene Dakin
Since the Raspberry Pi does not have an analog port or pin, it is common to use another device to read the analog voltage into the Raspberry Pi. Using the I2C communication protocol simplifies this process, as only a few wires are required to transmit voltage data. The ADS1115 is a popular 16-bit analog-to-digital converter (ADC). This article will guide you through programming the ADS1115 with Xojo API2 and the Einhugur I2C Plugin.
Shrinking Graphics by Marc Zeedar
With today's high-resolution cameras, there are many situations where too much resolution is a problem. Perhaps you're wanting to save bandwidth or storage space, or you want to create small thumbnails or different versions of a photo. Marc created Shrink which lets you quickly "shrink" your photos to 25%, 50%, or 75% of the original dimensions.
Plus: An interview with Tim Parnell, Xojo 2025r1, source code management, Xojo Tennis, Touch GUI, and more!
I wanted to transcribe a few voice messages from WhatsApp. Doing this by hand takes a long time for longer voice messages, but maybe I can solve this with a script?
With FileMaker and the MBS FileMaker Plugin, you can quickly build a supporting tool for this.
I used the functions from the Speech component for Mac and iOS.
First, a new script was created in the project. In this script, we first check whether Speech recognition has been initialized. If the SpeechRecognition.IsInitialized function returns something that is not equal to 1, we must first initialize the whole thing with SpeechRecognition.Initialize
(more)

New in this prerelease of the 25.2 plugins:
- Updated DynaPDF to version 4.0.100.285.
- Added krfPremulAlpha constant to DynaPDFRasterImageMBS class.
- Added ShouldTerminate event and SetExecutionTimeLimit method to JSContextMBS class.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.
You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.

New in this prerelease of version 15.2 of the
MBS FileMaker Plugin:
- Updated DynaPDF to version 4.0.100.285.
- Added PremulAlpha as a possible raster flag for DynaPDF.RenderPage, DynaPDF.RenderPDFFile and DynaPDF.RenderPDFFileEx functions.
- Improved Bonjour functions to cleanup threads better.
Download at
monkeybreadsoftware.com/filemaker/files/Prerelease/
You can subscribe to our FileMaker mailing list to get notified for new pre-release and release versions.
If you make an iOS application with the FileMaker iOS SDK, you can embed the
MBS FileMaker Plugin for iOS and enjoy a lot of iOS specific feature.
Let's say you have a container for a document and you want the user to be able to scan a document. Then you check the
DocumentCameraScan functions to add a button for this.
(more)
Today we celebrate the 25 years of Monkeybread Software
We look forward to meet a lot of clients, friends and family. See you later today!