|
Customer Login |
|
|
ScriptMaster 4 is a free, general-purpose plugin. It includes file
manipulation, URL and network utilities, shell scripting, encryption, and much more.
ScriptMaster, a free plugin for FileMaker Pro, is 360Works' most popular product. Version 4.0 delivers speed increases of up to 10x version 3, the ability to load and share modules on the network, and now includes more than 80 modules, with new modules added for XPath parsing, iPhone push notifications, and file manipulation.
We've focused on making ScriptMaster 4 easier than ever. The new version includes updated documentation and a video tutorial which makes it faster than ever for developers to get started with ScriptMaster and enhance their FileMaker functionality.
ScriptMaster is a modular plugin, which means that instead of installing all 80+ plugin functions, you use a FileMaker file that comes with ScriptMaster to select which modules you wish to register. Once the modules are registered, they appear in your list of FileMaker functions.
In addition to the many existing modules that come free with ScriptMaster, 360Works is available to create custom modules suited to your specific needs. In addition, if you are familiar with Java, you can create your own expansion modules, although you do not need to know Java in order to use the many free modules that come with ScriptMaster.
There is a support forum dedicated to ScriptMaster at FmForums.com - that is the place to go to post any questions, tips, or new modules that you create with ScriptMaster.
The possibilities are truly limitless with what you can accomplish with this plugin.
ScriptMaster 4 Advanced includes all of the features of ScriptMaster, with new features for developers:
ScriptMaster 4 Advanced lets you convert your favorite ScriptMaster modules into FileMaker plugins, ready for deployment on both Mac and Windows. It’s never been easier to make and distribute the custom functionality that your customers need.
| ScriptMaster 4 | ScriptMaster 4 Advanced | |
|---|---|---|
| Over 80 Modules Built-In | X | X |
| Add your own modules | X | X |
| Royalty-free distribution | X | X |
| Access to the Clipboard | X | |
| Create your own Plugins | X | |
| Access to FileMaker SQL Engine | X | |
| Price | Free | $95 Per Year |
Check out Matt Petrowsky's video article, Combining PDFs - The Blazing Fast Method, at FileMakerMagazine.com. The video demonstrates 360Works ScriptMaster plugin being used with iText to combine PDF files.
Also from Matt Petrowsky is this 41 minute movie on Learning and Using ScriptMaster. Go Matt!!!
Is ScriptMaster still free?
Yes, ScriptMaster is still a free plugin for FileMaker. ScriptMaster 4 Advanced is a paid version of ScriptMaster 4 which adds additional features.
What is the pricing of ScriptMaster 4 Advanced?
ScriptMaster 4 Advanced is $95 per developer, per year. After one year you will need to renew your license in order to be able to continue to generate new plugins with ScriptMaster 4 Advanced. Click on the "Download/Buy" link near the top of this page to see more information about the different license type available.
What happens when my License of ScriptMaster 4 Advanced Expires? Do the plugins I created stop working?
No, any plugins already created with ScriptMaster 4 Advanced will continue to function forever. However you will not be able to use ScriptMaster Advanced to create new plugins. The SQL Execution and clipboard access features do not expire. You can renew for $95 per year to get a license key updates.
Do my users have to pay to use the plugins that I create?
No, plugins generated with ScriptMaster 4 Advanced can be distributed royalty-free with your FileMaker solution, meaning that neither you nor your clients need to pay anything to use them.
Can I buy one license of ScriptMaster 4 for my whole company?
Each developer who will be using the ScriptMaster plugin by itself with Advanced features (SQL execution, clipboard access, plugin generation) will need to buy a separate license. Plugins generated from ScriptMaster and bundled with your solution can be distributed free of charge with that solution, whether that solution is for your own company or for your clients.
Are there any usage restrictions on generated plugins?
Yes. Plugins created with ScriptMaster Advanced cannot be distributed by themselves, for free or commercially. They can only be distributed with a FileMaker Solution that utilizes the plugin. The FileMaker Solution cannot be just a wrapper or demo of the plugin functionality, it must be a full-fledged solution in its own right that uses the plugin for additional functionality.
Does this mean I can't sell solutions that use a generated plugin?
No, it's fine to sell solutions with plugins generated by ScriptMaster, as long as the solution is a full-fledge solution in its own right, not just a wrapper or demo for the plugin functions.
Can the plugins that I generate use the ScriptMaster Advanced functions, like SQL execution?
Yes.
"I truly can't even think of running a FileMaker solution without using ScriptMaster. What you've done
with the ability to create a one-click plug-in is simply amazing and I totally LOVE it!"—Matt Petrowsky, ISO Productions
"It’s hard to believe that it’s FREE! This plugin, removes the need for dozens of other plugins. Go to the web page and watch
the 10 minute video to get your mind blown....
Read the full article here!
David Wheelock had this to say: "I just started to use ScriptMaster to produce 'slugs' for an advertising client. The slugs are small .png files,
with client/project info, which get dropped onto project artwork. The client was super impressed.
"Guys, I'm a registered user of FTPeek and love it. I just downloaded ScriptMaster and wanted to say my mind is officially blown.
Thank you all for such great work. You know, you guys are one of the only companies who seem to have precisely the same tech support ethos that we do...
"Installation couldn't have been easier. Just drop the plugin into Filemaker's "Extensions" folder and it's ready to go! The
Scriptmaster Examples database is well designed and easy to use.
"I'm also liking the fact that I no longer need to have the ScriptMaster database register functions, and that you have a server already configured to AutoUpdate the plugin for users - great idea!" —Karstyn McCoy, The Support Group
"As I said, this works really great! I just discovered the ScriptMaster plug-in, and I must say it's a very seducing little plug-in. Though I'm mostly
minimalist when it comes to using plug-ins, and probably will continue being so, ScriptMaster does provide a very nice and
"I specified that I don't want to use a plugin,
"Fantastic plugin. Use it all the time!" —Christiaan L. van Minnen, INDEX Books
"Terrific app" —Robert Moran, Digital Constructs, Inc.
"Thanks so very, very much...this is awesome!" —Richard Lesyk
"ScriptMaster is freaking awesome... I just had to say it." —Jonathan Mickelson, Thought Development
"Thanks for the quick fix and AMAZING plugin." —Salvador Sandoval
"Great plug-in; thanks for this gift to the FM community." —Ken Newell, Hamilton Glaucoma Center
"Are you sure this valuable plug in is free to deploy with my program? I feel like I am stealing something." —Jennifer Shook
"What a sensational product!" —Bob Stuart
"I Was looking into SuperContainer and read about ScriptMaster on your website. This is fantastic. You are amazing. Thanks a lot. I really look forward to putting it to use. I Will be back on for the rest of your portfolio." —Jesper Søholm
"Outstanding product with exceptional client support. A real winner." —Donald P. Moore
"I'm getting the feeling that Groovy is going to become my new language for advanced custom functions in FileMaker. Time to learn it!" —Donovan Chandler
"This is an amazing extension - thanks so much for making it available (for free)." —Timothy Hall, Beeswax Datatools
"Best plugin of the decade in my opinion. The only one I've decided to actually use in my production application - it just works, Mac OS, Windows, Citrix, whatever. Love it!" —Perren Smith
"Just made my first plugin with 360Works Scriptmaster plugin.
"I'm sure you must hear this all the time, but FANTASTIC product. Thanks so much : )" — Brian Schick
"For us, as heavy Java users, the plugin is arguably the only plugin we will need for FileMaker going forwards because it unleashes the power of Java for us with FileMaker!" —Dr. Alistair Lane, Onto-it Key Farm Solutions
"You guys are awesome! ... After hearing about your ScriptMaster from FileMaker Success Tips, I downloaded and installed it today. I was up and running almost immediately. Thanks for sharing your talents with the world." —Dr. Bill Miller, HighPower Resources
Subscribe to our
RSS feed for product update news!
Will it run on Windows/Mac? What version of FileMaker is required?
Yes, all of our plugins are designed to run on Mac OS X (PowerPC and Intel) as well as on Windows.
Our plugins take advantage of the
plugin features of FileMaker 7 and later,
such as attaching styles to text, and are compatible with the most recent version, FileMaker 11. In addition, the Mac versions of all of our plugins ship as
universal binaries, and will run at full speed on both PowerPC and Intel Macs.
| Mac OS X 10.4 or later on PPC |
Mac OS X 10.4 or later on Intel |
Windows XP or later | |
|---|---|---|---|
| FileMaker 4-6 | FileMaker Pro 7 or later required | ||
| FileMaker Pro 7 | X | Won't run in Rosetta | X |
| FileMaker Pro 8 | X | Won't run in Rosetta | X |
| FileMaker Pro 8.5 | X | X | X |
| FileMaker Pro 9 | X | X | X |
| FileMaker Pro 10 | X | X | X |
| FileMaker Pro 11 | X | X | X |
| FileMaker Server 7 Advanced | X | X | X |
| FileMaker Server 8.0v4 Advanced | See note below | See note below | X |
| FileMaker Server 9 Advanced | X | X | X |
| FileMaker Server 9 | X | X | X |
| FileMaker Server 10 | X | X | X |
| FileMaker Server 10 Advanced | X | X | X |
| FileMaker Server 11 | X | X | X |
| FileMaker Server 11 Advanced | X | X | X |
FileMaker Server Advanced 8.0v4: Unfortunately, a bug in FileMaker Server Advanced 8.0v4 disables all plugins in the Web Publishing Engine on OS X. This affects all plugins, not just ones from 360Works. FileMaker, Inc. is aware of this bug.
Rosetta: Rosetta is not supported. If you are running FileMaker 7 or 8 on an Intel Macintosh, we strongly recommend upgrading to FileMaker 8.5 or later; the speed and stability improvements are very significant.
What about Web Publishing and FileMaker Server?
If you purchase the Enterprise License (see below), then you will be able to use the plugin with the FileMaker Web Publishing Engine. This means that when you use our plugins in your FileMaker scripts, they will work the same way with Instant Web Publishing (IWP). It also means that your Custom Web Publishing applications (with XSLT, PHP, or any other web technology) can call FileMaker scripts that use our plugins.
If you're using FileMaker Server 9 or later, our plugins are compatible with the FileMaker Server scheduled script feature.
Can I use this plugin with my FileMaker runtime solution?
Yes, all of our plugins work in FileMaker runtimes solutions, just copy the plugin to the runtime's Extensions folder.
What kind of licenses are there?
Most of our plugins are available in 3 licenses: a Demo version which works for 2 hours every time you launch FileMaker, a "WorkGroup License" for 10 or fewer users, and an "Enterprise License" for unlimited users within a single organization.
There are more Questions and Answers on our product support site.
Functions which are included with ScriptMaster
Containers | |
| Crop Image | Crop an image starting from the x, y coordinates resulting in an image which is width x height pixels. imageLocation can be a file location or a URL |
| Get File As Container | This reads the contents of a file (pathToFile) into a container field. If the file does not exist, the path of the file is returned. Change the path to an existing image on your hard drive and run again. Whenever your script returns a File object, it is converted to container data. Since the File object is the last evaluated expression, it is returned as the result of the plugin function call. |
| Gradient Image | Draws a diagonal gradient of the specified width & height. The colors should be entered as hex values. To change the direction of the gradient, change the parameters to the GradientPaint constructor. |
| Rotate Image | Loads an image from a url and rotates it, applying an optional background color. If a background color is specified, or the background is not visible (the image is turned in 90 degree increments) then the resulting image will be a JPG. Otherwise, the resulting image will be a PNG with a transparent background |
| Screen Capture | A simple way to grab a screen shot of a specified rectangle of your screen. Pass in the coordinates (left, top, width, height) of the area that you want to take a picture of. You can use the FileMaker Get(ScreenWidth) and Get(ScreenHeight) to get the entire screen area. |
| Watermark Image | Apply a text watermark to an image. imageLocation can be a file location or a URL. |
| Send Email | Here is a minimal script for sending email via an SMTP server. Check the "input variables" section for various message parameters, including "smtpHost". Change this to your usual SMTP host, e.g. "mail.bellsouth.net" or "mail.earthlink.net", etc. Additional possibilities include sending to multiple recipients, SMTP authentication, multi-part emails, attachments, and much more. |
| Send Email (HTML-Formatted) | Here is a minimal script for sending email via an SMTP server. Check the "input variables" section for various message parameters, including "smtpHost". Change this to your usual SMTP host, e.g. "mail.bellsouth.net" or "mail.earthlink.net", etc. Additional possibilities include sending to multiple recipients, SMTP authentication, multi-part emails, attachments, and much more. |
| Send Email With Attachments | Here is a more advanced script for sending email with attachments. It's important to configure the "smtpHost" and "attachmentPath" input variables. |
| Send Email With Authentication | Here is an all-in-one script for sending HTML email with attachments, and adding support for authentication. It's important to configure the "smtpHost" and "attachmentPath" input variables. |
File System | |
| Append To File | Appends a message (textToWrite) to a text file (filePath). Returns 1 if successful, and ERROR if unsuccessful. |
| Check Whether File Exists | Returns 1 if the file (pathToFile) exists, 0 if it does not. This example will return 1 on OS X, false on Windows. |
| Choose Folder | This prompts the user to select a folder on their hard drive. You can optionally specify a startingPath if you want the user to start in a certain location, and you can specify an optional 'prompt' message which will be used as the dialog title. If the user cancels, an empty result is returned. |
| Copy File | Copies a file from src to dest |
| CreateFolder | This takes an operating system path as a parameter (for example, /Users/Shared/newFolder or C:\Documents and Settings\MyAccount\newFolder) and creates that folder. It returns a 1 if the folder was created, 0 if it already exists, and an error if the folder does not exist and could not be created. It will create nested subdirectories, so if /Users/Shared existed and you use /Users/Shared/a/b/c as the path, it will create folders a, b, and c. |
| DeleteFileOrFolder | This takes an operating system path as a parameter (for example, /Users/Shared/newFolder or C:\Documents and Settings\MyAccount\newFolder) and deletes that folder or file. It returns a 1 if the folder or file was deleted, 0 if it does not exist, and an error if the folder or any of its contents could not be deleted. It will recursively delete subdirectories, so be careful! |
| Get File Modification Date | Returns a date (actually text in the FileMaker date format) of when a file was modified. |
| Get File Size | Returns the size, in bytes, of a file |
| Get Folder Size | Gets the size of all items contained in a folder, recursively descending into subdirectories. |
| List All Files In Directory | This uses the listFiles method to return all the files in a directory as a return-separated list. Files whose names begin with a dot will be omitted. |
| List All Files Recursively | This uses the listFiles method to return all the files in a directory as a return-separated list. Files whose names begin with a dot will be omitted. This version is recursive, which means it also scans all subdirectories inside the initial directory. |
| Move Or Rename File | This renames and/or moves a source file or folder to a destination file or folder. This returns a 1 if it is successful and a 0 otherwise. This will fail if the destination parent folder does not exist, or if you try to move between two volumes. The example paths with this module do not exist, you'll need to create an example file or folder yourself and set the paths to point to it. |
| Read File Contents | Reads a file (pathToFile) and returns the contents as the result. This example reads the file created by the 'Write to file' example, so be sure to run that script first. |
| Write To File | Writes a message (textToWrite) to a text file (filePath). You can change the character encoding parameter to write in ASCII or international character sets. Returns 1 if successful, and ERROR if unsuccessful. |
| Zip File | Zips up a source file to a destination zipfile, returning the zipped file as a container. 'src' is the path to a single file (not a directory), or the name of a container field (if referencing a container field, it must include the TO name followed by ::, e.g. "Demo::result_container") 'destination' is where the zip file should be written to. If 'destination' is a directory, the zip file is given the same name as 'src', but with a '.zip' extension added. If destination is empty, a temporary zip file is created as the destination. |
fmpro Helper | |
| Call Script At Scheduled Time | This calls a FileMaker script (scriptToRun) in the current file at a certain point in time (scheduledTime). This returns 1 if the script was successfully queued to return, 0 otherwise (such as if the date was in the past). |
| Call Script Immediately | This immediately calls a FileMaker script (scriptName) in the current file. You can use this to trigger scripts when field values change, when a tooltip is displayed, or any other time that FileMaker evaluates something in the calculation engine. The first parameter to performScript is the name of the database to run the script - passing in a null tells ScriptMaster to run the script in the current database. '1' is returned if the script call was successful, ERROR if something goes wrong. |
| Call Script With Delay | This calls a FileMaker script in the current file after a certain delay (delaySeconds). For example, to run a script after 1 hour, pass in 3600. After the delay, this calls the FileMaker Script (scriptToRun), halting any currently running script. This script returns a 1 if no errors occur. This uses the "runAfter" method specific to Groovy |
| Execute SQL | Executes an SQL statement in FileMaker. This feature requires the Professional Edition of ScriptMaster. |
| Get All Clipboard Formats | This returns an array of all of the available clipboard formats. When data is copied onto the clipboard, it is stored in multiple formats, such as a plain text version and a styled text version. You must select which format you want to retrieve and pass that to the 'Get Clipboard Data' or 'Set Clipboard Data' functions. This feature requires the Professional Edition of ScriptMaster. |
| Get Best Clipboard Format | This returns the clipboard format string which represents the FileMaker data currently stored on the clipboard. This format string is necessary for calls to read and write from the clipboard. This feature requires the Professional Edition of ScriptMaster. |
| Get Clipboard Data | This gets the contents of the clipboard. For the 'format' parameter, call the 'Get Best Clipboard Format' module or the 'Get All Clipboard Formats'. This feature requires the Professional Edition of ScriptMaster. |
| Set Clipboard Data | This sets the clipboard to the specified data and format. This example shows how you can write a custom function definition to the clipboard (pasting custom functions requires FileMaker 11). This feature requires the Professional Edition of ScriptMaster. |
GUI | |
| Color Chooser Dialog | This uses the Swing JColorChooser class to display a color chooser dialog. The selected color is returned as the result. There are also named output variables containing the r, g, and b values. |
| Formatted Dialog With Dynamic Buttons | |
| Select File | Ask the user to select a file. Returns the path of the selected file. Returns a 0 if a user clicks cancel. |
Networking | |
| Get URL as Container | This retrieves the contents of a URL (theUrl) and stores it into a container field. ScriptMaster automatically converts any URL returned by a script into container data. |
| Get URL As Container, part 2 | This retrieves the contents of a URL (theUrl) and stores it into a container field. ScriptMaster automatically converts any URL returned by a script into container data, adding a custom file extension if necessary. This example grabs a dynamic chart from Google's charting service. |
| Get URL as Text | Retrieves the contents of a URL (url) as a text field. |
| Notify Prowl | This uses Prowl (http://prowl.weks.net) to send push notifications to your iPhone, iPad, desktop, or any other Prowl-compatible device. This module is based on Todd Geist's blog at http://www.geistinteractive.com/content/teaching-filemaker-send-alerts-iphone. To get an API key, sign up at http://prowl.weks.net |
| Post Data To URL | This sends a POST request to a URL. The POST data contains a single key and value. The URL contents are returned. |
Number crunching | |
| Base64 Encode | This takes a text parameter (textToEncode) and returns a Base64 Encoded version of that text. |
| Base64 Decode to Binary | This takes a text parameter with Base64 Encoding (encodedText) and returns a container field with the contents of the binary data. |
| Base64 Decode to Text | This takes a text parameter with Base64 Encoding (encodedText) and returns a decoded version of that text. |
| Better Random | Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range. This gets around a limitation in the FileMaker random() function which often returns duplicate values. |
| Create AES Secret Key | This generates an AES 128 bit secret key, BASE64 encoded. You should call this function once and store the secret key in your FileMaker solution. This secret key can then be passed to the EncryptAES and DecryptAES functions. |
| Cryptography - MD5 Hash | This computes an MD5 hashcode for some text. The MD5 hash is a one-way cryptographic algorithm, meaning that you cannot get the value back once it has been hashed. It is useful for verifying that the contents of some text have not been changed. It is also good for spotting duplicates. |
| DecryptAES | |
| DecryptDES | This converts BASE64 encoded text to raw bytes, and then uses the DES algorithm to decrypt them. This script runs somewhat slowly when using the 'evaluate script' button, but it is very fast when compiled and registered as a FileMaker function. |
| EncryptAES | |
| EncryptDES | This uses the DES algorithm to encrypt some text with a password. It then BASE 64 encodes the resulting bytes. This script runs somewhat slowly when using the 'evaluate script' button, but it is very fast when compiled and registered as a FileMaker function. |
| Hashcode | Generating the hashcode for some text can be useful for quickly determining if two large blocks of text are different. |
| UUID | This generates a UUID (Universally Unique Identifier). You could use UUIDs instead of auto-increment primary keys to ensure that primary keys are universally unique. This example requires Java 5 or higher. Read more about UUIDs at http://en.wikipedia.org/wiki/Uuid |
QuickTime | |
| Video Thumbnail (Requires QuickTime) | Uses the prosc_qt jar to generate a thumbnail of a specific frame in a quicktime movie. Change the "timeUnit" input variables to the timeUnit number to extract. Typically movie files have 600 time units per second. |
| Video Thumbnail Grid (Requires QuickTime) | Uses the prosc_qt jar to generate a grid of frames from various points in a movie. Change the "columns" and "rows" parameters. Keep the values small (less than 12 or so). |
Shell | |
| Run Shell Script | This executes a shell script (shellScript) in the underlying OS. On Windows, the shell script should be a DOS script; on Unix it would be a UNIX shell script. The output of the shell process is returned. This example will return the list of logged in users in OS X. |
Sorting | |
| Sort Value List (Case Sensitive) | This sorts a list of text, in a case-sensitive fashion. |
| Sort Value List (Ignoring Case) | This sorts a list of text, in a case-insensitive fashion. This uses a custom comparator to convert the strings to lowercase. You could use a similar technique to convert strings to numeric values. |
Text | |
| Convert URLs to Hyperlinks | Converts URLs in text (inputText) to hyperlink tags, using Regular Expressions. |
| Create Ranges | This takes a starting value (start) and an ending value (end) as parameters. They must be the same length as ech other. It then returns all values whose last character is between the inputs. This is useful for doing fuzzy String index matching. |
| Find Image URLs | This uses Regular Expression processing to find all URLs in an HTML page that end with gif, png, or jpg. |
| Remove HTML Tags | Remove all HTML tags contained in a block of text (html) |
| Text Similarity | This calculates how similar two pieces of text are to each other, using the Levenshtein distance method ( http://en.wikipedia.org/wiki/Levenshtein_distance ). The lower the number returned, the more similar the text is. |
| URLDecode | Decodes a x-www-form-urlencoded string. See also FileMaker's GetAsURLEncoded function. |
| Validate XML | Validates an XML document against the schema referenced in the file. Note that the XML must reference a valid XML schema URL in order to be valid. The example XML is valid, and running the function will return the word "valid". Try changing one of the XML tags on xmlInput and running it again. |
| XPath Parse | This will apply an XPath query to XML data and return the result. This example returns a value list of every book title. The sample data is based on the books.xml document from Microsoft: http://msdn.microsoft.com/en-us/library/ms762271(VS.85).aspx |
WebServices | |
| Fedex Get Rates | This queries FedEx using SOAP Web Services to get a list of shipping choices for a package. Since this module uses a test account on Fedex test servers, which are not as reliable as actual Fedex production servers with a real account, you may need to run this module more than once to produce a result. To use the real FedEx server, switch the testMode parameter from 'true' to 'false' You will need to sign up for a FedEx developer account to get the values for parameters like 'meterNumber', 'accountKey', and 'accountPassword'. The signup page is at http://www.fedex.com/us/pckgenvlp/fcl/bussol/drc/index.html |
| Fedex Ship | This queries FedEx using SOAP Web Services to get a shipping cost for a package of specified weight between two addresses. Since this module uses a test account on Fedex test servers, which are not as reliable as actual Fedex production servers with a real account, you may need to run this module more than once to produce a result. To use the real FedEx server, switch the testMode parameter from 'true' to 'false' You will need to sign up for a FedEx developer account to get the values for parameters like 'meterNumber', 'accountKey', and 'accountPassword'. The signup page is at http://www.fedex.com/us/pckgenvlp/fcl/bussol/drc/index.html |
| Post XML Data | This POSTs XML data to a URL. This is ideal for manually sending XML data to simple Web Services. The URL contents are returned. This example shows a SOAP XML call to CDyn's weather service. |
| StockQuotePrice | Gets the current price for a stock symbol. |
| Terraserver Web Service | This uses a lightweight SOAP web services jar (prosc_webservices.jar) to query the TerraServer web service for information about any named place. The output returned is the raw data. You can also reference the named output variables using the SMGetVariable plugin function. |
Copyright © 2006-2010 Prometheus Systems Consulting d/b/a 360Works. All rights reserved.
Toll Free (866) 662-9185
