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.
Only unlock once you have been told how to cum, as you may need extra equipment for it
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 "plow" 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.
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 ALL THE TIME while you unlock, masturbate and relock,
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.
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. You must upload a video that shows the complete time from unlock to re-lock, 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.
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. 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.
Do this in front of the camera, i want to watch you.
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 AFTER 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.
Do this in front of the camera, i want to watch you.
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 AFTER 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.
--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.
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:
;
;
;
;