Setting up Preferences in Adobe Captivate

It’s a little-known trade secret that many issues reported by Adobe Captivate users can be avoided or minimized simply by judicious configuration of Captivate’s Preference options. While some of the modifications recommended below can prevent file corruption or loss of work, other suggested settings just make using Captivate easier and more reliable to work with.  Captivate has hundreds of preference options you can configure.  But in this article I’m only mentioning those preferences that need to be changed to avoid issues, improve performance, or maintain reliability.

Global vs. project preferences

Once you know your PC is set up correctly to work with Captivate and the application itself has been installed correctly without issue, the temptation is to just dive in and start work. But before embarking on serious e-learning development you should set your Preference options.  But…here’s where it gets tricky. Take a look at the screenshots below of the same section of the Preferences dialog.

Unless you look carefully at the wording of the heading in your Preferences dialog you could easily miss the fact that some preferences are Global (applying across all projects) while others are limited to the Project file currently open in Captivate.  The trick here is that you can only set up Global Preferences when no Captivate project is open.  If a project file is open, any changes to preference settings will only apply to that specific file and no others open at the same time, or in the future.

General preferences

This section contains Global preferences. So make sure you set or change them without any project files open at the time, otherwise they will only apply to the CPTX or CPTL file currently being edited.

Generate project backups

Fortunately, it’s rare for a Captivate project file to become corrupted to the point where it becomes impossible to open or use.  For more information, check the topic on my website about recovering Captivate projects from backup.  Perhaps the easiest way to protect your project is just to set the Global Preference > General Settings > Generate Project Backup option (it’s deselected by default), and then make sure you save and close your project often.  This will at least allow you to get back to that last saved state to avoid disaster.

One thing to remember here though is that once you turn on the Generate Project Backup option, the backup file is not created until you save your project for the second time.  So it’s a good idea not to wait too long before doing save-and-close to ensure your backup file exists at all times from then on.

About backing up to a LAN or external drive
On the subject of backups…By all means back up your project files to a network or external drive if available so as to ensure you do not lose work if for some reason your development machine goes belly up, gets stolen, or suffers some other serious fate. But to avoid potential project file corruption, you need to perform this backup AFTER first saving your work in Cp and closing down the project file.  Additionally, never use Save As from within Captivate to back up the project file to the network. Use copy/paste in Windows Explorer to copy the project file over to your preferred backup location. 

Set Default Locations to point to local drive folders

When Captivate is first installed, the Preferences > General Settings > Default Locations > Publish At and Project Cache locations default to special folders inside the My Documents folder of your user profile.  If you work in a corporate networked environment you may be well advised to change these default settings to point to new folders on your C: drive, as shown below. Why would this be necessary? It’s because, more and more corporate IT departments are employing virtualization technologies and roaming user profiles , which means the user’s profile and My Documents folder may actually reside on a LAN server instead of on their PC hard drive. This practice is usually adopted to make it easier for the IT department to manage and protect company information assets. However, while these techniques do not bother most software applications, they will eventually land you in trouble with Adobe Captivate.

Turn off autosize and calculate options

These options are found under Preferences > Default and are usually on by default. Quite frankly they’re a nuisance. They automatically change the size or timing of screen objects such as buttons or captions after editing. If they are on, you can never relax when editing because you have to go back and check the the size of objects as well as their timeline duration anytime you make a change.

Recording preferences

These preferences mostly relate directly to how Captivate behaves when capturing simulations.  You can save yourself a lot of time and angst by changing a few of these settings.

Video Demo Recording

Anytime you use Video Demo Recording  (also known as Full Motion Recording or FMR in Cp versions prior to Cp 6), Captivate stores temporary files in a special folder buried several layers down inside your user profile.  Unless you know this location and periodically clean it out, these files can build up over time to become a significant drain on your hard drive space. So set your Working Folder to a location you can easily find and clean out without having to worry about affecting any other part of your system.

By default the Video Colour Mode is set to 16 bit colour as an attempt to keep capture file sizes smaller. This limits your captured graphics to 256 colours, which might have been fine when software interfaces had lots of flat colour, but is too low to smoothly render the typical gentle gradients used on most modern software interfaces. You should change this to 32 bit for most situations. Additionally, if you start with 32 bit, and find file sizes are an issue, you can always set quality settings lower when publishing.  However, if you start out at 16 bit there’s really no way to improve it after that.

Recording keys

