Skip to content


Content that explains how to set up Adobe Captivate or its plugins to work on your computer system.

Before you begin developing in earnest using Captivate’s Variables and Advanced Actions to enhance the interactivity of your Captivate content, I recommend you take a few minutes to set up a debugging environment. Doing so can potentially save you many hours of frustration wondering why your carefully-crafted interactions are not working as you expected.

There are a number of ways you can achieve this, but in the example below I use Smart Shape Buttons because they can be timed to display for Rest of Project and are therefore available for view on any slide after the point where they are inserted.

How to set up a DEBUG slide in Captivate

First we need to insert a Smart Shape timed to display for Rest of Project. This shape displays values of any important User Variables you need to check at some point. We use a Conditional Action (triggered by other Smart Shape Buttons) to toggle the visibility of this shape when it needs to be seen.

  1. Insert a new slide near the beginning of your project file or project template, but not as the very first slide. (Having too much complexity on the very first slide of a Captivate project is never a good idea because too much is happening in the background as that slide is loading.) Use graphics and captions to clearly indicate this slide is a debugging slide.
  2. Create a User Variable called DEBUG_MODE_ON, set to 0 by default, and another called DEBUG_MODE_INDICATOR_TEXT which contains whatever text you want to have showing as the label of the toggle button used to Show or Hide your debug variables. I set mine with a default value of DEBUG IS OFF.
  3. Insert another Smart Shape and select the option in Properties tab to Use as button so that it becomes a Smart Shape Button. Set the button timing to display for Rest of Project. You’ll need to make this button reasonably small and place it in an area at the top or bottom of the slide so that it will not end up in the way of other controls when testing the content at run-time but can still be easily clicked.
  4. Double-click this Smart Shape Button to add text and from the Properties tab, click the Insert Variable button. When the Insert Variable dialog appears, select the DEBUG_MODE_INDICATOR_TEXT variable from the User Variable list and click OK. This variable’s current value will now be displayed as the button label.  We will be changing the value of this variable later when the debug display is being toggled on and off.
  5. Insert a second Smart Shape and resize it to cover most of the slide but place it so that it does not cover your toggle button shape. This object displays any user variables you want to view at run-time. So add some explanatory text at the top to make it obvious.
  6. Both Smart Shapes should be situated at the very top of the layers on the DEBUG slide, and both should be set to display for Rest of Project. Only one is set to Use as Button. To make these objects easier to find, give them meaningful Item Names (as shown below).
  7. Now we need to create the conditional action that will toggle the visibility of the Smart Shape displaying your user variables. That conditional action looks like this:
  8. Test the functionality of the debug slide by clicking the Smart Shape button that triggers the Conditional Action to Show or Hide the Smart Shape that displays variable values.  If clicking the button shows and hides the shape as intended, so far so good. The label text in the button should change from DEBUG IS OFF when the variables are hidden, to DEBUG IS ON when they are visible.

Although your debug slide is ready for use, you may want to simply Hide it in the filmstrip until you actually need it.  Hiding a slide prevents it from being published in the output.  You definitely will NOT want this slide to become visible to your end users when the project eventually goes live.  So, be sure to hide the slide again before the final publishing of your course content for delivery.

How DEBUG MODE works

Now that you have everything setup, if you encounter any issues with Captivate’s interactivity, just go to the debug slide and into the large Smart Shape there (not the button) insert all variables that are related to the problematic functionality.  This would especially include any variables that are directly referenced by Conditional Actions, or that are dynamically assigned values by other Actions, Advanced Actions or Shared Actions.

Then unhide the DEBUG slide, preview your project as HTML or else publish to HTML5, and click the debug Smart Shape button to toggle the visibility of the other Smart Shape that displays the debugging variables.

When you have finished debugging, just hide your DEBUG slide again to turn off DEBUG MODE and immediately disable your debugging environment. That’s all there is to it!

In most cases what you will find is that some variable is not changing to the value you expected and that is why things are not working properly.  In my experience faulty logic in Conditional Actions is the usual reason for unexpected interaction behaviour. The big gotcha for many newbie Captivate developers is that all decision blocks in a Conditional Action get executed, not just the one where the condition evaluates to true. The order of the decisions is particularly important because a later decision may be changing the value of a variable that was correctly assigned by an earlier decision block. So, make sure you correctly understand how these work in Captivate. You can spend many fruitless hours debugging these things unless you can expose the values of the variables.

Can’t fit all your variables in one shape? Use two, or three!

One caption is usually sufficient to display all variables you need to monitor. However, you can add more captions to the debug slide if needed. Just place the rollover areas or toggle buttons side by side at the top of the slide so that you can call up each relevant caption or shape.

Add debugging to your project templates!

Since I started using this approach I’ve found it so useful when creating complex interactivity in Captivate that I now have this debugging environment built into any project templates I set up when working with clients for whom I create courseware.

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
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.


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.


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.


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.


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.

This page provides some general information about how to set up your computer environment for Captivate e-learning development. Contrary to what some newbie Captivate developers may hope to believe, installing Captivate is only the first thing you need to do in order to really enjoy using it. Many issues reported in the forums are caused by inappropriate system configuration or setup. Following the steps in this section will help you avoid those types of issues.

Launch Captivate using 'Run As Administrator'

Many Captivate users (and IT Departments) mistakenly think that as long the application has been installed correctly then basic user rights are all that should be required to run the application.  After all, you don’t need to be an Administrator just to use Microsoft Office, right?  Unfortunately, with Captivate it’s not quite that simple.

Captivate runs reasonably well on Microsoft Windows 78 or 10. But, be advised that these operating systems have strict user security (known as User Access Controls or UAC for short) that can interfere with some default Captivate functions (such as screen capture).

