Skip to content

Releases: neph1/LlamaTale

v0.35.1 - Equinox update

05 Oct 05:49
ed3eb51
Compare
Choose a tag to compare

Edit: I've updated the release to contain a few fixes.

This is the biggest update to LlamaTale for a long time.

Highlights are:

Traders - Enabling Tale's shop system
Automatically equip and dress generated NPCs based on occupation
Optional removal of model specific templates (ie, allow usage of backends chat templates)
A bunch of fixes as per usual

Traders

Tale already had a working shop system. This update allows traders being set up with inventory and using the correct template. A whole list of new commands are used, which I'll add a wiki page for. Traders have things to sell, and will sometimes buy things as well.
Will still need some improvements to the economic system to work well (note to self).

Occupation parsing

An npc's occupation is now parsed for generated npcs (and optional for loaded ones). This will automatically give them some relevant weapons or equipment and clothing. To make a previously generated npc use the feature (such as a loaded companion), add 'parse_occupation=True' to the json file.
They will also get relevant skills and spells (yes, spells have been rewritten to be used by npcs now too)

Template optional

To accomodate to the 'modern' feature of backends automatically selecting the correct template

USER_START: '### Instruction:\n'
USER_END: '### Response:\n'

have been removed from llm_config.yaml. Any mentions of USER_START in the prompt will be removed when parsing.
You may still add them back if you for some reason want them, and it will use that template instead.

A big shoutout to ko-fi supporter OtterDemon for the donations during a fairly slow summer season.

Upcoming changes

There is still some work to do to fully take advantage of the new occupation features. I haven't specifically told the LLM to generate occupations (or what occupations to use).
I should make the npcs actually wear and wield the items they receive.
As mentioned, improve the economic system, or use it more.
Do an overhaul to the prompts. They were made in a different era with 2k to 4k prompts and are very brief. I think they could be more expansive to make better use of modern LLM's.
Update wiki articles. Some are outdated, and some new entries are needed.

What's Changed

Full Changelog: v0.34.0...v0.35.1

v0.34.0 - Like a thief in the night

21 Sep 14:00
762698f
Compare
Choose a tag to compare

Combat points have been renamed to action points for versatility reasons.
A 'skill' set has been added to livings. Expect more skills to come.

New commands:

hide - Pass the skill throw (and be alone in the location), to hide and become impossible to spot. Costs on action point.
unhide - Reveal yourself again.
search_hidden - Search for npcs that are hidden. Costs on action point.
pick_lock - Use your skills to pick doors that are locked (maybe mostly interesting in Dungeon stories).

New spells:
cast_rejuvenate - Replenish action points.
cast_hide - Hide someone (maybe yourself).
cast_reveal - Use magic to reveal someone hiding.
For all spells the format i: spell who (level optional)

When you're hidden, no replenishment is possible.
Attacking will reveal yourself.
Autonomous npcs may search and hide. For others I'm thinking about adding a perception based 'throw'.

Being hidden may be janky in some situations. Both because I've missed to take some things into consideration, and in the case of LLM powered NPC's, their reaction to a "[hidden]" tag may vary, if you choose to interact with them.

What's Changed

Full Changelog: v0.33.1...v0.34.0

v0.33.1

10 Sep 19:31
e26ffc4
Compare
Choose a tag to compare