This one is just a personal preference of mine but you might like to try it too. I find that Captivate doesn’t pick up every on screen event during automated capture (especially for certain types of ERP software) and you still need to hit the capture key sometimes to ensure you capture everything you need.  Since I’m right-handed, I use the mouse with my right hand and like to capture manual screens with my left hand.  Captivate’s default manual capture key is the PrintScreen key, which is usually on the right side of the keyboard.  forces right-handed users to reach across the keyboard every time we want to do a manual capture. So, I change the default manual capture key to F2 because it’s closer to my left hand.  Most of the other default recording keys are fine.

Default recording objects

Another personal preference of mine…In practice I end up deleting 90% of the automatically added text captions and highlight boxes in a typical Demonstration mode screen capture session.  So, I find it quicker overall to turn off both of these options and just add in the objects I want later.

Tip: Take care of corporate branding with preferences set in your template
While we’re on the subject of default objects…If you work in corporate e-learning where branding is an issue, I recommend you set up a project template with your logos, look and feel, color swatches, custom Object Styles etc. Then, in that template you can also select your preferred text captions and highlight boxes to be used during screen capture sessions.  Doing this saves a lot of time later because you don’t need to go through and reformat everything to conform to branding.

Tip: Customising the text in added text captions
The default text in text captions added during a capture session is governed by a template with .rdl suffix. There’s one template for each language supported by Captivate and (if you’re using Cp 2019) are all located in the Cp install folder at:

C:\Program Files\Adobe\Adobe Captivate 2019 x64
or
C:\Program Files (x86)\Adobe\Adobe Captivate 2019 x64

Project preferences

Now that we’ve taken care of global-level preferences, it’s time to look at preferences that only apply to the specific project file currently open in Captivate.  It’s best to set these preferences in any Captivate template file on which you base your projects, otherwise you’ll need to set them up each time you begin a new file.

Project information

This is not something that will necessarily prevent issues in Captivate, but adding appropriate information in the project settings can certainly help the next developer that happens to inherit the job of maintaining or editing your work. For example, if you’ve been really clever with variables, advanced actions, or widgets, but neglected to leave any documentation, the maintenance developer can perhaps at least look in the Project Information fields to identify the Author and then contact you via your Email address to ask any relevant questions about how you set up the project.

WARNING!  Don’t use punctuation marks in Project Information fields

Whatever text you add into these Project Information fields should NOT contain illegal characters, which can include certain punctuation characters that form part of programming languages. If you DO happen to inadvertently add these characters, you may find your project corrupts or refuses to publish. The error message will not indicate the cause of the issue as being anything related to Project Information, but it might mention something about using reserved keywords. I’ve never been able to get a definitive list of words or characters that can cause problems, so it’s just safer to avoid punctuation altogether.

Tip: Try High Quality (24 bit), you may be surprised!

In early Captivate previous versions the default slide quality setting was Low (8bit). But this is limited to just 256 colours and even though it give smaller file sizes, if you happen to be using gradient colours then the low quality becomes very noticeable. The default slide quality for Captivate projects is now set as Optimized. Some authors recommend this setting because it supposedly allows Captivate to choose the best quality but still keep a smaller filesize for output.  I recommend you test both Optimized and High (24bit) quality settings for comparison. Publish with all slides set to Optimized and then again with all slides set to High (24bit) to see which one gives you the best results and smallest overall file size. I’ve often been surprised to find High quality beats Optimized for both clarity and file size.

Publish settings

These affect results in your published file output. Here are my recommendations for each option:

Frames per second

Unless you have a specific requirement for a lower frame rate, leave this set to 30. Increasing it to 60 or whatever to try and make your published content run more smoothly is unlikely to be successful.

Include Mouse

You’ll need this on to see any recorded mouse movements.

Publish Adobe Connect Metadata

Turning it on will increase published file size. If you don’t use Adobe Connect and you don’t believe your content is ever likely to be uploaded to Connect, leave this option deselected.

Enable Accessibility

Leave this turned on by default. 

Restrict Keyboard Tabbing to Slide Items Only

This option restricts keyboard tab actions from affecting anything other than objects added to the slide itself.  If you find that many in your target audience are keyboard-driven users rather than mouse-driven, then you may get complaints that use of the TAB key jumps learners to controls on the player skin with no way for them to tab back to the slide content.  By all means try the option but test for other downsides.

Include audio

Leave this turned on otherwise your sound files will not be published out.

Publish audio as mono

Leave this turned on otherwise audio will be published as stereo and file size will jump.  For most e-learning projects there is no benefit with stereo.

Play tap audio for recorded typing

Some people turn this off because they find the typewriter key sounds to be cheesy or annoying. It’s a personal preference thing.

