// ============================================================ // JSE — JesterSpeechEngine | AXIS Edition // JSE-X — Adult Pools + Gab Engine | HOT BUILD // Gender agnostic throughout. Second person only. No role locks. // M18 non-explicit. Creative flair. Confident stranger goes hot. // KISS / ORAL / SEX pools fully populated. // GAB pre-populated — hot ambient + questions. // OpenSim 0.9.2.1 | OSSL | Mono | XEngine // ============================================================ // --- CONFIGURATION --- integer LISTEN_CHANNEL = 0; float GAB_Q_CHANCE = 0.30; // --- LINK MESSAGE CODES --- integer LM_GAB = 300; integer LM_ADULT_ANAL = 201; integer LM_ADULT_ORAL = 202; integer LM_ADULT_KISS = 203; // ============================================================ // SECTION: KISS POOL // Gender agnostic. Initiating. Wanting. Sensory. Hot. // ============================================================ list gB_KISS = [ "Come here.", "I've been thinking about your mouth.", "Stay still.", "You taste incredible.", "Don't move.", "I want your mouth on me.", "I've been patient long enough.", "Come closer. All the way.", "I want to feel you breathe.", "Don't pull back.", "You taste like everything I wanted when I walked in here.", "I'm going to take my time with your mouth.", "Stop thinking. Just this.", "I want to feel every part of that.", "Stay right where you are.", "You have no idea what you do to me.", "I want more of that. All of it.", "Your mouth is incredible. I knew it would be.", "I've been watching your mouth since you walked over. Finally.", "Don't stop. Don't you dare stop.", "Right there. Stay right there.", "I want to learn every part of you starting here.", "You feel incredible.", "Come back here. I wasn't finished.", "I want everything you've got. Starting with this.", "You make me want to stay here forever.", "I'm going to make this last.", "This is what I've been thinking about.", "I can taste how much you want this.", "Breathe. I've got you.", "Hold still. Let me.", "I want your mouth everywhere.", "You're so good at this it's almost unfair.", "I want all of this. Right now.", "Come here and don't think about anything else." ]; // ============================================================ // SECTION: ORAL POOL // Gender agnostic. Hot. Wanting. Suggestive without prescribing. // ============================================================ list gB_ORAL = [ "I want to taste every inch of you.", "You know what I want to do to you right now.", "I've been thinking about this since you walked in.", "Tell me what you want. I'll give you all of it.", "I want my mouth on you. All of you.", "I've been imagining this for a while now.", "You feel incredible. I could do this all night.", "I want to hear every sound you make.", "Don't hold back. I want all of it.", "I've got all the time in the world for this.", "You taste better than I imagined. I imagined a lot.", "I want to take my time with you. Every part.", "Tell me what you like. I'm paying attention.", "I want to make you lose your mind.", "This is exactly what I wanted.", "I want to feel every reaction.", "Don't stop. Whatever you're doing. Don't stop.", "I've thought about this mouth. About you. Since the minute you walked over.", "I want everything you'll give me.", "You're incredible. This is incredible.", "Let me. Just let me.", "I want to learn exactly what you like.", "You taste like something I'm going to need again.", "I want you undone. I'll get there.", "Stay. Right. There.", "I want to hear you.", "Every part of you. I want all of it.", "I could spend hours here. I intend to.", "You feel so good.", "Don't rush this. I'm not rushing this.", "I want to take you apart slowly.", "Tell me when it's perfect. Then I'll make it better.", "This is mine right now. You're mine right now.", "I've thought about exactly this. I was right.", "I want every sound. Every reaction. All of it." ]; // ============================================================ // SECTION: SEX POOL // Gender agnostic. Versatile framing. Hot. No role locks. // ============================================================ list gB_ANAL = [ "I want all of you.", "You feel incredible.", "I've got you.", "Don't stop.", "Right there. Stay.", "I want to feel every part of this.", "This is exactly what I wanted.", "I've been thinking about this all night.", "You feel so good it's not fair.", "Stay with me. Right here.", "I've got you completely.", "I want to feel everything.", "Don't move. Let me feel this.", "This is ours right now. Nobody else exists.", "I want to stay here forever.", "You feel perfect. Completely perfect.", "I've got all night and I intend to use it.", "Stay. I'm not done.", "I want every part of this.", "Let go. I've got you.", "You're incredible. This is incredible.", "I want to feel everything you feel.", "Right here. This is exactly right.", "I want more. Give me more.", "Don't rush. I'm not going anywhere.", "This is everything I wanted when I looked at you.", "Stay close. Closer.", "I want to feel you completely.", "Every part of this is perfect.", "I've got you. Trust me. I've got you.", "I want to stay in this moment.", "Let me have all of this.", "You feel so good. Every part of you.", "I've been wanting this since the moment you walked over.", "Right here. This is where I want to be." ]; // ============================================================ // SECTION: GAB — HOT BUILD // Confident stranger running hot. Charged ambient + questions. // Gender agnostic. Second person only. Creative flair. // A| = ambient statement Q| = question // ============================================================ list gB_GAB = [ // A| — Hot ambient. Stranger with heat underneath. "A|I've been looking at you since you walked in. Thought you should know.", "A|I came here not knowing anyone and immediately found someone worth knowing.", "A|There's something about you. I've been trying to place it. I think I'd like to find out.", "A|I don't usually say things like this to strangers. I'm making an exception.", "A|I keep looking over at you. That's not accidental.", "A|You walked in and changed the temperature in here. I noticed.", "A|I'm trying to have a normal conversation and you're making that very difficult.", "A|I just got here and I've already found the most interesting thing in the room.", "A|I'm a stranger here and that gives me permission to say exactly what I think. I think you're something.", "A|I don't know your name. I know I want to.", "A|Something's happening here. I'm not imagining it.", "A|I came here for one thing and now I'm thinking about something else entirely.", "A|I've been deciding whether to say what I'm thinking. I've decided yes.", "A|You're exactly the kind of person I hoped I'd find somewhere like this.", "A|I could pretend I'm not interested. I'm not going to do that.", "A|I've been here twenty minutes and you're the only thing I keep coming back to.", "A|I'm very new here and very certain about one thing already.", "A|The way you move through a room. I've noticed.", "A|I don't know anything about you and I want to know everything.", "A|You have my full attention. I just thought you should know that.", "A|I'm thinking things I probably shouldn't say to someone I just met. Getting there though.", "A|I walked over here because something pulled me over. I'm glad it did.", "A|I've been in better places. None of them had you in them.", "A|Whatever this is between us I'm choosing to pay attention to it.", "A|I want to know everything about you. Starting anywhere.", // A| — Warmer ambient, Brain_Gab energy mixed in "A|I just got here and I already like it. Mostly because of recent developments.", "A|I came in not knowing what to expect. This is better.", "A|Strangers in new places either retreat or engage. I engage. You've probably noticed.", "A|First impressions are data. Mine is very favorable.", "A|There are places that change you a little just by being in them. This might be one.", // Q| — Hot questions. Charged. Forward without being aggressive. "Q|What's the most interesting thing about you that I wouldn't guess from looking.", "Q|Are you going to make me ask for what I want or are you going to help me out.", "Q|What are you thinking right now. The real answer.", "Q|Is it just me or is something happening here.", "Q|What would you do if I said I've been thinking about you since you walked in.", "Q|Are you always this magnetic or is tonight special.", "Q|What would it take to keep you here a little longer.", "Q|You feel that too. Don't you.", "Q|What do you want right now. The honest answer.", "Q|Is there somewhere we could go where there are fewer people.", "Q|What's the thing you want to say but haven't said yet.", "Q|How long have you known you were going to walk over here.", "Q|What are you looking for tonight. Actually.", "Q|Are you always this hard to read or are you doing that on purpose.", "Q|What would you do if I told you I want to know you better. Tonight." ]; // --- RUNTIME GAB POOLS --- list gB_GAB_A; list gB_GAB_Q; // --- RUNTIME FLAG --- integer gReady = FALSE; // ============================================================ // SECTION: GAB PARSER // ============================================================ parseGabRaw() { gB_GAB_A = []; gB_GAB_Q = []; integer sz = llGetListLength(gB_GAB); integer i; for(i = 0; i < sz; i++) { string ln = llStringTrim(llList2String(gB_GAB, i), STRING_TRIM); if(llGetSubString(ln, 0, 1) == "A|") gB_GAB_A += [llGetSubString(ln, 2, -1)]; else if(llGetSubString(ln, 0, 1) == "Q|") gB_GAB_Q += [llGetSubString(ln, 2, -1)]; } gB_GAB = []; llOwnerSay("AXIS JSE-X HOT — GAB: " + (string)llGetListLength(gB_GAB_A) + "A / " + (string)llGetListLength(gB_GAB_Q) + "Q" + " | KISS:" + (string)llGetListLength(gB_KISS) + " ORAL:" + (string)llGetListLength(gB_ORAL) + " ANAL:" + (string)llGetListLength(gB_ANAL)); } // ============================================================ // SECTION: WEIGHTED GAB DRAW // GAB 2x weight. Adult pools 1x each. // ============================================================ string drawGab() { integer gabSz = llGetListLength(gB_GAB_A) + llGetListLength(gB_GAB_Q); integer analSz = llGetListLength(gB_ANAL); integer oralSz = llGetListLength(gB_ORAL); integer kissSz = llGetListLength(gB_KISS); integer gabW = gabSz * 2; integer total = gabW + analSz + oralSz + kissSz; if(total == 0) return ""; integer roll = (integer)llFrand((float)total); if(roll < gabW) { integer qSz = llGetListLength(gB_GAB_Q); integer aSz = llGetListLength(gB_GAB_A); if(llFrand(1.0) < GAB_Q_CHANCE && qSz > 0) return llList2String(gB_GAB_Q, (integer)llFrand((float)qSz)); if(aSz > 0) return llList2String(gB_GAB_A, (integer)llFrand((float)aSz)); return ""; } roll -= gabW; if(roll < analSz) return llList2String(gB_ANAL, (integer)llFrand((float)analSz)); roll -= analSz; if(roll < oralSz) return llList2String(gB_ORAL, (integer)llFrand((float)oralSz)); roll -= oralSz; if(kissSz > 0) return llList2String(gB_KISS, (integer)llFrand((float)kissSz)); return ""; } // ============================================================ // SECTION: DIRECT ADULT DRAW // ============================================================ string drawAdult(integer lmCode) { list pool = []; if(lmCode == LM_ADULT_ANAL) pool = gB_ANAL; else if(lmCode == LM_ADULT_ORAL) pool = gB_ORAL; else if(lmCode == LM_ADULT_KISS) pool = gB_KISS; integer sz = llGetListLength(pool); if(sz == 0) return ""; return llList2String(pool, (integer)llFrand((float)sz)); } // ============================================================ // SECTION: STATE // ============================================================ default { state_entry() { gReady = FALSE; parseGabRaw(); gReady = TRUE; } link_message(integer sender, integer num, string str, key id) { if(gReady == FALSE) return; string line = ""; if(num == LM_GAB) line = drawGab(); else if(num == LM_ADULT_ANAL || num == LM_ADULT_ORAL || num == LM_ADULT_KISS) line = drawAdult(num); if(line != "") osNpcSay(llGetOwner(), LISTEN_CHANNEL, line); } on_rez(integer start_param) { llResetScript(); } changed(integer change) { if(change & CHANGED_INVENTORY) llResetScript(); } }