cardex
Vice & Violence

Creator notes

Some time ago, I started working on a fork of a Vice & Violence character card and lorebook someone posted here—one that had over five hundred entries, but I felt was lacking in polish.

If you don't know what Vice & Violence is, it's a lewd 18+ table top RPG, and you can find its TTRPG book and art online by RapscallionVNs (it's even on e-hentai), though this character card isn't using the 2.0 version of the TTRPG.

It became a hyper-fixation of mine for about a month, and I went as far as to not only add a bunch more content and improving the definitions to be accurate to the original setting of Vice & Violence, but I also made a new race-based character generator lorebook and creature generator lorebook by using contents from the Vice & Violence TTRPG book itself, a special map with coordinates for locations to define distance for the AI, and, most importantly: I made a second version of the lorebook where I tried to experiment with recursive scanning to optimize context visibility and token consumption without needing to rely on extensions.

Before you turn your nose up at recursive scanning for a lorebook that now has an entry count of over 890 and 90,000+ tokens, let me assure you that this was not a sloppy job whatsoever; I designed the lorebook to support recursive scanning using entries that I named 'mini-descriptions' and 'added descriptions'. Mini-descriptions are small and only have the bare minimum of context to define something; these can be triggered recursively. Added descriptions can only be triggered by a keyword in their respective mini-description (in the form of a markdown header like '## Humans'), hold the majority of the context of that entry, and is directly below the mini-description in entry order, making it a seamless inclusion when read by the AI.

To explain it more simply: Mini-descriptions do not trigger their added description until its keyword appears in the chat, allowing only a portion of the entry's context to be called rather than the entire entry. Though, if your SillyTavern settings read context outside of the chat for lorebook scans (such as turning on world scanning for the author's note), you may want to be careful.

This should massively cut down on hallucinations and allow the AI to see important concepts related to other concepts mentioned in the chat, but the drawback is that recursion steps is tied to a global setting in SillyTavern, so every time you use it, you need to remember to set the recursion steps back to normal (1 recursion step effectively disables recursive scanning, and 2 is the intended setting for this lorebook. 3 or more breaks the lorebook).

That said, it's still rather experimental, a fork of something not originally built for this, and still demands extra tokens with recursive scanning, but there's an in-depth guide to managing context in the recursive lorebooks if you need to run on short context windows.

If you intend to use extensions like TunnelVision and need a lorebook that doesn't have entries that are segmented as described here, I've also made non-recursive versions where entries are rejoined and whole, like a normal lorebook. I also made versions of both that insert at ️depth 4 (⚙️) for when hitting the input cache is important, bringing us to 4 different versions of the lorebook.

One last important thing: Unless there was a fix I'm unaware of, lorebooks uploaded to Chub (or at least ones not linked to a character's PNG file) have their settings messed with upon downloading. I know it at least messes with insertion strategies, and I haven't checked to see what else it might be changing, so I recommend downloading the versions I have uploaded to catbox to get versions that should work as intended (to download a .json from catbox, open the link on a new page, hit ctrl+s and save the page as a .json file). If you don't want to risk downloading a .json file from a stranger on the internet, they're also available on chub, but depending on how chub handles the data, the recursive versions may be rendered worthless by changing other things alongside the chosen insertion option for each entry. I plan to upload them to botbooru if we ever get to upload lorebooks there in the hopes that it's better than downloading from chub (this was written a week before the mass exodus lmao).

If this was too short, check out the details below to read my yapping. Below that are the important links.

# Major Features:

RECURSIVE SCANNING

I've went in-depth on this in the readme's and section found above, but to go even further: Recursive scanning is really, really under-utilized as a whole. No lorebooks are built around it, but I think that's because nobody wanted to try experimenting or modifying other people's lorebooks and publishing them. Similar things can be done with inclusion groups, but it doesn't allow for precisely controlling which entries can cause further recursion like my architecture does with mini/added descriptions, as added descriptions cannot cause further recursion when recursion steps are set to 2.

The unfortunate part, however, is that recursive steps cannot be edited on a per-entry basis; it needs to be set globally. Because of this lack of QoL on base SillyTavern, you need to either remember to set the recursion steps to 2 every time you use this, or disable recursive scanning for every entry in every other lorebook you use.

If SillyTavern ever adds the option to toggle recursive scanning for each entry, I'll update the lorebooks. But unfortunately, that probably won't happen any time soon unless this project makes recursive scanning trendy.

THE WORLD MAP

Roughly one hundred different defined locations. There's two versions of the map entry context: One with cartesian coordinates and math defining how large the world is in miles, and another without the coordinates. The goal with the cartesian coordinates was to teach the AI how far away another location is. You can change how large or small the world is, but there's a few other entries you will need to edit for consistency (noted somewhere in the readme entries)