Start and end

These options control launch and termination behavior of a project, but only to a limited extent.  As you will find in the comments below, when working with web-based technologies some things are simply outside your control and there is little or nothing you can often do about it.

Auto play

This option now is practically redundant because no matter what you select the web browser will decide whether or not the content will automatically start playing.  As a result of the way marketers and advertisers have abused use of multimedia in web pages, playing sound files and videos without the user’s permission browser manufacturers decided to step in and take unilateral action to disable Auto Play of any multimedia.  Though their original targe was web pages, now that e-learning is also HTML5, it gets caught up in the issue as well.  If you need more detail, read this article about the issue.

Preloader settings

The Preloader preferences section is another one of those many areas where Adobe Captivate badly needs some development work.  As you will see, most of these settings are now redundant due to the Death of Flash and the changeover to HTML5.  Hopefully future versions of Captivate will address this issue.

A preloader is intended to delay start of playback until a specified percentage of the content file has already been downloaded.  Captivate’s functioning preloaders were all SWF objects and therefore only really applicable for SWF output (which as of 2020 is now not recommended). In addition to not being compatible with HTML5, they only work if the content is served from a web server over HTTP. That means the preloaders will NOT work if the same content is served up from a LAN server or LAN drive over TCP/IP.  This is due to the fact that SWF preloaders need to communicate with the server to calculate and show the percentage of file currently loaded.  This communication works with web servers, but not with LAN servers.

The bottom line is that Captivate currently has no HTML5-compatible preloaders you can select from the Preferences panel other than Animated GIFs. However GIFs just give the user something to stare at while the content is loading and do not actually make preloading more efficitent in any way.

Preloader path

If you have read the heading above about the Preloader option, you should now realise that setting the Preloader path option is also now largely redundant.  If there is effectively no preloader you can use, what does it matter where the files are?

The problem here is that if you are updating older projects that were originally created for Flash/SWF output, then you may need to check the Preloader settings to avoid issues when moving over to HTML5. This is because if the preloader path is empty, but you have the Preloader option selected, Captivate will just use the default preloader found in the Gallery folder and (depending on your Captivate version) this may be an SWF preloader, which is then not compatible with your HTML5 output, but won’t get picked up by the HTML5 Compatibility Checker tool.

Preloader Percentage

As indicated above, this setting is also now redundant. But let’s assume you do have a working preloader that works with HTML5. Then, if you set the preloader percentage to 100%, the Captivate module is supposed to download everything before initiating playback, which sort of defeats the whole purpose of having a preloader in the first place.  So, how do you work out the right percentage for your preloader? To be honest, this really depends on your end-user’s actual bandwidth and how quickly you want the content to begin playing. In my experience, a preloader value of 25-35% is more than adequate for most projects that contain text, graphics, some animation, and voiceover audio.  However, if your project contains even a modest amount of video, or your bandwidth is somewhat limited, then all bets are off and your preloader may need to be set higher.  You can usually tell if your preloader percentage is not high enough because your project will periodically ‘stall’ or ‘buffer’ (stop and start) while it tries to download more content. Bottom line: test, test, test, test!

Project end options

If you are simply loading your content to a web server or LAN server, there is little impact in selecting any of these options.  It’s largely a matter of personal preference whether the project fades out, closes the window, or simply stops playing.  However, if you happen to be uploading your content to an LMS, it may be a requirement that you DO NOT use Close Project as your ending option.

The reason for this is that many LMSs use a proprietary SCORM player application that runs in the web browser to play and track user interaction with your content.   This usually means the content is playing in a nested frameset. With such an arrangement the player may not allow the window to self-close, because if it did, then the SCORM API connection with the LMS may be broken before all scoring data has been transferred. The result of this would inevitably be incomplete reporting and unhappy clients. So, if your Captivate content is delivered from LMS servers, I recommend leaving the Project End option set to Stop Project, not Close Project

If you’re not serving content from an LMS and you opt to use the Close Project option, your end-user’s browser may still prompt them to allow the window to close, and there’s nothing you can do to over-ride this behavior because it’s controlled by the browser’s current security settings.

What about ‘daisy-chaining’ to the next course module?

Keen-eyed developers often note the Project End options to Open URL or File and Open Another Project. It therefore naturally occurs to them to use these options to call the next module in a course. This practice is known as ‘daisy-chaining’ and can be very useful in some situations. However, it’s not a viable solution if you are delivering the course via an LMS as the server itself must launch each separate module in order to correctly track the user’s interaction, scoring, and completion data.  Trying to sidestep the LMS via daisy-chaining the modules almost always fails.

