Product Logo

CNS Menu

Dynamic Menus

CNS Menu allows you to place hierarchal menus anywhere on a FileMaker layout. When a menu item is chosen, the script of your choice in the database of your choice is performed. Menus can have any number of sub menus and can be displayed with a variety of styles and bullet marks. Creating menus with CNS Menu is as easy as handing the plug-in a return delimited string of menu items to display. Your menu items can have a display name, and a value that can be used in your scripts, so the end user can see useful information such as a customer name while the value can be a Customer ID number.

New to version 3 is the ability to use your carefully crafted menus on an iOS/iPadOS device under the FileMaker iOS App SDK!


  • Dynamically create popup menus.
  • Easily convert return delimited items such as value lists, layout names, and more, into QuickMenus.
  • Add styles to menu items such as bold, underline, italic, and any combination of those.
  • Add bullets to your menu items including check marks, circular bullets, and diamonds.
  • Pass script parameters through menus to your scripts.
  • Enable and disable menu items on the fly.
  • Update menu items dynamically.
  • Precisely display menus using left, top, align, and minWidth.
  • Use the built in MenuBuilder to quickly build menus.
  • Use modifier keys to display alternate menu items including Shift, Control, Command, and Option.
  • Get mouse coordinates with the CNSMenu_GetMouseCoordinates function.
  • Get the mouse button number clicked with the CNSMenu_GetMouseButton function.
  • Simple data entry by allowing a user to find items quickly through sub menus.
  • Display a user friendly menu item, but pass a value such as a Customer ID to your scripts.
  • Load XML or JSON menus from your hard drive.
  • Use your carefully crafted menus on iOS/iPadOS devices under the FileMaker iOS App SDK.


Mac10.9, 10.10, 10.11, 10.12, 10.13, 10.14, 10.15, 11.1, 11.2, 11.3, 11.4, Apple Silicon, 11.5, 11.6, 12.0, 13.0, 14.0
WinVista, 7, 8, 10, Microsoft .NET Framework 4.5.x, Microsoft Visual C++ 2017 Redistributable Package, 11
FileMaker Pro14.x (32Win), 14.x (64), 15.x (32Win), 15.x (64), 16.x (32Win), 16.x (64), 17.x (32Win), 17.x (64), 18.x (32Win), 18.x (64), 19.x, 2023, 20.x
FileMaker Server2023, 20.x

Version History

3.1.0 (07/26/2021)

Now compatible with Apple Silicon Macs

  • Now fully compatible with Apple Silicon based Macs

3.0.0 (08/18/2020)

New OS Reqs + New iOS Version + New Installer

  • New Mac requirements: 10.9+, 64-bit only, FMP 14+
  • New Windows requirements: Vista and above, .NET 4.5.x, MSVC++ 2017 Redistributable
  • All new iOS version now included for use with the FileMaker iOS App SDK.
  • All new installer database now provided for easy installs.
  • The plug-in is now signed.
  • The plug-in is compiled against the latest FileMaker Plug-in API and makes use of new functions/features where available.
  • Fixed an issue reading XML files.
  • Fixed issues reading the mouse location on both Mac and Windows.
  • Fixed menu placement issues on FileMaker 17 and above.
  • Fixed menu items formatting issues.
  • Updated with latest CNS Core changes.

2.0.1 (08/07/2018)

Support for FileMaker 17 + Bug fixes

  • Added support for FileMaker 17.
  • Fixed an issue with the Show Configure Dialog script step not being able to open the MenuBuilder tab.
  • Added better support for Developer’s License holders.
  • CNS Core: Fixed issues with Endianess when working with files.
  • CNS Core: Updated Mac File Reference code to use latest OS functions.
  • CNS Core: Fixed issues with deleting directories on Mac.
  • CNS Core: Updated UTF-8 encoding/decoding functions to latest specifications.
  • CNS Core: Rewrote the Windows file reference code to not use .NET.
  • CNS Core: Other minor bug fixes.

2.0.0 (07/06/2017)

