Frequently Asked Questions

Where are my puzzles saved?

By default, puzzles are stored in the cloud and are accessible from any online computer. However, it is possible to save puzzles locally in the persistent storage provided by your browser. To do this, select "Save As" from the File menu and check the "Store locally" box in the resulting dialog. Note that when this option is used, you can only access puzzles from the browser in which they were saved and that if you clear your browser's cache, the puzzles are lost for good.

Where are my word list edits saved and how do I back them up?

There are three types of word edits that can be performed from within the app: additions, score modifications, and exclusions. In each case, the change is saved locally in persistent storage provided by your browser.

Since modifications live in browser storage, you will need a way to export and import them. This is required both for backup purposes and to switch computers or browsers. There are options on the Word Lists menu to perform these actions. For score modications, click on "Manage local edits," for exclusions click on "Manage excluded words," and for your custom lists use "Export word list."

While added words are associated with a particular word list, modifications and exlusions are stored separately, as overrides to your word lists. You can think of these modifications as being stored in an autogenerated word list whose priority exceeds every other word list in your configuration. In this way, you can update your third-party word lists without losing any of your changes.

In addition to score modifications, you can also add sample clues. These show up during the fill process and on the Lookup pane and may serve as a reminder of a particular cluing angle that you would like to use. Clue edits are handled alongside score edits as described above.

If you'd like to know more, check out our video where we demonstrate all the basics of word list management.

What are acceptable word list formats?

Word lists can be unscored or scored. An unscored word list is just a text file where each line contains a word list entry. Entries can only include alphanumeric characters; Special characters are not allowed. For scored lists, each line would consist of a word and a number separated by a semi-colon, comma, or tab.

Words can also contain sample clues that are displayed when showing the results of fill operations. Most entries in the app's default word list have a sample clue. You can add sample clues to your word lists by adding a third component to each line. So, for a scored word list with sample clues, each line would consist of an entry, a number, and a sample clue with these items separated by a semi-colon, comma, or tab.

How are word scores used?

Scores are primarily used to sort lists of slot options. Higher scored entries, which presumably correspond to better fill options, are shown first. It is also possible to set minimum score filters when searching for fill. These filters can be set globally for the entire grid or at the slot level.

How can I modify word scores?

Any place in the app that you see a word score, whether it be in the lookup tab, the slot option lists, or the word tab, you can simply click on the score and enter a new value. These edits are applied immediately and will persist within the browser where the edits were made.

If you want to switch to a different browser or computer, you must export and import your local modifications. You may perform these actions on the "Manage local edits" dialog (accessible via the Word Lists menu).

To see a demonstration of this functionality, check out our video on word list management.

What's up with the default word list?

Most of the entries (≈ 86%) in the default word list come from puzzles that have appeared online. Roughly 36,000 puz files were processed, during which roughly 67,500 punny or otherwise inappropriate entries were removed leaving approximately 145,000 quality fill words. The remaining 23,000 entries come from miscellaneous sources, including a word frequency list based on a corpus of scrapped internet content as well as many manual additions. To facilitate fill evaluation, all of these additional words have been given sample clues.

The three-, four- and five-letter words have all been assigned a letter rating from A to E using the following criteria:

ASparkle, i.e. longish, in-language words and phrases that are genuine assets to a grid
BSolid English words or phrases and well known proper nouns
CWords that are acceptable, but less than ideal, e.g. word derivatives, common crossword entries, etc.
DCruddy words are often needed as glue to make the grid work, e.g. partials, abbreviations, foreign words, etc.
EWords to be avoided at almost all costs, e.g. esoteric words, Roman numerals, weird abbreviations, etc.

In the app, these ratings are converted to numerical scores using a customizable mapping. By default, the five different rating levels are assigned the values 80, 50, 30, 10, and 5 respectively. However, to facilitate using the Crosserville list with other word lists, these values can be modified on the "Default Word List Info" dialog (accessible via the Word Lists menu).