Adding a few checks for empty responses (those pesky LLM's)

What's Changed

  • add some checks for empty responses and tests by @neph1 in #90

Full Changelog: v0.33.0...v0.33.1

v0.33.0 magic and spells

01 Aug 19:51
f48995c
Compare
Choose a tag to compare

The reason I wanted 'replenish' in was I needed a way to regain magic points after spending them.

So here is a basic spells system. It works (for now) as commands and you need both enough magic points and a successful roll to cast them. There are three proof of concept spells, 'heal', 'bolt' and 'drain'.
Heal: Costs 2 points. Heals up to 5 points.
Bolt: Costs 3 points. Damages a random amount of health between 1 and 'level' of spell.
Drain: Costs 3 points. Drains a random amount of combat points and magic points between 1 and 'level' of spell. Adds amount to casters magic points.

Name of the spell is the command. Target is required and should be a Living in the same location.
heal target

This is something of a prototype, and may change. For example it's only possible for Players to use the spells at the moment. I'm working on adding 'levels' to the spells as well. For now I've added the 'heal' spell to players in The Prancing Llama, and all spells to Anything and Dungeon stories. Check the init_player method of those if you want to add spells to your custom stories.

But I guess we need some kind of class system, soon?

Original:[ You cast a healing spell that heals elid gald for 5 hit points] Generated:With a flick of my wrist, I channel magical energy into Elrid Gald’s body, bathing him in a warm, golden light. His eyes flutter open, taking in his surroundings as if awakening from a long slumber. A soft hum emanates from within me as I continue to weave together intricate patterns of magic, carefully tending to each of his five remaining hit points. As his wounds begin to mend, Elrid stirs, shifting uncomfortably on the makeshift bed of piled furs and blankets. He groans softly, wincing at some discomfort before catching sight of me. “Ah, thank the gods,” he mutters with a weak smile, his voice still hoarse from the ordeal.

v0.32.0 Replenish and combat points

17 Jul 16:17
6c8a354
Compare
Choose a tag to compare

This feature has been brewing in my head for a while. "How to replenish health points over time".
I decided on a periodical function, and only for players for now. It will add one point every 10 seconds. (Is this too often?).
I also added another idea, "combat points", which is rather stamina. It will decrease when attacking, and replenish over time. If it's 0 you can't attack, and it will hurt your defense.
I needed to get this sorted out to before the next bigger thing that has been missing from the framework.

v0.31.1 Llama 3 template

30 Jun 14:48
31bb7c3
Compare
Choose a tag to compare

Edit: This is superseeded by v0.35.0

It's now possible to use Llama 3 and derivatives. There's some extra prompting needed:

Replace the USER_START and USER_END with this:

SYSTEM_START: '<|begin_of_text|><|eot_id|><|start_header_id|>system<|end_header_id|>\n\n'

USER_START: '<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n'

USER_END: <|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n'

PROMPT_END: '<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n'

And a few small fixes I noticed

What's Changed

Full Changelog: v0.31.0...v0.31.1

v0.31.0 Random narrative events + fixes

30 Jun 08:07
455a30c
Compare
Choose a tag to compare

This release is mostly about bug fixes:

  • Long standing issue with multiple responses from NPC's not being separated into dialogue boxes
  • Indefinite reactions from NPC's fixed (could deplete tokens quickly if using commercial provider). Only one reaction is now allowed (technically: no reactions to reactions).
  • Noticed a slow down in browser if npc image not found
  • Replace '\r' in responses. Reported by @sigmareaver
  • Don't evoke 'say' verbs from other players (mud issue). Reported by @sigmareaver

The new feature is 'random narrative events' happening at intervals in a location. These are meant to add some flair to other static places. This type is not meant to drive story, but I plan on adding other events, like npc's spawning, etc. It works so-so as the llm will sometimes mention npcs that are not there. You can use it by setting "random_events": true in the story.

What's Changed

Full Changelog: v0.30.0...v0.31.0

v0.30.0 Day and night cycle

23 Jun 11:51
d7bed5a
Compare
Choose a tag to compare

This version introduces a day and night cycle that can be further expanded through listeners. For example, want something to turn into a werewolf at night? Now you can do that (through coding, of course).
Built in is the LLM describing the transition.

As the sun dips below the horizon, casting long shadows across the room, the once vibrant colors of the living space gradually mute into softer, more subdued tones, signaling the peaceful transition from day to dusk. The warm glow of the afternoon light slowly fades away, replaced by an ethereal twilight that bathes everything in a soft, golden luminosity.

To use this in a story, open story_config.json and add day_night = true
I should also mention one other option that is relevant:
gametime_to_realtime how much faster time in game passes than real time. Defaults to 1.

I also fixed a long in the making feature that shows the images of present NPCs on top of the room image.

Screenshot from 2024-06-23 12-28-40

v0.29.1 Group combat

19 Jun 18:41
8c79743
Compare
Choose a tag to compare

Combat has been rewritten to allow for multiple combatants on either side. If you have any followers, they will aid you in combat, either if you're attacking or defending. Same goes for enemies you might encounter (although they don't group up, yet).

v0.29.0 request_follow command

17 Jun 18:49
19f2b37
Compare
Choose a tag to compare

Two new commands:

request_follow - ask someone to follow you. request_follow who reason(optional)
The LLM will decide whether the npc wants to follow you or not. LLMs being LLMs, I still haven't had anyone say 'no'.

unfollow - when you don't want to be followed anymore. unfollow who

I have some more ideas for group dynamics that might come in the following weeks.

Special thanks to OtterDemon for the support on ko-fi.