Recoded from scratch, now with JSON support

  • All new plug-in written from the ground up.
  • All new JSON interface for defining menus, either via the new DefineJSONMenu function or from a file using the DefineFileMenu function.
  • Full cross-platform 64-bit support.
  • Updated to latest FileMaker Pro Plug-in SDK.
  • Added support for FileMaker Pro 15+ function search, tooltip descriptions, and type-ahead.
  • All new thread-safe code.
  • Added Script Steps for FileMaker 16 and above.
  • Added support for FileMaker 16 function and script step online help (click the small question mark in a circle button located next to the script step or function descriptions).
  • Added in all CNS file functions.
  • Imported countless updates from other CNS Plug-ins as part of the CNS Core Code.
  • Removed PPC support from Mac plug-in.
  • Removed old External() functions.

1.1.14 (02/05/2014)

Menu Placement Fixes

  • Fixed issues with displaying menus on layouts with web views under FileMaker Pro 13 on Mac.
  • Fixed menu placement issues for layouts with web views under FileMaker Pro 12+ on Windows.
  • Fixed all known menu placement issues under FileMaker Pro 12+.
  • Added the ability to specify absolute coordinates (the kind you get from GetLayoutObjectAttribute) instead of layout coordinates (the way CNS Menu, and its predecessor, SCRIPTit, has always worked). To specify absolute coordinates, append an exclamation mark (!) to the end of the coordinates.

1.1.13 (12/13/2013)

FileMaker Pro 13 Compatibility / Bug Fixes

  • Fixed issues with Auto Updating the plug-in from FileMaker Server/Container fields.
  • Fixed issues running under FileMaker Pro 12 on Windows when a drop down list is open.
  • Fixed issues running under FileMaker Pro 13 on Mac.

1.1.12 (08/29/2012)

Compatibility Fixes / Bug Fixes

  • Fixed issues running under FileMaker Pro 11 on OS X Mountain Lion.
  • Improved mouse click handling when using the ESC key to dismiss a menu on Mac.
  • Fixed a few other minor bugs.

1.1.11 (04/02/2012)

Maintenance Update / Bug Fixes

  • Imported core plug-in updates from other CNS Plug-ins.
  • Improved mouse click handling when clicking off a menu (to dismiss it) and clicking on something else.
  • Fixed issues with persistent menus showing up as black text on black menus.
  • Improved mouse click handling on menus under FileMaker Pro 11.
  • Fixed issues with menu placement.

1.1.10 (07/06/2010)

New Background/Foreground colors / Bug Fixes

  • Imported core plug-in updates from other CNS Plug-ins.
  • Added the ability to define Background and/or Foreground colors to the menu items.
  • Fixed a bug under FileMaker Pro 11 on Mac where Right Mouse Clicks were not working.
  • Fixed issues under FileMaker Pro 11 on Mac with getting the location of the last mouse click, which, among other things, could cause a menu to show up at the current mouse location instead of where the mouse was clicked.

1.1.9 (03/23/2010)

FileMaker Pro 11 Compatibility / Other Bug Fixes

  • Fixed a bug on Windows where multiple successive separator lines were not collapsing into a single separator line.
  • Added a preference for disabling menu scaling with layout zoom.
  • Fixed menu positioning problems on Mac under FileMaker Pro 11.
  • Fixed menu selection problems on Mac under FileMaker Pro 11.
  • Imported core plug-in changes from other CNS Plug-ins.

1.1.7 (03/30/2009)

Corrected hover support / Misc other bugs

  • Fixed some issues on Mac dealing with getting the current mouse coordinates even when the mouse button hasn’t been pressed (basically corrects hover support).
  • Fixed a bug on Mac with GetMouseCoordinates where the “Top” coordinate was off if the FM10 Status Bar was visible.
  • Fixed a bug where the xml couldn’t enable a disabled menu item.
  • Fixed some slash encoding issues. (GetMenuChoice was double-encoding the slashes; GetMenuValue and Get(ScriptParameter) were encoding the slashes when they didn’t need to.)
  • Corrected an issue with the Register function where current, good registration would be cleared if a new registration attempt failed.
  • Added a “Clear” keyword to the Register function for clearing registration.

1.1.6 (02/03/2009)

Loading and Saving Persistent Menus Fix

  • Fixed some bugs dealing with Loading and Saving the Persistent Menus.

1.1.5 (02/02/2009)