Furthermore, all location entries (yes, all 100) have different geography and regional threats listed, in the hopes the AI won't hallucinate inaccurate terrain and enemies that don't exist into the roleplay (that said, hallucinations of this type might not bother others, but it annoyed me enough to implement) and also create quest objectives in any adventures. The lists were made with AI and then correctly curated when I saw it was being stupid anyways. Don't feel pressured to use all of them, and don't be afraid to edit the locations on your end to suit your needs.

RACE ENTRIES, 'TINY DESCRIPTIONS' AND INCLUSION GROUPS

I made special race entries that use inclusion groups to further optimize context awareness and token usage. All tiny descriptions are constantly active and very optimized for token usage, but will be excluded when their main entry is triggered. This makes it so ALL races can be considered by the AI when making a scene regardless of what's being scanned, and brings an end to most fantasy race hallucinations.

CELEBRITIES

Roughly 50 NPCs and lore, some dead, some alive, and all based on the ones in the TTRPG book (except Soozi, but she's far more popular; popular enough that she gets her own tag on rule34).

Some of the celebrities have pretty loose keywords, so it may be worth lookin to see if your persona or other OCs overlap with any names mentioned here:

Horny Graeg Soreskin, Perki Krankin, Sohgudatshagin, Red Foot Ohga, Alariellia, Oren Oafkin, Yu'ran, Fork The Orc, Nuts the Berserk, Raili Ulalia, Grippit, Aurien Uylia, Den The Sleepy, The Goop Troupe, Wanderin' Djoei Longlegs, Kragnok The Immortal, Gazrak; Son Of Kragnok, Krunt; Son Of Gazrak, Bang Bang Byl, Dingus The Crap, Ulanaia, Brewy, Throb Longcock, Nerdi Thinker, Gort the Orc, Wed Whonda, Zeg Orghkin, Suli The Milk Queen, Ruinous Weregeld, Pebble Ankin, Renni Piper, Mister Suck, Shinfist, Morrow Ur, Ex'treiden The Unkillable, Yenni Ankin, The Circus Solate, Snoozie, Turin The Thick, Zenni Swinger, Dead Randy, Slam Hellfist, Djen Fisher, Sovas Kula, Mona The Accomodating, Relanion Lenain, Soozi "Spooki" Brewer

LOREBOOK COMMANDS

Commands are keywords you put in the chat that automatically trigger specific entries for you. I.E., <fae> triggers the relevant fae entries, and <OMGWTFBBQ!> triggers literally every entry. That one is best used when you want an AI to read all of the context the lorebook has, and was more of a debugging tool for me to proofread the lorebook with AI.

More commands can be found in the readme.

RANDOM MACROS

Chub uses a different version of random macros from SillyTavern. If you downloaded the character from chub to use on SillyTavern, CHANGE THE LINKED LOREBOOK, cause I think the random macros will break (maybe not, but they're inferior anyways because they use commas to separate items instead of two colons).

RACE CHARACTER AND CREATURE GENERATORS

These use both custom definitions and content canonical to the V&V TTRPG book, and are designed to instantly create new NPCs and creatures / enemies as needed.

They all use random macros so they can be used repeatedly, but if you need them to stay, you can either change 'random' to 'pick' in SillyTavern, or copy/paste the context into your chat with a /send command, then take the generated definitions and put them in your own lorebook or wherever else you want them.

CONTEXT MANAGEMENT

For recursive versions, there is a readme guide that shows tips on managing this lorebook's context. One major feature is that you can toggle off numerous constantly active entries by disabling the setting end tag's ability to recursively scan. The downside is that all of the entries with the </setting> keyword are secretly on all the time, but I think the convenience outweighs this downside.

FILTER KEYWORDS

Filters get weird with recursive scanning, since I'm pretty sure recursive scanning also checks filters. Without more advanced options to toggle specifically for lorebook filters, my ability to narrow down what can and can't trigger an entry was limited.

But nonetheless, some entries DO have filters. Here are the relevant notes from the changelog for ease of viewing:

  • Added some filters for class abilities (basically all of them except paladin vows, some blood magics and advanced spells), using keywords of the class entry (i.e., if a keyword such as "fighter" is active, it will allow all of those fighter abilities like "roar" to trigger). Note that these filters also check for recursion; if "roar" is in an active entry (there isn't actually, but it's the example I'm using) while fighter is active, then it will trigger. This might sound bad, but it's genuinely pretty hard to trigger for most entries, as I changed genuinely problematic ones like "loud" and "hide"
  • Due to their ridiculously ubiquitous naming schemes, Generic Magic Items (e.g., 'Huge Tits') and Grimoire Spells (e.g., 'Piss') have special filters that only trigger when additional relevant keywords are active (basically amounts to "magic item, magic items" and "grimoire, grimoires"). Side note: The filters get wonky considering that filters are also counted during recursive scanning, so triggering an entry that has say, "grimoire" without recursion (such as the Wizards mini-description) means that it will successfully pass the filter even if that filter keyword ("grimoire") isn't in the chat. This can be alleviated by either removing the filters for these entries on your own (but by default I think I gave them all the same respective filters), or making the entries non-recursable (though making them non-recursable also requires entry's filter keywords to be in the chat alongside its main keywords, and that sounds annoying to manage if you can't remember to enter the filter keywords).
  • Added filters to cleric sub types (the 4 demigods) so that mention of their god and "cleric" or "clerics" in the same context will trigger it instead of just "cleric of [NAME]". These entries however are non-recursable despite having mini-descriptions, as this combination of keywords and filters was still relatively easy to trigger accidentally. If you don't mind the added context, feel free to make them recursable again.

FORK CHANGES

I do not intend to be rude, but the original was shoddy at best (and I think the original author knew it lol). Backwards entry order, numerous typos, some parts being AI generated lore, and some key context on making a world alive not being included (jade economy, Great Houses, Mausoleum Cities, etc.)

To keep track of everything, I made an entire list of changes. Even if you hadn't used the original, it is useful to see exactly what has been changed. This changelog can be seen in the readme of each lorebook.

PERSONAL GRIPE: LOREBOOK UNIQUE IDENTIFIERS (UID)

If you don't already know, each lorebook entry has a UID that doesn't do much beyond keeping track of entries on the system side of things by going up in count each time a new entry is made. By default, SillyTavern sorts entries by UID while viewing lorebooks IIRC.

SillyTavern doesn't have a built-in way to change the UID of each entry, and I don't care enough to look for an extension that will let me fix the order, so all of the UIDs are just all over the place given how much was added.

If you sort by UID while looking through these lorebooks, you'll be completely confused. Sort by order ascending instead for a more clear representation.

And at the risk of sounding pretentious: Remember to practice caution and check the stuff you click and download.

Now, I don't think I'll ever work on a lorebook this big again, but please enjoy my work in any case.

Links

Botbooru page: https://botbooru.com/character/16975

Chub page: https://chub.ai/characters/sano1/vice-violence-ea8cc8018803 (this version comes with a linked lorebook with random macros modified for chub's frontend; re-link a different lorebook for SillyTavern)

The Vice & Violence TTRPG Book used: https://e-hentai.org/g/3508076/7c68043287/ (NOTE: There are other versions out there, and this isn't the only one used here, but this is the most easily accessible one)

Lorebooks

Recursive version: https://files.catbox.moe/cs5kx5.json Depth 4, recursive: https://files.catbox.moe/c5ofxl.json

Non-recursive version: https://files.catbox.moe/d19yqa.json Depth 4, non-recursive: https://files.catbox.moe/detyuj.json

Race character generator: https://files.catbox.moe/w1s6r9.json Creature generator: https://files.catbox.moe/5pqdc5.json

By default, this character card is linked with the non-recursive depth 4 version.

Rating
nsfw
Origin site
Chub
Original character
yes
Downloads
1,518
Views
7,475
Forks (upstream)
0

Created Archived since

  • female
  • human
  • dragon
  • non-human
  • huge_breasts
  • nsfw
  • anypov
  • multiple_greetings
  • smut
  • futanari
  • large_breasts
  • big_breasts
  • elf
  • fantasy
  • orc
  • dwarf
  • goblin
  • sandbox
  • contains_lorebook
  • rpg
  • magic
  • body_modification
  • tentacles
  • big_ass
  • english
  • origin_chub
  • centaur
  • satyr
  • interspecies
  • original_prose
  • breasts
  • taur
  • sano1
  • multiple_lorebooks
  • vice_and_violence
  • open_world
  • jack_cayless

<setting_portrayal>

Vice & Violence Setting Tone and Style

Though the characters in the setting of Vice & Violence sometimes face a harsh and cruel reality, the setting's tone is uniquely (and heavily) defined by either eroticism, comedical slapstick elements, or a mix of both in spite of any cruel reality faced. Unless someone's life is (or was) on the line, the adventures taking place within Mundain are lighthearted, lewd and satirical overall, even when things are going very poorly.

Vice & Violence Storywriting / Simulation Rules

  • Whenever new or unestablished characters are introduced for the first time, their appearance should be detailed as part of their introduction.
  • If something is either not explicitly defined within the setting of Vice & Violence, not at least somewhat implied, or not reasonably possible given the setting lore, then it likely does not exist (e.g., undefined stats like mana and undefined classes like monks do not exist). Extrapolation of setting elements is typically reserved for mysterious / unknown elements or the new stories that could take place within the setting itself (i.e., new characters and their backgrounds, exploration of undiscovered areas and new story developments). </setting_portrayal>

Permanent link to this version