Automatic links to characters and locations

I love using character and location sheets to keep track of important information but I hate searching out the sheets in a long binder. Ideally, I’d love to have Scrivener autodetect names of people and places within the manuscript and create links to the relevant sheets that, when clicked on, open up as quick references for referring to existing info or editing/adding new info. Likewise, I’d love for the sheets to autofill a list with chapters/scenes in which the character/location is mentioned.

Scrivener won’t auto-detect/create links but you can add internal links to your character/location sheets. On Mac, right-click on the word you want to link to the character or location sheet; select “link to document”. If you are using character name for example, and have a character sheet under the same name, it will give you the character sheet under “suggestions”, or you can manually locate using further-down options.

For the other feature you’re looking for, you should be able to achieve it through keywords:

1 Like

HI. Thanks. Yes, I’m aware that I can link manually but I’d rather it autodetected characters/locations and turned them into links that I can click on as I write. That’s why I put this in Wishlist! :smiley: I’m also aware of tagging. Again. It’s manual. I’m looking for automation to assist in writing, not more work for myself. I always have grand plans to add metadata to each scene but I never keep it up. I was looking at an ad for Papyrus Author and they seem to have auto linking to character and location files but I’m not interested in switching horses, especially as their most interesting features are subscription based. I’m a long time Scrivener user and intend to remain so. 8)

1 Like

Wishlisting aside, you could streamline the currently available options a bit by making use of the “Automatically detect [[document links]]” option in Preferences: Corrections and then naming your character and location sheets precisely so that within your scene you can enter the location or character name with the double brackets and have it automatically linked to the correct sheet. If you have “Document links and bookmarks create back-link bookmarks” set in Preferences: Behaviors: Document Links, then that same action will also produce a bookmark in the character/location sheet linking back to the scene you’re working on, so you’ll get that list of documents wherein the character/location is mentioned just by checking the document bookmarks in the inspector (and you’ll even be able to select the bookmark and load the scene right there in the inspector).

Using a text expander you could tweak this further by setting up expansions for your character and location names. For the wikilink detection to work, you can’t replace the name with the full set of surrounding brackets unless the text is entered “by typing” rather than “by pasting” (you could do this with Keyboard Maestro, for instance), but you could have it enter all but the last closing bracket so you’d only have to type the final one. For instance you could set it up so that if you type “Adrian” in Scrivener, it would automatically be replaced with “[[Adrian]” and all you would need to do is type the final “]” to have it turned into a link to your “Adrian” binder document.

If you don’t have a separate app for this, you could try using the macOS text replacements (System Preferences > Keyboard > Text), but these will apply system-wide, so you’ll probably want to use some other trigger text other than the name. These also will only apply once you’ve hit the spacebar, which makes them less convenient, although you should get a little popup in Scrivener prompting with the replacement and selecting that will insert the replacement without the extra space. It’s still more keystrokes than using a dedicated app, but it might be helpful. (Three keystrokes instead of four to type all the brackets manually?) You may also want to use a unique trigger even in the case of a dedicated app and limited scope of the replacements so that you have more control over when to create a link on the name and when not–you might do it just for the first time the name is entered in a scene, for instance, rather than every sentence. :smiley:

Interesting workarounds!

I know this is an old topic but it would be a great addition still. I envision it as a Cast of Characters/Locations popup per chapter with auto-assignment to the character sketches for known characters. If you could detect proper nouns that would probably do the trick.
Also the ability to assign aliases to characters that would be auto-matched; I sometimes use different forms of the name depending on whom is addressing them (mom calls him “Robert”, gf calls him “Rob”, best friend calls him “Bob”) so search isn’t always possible/easy.

1 Like

With the version 3 update to Scrivener, a feature was added, where right-clicking on any term mentioned in a title elsewhere produces a jump command to such matching items. You’ll find more about it in §10.1.1, under subheading, Linking Without Linking, in the user manual PDF.

This was our response to this feature request, as we do not want to add something that adds physical hyperlink formatting to the source text purely as a matter of typing in things that happen to have those words in their titles elsewhere in the project. That idea does not work so well in a general purpose writing program that does not have any of the infrastructure you are referring to (location databases and such)…


Thanks AmberV. That gives me some of what I was looking for. I think the original request and my request are more specifically on the linking back from the character sketch to where the character or location was mentioned. Also, I think auto-detection on proper nouns should be possible and would allow for a better experience. Thanks, love the product!