FMP10 Compatibility / New Positioning Features / Bug Fixes

  • Fixed some issues with registration under runtime solutions on Windows.
  • Fixed an issue where the “Scrp-LastMenuChoice” old-style function wasn’t working.
  • Fixed a bug with the plug-in not correctly locating items on inserted menus.
  • CNSMenu_GetMenuChoice and CNSMenu_GetMenuValue now return values even if the selected menu item didn’t call a script. (This makes it easier to get this information when processing user input all in one script instead of having to parse the value returned from CNSMenu_ShowMenu.)
  • Fixed an issue with the MenuBuilder related to the inserted menu bug.
  • CNSMenu_VersionAutoUpdate function added.
  • Fixed a bug with Developer Passwords.
  • Merged in core plug-in updates from other CNS Plug-ins.
  • Fixed a bug where CNSMenu_GetMenuName wasn’t returning anything.
  • Fixed issues with correctly placing menus in FileMaker Pro 10 with its new “Status Bar” is visible.
  • Menu positions/Mouse coordinates are now adjusted correctly when the Text Ruler is visible (FMP8+).
  • Menu positions/Mouse coordinates are now adjusted correctly when the layout has been scrolled.
  • Added CNSMenu_SetLayoutPartHeights function for correctly positioning menus/returning mouse coordinates in List View.
  • Menu and font now grow and shrink with the Zoom level of the layout (FMP8+).
  • CNSMenu now requires Mac OS X 10.4 and above to accomplish some of the above functionality.

1.1 (05/06/2008)

A few bug fixes and a few new features.

  • Fixed some issues with running the plug-in on Mac OS X 10.3.9 and above.
  • Fixed some issues where scripts were not always being called again when selecting the same menu items.
  • Fixed an internal crashing bug with menus defined with modifier keys but not defaultdb/defaultscript parameters where all menus would stop functioning.
  • Fixed an issue with detecting right-clicks on Mac in FileMaker Pro 8.5 and above.
  • Fixed a menu placement issue in FileMaker Pro 8.5 and above when non-modal dialogs are visible.
  • Added support for the Zoom Level in FileMaker Pro 8.0 and above so that menus are placed correctly even if Zoomed in.
  • Updated core plug-in code to include all changes/enhancements from other CNS Plug-ins.
  • Rewrote core Menu functions to work around bugs and to generally work better.
  • Added “meta tags” to QuickMenus to allow you to define items as disabled, bold, italic, check marked, etc. so you no longer have to use the xml updatemenuitem tag.
  • Added an IgnoreMetaTags parameter to DefineQuickMenu to skip the processing of the above new “meta tags” if you need to show the special characters on your menus.
  • Added CNSMenu_LeftMouseButton, CNSMenu_RightMouseButton, and CNSMenu_ThirdMouseButton constant values for use in FileMaker Pro Calculations.
  • Added a Persistent parameter to DefineQuickMenu to allow for saving a QuickMenu to the hard drive.
  • Added the option to turn off the auto setting of blank values to the menu item name.

1.0.6 (07/18/2006)

Mac/Intel Universal Binary Support / FailScript/FailDB new feature

  • Compiled as a Universal Binary plug-in to work on both PPC-based and Intel-based Macs.
  • Added FailDB and FailScript parameters to Menus to allow a script to be called if the user clicks off a menu without selecting anything.

1.0.5 (01/27/2006)

Changed when prefs are saved; Rewrote Menu showing code on Windows.

  • Modified Preferences to only save when they are actually changed instead of always on shutdown.
  • Rewrote menu showing code on Windows to be more reliable.
  • Miscellaneous other changes/enhancements to general plug-in code.

1.0.4 (10/28/2005)

Fixed a bug where the Preferences where not being saved

  • Fixed a bug where the Preferences where not being saved

1.0.3 (10/25/2005)

Fixed some bugs, added some features

  • Fixed a few bugs in the core plug-in code
  • Fixed problems with displaying Unicode characters in the menus
  • Added code to work with slashes in Menu Item Names (you can now “escape” slashes by typing them twice)
  • Menu Item Names can now start with a negative sign and not be converted to a separator (for example, negative numbers)
  • Fixed a display bug on Windows with Menu Item Names that contained Ampersands
  • Added the ability to use both Old and New Style functions at the same time to ease migration woes from old SCRIPTit calls to new CNS Menu calls
  • Offers better compatibility with FileMaker on Windows (including a fix for the crash when trying to print scripts)

1.0.1 (09/16/2004)

Fixed a problem with 25- through 70-user registration numbers

  • The 25-user through 70-user registration numbers weren’t working properly. This update fixes that.

1.0 (08/24/2004)

Initial Release.

  • Initial Release.