Project Expiry Date

If you happen to be using a Trial version of Adobe Captivate, be aware that this field will set the content to expire and stop working 30 days after the publish date.  This catches out quite a few newbie developers.  To remove this restriction, you simply need to reopen the CPTX file in a fully licensed version of Captivate and republish again.

If you happen to find that the Project Expiry field is still disabled and uneditable, despite the fact that you now have a fully licensed version of Captivate, you may just need to reset your Preferences.

Quiz Preferences

The final section in the Preferences dialog deals with setting up your project’s quiz.  This can get very complex and really deserves its own page. So, we’ll only deal with the basic settings here and some general recommendations that would apply to all projects regardless of whether or not you were publishing for an LMS.

Reporting

If your content will be delivered or tracked via a SCORM-compliant LMS, by all means set up your reporting options when you first set up the project file, but my recommendation is that you should then turn off Enable Reporting from then on until you actually need to upload your content to the LMS for integration testing. The reason here is that if you publish for SCORM, then when you try to view the published output on your local hard drive, the course will try to find the LMS SCORM API but won’t be able and will throw an error message. You can just click the Cancel button to view the content, but I guarantee you’ll soon get sick of doing so. By turning off Enable Reporting, you can still keep your settings, but you won’t be wasting development time with these annoying message boxes. 

In reality, the choices in this section are very dependent on the specific output format you have chosen, and in the case of SCORM/AICC output, it’s dependent to a large extent on the quirks of the specific LMS you happen to be using.

Enable reporting for this project

Unless you tick this box you cannot configure anything that will allow you to integrate your published content with an LMS or reporting mechanism of any kind.  As mentioned above, leave it off while developing content because otherwise each time you test publish it will go looking for the SCORM API and that will just slow things down in your development workflow.

LMS (Learning Management System)

From this drop-down list you select the type of LMS you will be using.  In most cases, if your LMS is a fairly typical SCORM-compliant system, you would choose the option shown in the screenshot below.

Although Moodle will accept SCORM 1.2 packages, it has a few quirks of its own that required Adobe to provide it as a separate option.

The Internal Server option is not really an LMS at all. It requires that you have your own web server set up to serve PHP pages that will accept reporting data.  These PHP pages ship with Captivate and are found buried in the Captivate install directory in Program Files.

Standard

This drop-down selects the LMS integration standard that will be used to transfer data between the course module and the Learning Management System. 

The most popular choice by far is still SCORM 1.2 and this is despite the fact that SCORM 2004 and xAPI are both much more recent standards that have greater capability. The truth is that SCORM 1.2 delivers what most organisations want, and in many cases is still the only standard their LMS will allow.

Unless your LMS only supports SCORM 1.2, I recommend you use SCORM 2004. It uses separate variables for tracking completion and pass/fail status, which makes it more flexible, and it also offers the ability to specify sequencing of course modules.

Configure (Manifest settings)

After selecting SCORM as an option, cick the Configure button on the Publish dialog to open the Manifest dialog and fine tune the settings further.
SCORM Version

There are actually three different sub-versions (or ‘editions’) of SCORM 2004, but Captivate always initially chooses 3rd Edition. ADL, the organization responsible for SCORM, recommends using 4rth edition, but you’re likely to find most LMSs still don’t support that option.  If using SCORM 2004, I recommend 3rd edition.

Course and SCO Identifiers

These are both required fields. If creating multi-SCORM packages, make sure you configure the manifest settings so that all SCOs (modules) use the same Course Identifier, but have separate SCO Identifiers, as shown in the screenshot.  As you can see, I use the Course ID as a prefix of the SCO ID to ensure uniqueness. In many cases this will make your LMS reporting a lot easier to decipher as you can easily tell from the SCO IDs which courses they belong to.  

The Version field specifies a number that the LMS can use to differentiate between manifests with the same Course Identifier. For example, if you are uploading the same project to your LMS after making edits or regular revisions, use a different version number in this field so that the LMS doesn’t balk (hopefully) and think you must be trying to upload a different course.

The Duration field is optional. If you select this the values are automatically populated by calculating the total playing duration of all slides.  However, this may not be a good guide in all cases because some courses take a lot longer to complete because slides use more interactivity.  So, if your LMS is displaying this field as a guide for learners, you may need to modify the values to give a more accurate guide as to how long users will need to allow for completion.

Template