I think that would be disastrous. A random document from my current WIP has five proper nouns in the space of 400 words. But the scene only involves two people. I really don’t want to auto-link to the same person twice in the space of a paragraph.

1 Like

Thanks for the kind words!

I think the original request and my request are more specifically on the linking back from the character sketch to where the character or location…

What you say is well understood, but perhaps the implications of what I went on to say were not clear. What you are describing here as the solution is what I was referring to as there being a total lack of infrastructure for—none of what you are referring to exists.

There are no concepts or features in the software that would have a programmed understanding of what a character sheet is, or whether this or that configuration of letters within them, or even somewhere else is a proper noun. You may call the document template you created such a thing, and you may use it to achieve the goal that such a thing aspires to, but from Scrivener’s point of view it is just a text file like all of the other ones. Its title is not special, it does not mean “character name”.

So in examining how very little there is currently in the software for making this idea happen, this request is therefore much larger, and more about creating database features for novel writers, so that we could then conceivably do things like highlight phrases found in certain specially designated fields of said database. Maybe that’s a good idea for a certain kind of program, but I’m not sure how much sense it makes to add that much code complexity and overall feature weight / interface clutter to a program that is used for many forms of writing. You might suggest we make it a freeform database so everyone can join in on the fun, but now you’re talking even more complexity, because now you’ve got the interface to make the interface problem. We’re back to there being no “character name”, but now providing tools that create such a concept, documentation that describes complicated notions such as database flags with special behaviours, the GUI surrounding all of that, etc.

So far I’ve addressed the technical problems, that making such a thing requires another kind of software to begin with, but there are conceptual problems with this idea as well, as Katherine notes. This kind of feature you refer to is something that a few programs toyed with, but at least in my experience it’s kind of died out as an idea, and I think for good reasons.

There is value in a human saying that a certain word should link to a topic about that word, particularly in a system that generates backlink references so that you can see all of the milestone link points you created from that topic’s section in the binder. You will find that even in modern programs that are very much built down to the core around fairly aggressive cross-linking, there is still a human element in declaring when that should be done, usually via some kind of typing convention like the [[key word]] one we use, or #keyWord.

Without that designation it’s just an unremarkable instance of a word. There are even times when a word is use to mean precisely what a topic is about, but we still don’t want it linked because where that word is being used is not significant enough to be pulled up in a search or back-link list. That can be as for simple a reason as the wording having been used 15 times already in the last three lines, or because the whole section, while it talks about ‘outlining’ as a concept, really isn’t the kind of thing I’ll want to dig up in a year when looking for stuff related to ‘outlining’.

When a word should be linked is something software cannot easily determine for us. It can either do nothing, or it can spam links everywhere and ask us to delete (by hand!) the ones we don’t want. Which is better? Which is more efficient? Which is less frustrating? (This is a basic design concept: the act of making a thing because you want to is so much more fulfilling and productive feeling than having to weed out junk that software generated for us.)

So again to return to our solution for this request:

  • Provide a bounty of refined and efficient mechanisms for linking between items by name or by alias. Capitalise on that human-initiated value and make it is easy to carry it out as possible.
  • Provide a system for jumping to binder items topically for cases where a link isn’t really desired or present. This is us even going the extra mile here. Most tools don’t even have anything like this, you either have a word that is a link, or you do not.
1 Like

How do you really feel kewms :wink: I think you bring up an excellent point, I was really thinking this would be an optional feature that you would turn on, or maybe just something you run like spell check. My second biggest fault is character consistency and something like this would be help to ensure I did a better job of it.

Thanks again for your feedback and suggestions. So I’ve been playing around with setting the Character style (using a shortcut) to the having a border, I find it not too distracting but easy enough to spot. When I’ve completed my writing for the day I can easily scan and add the character name to the notes for the scene and then following your great advice I link the character name in note to the character sketch. It’s been working great these last couple of days. Thanks again.

You could skip a step by assigning the character as a keyword to both the scene and the character sketch. Then searching for that keyword would give both all (tagged) scenes with that character and the sketch.

Another way to do this is have a charecter page then drag every character sheet onto this creating a linked list to all characters. Bookmark this move to top of list and have a quick way to reach each charecter sheet to check details. Do same for locations.

1 Like