Scoring for words that are six letters or longer is a bit of a hodgepodge. Some of them have been manually rated, but the majority are assigned a score based on their occurrence count and the active rating scores. While using occurrence counts to score words can lead to some flawed results (overestimating long-established crosswordese and underestimating fresh, new entries), it does provide some means of sorting a list of slot options.

Obviously, word scoring is subjective. One person's crud could be completely acceptable to someone else. If you don't agree with how a particular word is scored, you can change it. Just click on the score that is shown in either the Word, Fill or Lookup pane, and enter a new value. This change will be saved to persistent local storage in your browser. To see a demonstration of this functionality, check out our video on word list management.

Another unique property of the Crosserville default word list is that all entries have a sample clue that is shown during the fill process. In general, these correspond to the most frequently used clue in the clue database, but in many cases, they were added manually or edited to provide additional context beyond word score. For example, the sample clue shown for SAUTED is "Fried lightly:Var." as a reminder that this is a variant spelling. It is much better to discover words like this during the fill process, as opposed to much later while cluing the puzzle.

And lastly, the default word list is updated daily with new words, ratings, and sample clues. While these updates are not automatically downloaded, you can refresh your local copy of the word list by clicking on the "Update" button in the "Default Word List Info" dialog. And don't worry about losing any local score edits. Any changes that you have made to the default list word scores will not be lost during a refresh.

While it's tempting to think that bigger is better for word lists, that is generally not true. When filling a grid, word list quality is much more important than quantity. If you are using one of the free word lists available online, and you find yourself spending a lot of time rejecting or settling for less-than-optimal fill options, try filling with the default word list using a minimum score threshold of 10 and compare the results.

The default word list is not available for direct download. It is intended to be used only within this app.

What are alternative word lists?

Alternate word lists provide a means to specify fill candidates on a per-slot basis. To manage these lists, click on the "Alternate word lists" item in the Word Lists menu. From the resulting dialog, you can import or delete word lists.

Once a list has been imported, a drop-down menu will appear in the Slot Filter section of the Fill pane from which you can select the slot's alternate word list. Note that, unlike regular word lists, alternative lists are read-only; You cannot modify scores or remove entries, but the remaining slot filter features are available.

Is there a way to add more than one block at a time?

Yes, there is. If you click and drag the mouse over multiple squares while holding down the control key (or for Mac users, the command key), the app will select those squares. And once a set of squares is selected, you can perform bulk operations on them, such as toggle block, toggle circle, toggle shaded square, or delete.

How can I see the top candidates list for a particular slot?

If you right-click on a square in the grid, it will bring up a context menu that, in general, will show the top 10 candidates for both the across and down slots containing the square. The exception is when a slot is completely unfilled. In that case, the context menu will just include the number of candidates from your word list that match the slot length.

Is there an easy way to add an item from a slot option list to the grid?

Yes. When viewing slot option word lists, either in the Fill pane or a context menu, there are two actions that can be initiated with the mouse. A single click will look the word up in the clue database and display the results, while a double click will add the word to the grid.

What does it mean when a slot option is shown in boldface?

Words presented in boldface as slot options have never appeared in the Shortz era of the New York Times crossword (1993 to the present). In other words, they could be stellar debuts that may garner applause or complete turds that will likely lead to a quick rejection. Choose wisely.

To provide this feature, the app maintains a local database in browser storage of all published NYT words. This database automatically updates daily with any new words from the most recent puzzle.

What do the colored slots mean?

When you open up the fill tab, the app performs lookups on each slot based on the characters currently in the grid. If there are 10 or fewer candidates, the slot will be highlighted in yellow. If there is a single option, the slot is highlighted in yellow and the sole candidate is shown in gray. And if there are no candidates, the slot is highlighted in red.

These colors are intended to show you the constrained and unfillable slots, although it is important to note that these colors are based on candidates, not valid options. You can only tell if a candidate is valid by performing a fill operation.

What does a grayed out letter mean?

If the app has identified that there is only one letter option for a particular square, it will show that letter in gray. To accept all the "single-option" letters shown in the grid, use the keyboard shortcut Alt + Shift + Enter. If you just want to accept the options being shown in the active slot, use Shift + Enter.

