User Tools

Site Tools


tasks:controlled_cumming_test
Title:controlled_cumming_test
Sex: Female T Male T Trans T
Require:
Limits:
use:chastity
use:gen
; Task will, for a previously determined number of days, control how and how often per day the slave
; will cum. Task works both for male and female slaves
;
; Variable table -
; TEMP2 == working variable
; TEMP3 == working variable
; TEMP4 == working variable
;
; Persistent variables -
; controlledCummingDays     == number of days that slaves cumming will be controlled
; controlledCummingOrgasm   == number of orgasm the slave still has to do TODAY
; controlledCummingUnlock   == single chastity unlock permission to run controlled cum task
;
;
;
call:initializeChastityClub
; ********** check that slave is allowed to cum ****************************************
loadtemp3:chastityStartTimeP
loadtemp4:controlledCummingUnlock
if:(('TEMP4' == '') || ('TEMP4' == 'undefined'))
  settemp4:0
fi:
if:('TEMP4' == 1)
  assign:unlockForCum:true
  show:Slave you are allowed to temporarily unlock for your controlled cumming. You need to video record or show on images everything, especially  unlocking, cumming and re-locking. During that time you are not allowed to leave the camera focus. <br><br>Only unlock once you have been told how to cum, as you may need extra equipment for it<br><br>In some cases you will be told to call another task, where you do the unlocking
  button:understood
else:
  assign:unlockForCum:false
fi:
;
; ********** nice images **************************************************************
image2:taskimg/masturbation/keep on masturbating.jpg
;
; ********** check if slave has to cum multiple times today ***************************
loadtemp3:controlledCummingOrgasm
if:(('TEMP3' != '') && ('TEMP3' != 'undefined') && ('TEMP3' > 0))
  show:Welcome back to the next one of your 3 orgasm today
  button:Happy to be here
  settemp3:TEMP3 - 1
  savetemp3:controlledCummingOrgasm
  settemp4:'You have to produce your next orgasm now. You have to cum on a piece of paper with the new control number on it'
  settemp5:'Now show the piece of paper with your cum on it in the camera. The paper also needs to show the new control number. Show it next to your happy cock'
  call:documentCumming
  if:(TEMP3 == 1)
    show:Slave, you have one more cum left for today. Do you want to cum, or should i allow you to make a difficult choice instead
    choice:cum, difficult choice
    if:(LASTASK == 2)
      show:Ok, you will have to run the difficult_choices task. Watch out for it in your to-do list
      button:ok
      assign:taskName:'Difficult_choices'
      assign:taskDelay:0
      assign:taskGrace:18
      call:scheduleToDoTask
      settemp3:0
      savetemp3:controlledCummingOrgasm
      log:slave had to orgasm three times during one day. Her or she has however chosen to run the dificult choices task instead of the third cum.
      goto:reScheduleAndExitTask
    fi:
  fi:
  if:(TEMP3 > 0)
    show:I will assign you another cumming to-do task. Make sure that you complete this task within the next 12 hours
    button:ok
    assign:taskName:'controlled_cumming'
    assign:taskDelay:1
    assign:taskGrace:12
    call:scheduleToDoTask
    log:Scheduling another cum-task for today
  else:
    goto:reScheduleAndExitTask
  fi:
  goto:exitTask