One reporting option that many people don’t pay enough attention to is the ability to select a template to use for your SCORM LMS.  The default template is usually fine, but it’s worth noting that you can also modify the default SCORM templates located in the Cp install directory under Templates > Publish > LMS > Standard > SCORM > Default and then save the modified template into the Custom folder at the same location.  You may want to consider this if your LMS has special requirements and you have someone that can program these custom modifications for you.

SendTrackingDataAtEnd

If your LMS servers tends to bog down or even crash when too many users are accessing e-learning courses, then consider using the SendTrackingDataAtEnd template.  It delays sending tracking data to the server until the end of the quiz, which can significantly reduce load on the LMS.

Completion Criteria

This configures how the LMS will determine whether the user completed your course module.  This is really dependent on the structure of your content, but I personally prefer to have it determined by passing a quiz, even if that only amounts to the user clicking a button at the end of the module.

Success Criteria

Again, this is dependent on your specific circumstances, but I usually go with Quiz is Passed. If your module doesn’t have quiz questions, add a scored button that the user can click at some point. Some LMSs will not terminate the course unless they get some kind of a score, even if it is just 1 point.

Data to Report

I generally deselect Interaction Data as this also reduces LMS load.

LMS Advanced Settings

This dialog is reached via the Advanced button at the bottom of the Quiz Reporting screen. 

Send Data On Every Slide

Captivate has always had a reputation in the LMS community for being very ‘verbose’, meaning that it tended to throw large amounts of data at the LMS, and in many cases this proved to be enough to make some of them slow to a crawl when a certain number of users climbed on board to view courses.  This option gives you the ability to specify whether or not Captivate will ping the LMS with interaction data every time a user visits and completes a slide.  I recommend you leave this off as it just adds more load to the LMS.

Never Send Resume Data

This box controls whether or not your course will support LMS bookmarking. In a somewhat counter-intuitive interface design, you select this box to turn off bookmarking. I recommend you do so, because in most cases I’ve found giving users the ability to leave course modules and return at a later date caused more problems than it solved. If you do decide to use LMS Resume Data bookmarking (by deselecting the box), you should do extensive testing to make sure your LMS supports it reliably, and your course participants won’t suffer any adverse experiences.  Issues with this kind of bookmarking account for a huge number of posts on the Adobe Captivate Forum.

Set exit to normal after completion

I recommend you first try having this one set to on. In theory it should mean that once your users have successfully completed a course module they would be allowed to view it from the beginning again should they open it another time.  Without this setting, a user re-entering the module after completion might be taken immediately to the final slide of the published file.

Escape Version and Session ID

This setting really only applies if you happen to be using the older AICC LMS integration standard and not SCORM. In the case of AICC, a lot of interaction data is transferred via the URL query strings and there are sometimes characters that get passed along in the URL which need to be escaped in order for reporting to work. Since I’m always using SCORM (and AICC is almost never used nowadays) I have never had to configure this option for any LMS I’ve worked with. But your mileage might vary.

About LMS bookmarking

So what do we mean by LMS bookmarking and why would anyone choose not to use it?

The SCORM standard specifies a way for LMSs to know at what specific point in a course the user decided to bail out and do something else more interesting.  This mechanism is called Suspend Data (also known as Resume Data). By default, Captivate sends resume data several times during the user’s interaction with the content and when the user terminates their session without completing the content. IF your LMS can correctly interpret this data, then Captivate’s default settings may work fine for you.  However, this is a BIG IF because many LMSs have proven unreliable in this area.

Adobe Captivate uses SCORM drivers supplied by Rustici Software, the acknowledged world experts in SCORM and the company behind the SCORM Cloud online LMS as well as the Tin Can or xAPI standard that was developed as an intended replacement for SCORM.  

If having problems, test on SCORM Cloud!

It’s not uncommon for Captivate developers to experience issues with their LMS of choice not accepting or not playing nicely with their e-learning content. When this happens, the default position of the LMS people is to say that the issue is with your content, not their LMS.

However, when these same Captivate developers log the issue on the Adobe Captivate User Forum, the usual suggestion there is to upload the same course to SCORM Cloud and test. This is because it has been acknowledged for a long time in the Adobe Captivate community that SCORM Cloud is the most SCORM-compliant LMS on the planet. 

If your content works fine on SCORM Cloud (and it usually will), go back to your LMS vendor and ask them why their LMS is not working like SCORM Cloud.  They hate it when you do this, but it usually forces them to come to the table and give you better information as to why their LMS is having issues.  Sometimes they will even give you access to their own technical people to help resolve the issue.  But they only do this as a last resort when you have proven that another LMS with an excellent reputation for quality (i.e. SCORM Cloud) has been able to do what theirs could not.