How are the letter distribution charts computed?

On the fill and lookup panes, you will sometimes see bar chart icons (i.e., ) displayed in the slot squares. Clicking on these will bring up a bar chart of letter distributions for that particular slot position. How the letter distribution counts are calculated depends on which pane you are viewing.

In the lookup pane, the letter counts are based on the list of matching entries. In the initial chart that is displayed, the bars take into account the word scores. If you want to see an unweighted bar chart based solely on word counts, you can click on the chart to toggle the display.

The letter distribution charts in the fill pane are a bit more complicated. First off, the charts depend upon whether or not you have successfully searched for valid slot options. When valid search options have been found, the bar chart icon will be green (i.e., ) and the letter distribution graphs are based on the search results. If you have not performed a slot option search, the letter distribution data uses all the potential candidates.

If there is a list of candidates for the crossing slot, they are also used to calculate the letter distribution data. In this case, the counts correspond to the number of candidate pairs that match a particular letter. For example, if you are looking at the first square of a slot and there is only one candidate with the letter A, but the crossing slot has 50 candidates with an A in that square, A's letter distribution count would be 50. Roughly speaking, the letters with the higher counts will give you more fill options to consider.

How can I fill just one region of the grid?

For many grids, the black squares and the completed slots break up a puzzle into multiple isolated regions in which the fill can be tackled independently. You can control which region is filled by changing the active slot on the grid before starting a new fill operation. If that slot has unfilled squares, the application will limit the search to the region containing that slot. On the other hand, if the active slot is completely filled in, or a black square is selected, the application will attempt to fill the entire grid. An example of this is given in the tutorial video

For this to work, the region must be truly independent of the rest of the grid. This means that none of the slot's open squares intersect with any slots outside of the region. Also keep in mind that if the app finds fill in an isolated region, that does not mean that a full grid fill solution is possible.

Is there anything I can do about a really slow slot option search?

In general, slow searches happen when the search space (i.e., the set of possible options for all unfilled slots) is large. Crosserville performs exhaustive searches, so it will keep churning as long as there are unexplored possibilities.

While several factors affect the size of the search space, the most critical is the number of unfilled slots in the search region. Roughly speaking, if there are N unfilled slots, each with M options, then the total number of possibilities is M raised to the Nth power.

So one thing you can do to speed up slot option searches is to effectively reduce the number of slots that need to be included in the search. This can be achieved by breaking your puzzle into independent regions. In many cases, this may only involve filling in a few squares. An example of this is given in the tutorial video.

The other thing that can speed up searches is to limit the number of fill options with filters. If the app is churning away on a particular slot, you may be able to reduce the search time by creating filters on the surrounding slots. Also, keep in mind that while exclude filters provide more flexibility, include filters are generally more constraining and are likely to have a greater impact on search times.

In some cases, long searches cannot be avoided. This is especially true early in the fill process when there are many unfilled, interconnected slots. However, in practice, you don't always have to wait until the search has been completed. By unchecking the "Show validated options only" checkbox, you can see which options are still under consideration, and based on that information it may be reasonable to build a filter from a partial result set and move on to a new slot in the grid. It is also true, in general, that slot options that remain unverified after the second pass are likely invalid, but the app has been able to fully explore the search space to confirm that no fill solutions exist.

If you find the performance unacceptable, you might want to try the free construction app, Ingrid. Several folks have reported it to be significantly faster than Crosserville.

What is a seed entry and do I really need one to find fill?

A seed entry is a starting point for building a grid. Most commonly, it is used to refer to one of the initial long entries that constructors add to a themeless grid, although it can be used more generally to include theme and revealer entries. Regardless, they are a required starting point for the puzzle's construction. Similarly, Crosserville requires at least one seed entry to serve as the starting point for the search process.