To install Captivate and set it up correctly on your development computer, you will need full Administrator rights. This won’t be a problem if you own the machine. However, if you work in a corporate environment as an employee or contracted developer, then it is unlikely you will be given such totally unfettered access to your computer’s operating system. The more likely scenario is that Captivate will be installed by authorised technicians from your IT department, and any time you need to update Captivate because a new patch has been released or you need to install add-ons (like Text-to-Speech voices), you’ll need to submit a formal request to the IT department to get this work done. You are therefore well-advised to cultivate a good relationship with the local IT department because the trend nowadays with many applications (Captivate included) is to move toward frequent bug-fixes and updates after release, to resolve issues that once would have been eliminated by more thorough pre-release testing.

In Windows systems it is necessary to always launch Captivate using Run As Administrator privileges.  But please be aware that just having Administrator rights on your PC is NOT the same thing as using Run As Administrator to launch an application. Many users fail to understand this subtle distinction and experience frustrating issues including loss of functionality and even random application crashes that may result in hours or even days of lost work. It’s really very easy to set up (if you have admin privileges). All you need to do is right-mouse-click on the Captivate icon in the Start menu or desktop, navigate to More > Run as administrator via the context menus.

If you don’t see a Captivate icon in your Start menu, an alternative method is to just browse to the Captivate.exe file inside your Program Files > Adobe > Adobe Captivate folder. Right click the main Captivate application EXE file and select the option in the Properties dialog to Run As Administrator.

What if the IT Department won't allow you to use Run As Administrator?

Be warned that when you inform your corporate IT department you need to run Captivate with administrator privileges they are likely to refuse permission, despite providing them with the information that the application will not work properly without this configuration. This is where you find out not just how helpful, but also how knowledgeable, your IT support people really are. 

Their objection will be something along the lines that: “Corporate IT policy states that normal users are not permitted to have full administrator rights…blah…blah…” However, it is technically possible to set up your user profile to have administrator rights for the Captivate application alone, without giving you admin rights over your entire computer. But only the really good IT geeks know the tricks involved in pulling this off. You may be forced to get your manager (or his manager) involved to ‘lean on’ the IT department if necessary.  

The bottom line is that you will all have to come to come kind of compromise, or else you won’t be able to use quite a bit of Captivate’s functionality.

Show hidden files and folders

By default, the Windows operating system hides certain folders and files to try and prevent users from accidentally deleting them and causing system instabilities. However, sooner or later you will need to access some of these files in order to perform certain maintenance and troubleshooting tasks. For example, you may need to modify Captivate’s publishing templates, delete system lock files to open CPTX files after a system crash, or delete/rename a troublesome Captivate preferences folder buried in your user profile. None of these tasks would be possible without being able to see the files or folders in the first place!

Here’s how to show hidden files on a Windows operating system:

  1. Open Windows Explorer and click Tools > Folder Options.(If you do not see the Tools option in Windows Explorer, open the Organize dropdown menu and select Layout > Menu bar.)
  1. In the Folder Options dialog, click the View tab.
  2. Under Files and Folders > Hidden Files and Folders select the option to Show hidden files and folders.
  3. Click OK to save changes.

Why your type of web server hosting matters

Here’s the problem: Captivate Forums will sometimes report a baffling issue where course links that were working fine for months suddenly start failing for no apparent reason. What has usually happened is that behind the scenes someone in the IT department or web hosting service decided to move the course files over to a different web server. Web server technologies differ in the way they handle URL links that have mixed-case filenames.  As a result, developers sometimes waste days before discovering broken links were caused by the change to a new web server, and not some failing in their own course.

Now that Captivate developers are limited to delivering content as HTML5, published course modules will almost always be loaded to a web server or Learning Management System (which is also usually a web server). The developer may not know whether this underlying web server technology is a Windows-based Internet Information Server (IIS) or an open-source Apache web server running on a UNIX or LINUX operating system.

Unfortunately, there is a small but significant difference between the way these differing technologies deal with mixed case text in URL links. The bottom line is that a URL hyperlink that works perfectly well when tested locally on your Windows development computer or on a Windows IIS web server, may fail when uploaded to UNIXLINUX, or FreeBSD web servers. 

Why this failure? It’s all due to the fact that a Windows web server is not case-sensitive and will therefore regard a URL pointing to MyCourse/MyFile.htm as being the same as a URL at mycourse/myfile.htm. By contrast, UNIX and LINUX servers are usually case-sensitive and would resolve see these same URLs as pointing to different locations. This difference can potentially cause havoc if your course files are named in mixed case, but called from URLs that specify the filenames differently.

So, even if you think there’s no chance your environment will change, if you want to avoid maddening issues with broken links, always follow the two rules below.

Rule #1: Always use lower case file/folder names

Although you can certainly use uppercase or mixed case names for folders in the general folder structure where you store your project files, when it comes time to published output, you will avoid a lot of potential issues with broken links if you ONLY use lower case folder and file names. This rule relates to the information above about how different web servers process links.

Rule #2: Never use spaces in file/folder names

Similar to the previous rule, spaces between words in folder names or filenames may result in broken URL links after uploading to a web server or LMS. Though your Windows operating system or LAN server will be able to resolve hyperlinks containing spaces, the rules of the internet are somewhat different. Web servers and web browsers do not expect to find spaces in a URL. They’ll interpret the spaces to mean the end of the URL, and therefore your carefully crafted hyperlinks will break.

The recommended way to separate words in a folder or file name is to use an underscore character or a hyphen. So instead of creating links like my course/my first course module.htm which would break when loaded to a web server, you should replace the spaces with underscore characters so that the link target is my_course/my_first_module.htm or even use hyphens such as in my-course/my-first-module.htm.