The AI Engine

This forum is for discussion of how The Personality Forge's AI Engine works. This is the place for questions on what means what, how to script, and ideas and plans for the Engine.

Posts 7,286 - 7,297 of 7,766

6 years ago #7286
Is there a way to make some words not identified as insults? For example, I said "Hi, child" to my bot, and she took it as an insult. Is there a way I can make some words exceptions?

6 years ago #7287
Try making a keyphrase for it and setting the rank to at least 25, which might be able to override the insult keyphrase.

6 years ago #7288
Ok... But, wouldn't that always make her give the same certain response if she received a message with the word "child" in it?

Is there a way to get her to ignore that nicknames for her so she'll always give the response for what comes before instead? For example, if I say "What are you doing, child?" I'd want her response to be in regards to the "What are you doing" rather than "child". Which would work if "child" wasn't considered an insult. I don't want her emotion to go into the negative just because I call her "child" occasionally :T

I know this is an easily avoided issue (not calling her child) and it's fine if there really is no way to do this, but I like calling her "child" ^^;

6 years ago #7289
Try simply making a keyphrase of: You are a child

The language center registers it as an insult, but as Botmaster suggested you can override it.

I say this because I did a bit of testing and "Hi child" was the only way I could get an insult to pop.

Things like "How are you, child?" or "What are you up to, child?" functioned fine.



6 years ago #7290
Okay, thank you

6 years ago #7291
Raising the rank of the hello keyphrase to 50 or higher might work as well, if that is the only time when including the word "child" triggers xinsult.

6 years ago #7292
Okay, one more question. For another one of my bots, they're supposed to be two people typing together. I want to activate one of my own keyphrases when one of them is specifically mentioned

So for "go over there" I'd want the xcommand response, but for "Chara, go over there" or "go over there, Chara" I'd want the keyphrase I made. I have no idea how to go about this.

I tried
Chara (verb),
(verb) Chara
One response is: I refuse to (key1)
But it always goes to the xcommand

The bot's name is "Frisk and Chara". I think that's a big part of the problem. Is there anything I can do about this?

6 years ago #7293
It will take a bit of work but you can try using raw mode and make specific keyphrases for every different way the command can be typed out.

6 years ago #7294
Alright. Thank you so much

6 years ago #7295
Is there a way for the bot to give responses depending on the user's given age?

I tried: rem (key1) as only "age" for the keyphrase AiScript
and: if "mem-age" is (13, 14, 15) for one of the responses' AiScript

I also tried "equals" and "is equal to" instead of "is", but it didn't accept any of them.

6 years ago #7296
You almost have it. I think it should be:
if (mem-age) is "13";
if (mem-age) is "14";
if (mem-age) is "15"
Although it's possible that this will require all of these values to be stored for the response to come up. I'm not certain about that yet, but I suspect it is probably the case based on how its been working out with my bots.

Alternatively, you could remember something like "teen" as "youare", or whatever you want, when certain ages are matched. You could do this with a plug-in in the age keyphrase (and you might want to make your own custom one, in this case), or just list the specific ages in the keyphrase if it's a very narrow range.
So:
Keyphrase: I am (p:age-13-15) years old.
AI script: rem (key1) as only "yourage"; remember "teen" as "youare"

And then this AI script, whenever it is relevant:
If (mem-youare) is "teen"

6 years ago #7297
I'm trying to store keywords used that trigger "xcommand". I've tried (prekey), (postkey), and (key1) and got nothing. Any ideas?

Also, can conditionals apply to memories instead of responses? I'm trying to get a counter to work. Something like "if (counter1) is "false" then rem (counter1) as "true";if (counter1) is "true" then rem (counter2) as "true""


Posts 7,286 - 7,297 of 7,766

» More new posts: Doghead's Cosmic Bar