However, in this app the term is used even more generally to refer to anything that constrains possible fill solutions. This could be a filled-in slot, but it could also just be one character in a single square. Or it could be slot filter, defined as either an include list or a minimum score threshold. In fact, specifying your seed entry as a slot filter is a particularly useful approach for starting a themeless puzzle.

What are grid scores?

When a slot option search yields a result, the app will then evaluate the option by calculating a grid score for the entry, which is a value that aims to quantify how good the surrounding fill would be for the particular slot option. Specifically, the app attempts to find the optimal (or near-optimal) fill solution for the slot option and computes the cumulative score of that solution. Reported grid scores are normalized to a value close to 1.0, so they are only meaningful in a relative sense. To see the fill found during the evaluation process, move the mouse over the grid score.

In general, grid score searches are slower and less accurate when the puzzle is largely unfilled. These evaluations can be temporarily paused by clicking on the "Stop Eval" button or permanently disabled in the Default Settings dialog. And if you would prefer to have your slot options sorted by word score rather than grid score, you can toggle between the two by clicking on the "Grid Score" header.

What is the recommended Crosserville strategy for filling grids?

Unfortunately, there is no simple answer to this question. Becoming adept at filling a crossword takes time and practice. And the precise approach that you take will likely depend upon many factors, such as the size of the region you are trying to fill and the rough number of available fill options.

With that said, one of the keys to using Crosserville is getting comfortable with slot filters. In contrast to the guided fill approach, where candidates are explored one at a time, a slot filter allows you to consider multiple candidates at once. They can be used to gradually pare down the list of possible fills to a manageable set that contains your best overall options. And once you have reached this point, you can either iterate through the possibilities and choose the one you like best or go slot-by-slot and test out the different options. But even if you use the slot-by-slot approach, there won't be as much backtracking as in a traditional guided fill; by setting up filters, you have already removed the worst entries.

In practice, this means more work upfront to set up your slot filters, but less time spent iterating through possible fill solutions. Like everything in crossword construction, it's a trade-off.

The guiding principle for creating slot filters is to configure them such that, once you have visited each slot in the fill region, you are left with a reasonable set of acceptable options. This means that for grids that are easy to fill (i.e., there are many possible solutions), you can be strict with your filters. A strict filter might be one with a high minimum score threshold, or a short "include list" filter, or the most strict slot filter of all: filling it with a particular entry. For hard-to-fill grids, you will need to be more flexible with your slot filters by including options that are less than ideal. In this situation, it might also make sense to revisit the grid design and see if moving your themers and/or blocks could release the pressure somewhat.

You can also reduce the amount of work needed by starting with the slots having the fewest candidates, as these filters tend to have the biggest bang for the buck. If a slot has, say, 3 candidates and you remove 1 of them, this could reduce the total number of fill solutions by 33%. In practice, it's impossible to predict how much of the search tree will be pruned with the removal of a particular candidate. But in general, removing a candidate from a short list of possibilities will have more impact than removing one from a longer list. So starting with the slots highlighted in yellow, and the longer slots with specified crossers are good strategies.

It's also a good idea to be thinking in terms of breaking up your grid into subregions that can be filled independently. In general, you will find that in the early stages when the app is attempting to fill many interconnected slots, searches will be slow and may not finish. You can improve this behavior by filling in certain slots or individual squares that create isolated regions (You'll know when you've created an isolated region when clicking on the "Find Fill" button fills in only the selected region of the grid). This will improve search performance, but keep in mind it comes at the expense of eliminating fill options. So, it is best to fill in these "dividing squares" with letters that leave you with the most candidates going forward. The letter distribution graphs are helpful when making these decisions.

In many cases, you will not need to create a word list filter for each slot in the region. As the 3, 4, and 5-letter words in the default word list have all been manually scored, you can feel comfortable setting a global filter for these slot lengths. For example, if your slot option searches are returning hundreds of possibilities, you could try increasing the minimum score of all 5-letter slots to, say, 30 and see how that affects the result sets. If there are still plentiful options, you could play around with the 3 and 4-letter score thresholds. Again, at this stage, you are just trying to pare down the possible fills to a more manageable number by removing the worst options.