fi:
;
; ********** inform slave ***************************************************************************
show:Slave, you are really lucky that you are allowed to cum. I will however determine HOW you can cum
button:Yes DTITLE
show:Also, this is not for your fun. You are required to cum, you have to do it like I tell you, and then you must show me proof of it. If you dont or cant cum you will be punished.
button:I will cum DTITLE
show:Let me think about how you should cum
wait:3
show:It should be a bit humiliating
wait:3
show:And maybe a bit difficult as would enjoy punishing you if you fail.
wait:3
;
; ********** assign way of cumming ******************************************************************
assign:cummingDone:false
settemp5:''
while:(!cummingDone)
  settemp3: (Math.floor(Math.random() * 190)+ 1)
  settemp3: 185
  ; ---- insert specific slave task choices here. This is meant to be temporary e.g. for a specific punishment or testing
  loadtemp2:controlledCummingDays
  ;if:(('SNAME' == 'Swen') && ('TEMP2' != '') && ('TEMP2' != 'undefined') && ('TEMP2' == '4'))
  ;    log:Forcing pin wheel cumming task
  ;    settemp3: 175
  ;fi:
  if:('SNAME' == 'Swen')
    log:Forcing aimed cumming task
    settemp3: 185
  fi:
  if:(('SNAME' == 'Thomas3') && ('TEMP2' != '') && ('TEMP2' != 'undefined') && ('TEMP2' == '1'))
    log:Forcing timed cumming task
    settemp3: 125
  fi:
  ; ----- end of slave specific functions
  if:((TEMP3 < 0) && ('$chastityClubLevel' != 'platinum') && !unlockForCum)
    settemp4:'You have to cum three times today. I want you to cum now for the first time, and then i will re-schedule this task for later today. After you have cum the second time, i will offer you an alternative to cumming the third time. You have to cum on a piece of paper (with the control number written on it) each time'
    settemp5:'Now show the piece of paper with your cum on it in the camera. The paper also needs to show the control number. Show it next to your happy cock'
    log:Slave needs to cum 3 times today
    call:documentCumming
    assign:cummingDone:true
    assign:taskName:'controlled_cumming'
    assign:taskDelay:1
    assign:taskGrace:18
    call:scheduleToDoTask
    settemp3:2
    savetemp3:controlledCummingOrgasm
    goto:exitTask
  fi:
  if:((TEMP3 >= 35) && (TEMP3 < 40) && HAS_PENIS)
    settemp4:'You have to fuck a toy like a blowup doll. If you dont have one, you must hump a pillow until you cum'
    settemp5:'Now show your fuck toy. I want to see your cum in it'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 40) && (TEMP3 < 50) && !HAS_PENIS)
    settemp4:'You have to masturbate to an orgasm using a dildo that you insert. You have to cum on a piece of paper (with the control number written on it) each time'
    settemp5:'Now show the piece of paper with your cum on it in the camera. The paper also needs to show the control number. Show it next to your happy cock'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 40) && (TEMP3 < 50) && HAS_PENIS)
    settemp4:'You have to produce a ruined orgasm. I dont want to see spurting, only dribbling. At the end, you have to present a note with your cum on it. Write FOR-MISTRESS-NATASHA on the note'
    settemp5:'Now show the note of paper with your cum on it in the camera. Show it next to your happy cock'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 50) && (TEMP3 < 60) && !HAS_PENIS)
    settemp4:'You have to masturbate to an orgasm using a vibrator on your clit.'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 60) && (TEMP3 < 70) && HAS_PENIS && (L_CUM > 2))
    image:taskimg/masturbation/yoga plow.jpg
    image2:
    show:Before I inform you how to masturbate, tell if if you are able to assume a yoga plow position (lying on back, legs raised and down over your head)
    choice:Can plow, Not able to
    call:showMasturbationImage
    if:(LASTASK == 1)
      settemp4:'You have to masturbate lying on your back, with your legs raised and down over your head (yoga &quot;plow&quot; position) so the tip of your cock is as close to your face as possible. You must come all over your face (you may wear a mask if needed)'
      settemp5:'Now show your face with your cum on it in the camera.'
      call:documentCumming
      assign:cummingDone:true
    fi:
  fi:
  if:((TEMP3 >= 70) && (TEMP3 < 80) && (L_WATERSPORT > 2))
    settemp4:'You have to masturbate with pee in your mouth. When you are told to start masturbating (not earlier), fill a glas with your pee, drink a mouthful from it, and keep it in your mouth until you have cum. You may only swallow AFTER you have provided the final picture. After you have cum, I expect you to show your mouth with pee in it to the camera'
    settemp5:'First show your open mouth with pee in it to the camera. I want to see the pee! Then swallow and show again your now empty mouth'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 80) && (TEMP3 < 90) && (L_ANAL > 2) && T_BUTTPLUG)
    settemp4:'You have to masturbate while riding a dildo. Go fetch it. You can masturbate using your hand. When you are told to start masturbating  you have to ride the dildo once in-and-out for every 5 strokes with your hand. Keep counting, I will be watching. Oh, and if you wear a but plug, you can take it out for this'
    show:TEMP3
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 90) && (TEMP3 < 100) && HAS_PENIS && (L_WATERSPORT > 2))
    show:You will get the opportunity mix a nice cocktail of your cum and your pee. I will schedule a task you need to run within the next 24 hours
    log:Slave has to run cocktail_bar task
    assign:taskName:'Cocktail_Bar'
    assign:taskDelay:0
    assign:taskGrace:24
    call:scheduleToDoTask
    assign:cummingDone:true
    peerreview:false
    button:Thank you DTITLE
  fi:
  if:((TEMP3 >= 100) && (TEMP3 < 110) && HAS_PENIS)
    show:You will get the opportunity to simply cum. But you have to do it VERY fast, otherwise i will punish you. I will schedule a task you need to run within the next 24 hours
    log:Slave has to run Fast_Cum_or_Punishment task
    assign:taskName:'Fast_Cum_or_Punishment'
    assign:taskDelay:0
    assign:taskGrace:24
    call:scheduleToDoTask
    assign:cummingDone:true
    peerreview:false
    button:Thank you DTITLE
  fi:
  if:((TEMP3 >= 120) && (TEMP3 < 130) && HAS_PENIS)
    show:You will get the masturbate with a toy for a pleasurable long time. Only thing is that you have to cum exactly when I tell you. I will schedule a task you need to run within the next 24 hours
    log:Slave has to run timed_cumming task
    assign:taskName:'timed_cumming'
    assign:taskDelay:0
    assign:taskGrace:24
    call:scheduleToDoTask
    assign:cummingDone:true
    peerreview:false
    button:Thank you DTITLE
  fi:
  if:((TEMP3 >= 130) && (TEMP3 < 140) && HAS_PENIS)
    show:You will get the opportunity to cum but i will distract you with a bit of typing different texts. If you mistype too often i will lock you up in chastity as a punishment (or deny you if you cant lock up). I will schedule a task you need to run within the next 24 hours
    log:Slave has to run chastity_cum_while_typing task
    assign:taskName:'chastity_cum_while_typing'
    assign:taskDelay:0
    assign:taskGrace:24
    call:scheduleToDoTask
    assign:cummingDone:true
    peerreview:false
    button:Thank you DTITLE
  fi:
  if:((TEMP3 >= 140) && (TEMP3 < 150) && HAS_PENIS)
    settemp4:'You have to masturbate using ONLY 2 fingers, one from each hand. I expect a good show, and dont dare to use more fingers, hands, objects. Rubbing againsty anything is also forbidden, only your 2 fingers are allowed to touch your cock.'
    settemp5:'Now show me the cum you have produced'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 150) && (TEMP3 < 160) && HAS_PENIS)
    settemp4:'Tie your hands behind your back (or if you dont have anything to tie them, hold them behind your back the entire time). The hump some object like a chair, bedsheet, pillow until you cum'
    settemp5:'Now show me the cum you have produced.'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 160) && (TEMP3 < 170))
    settemp4:'You have to continuously suck a dildo while you are masturbating.'
    settemp5:'Now show me the cum you have produced'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 170) && (TEMP3 < 180) && HAS_PENIS)
    settemp4:'You have to masturbate rolling a pin wheel or similar object on your cock. You are not allowed to touch your cock with hands or anything else but the pin (you can use any round and broad object like chop stick, pen, etc).'
    settemp5:'Now show me the cum you have produced'
    call:documentCumming
    assign:cummingDone:true
  fi:
  if:((TEMP3 >= 180) && (TEMP3 < 190) && HAS_PENIS)
    show:You will get the masturbate while training your aiming skills a bit. I will schedule a task you need to run within the next 24 hours
    log:Slave has to run aimed_cumming task
    assign:taskName:'aimed_cumming'
    assign:taskDelay:0
    assign:taskGrace:24
    call:scheduleToDoTask
    assign:cummingDone:true
    peerreview:false
    button:Thank you DTITLE
  fi:
endwhile:
;
; ********** check if task needs to be re-scheduled ***************************
label:reScheduleAndExitTask
loadtemp3:controlledCummingDays
if:(('TEMP3' != '') && ('TEMP3' != 'undefined') && ('TEMP3' != 0))
  settemp3:TEMP3 - 1
  savetemp3:controlledCummingDays
  log:Slave has TEMP3 remaining days of controlled cumming
else:
  settemp3:0
fi:
if:((TEMP3 > 0) && !unlockForCum)
  ; Slaves who have been allowed a single chastity unlock will not get this task re-scheduled. Happens via chastity_end
  assign:taskName:'controlled_cumming'
  assign:taskDelay:12
  assign:taskGrace:48
  call:scheduleToDoTask
fi:
;
; ********** finalize task  **************************************************************************
show:Great, you are done for now
button:thank you DTITLE
label:exitTask
show:Wait 3 minutes for all data and videos to be correctly uploaded
wait:180
; update to-do list with task run and validate if there are overdue tasks
assign:taskName:'controlled_cumming'
call:validateToDoTasks
call:saveToDoTasks
;
; ------------------ Functions ----------------------------------------------------------------------------
function:documentCumming
  call:showMasturbationImage
  call:chastityAssignControlNumber
  ;********** unlock slave if in chastity and start video for CC members **********
  if:unlockForCum
    show:Slave, you will be allowed to open your chastity device so you can masturbate. <br><br>You will be required to re-lock right after you are done
    button:Understood DTITLE
    show:Good, you will be required to stay in front of the camera <b>ALL THE TIME</b> while you unlock, masturbate and relock,<br><br>That means that everything you require to unlock and relock needs to be in reach. Go now and get the key, or a cutter and a new tag if you use one, before you continue.<br><br>Once unlocked, if I catch you not being in front of the camera, you will be severly punished
    button:I have everything I need
    show:In order to prove that you are still properly locked up, I want you to provide me one or more pictures, that you are still wearing it, and that you have not tampered with the lock
    button:Yes DTITLE
    call:chastityLoadLockInfo
    if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
      call:chastityClubRequestVideo
      show:By the way, the video you are about to create will be quite lengthy. If you can't upload it to JIC directly, chose a file sharing service instead. <b>You must upload a video that shows the complete time from unlock to re-lock</b>, is that understood slave
      button:I will upload a complete video
      call:chastityValidateClubMember
    else:
      call:chastityValidateAllLockTypes
    fi:
    if:($lockType == 3)
      show:The number you need to unlock your device should be $combNum
      button:ok
    fi:
  else:
    if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
      show:As you are a member of the chastity club, you are required to record a video when you masturbate, even if you are currently not locked.<br><br>By the way, the video you are about to create will be quite lengthy. If you can't upload it to JIC directly, chose a file sharing service instead. <b>You must upload a video that shows the complete activity, is that understood slave
      button:I will upload a complete video
      show:Excellent. Start the video recording NOW
      button:started
    fi:
  fi:
  call:addExtraToys
  if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
    show:TEMP4.<br><br>Do this in front of the camera, i want to watch you.<br><br>Press GO once you are ready to start masturbating
    log:Slave has been told the following. TEMP4
    button:GO
    show:Masturbate until you have cum. Press CONTINUE only <b>AFTER</b> you have cum
    button:CONTINUE
    if:('TEMP5' != '')
      show:TEMP5
      log:Slave has been told the following. TEMP5
      button:Done
    fi:
  else:
    show:I will take a picture of the control number next to your genitals. Position so that i can see both in the camera
    button:Picture in 5 seconds
    call:photoCountDown5
    cam:
    log:Slave show show genitals and control number $controlNumber
    show:TEMP4.<br><br>Do this in front of the camera, i want to watch you.<br><br>Press GO once you are ready to start masturbating
    log:Slave has been told the following. TEMP4
    button:GO
    show:Masturbate until you have cum. Press CONTINUE only <b>AFTER</b> you have cum (there can be a few seconds delay after you pressed the button, just wait)
    assign:takeVideosUntilContinueInterval:50
    call:genTakeVideosUntilContinue
    log:Videos should show slave masturbating
    if:('TEMP5' != '')
      show:TEMP5
      log:Slave has been told the following. TEMP5
      button:Start video (15 seconds)
      vidrec:0
      wait:15
      vidstop:0
    fi:
  fi:
  show:Slave, have you cum
  choice:Yes I have cum, No I was not able to cum
  if:(LASTASK == 1)
    if:(HAS_PENIS)
      show:Good for you. Have you shown your cum in one of the previous pictures or in the video?
      choice:Yes have shown, No not shown
      if:(LASTASK == 2)
        if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
          show:Silly you. Now show your cum in the video as a proof that you have been successful
          button:Showed
        else:
          show:take a picture of your cum then
          call:genTakePictureUntilSatisfied
        fi:
      fi:
    fi:
    log:Slave claims to have cum. PLEASE CHECK THAT HE ACTUALLY HAS (you need to see some cum if slave is male). If he does not show cum, rate this task as failed and enter a remark that the slave seems to be cheating.
    show:I am sure you enjoyed it, at least a bit. Even if it can't have been that much fun to cum the way you had to
    button:I did enjoy it DTITLE
    call:perhapsEatCum
  else:
    log:Slave admits to not have cum
    if: (L_CHASTITY > 2)
      log:Chastity punishment will be assigned
      if:(HAS_PENIS)
        image:taskimg/tasks/chastity/bdsmlr-16995-AvPeqoiAF9-og (Mittel).jpeg
      else:
        image2:taskimg/tasks/chastity/punished_female.jpg
      fi:
      show:You deserve a punishment slave. I will lock you into chastity
      button:Yes, DTITLE
      if:HARDCORE
        assign:chastityPunishmentFactor:5
      else:
        assign:chastityPunishmentFactor:3
      fi:
      call:chastityPunishment
    else:
      log:Slave admits to have not cum and will be assigned a punishment task
      assign:report:'The slave did not cum as commanded.<br>--DTITLE'
      call:global_fileAReport
    fi:
  fi:
  ;******** re-lock into chastity if slave was unlocked for controlled cum **********
  if:unlockForCum
    call:chastityImage2
    show:You may now lock yourself up again.<br><br>Only click on CONTINUE once you are securely locked up again
    if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
      button:Continue
    else:
      assign:takePictureUntilContinueInterval:15
      call:genTakePictureUntilContinue
      wait:1
      cam:
      log:Picture should show slave locked up again
    fi:
    call:chastityAskLockInfo
    call:chastityImage2
    if:!(($lChastityClub) && ('$chastityClubMember' == 'active'))
      call:chastityValidateAllLockTypes
    fi:
  fi:
  if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
    call:chastityClubSaveVideo
    if:('$chastityClubLevel' == 'platinum')
      show:Since you have chastity status platinum, i will add 5 days of lockup each time you have cum (or tried to). You have to lock up again immediately after this task has finished
      button:I know
      addchastity:120
    fi:
  fi:
end:
; ---------------------------------------------------------------------------------------------------------
function:perhapsEatCum
  if:(HAS_PENIS && (L_CUM > 2) && ((Math.random() * 10) > 4))
    if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
      show:If you haven't done it yet, I want you to eat your cum. Press continue when done
      button:Continue
      log: video should show slave eating ALL of his cum
    else:
      show:If you haven't done it yet, I want you to eat your cum. After you press continue, you have 15 seconds to slurp it all up and show me your empty mouth. As always, I will watch you, so better get it all in
      button:Start video (15 seconds)
      vidrec:0
      wait:15
      vidstop:0
      log:Last video should show slave eating ALL of his cum
    fi:
  fi:
  if:(!HAS_PENIS && ((Math.random() * 10) > 4))
    show:Since you had so much fun masturbating, i want you to lick your juice completely off your toy or fingers. Once you have done this, dip your fingers into your cunt to bring out a second portion that you also lick off. As always, I will watch you, so better get it all in. After you press continue, you have 15 seconds to get this done
    button:Start video (15 seconds)
    vidrec:0
    wait:15
    vidstop:0
    log:Last video should show slave licking her juice from fingers or toy
  fi:
end:
; ---------------------------------------------------------------------------------------------------------
function:addExtraToys
  if:((L_ANAL > 2) && ((Math.random() * 10) > 4) && T_BUTTPLUG)
    log:Slave has been instructed to wear a butt plug. Video or images need to show this
    if:(($lChastityClub) && ('$chastityClubMember' == 'active'))
      show:As a little extra entertainment, put in your largest butt plug. You will wear it until the task has been completed. Show on the video how you insert it, and press continue when done
      button:Continue
    else:
      show:As a little extra entertainment, put in your largest butt plug. You will wear it until the task has been completed
      choice:Wearing plug, Cant wear plug
      if:(LASTASK == 1)
        show:Turn around and show me that your are plugged
        button:Picture in 5 seconds
        call:photoCountDown5
        cam:
        log:Slave should wear a buttplug.
      else:
        show:You should explain in task remarks why you are not wearing a plug
        button:ok
        log:Slave refused to wear a butt plug in spite of his limits. He should explain why.
      fi:
    fi:
  fi:
end:
;
; ---------------------------------------------------------------------------------------------------------
function:genTakeVideosUntilContinue
  ;** Take random timed videos until slave is clicking on CONTINUE.
  ;** Modifies TEMP1 and LASTASK variables
  ;** Expected arguments: takeVideosUntilContinueInterval. Returned values: none
  ;** Use this when you need to observe the slave as to what he or she is doing, while waiting for some event
  label:takeVideosUntilContinueStartpoint
  settemp1:Math.floor((Math.random() * $takeVideosUntilContinueInterval) + 10)
  wbutton:TEMP1:Continue
  vidrec:0
  wait:5
  vidstop:0
  if:(LASTASK == 1)
    goto:takeVideosUntilContinueStartpoint
  fi:
end:
;
function:showMasturbationImage
  if:HAS_PENIS
    image:taskimg/masturbation/Masturbation performance.gif
  else:
    image2:taskimg/masturbation/masturbating_female.gif
  fi:
end:
;
;
;
;
tasks/controlled_cumming_test.txt · Last modified: 2025/02/11 22:51 (external edit)