Focusing on slot filters is by no means the only way to use the app. You can use the more traditional guided fill approach (although the UI is not as optimized for this method compared to other apps), or you can run autofill and use the "Exclude From" buttons to remove unwanted entries until to get something that you like. Or you can combine different methods. But keep in mind that this is a challenging problem and developing the skills to design and fill crossword puzzles takes time. Don't get discouraged!

Can I format my clues with bold or italic fonts?

Yes, although this formatting will only be visible on exported PDFs. The puz format does not support styled text.

Crosserville understands a limited number of HTML tags for adding styles to your clues or title. These include:

  • <i>italic</i>italic
  • <b>bold</b>bold
  • <u>underline</u>underline
  • mc<sup>2</sup> ⇒ mc2
  • H<sub>2</sub>O ⇒ H2O

In addition to this limited formatting, you can also include non-alphanumeric clue characters in your PDF exports, as long as they are part of the font set used by Crosserville. The PDF files use the Noto fonts; In particular, for NY Times submissions the app uses Noto Serif, and for PDF puzzles the app uses Noto Sans. Each of these fonts includes over 3,000 glyphs, so many standard symbols, marks, or shapes are available to be included in your clue set.

How does the puzzle comparison feature work?

If you are working together on a grid with someone, whether they be a collaborator or an editor, this feature allows you to see the changes they have made.

To use this feature, you will need a copy of your collaborator's puzzle as a .puz file. Once that is stored locally on your computer, select "Compare puzzle" from the File menu and choose the file in the resulting dialog. The differences will be displayed in a table, and you will have the option to download them as a .csv file.

You can also compare a version of your puzzle that was saved as a restore point. Do to so, bring up the 'Restore Points" dialog (accessible via the File menu) and click on the restore point's "Compare" button. This will open a popup window showing the saved version of the grid with any differences from the current contents highlighted in yellow.

What are the different versions for Across Lite export?

In 2016, Across Lite introduced puz file format version 2.0. It was largely unchanged from the previous version 1.4, with the exception that text elements (e.g. clues, title, author, copyright, and notes) could now include Unicode characters. The older format only allowed ASCII characters.

If your puzzle only contains regular characters, the two formats are identical with the exception of the version number embedded in the file header. However, if you would like to include special characters such as 🎃 or 💪, you can include them in a version 2.0 puz file. Note: If you are running Across Lite on an older OS, the special characters might not display correctly, so you should verify before distributing the file.

If you have the current version of the Across Lite app, it should be able to read either format. This is true of most apps that import .puz files. However, some apps (reportedly Crossword Compiler) will not import a version 2.0 file regardless of whether it contains special characters.

What browsers does this work with?

The app has been tested in the latest desktop versions of Chrome, Firefox, and Edge. It is not mobile friendly at the moment, and there have been some problems reported with Safari (specifically, clue editing). Also, it uses some browser features released in the last year, so if you have not updated your browser in a while, you might encounter some issues.

The app also does not work in private windows on Firefox. The technology used to store word lists, indexedDB, does not function in that mode of browsing. By the way, for those concerned about privacy issues, Crosserville does no advertising nor uses third-party cookies of any kind. We only use cookies to maintain login state and to save puzzles and word lists locally.

Where can I find documentation on the keyboard shortcuts?

The complete list of keyboard shortcuts can be found here.

I need a break from constructing. Does this site have any games?

That's an oddly specific question, but as it turns out the answer is yes. It's called Letter Drop. You can try it out here.

What were crossword puzzles like 100 years ago?

Considering the lack of computational assistance, I think they were quite remarkable. But don't take my word for it. Click here and see for yourself.

Where can I find a copy of this site's Privacy Policy?

Our Privacy Policy can be found here.

I have a question, suggestion, gripe, and/or comment. What can I do?

Send us an email at support@crosserville.com. We'd love to hear from you, gripes included.

Bug reports and feature requests are especially welcomed. Crosserville has limited resources and we depend upon users to report problems and come up with brilliant ideas to improve the app.