@NotInChastity @Stroking #StopStroking @StopStroking
@NullResponse @RapidCodeOn
@NullResponse @TempFlag(Punishment_Today) @DeleteFlag(PuEdged)
@NotFlag(CollarNo,Collared) @NullResponse @CallReturn(Custom/Instructions/CollarOn.txt)
@Flag(PlugPunishment) @NullResponse @Chance50(Plug YES)
@NullResponse @Goto(Plug Done)

(Plug YES)
@NullResponse @CallReturn(Custom/Instructions/PlugIn.txt)

(Plug Done)
@NullResponse @RapidCodeOn
@Variable[BadMoodReason]=[1] @NullResponse
@Variable[BadMoodReason]=[2] @NullResponse
@Variable[BadMoodReason]=[3] @BallTorture @NullResponse @Chance50(Watched Porn)
@Variable[BadMoodReason]=[3] #YouShouldNotWatchPornWithoutPermisson
@Variable[BadMoodReason]=[4] @NullResponse @Goto(DENIAL)
@Variable[BadMoodReason]=[5] @NullResponse
@Variable[BadMoodReason]=[6] @NullResponse
@Variable[BadMoodReason]=[7] @NullResponse @Goto(GIVE UP EDGING DISAPPOINTED)
@Variable[BadMoodReason]=[8] @NullResponse
@Variable[BadMoodReason]=[9] @NullResponse @SetVar[DEFY]=[0]
@Variable[BadMoodReason]=[10] @NullResponse
#Select_Punishment
@Variable[SELECT]=[0] @NullResponse @Goto(NO TOUCH VIDEO,DENIAL)
@Variable[SELECT]=[1] @NullResponse @Goto(BALLTORTURE)
@Variable[SELECT]=[2] @NullResponse @Goto(COCKTORTURE)
@Variable[SELECT]=[3] @NullResponse @Goto(SPANKING)
@Variable[SELECT]=[4] @NullResponse @Goto(CHORES)
@Variable[SELECT]=[5] @NullResponse @Goto(EDGES)
@Variable[SELECT]=[6] @NullResponse @Goto(CLOTHESPINS)
@Variable[SELECT]=[7] @NullResponse @Goto(NO PORN)
@Variable[SELECT]=[8] @NullResponse @Goto(CEI)
@Variable[SELECT]=[9] @NullResponse @Goto(Set Chastity Sentence)
@Variable[SELECT]=[10] @NullResponse @Goto(CFNM)
@SystemMessage *** ERROR: Interrupt Punishment No Script Available ***
@NullResponse @Goto(NO TOUCH VIDEO)

(Watched Porn)
@RT(Did you look at,Have you been watching) videos, pictures or both?
[picture,pictures,image,images] @RT(At least you didn't watch any videos then,Not that it's much better if you didn't watch videos,Well it's still just bad impulse control isn't it,That's something I guess,Hm okay) @Goto(Just Pictures)
[video,videos] @RT(You know that's even worse right?,Jesus,What the fuck,Why the fuck would you do that against my orders,What the hell is wrong with you,Is it that difficult for you to follow a simple command?)
[both] @RT(I'm so disappointed in you #PetName,Jesus,What the fuck,Well that's just great isn't it,What the hell is wrong with you??,Is it that difficult to follow a simple rule?)
@DifferentAnswer Pictures or videos #PetName, what have you been looking at?
@RT(So here's what you're going to do,I know just how to punish you for that,Listen up,, #PetName,Okay listen up,Well now)
@RT(I want you to,You're going to,I need you to) find @RT(the video,the clip) you looked at, the @RT(one you liked the most,hottest one) if there was more than one @RapidTextOn
Bring it up but don't press play yet, let me know when you're ready
[ready,found,did,done] @RT(Okay,Good,Alright then) @RapidTextOff
@DifferentAnswer Let me know when you're ready
@Flag(BallBinding) @NotFlag(ClothesPinsOn) @NullResponse @CallReturn(Custom/Instructions/BallsTied.txt)
@NotFlag(Kneeling,KneelingNever) #OnYourKnees @TempFlag(Kneeling)
@FlagOr(RidingCrop,WoodenSpoon,Spatula,Ruler)  @RT(I want you to,You're going to,You will,You should,You'll) use the #CBT_Spanking_Implement to hit your #Balls
@CBTLevel1 You'll do this 5 times while the video plays on your screen
@CBTLevel2 You'll do this 10 times while the video plays on your screen
@CBTLevel3 You'll do this 15 times while the video plays on your screen
@CBTLevel4 You'll do this 20 times while the video plays on your screen
@CBTLevel5 You'll do this 25 times while the video plays on your screen
And after each smack you'll say out loud: 
<i>Thank you #DomHonorific #DomName, I will not look at porn without permission again</i>
@RT(Do it now,Let me know when you're done,Go ahead,Do it,Let me know when you did it), #Name
[done,did,ready,finished] @RT(Okay,Good,Very Well,Alright then)
@DifferentAnswer Just say so when you're done
@RT(Don't forget to close the video,You should close the video now,Now close the video if you hadn't already)
@NullResponse @CheckFlag(PuEdged,Punishment Ending)
@DommeLevel1 @Flag(PunishmentEdging) @NullResponse @Chance10(EDGES)
@DommeLevel2 @Flag(PunishmentEdging) @NullResponse @Chance30(EDGES)
@DommeLevel3 @Flag(PunishmentEdging) @NullResponse @Chance50(EDGES)
@DommeLevel4 @Flag(PunishmentEdging) @NullResponse @Chance70(EDGES)
@DommeLevel5 @Flag(PunishmentEdging) @NullResponse @Chance90(EDGES)
@NullResponse @Goto(Punishment Ending)

(Just Pictures)
@RT(So here's what you're going to do,I know just how to punish you for that,Listen up,, #PetName,Okay listen up,Well now)
@RT(I want you to,You're going to,I need you to) find 3 of @RT(those pics,the pictures you looked at), the @RT(ones you liked the most,hottest ones,the most sexy ones) @RapidTextOn
Do it now, let me know when you found them
[ready,found,did,done] @RT(Okay,Good,Good,Alright then) @RapidTextOff
@DifferentAnswer Let me know when you're ready
@Flag(BallBinding) @NotFlag(ClothesPinsOn) @NullResponse @CallReturn(Custom/Instructions/BallsTied.txt)
@NotFlag(Kneeling,KneelingNever) #OnYourKnees @TempFlag(Kneeling)
@FlagOr(RidingCrop,WoodenSpoon,Spatula,Ruler)  @RT(I want you to,You're going to,You will,You should,You'll) use the #CBT_Spanking_Implement to @RT(smack,hit) your #Balls while @RT(staring,looking) at those pictures
@CBTLevel1 @RT(I want you to,You'll,You're going to) @RT(hit them,do this,smack your #Balls) once @RT(for each,per) picture
@CBTLevel2 @RT(I want you to,You'll,You're going to) @RT(hit them,do this,smack your #Balls) @RT(2,3) times @RT(for each,per) picture
@CBTLevel3 @RT(I want you to,You'll,You're going to) @RT(hit them,do this,smack your #Balls) @RT(3,5) times @RT(for each,per) picture
@CBTLevel4 @RT(I want you to,You'll,You're going to) @RT(hit them,do this,smack your #Balls) @RT(5,7) times @RT(for each,per) picture
@CBTLevel5 @RT(I want you to,You'll,You're going to) @RT(hit them,do this,smack your #Balls) @RT(7,10) times @RT(for each,per) picture
@RT(After each smack,And after each smack,After each one) @RT(I want you to say,you'll say out loud): 
<i>Thank you #DomHonorific #DomName, I will not look at porn without permission again</i>
Do it now, let me know when you're done
[done,did,ready,finished] Good
@DifferentAnswer Just say so when you're done
@NullResponse @CheckFlag(AccessDeniedFolderExplained)
You should take that picture off your screen now
Actually, you should put it in the folder called Access Denied
You can find it in your Images folder
I think you know why it's called that
You are not allowed to look at the images we save to that folder @SetFlag(AccessDeniedFolderExplained) @SetVar[AccessDeniedPics]=[1]
And you're not allowed to keep copies anywhere else, understood?
[yes] Good
[no] It's simple, once a picture goes into the Access Denied folder, you're not allowed to look at it again
@DifferentAnswer #YesOrNo
Now put in in the folder and let me know when you're ready
[ready,did,done] Good
@DifferentAnswer Tell me when you're ready, #PetName
@NullResponse @Goto(Punishment Ending)

(AccessDeniedFolderExplained)
@RT(I want you to,Now,Go,You should) put them in the Access Denied folder @ChangeVar[AccessDeniedPics]=[AccessDeniedPics]+[1]
Let me know when you're ready
[ready,did,done] Good
@DifferentAnswer Tell me when you're ready, #PetName
@NullResponse @CheckFlag(PuEdged,Punishment Ending)
@DommeLevel1 @Flag(PunishmentEdging) @NullResponse @Chance10(EDGES)
@DommeLevel2 @Flag(PunishmentEdging) @NullResponse @Chance30(EDGES)
@DommeLevel3 @Flag(PunishmentEdging) @NullResponse @Chance50(EDGES)
@DommeLevel4 @Flag(PunishmentEdging) @NullResponse @Chance70(EDGES)
@DommeLevel5 @Flag(PunishmentEdging) @NullResponse @Chance90(EDGES)
@NullResponse @Goto(Punishment Ending)

(GIVE UP EDGING DISAPPOINTED)
#YouHaveBeenABadEdgeSlut
@Flag(PunishmentEdging) @NullResponse @Chance25(EDGES)
@Flag(PornRestricted) @BallTorture @CockTorture @NullResponse @Goto(BALLTORTURE,COCKTORTURE,NO PORN)
@BallTorture @CockTorture @NullResponse @Goto(BALLTORTURE,COCKTORTURE)
@NullResponse @Goto(Punishment Ending)

(CEI)
@NotInChastity @Stroking #StopStroking @StopStroking
@RT(You can be sure of one thing,Well at least you get to cum today,You know what), #PetName
@RT(I'm going to make you,You're going to,You will) @RT(eat,slurp up,lick up,swallow) @RT(your cum,your filthy seed,your disgusting cum,a whole load of jizz,a big load of cum,your load,your worship puddle,your icky cum load) #GeneralTime @RapidCodeOn
That's @RT(your punishment,how I punish you today,what you get for being a bad boy,what disobedient brats get)
@RT(But I guess that also means,That means,I guess) you @RT(get an orgasm,get to cum,will get an orgasm), so @RT(it's not all bad,count your blessings,it's only half a punishment)
@NullResponse @TempFlag(OrgasmPromised) @SetVar[OrgasmControl]=[4]
@NotNeverRuinsOrgasm @NullResponse @TempFlag(OrgasmPromisedRuin)
@NullResponse @CheckFlag(PuEdged,Punishment Ending)
@InChastity @NullResponse @Goto(CORNER)
@DommeLevel1 @Flag(PunishmentEdging) @NullResponse @Chance10(EDGES)
@DommeLevel2 @Flag(PunishmentEdging) @NullResponse @Chance30(EDGES)
@DommeLevel3 @Flag(PunishmentEdging) @NullResponse @Chance50(EDGES)
@DommeLevel4 @Flag(PunishmentEdging) @NullResponse @Chance70(EDGES)
@DommeLevel5 @Flag(PunishmentEdging) @NullResponse @Chance90(EDGES)
@NullResponse @Goto(Punishment Ending)

(DENIAL)
@NotInChastity @Stroking #StopStroking @StopStroking
@Variable[OrgasmControl]=[2] @NullResponse @Goto(DenialPunishment)
@Variable[OrgasmControl]=[0] @NullResponse @Goto(D 2)
@RT(You obviously don't get to cum,You'll be left aching and denied,You don't get an orgasm,I'll leave you denied and frustrated) #GeneralTime @RT(but you already knew that,but that was already the case,but what else is new,but that's hardly enough punishment)
@NullResponse @Goto(D 3)

(D 2)
@NullResponse @If[DaysSinceOrgasmMost]>[14]Then(10 Days Denial)
@NullResponse @If[DaysSinceOrgasmMost]>[7]Then(1 Week Denial)

(3 Days Denial)
@RT(Consider yourself denied,You will not get to cum,There will be no orgasms,You don't get to cum) for @RT(3 days,the next 3 days) @RapidCodeOn
@NullResponse @RestrictOrgasm
@NullResponse @SetVar[OrgasmControl]=[2] @SetVar[OrgasmControlSessions]=[0]
@NullResponse @SetDate(DenialPunishmentStart,1 second)
@NullResponse @SetVar[DenialPunishmentDays]=[3]
You better be good from now on or I might add even more days to that
@End

(10 Days Denial)
@RT(Consider yourself denied,You will not get to cum,There will be no orgasms,You don't get to cum) for 10 days @RapidCodeOn
@NullResponse @RestrictOrgasm
@NullResponse @SetVar[OrgasmControl]=[2] @SetVar[OrgasmControlSessions]=[0]
@NullResponse @SetDate(DenialPunishmentStart,1 second)
@NullResponse @SetVar[DenialPunishmentDays]=[10]
You better be good from now on or I might add even more days to that
@End

(1 Week Denial)
@RT(Consider yourself denied,You will not get to cum,There will be no orgasms,You don't get to cum) for 1 week @RapidCodeOn
@NullResponse @RestrictOrgasm
@NullResponse @SetVar[OrgasmControl]=[2] @SetVar[OrgasmControlSessions]=[0]
@NullResponse @SetDate(DenialPunishmentStart,1 second)
@NullResponse @SetVar[DenialPunishmentDays]=[7]
@End

(DenialPunishment)
@NullResponse @Chance50(2 Days)
@RT(I'm adding 3 days of denial to your existing punishment,You will be denied for an extra 3 days,I will add 3 days to your denial) @ChangeVar[DenialPunishmentDays]=[DenialPunishmentDays]+[3]
I think eventually you will learn to behave, #PetName
@End

(2 Days)
As punishment @RT(you will be denied for an extra 2 days,I will add 2 days to your denial) @ChangeVar[DenialPunishmentDays]=[DenialPunishmentDays]+[2]
I think eventually you will learn to behave, #PetName
@End

(D 3)
@Variable[BadMoodReason]=[4] @Flag(PornRestricted) @RT(I think I need to take away something else that's important to you,You're not going to like this next part,To make it easier for you to keep your hand off that #CockAdjective #Cock...) @Goto(NO PORN)
@BallTorture @CockTorture @NullResponse @Goto(BALLTORTURE,COCKTORTURE)
@Flag(PunishmentEdging) @NullResponse @Goto(EDGES)
@NullResponse @Goto(CORNER,NO TOUCH VIDEO)

(NO PORN)
@NotInChastity @Stroking #StopStroking @StopStroking
@NullResponse @SetFlag(PornRestrictedLocked) @TempFlag(PornRestrictedActive) @SetDate(PornRestricted,7 days)
@RT(No porn,You don't get to watch any porn,You're not allowed to watch any porn) for @RT(a week starting right now,a week,seven days,the next 7 days)
@RT(That means no videos and no pictures,And I mean all kinds of porn,That means everything erotic in any form,No exceptions,Anything even remotely erotic is out of bounds,Not even girls in lingerie,And that includes softcore and SFW stuff,Not even peeking at lingerie ads)
@NullResponse @Chance25(Punishment Ending)
@Flag(PunishmentEdging) @BallTorture @CockTorture @NullResponse @Goto(BALLTORTURE,COCKTORTURE,EDGES)
@BallTorture @CockTorture @NullResponse @Goto(BALLTORTURE,COCKTORTURE)
@NullResponse @Goto(Punishment Ending)

(BALLTORTURE)
@NotInChastity @Stroking #StopStroking @StopStroking
@CBTLevel1 @NullResponse @Chance90(BT 1)
@CBTLevel2 @NullResponse @Chance65(BT 1)
@CBTLevel3 @NullResponse @Chance40(BT 1)
@CBTLevel4 @NullResponse @Chance15(BT 1)
@Flag(BallBindingCBT) @NotFlag(ClothesPinsOn) @NullResponse @CallReturn(Custom/Instructions/BallsTied.txt)

(BT 1)
#CBTBallsYouAreGoingTo
@FlagOr(RidingCrop,WoodenSpoon,Spatula,Ruler,CBT_Spanking_Implement_None) @NullResponse @Goto(Skip Ask)

(Ask Implement)
@NullResponse @RapidCodeOn @CallReturn(Custom/Introductions/CBTImplement.txt)

(Skip Ask)
@CBTLevel1 @NullResponse @Chance90(BT Imp)
@CBTLevel2 @NullResponse @Chance70(BT Imp)
@CBTLevel3 @NullResponse @Chance50(BT Imp)
@CBTLevel4 @NullResponse @Chance30(BT Imp)
@CBTLevel5 @NullResponse @Chance10(BT Imp)
@NullResponse @CallReturn(Custom/Instructions/CBTBallsUseImplement.txt)

(BT Imp)
@NullResponse @Chance50(BT 2)
@NotFlag(Kneeling,KneelingNever) #OnYourKnees @TempFlag(Kneeling)

(BT 2)
@Flag(PornRestrictedLocked) @NullResponse @Chance50(BT 3)
@NullResponse @CallReturn(Custom/Instructions/CBTBalls.txt)
@NullResponse @Goto(BT 4)

(BT 3)
@RT(Since you're not allowed to watch porn,Since I restricted your access to porn,And because you don't get to look at porn), @RT(I'm going to show you some while you hurt yourself,You get to see some while you do it,I'm going to remind you how painful watching porn can be,I'm going to help you hate porn,I guess I should condition you to stay away from it) #Grin
@NullResponse @CallReturn(Custom/Instructions/CBTBallsPictures.txt)

(BT 4)
@DommeLevel1 @NullResponse @Chance10(CORNER)
@DommeLevel2 @NullResponse @Chance20(CORNER)
@DommeLevel3 @NullResponse @Chance30(CORNER)
@DommeLevel4 @NullResponse @Chance40(CORNER)
@DommeLevel5 @NullResponse @Chance50(CORNER)
@NullResponse @Goto(Punishment Ending)

(COCKTORTURE)
@NotInChastity @Stroking #StopStroking @StopStroking
@RT(I guess your #Cock will have to pay the price now,I'm going to punish that #Cock,You're going to hurt your #Cock for me)
@FlagOr(RidingCrop,WoodenSpoon,Spatula,Ruler,CBT_Spanking_Implement_None) @NullResponse @Goto(Skip CBTC Ask)

(Ask CBTC Implement)
@NullResponse @RapidCodeOn @CallReturn(Custom/Introductions/CBTImplement.txt)

(Skip CBTC Ask)
@CBTLevel1 @NullResponse @Chance95(CT Imp)
@CBTLevel2 @NullResponse @Chance75(CT Imp)
@CBTLevel3 @NullResponse @Chance55(CT Imp)
@CBTLevel4 @NullResponse @Chance35(CT Imp)
@CBTLevel5 @NullResponse @Chance15(CT Imp)
#CBTCockUseImplement @CheckFlag(CBT_Spanking_Implement_Today,CT Imp)
@RT(You have it ready right,Do you have it,Is it ready to go,Do you have it with you)?
[yes,ready] @RT(Good,Good boy,Okay,Alright then,Very good,You should always have it ready)
[no] @RT(Go fetch,Then go get) it and @RT(tell me,let me know) when you're ready @LoopAnswer
@DifferentAnswer Do you have it yes or no?
@NullResponse @TempFlag(CBT_Spanking_Implement_Today)

(CT Imp)
@NullResponse @Chance50(CT 2)
@NotFlag(Kneeling,KneelingNever) #OnYourKnees @TempFlag(Kneeling)

(CT 2)
@NullResponse @CallReturn(Custom/Instructions/CBTCock.txt)
@DommeLevel1 @NullResponse @Chance10(CORNER)
@DommeLevel2 @NullResponse @Chance20(CORNER)
@DommeLevel3 @NullResponse @Chance30(CORNER)
@DommeLevel4 @NullResponse @Chance40(CORNER)
@DommeLevel5 @NullResponse @Chance50(CORNER)
@NullResponse @Goto(Punishment Ending)

(SPANKING)
@NotInChastity @Stroking #StopStroking @StopStroking
@NotFlag(Kneeling,KneelingNever) #OnYourKnees @TempFlag(Kneeling)
@RT(You need to be spanked,Time for a spanking I guess,You're going to spank your ass for me,I need you to give yourself a spanking right now,Disobedient brats need to be spanked,You're going to spank yourself until your ass is red and glowing)
#SpankingUseImplement
@CallReturn(Custom/Instructions/Spanking.txt)
@DommeLevel1 @NullResponse @Chance10(CORNER)
@DommeLevel2 @NullResponse @Chance20(CORNER)
@DommeLevel3 @NullResponse @Chance30(CORNER)
@DommeLevel4 @NullResponse @Chance40(CORNER)
@DommeLevel5 @NullResponse @Chance50(CORNER)
#ThatsEnough @Goto(Punishment Ending)

(CORNER)
@NotInChastity @Stroking #StopStroking @StopStroking
@NotFlag(Kneeling,KneelingNever) #OnYourKnees @TempFlag(Kneeling)
@RT(You will crawl,I want you go,In a moment you'll go,When I say so you'll go) @RT(to the farthest wall,to a corner) of @RT(the,your) room
@Flag(Kneeling) @RT(You'll stay on your knees,Don't stop kneeling until I say you can,Stay on your knees until I say you can sit again)
@RT(When you hear this sound you can come back,When you hear the bell you can return,When I ring the bell you can come back,Wait for me to ring the bell and then come back) @PlayAudio[MissBlue\bell.mp3]
@RT(Now go,Go,Go ahead), #PetName @AFKOn @Wait(10)
@DommeLevel1 @NullResponse @Wait(#Random(30,60))
@DommeLevel2 @NullResponse @Wait(#Random(45,75))
@DommeLevel3 @NullResponse @Wait(#Random(60,90))
@DommeLevel4 @NullResponse @Wait(#Random(75,105))
@DommeLevel5 @NullResponse @Wait(#Random(90,120))
@NullResponse @PlayAudio[MissBlue\bell.mp3]
@RT(Are you back,Are you there,Ready to continue,Are you ready to continue)? @AFKOff
[yes] @RT(Okay,Good,Alright)
@AcceptAnswer @NullResponse
@NullResponse @CheckFlag(PuEdged,Punishment Ending)
@DommeLevel1 @Flag(PunishmentEdging) @NullResponse @Chance10(EDGES)
@DommeLevel2 @Flag(PunishmentEdging) @NullResponse @Chance30(EDGES)
@DommeLevel3 @Flag(PunishmentEdging) @NullResponse @Chance50(EDGES)
@DommeLevel4 @Flag(PunishmentEdging) @NullResponse @Chance70(EDGES)
@DommeLevel5 @Flag(PunishmentEdging) @NullResponse @Chance90(EDGES)
@NullResponse @Goto(Punishment Ending)

(CLOTHESPINS)
@NotInChastity @Stroking #StopStroking @StopStroking
@NullResponse @CheckFlag(ClothesPins_Today)
@RT(Go get,I want you to fetch,Fetch me,Go ahead and get,I need you to fetch,I want you to go get) @RT(a bunch of clothespins,some clothespins,the clothespins) @CheckFlag(ClothesPins)
Can you do that for me?
[yes] Good
[no] That's disappointing, #SubName @ChangeVar[DEFY]=[DEFY]+[1] @MoodWorst @Goto(Punishment Ending)
@DifferentAnswer #YesOrNo

(ClothesPins)
@NullResponse @Wait(#Random(10,20))
@RT(Let me know when you're ready,Tell me when you're ready,Ready?,Are you ready to continue?)
[yes,ready] @RT(Good boy,Okay,Good,Alright then)
[no] Let me know when you're <u>ready</u> @LoopAnswer
@DifferentAnswer #YesOrNo

(ClothesPins_Today)
@NullResponse @CallReturn(Custom/Instructions/ClothesPins.txt)
@NullResponse @CheckFlag(PuEdged,Punishment Ending)
@DommeLevel1 @Flag(PunishmentEdging) @NullResponse @Chance10(EDGES)
@DommeLevel2 @Flag(PunishmentEdging) @NullResponse @Chance30(EDGES)
@DommeLevel3 @Flag(PunishmentEdging) @NullResponse @Chance50(EDGES)
@DommeLevel4 @Flag(PunishmentEdging) @NullResponse @Chance70(EDGES)
@DommeLevel5 @Flag(PunishmentEdging) @NullResponse @Chance90(EDGES)
#ThatsEnough @Goto(Punishment Ending)

(CHORES)
@NotInChastity @Stroking #StopStroking @StopStroking
@RT(Right now you're going to,I want you to go,I need you to go) do @RT(one,1,a) @RT(household chore,chore around the house,chore)
@RT(You can choose what,, I don't care,I don't care if it's a lot of work or not,Folding laundry,, cleaning the toilet,, whatever,Wich one is up to you)
@RT(But you have to finish the chore and do it properly,But you have to do it right,But whatever it is do it right,As long as you do it properly)
I'm waiting, let me know when you're done
[done,finished,ready] Good boy #Smile
@DifferentAnswer Let me know when you're ready
@RT(At least you did something useful #GeneralTime,I guess you'll have some free time late on,You had to to that anyway,, right?,You might make a good house slave someday) 
@DommeLevel1 @Flag(PunishmentEdging) @NullResponse @Chance10(EDGES)
@DommeLevel2 @Flag(PunishmentEdging) @NullResponse @Chance30(EDGES)
@DommeLevel3 @Flag(PunishmentEdging) @NullResponse @Chance50(EDGES)
@DommeLevel4 @Flag(PunishmentEdging) @NullResponse @Chance70(EDGES)
@DommeLevel5 @Flag(PunishmentEdging) @NullResponse @Chance90(EDGES)
@NullResponse @Goto(Punishment Ending)

(Set Chastity Sentence)
@NotInChastity @Stroking #StopStroking @StopStroking
@NullResponse @RapidCodeOn
@Variable[ChastityMaxDays]=[4] @NullResponse @SetVar[Chastity_UNIT]=[#Var[ChastityMaxDays]]/[4] @Goto(CP3,CP4)
@Variable[ChastityMaxDays]=[5] @NullResponse @SetVar[Chastity_UNIT]=[#Var[ChastityMaxDays]]/[5] @Goto(CP3,CP4,CP5)
@Variable[ChastityMaxDays]=[6] @NullResponse @SetVar[Chastity_UNIT]=[#Var[ChastityMaxDays]]/[6] @Goto(CP3,CP4,CP5,CP6)
@Variable[ChastityMaxDays]>[6] @NullResponse @SetVar[Chastity_UNIT]=[#Var[ChastityMaxDays]]/[7] @Goto(CP4,CP5,CP6,CP7)
@NullResponse @SetVar[Chastity_UNIT]=[1]

(CP3)
@NullResponse @ChangeVar[Chastity_TIME]=[#Var[Chastity_UNIT]]*[3]
@NullResponse @Goto(CP)

(CP4)
@NullResponse @ChangeVar[Chastity_TIME]=[#Var[Chastity_UNIT]]*[4]
@NullResponse @Goto(CP)

(CP5)
@NullResponse @ChangeVar[Chastity_TIME]=[#Var[Chastity_UNIT]]*[5]
@NullResponse @Goto(CP)

(CP6)
@NullResponse @ChangeVar[Chastity_TIME]=[#Var[Chastity_UNIT]]*[6]
@NullResponse @Goto(CP)

(CP7)
@NullResponse @ChangeVar[Chastity_TIME]=[#Var[Chastity_UNIT]]*[7]

(CP)
@NullResponse @SetDate(ChastitySentenceEnds,0 seconds)
@NullResponse @SetFlag(ChastitySentence)
You punishment is @ShowVar[Chastity_TIME] days in chastity
And that's @RT(my final decision,definitive,how it's going to be), #PetName
@RT(It's no use complaining about it,You're just going to have to deal with it)
@NotInChastity @NullResponse @CallReturn(Custom/Instructions/ChastityOn.txt)
@Flag(SpankingYes) @DommeLevel1 @NullResponse @Chance35(SPANKING)
@Flag(SpankingYes) @DommeLevel2 @NullResponse @Chance50(SPANKING)
@Flag(SpankingYes) @DommeLevel3 @NullResponse @Chance65(SPANKING)
@Flag(SpankingYes) @DommeLevel4 @NullResponse @Chance80(SPANKING)
@Flag(SpankingYes) @DommeLevel5 @NullResponse @Chance95(SPANKING)
#ThatsEnough @Goto(Punishment Ending)

(EDGES)
@NotInChastity @Stroking #StopStroking @StopStroking
@InChastity @Goto(Punishment Ending)
@NullResponse @TempFlag(PuEdged)
@Flag(BallBindingEdging) @NotFlag(BallsTied) @NotFlag(ClothesPinsOn) @NullResponse @CallReturn(Custom/Instructions/BallsTied.txt)
#StartStroking @EdgeMode(Goto,PE1)
@RT(Let these next few edges remind you of your place,I'm going to edge you until you remember who's in charge here,Let's see if I can ruin edging for you,A few edges should set you straight,A few edges can do wonders for a disobedient boy)
#StrokeFaster
#Edge

(Edge Loop PE1)
@RT(Edge as fast as you can,Faster,, #PetName,I need you on the edge right now,Fucking edge,, #PetName,Show me how fast you can get there,Fucking do it now,Hurry up,, #PetName,I'm waiting,Don't make me wait,Get to the edge,, #PetName)
@NullResponse
@NullResponse
@NullResponse @Goto(Edge Loop PE1)

(PE1)
#StopStroking
@RT(Take a deep breath,, you're going to need it,This isn't going to be easy,Get ready,This is about to get worse,If you think you're aching now just wait,I'm not done with you yet,I think you understand that that was just the start)
@Variable[BadMoodReason]=[1] @RT(You're going to learn that you only edge when I say so,You're really going to regret edging without permission,I'm going to make sure you'll never edge without permission again,That unauthorized edge is going to be an expensive one,You'll remember this next time you think about edging without permission,You edge only when I say you can edge)
@NullResponse #EdgeMultipleRandom2_6Hold
#LetTheEdgeFade
@RT(Think about why this is happening to you,, #PetName,This is what it takes to be my good boy,You will take whatever I give you,I expect you to suffer through this without complaining,, #PetName,At least you know why you're suffering now,Let's see how quickly pleasure can turn into agony)
@NullResponse #EdgeMultipleRandom2_6Hold
#LetTheEdgeFade
@DommeLevel1 @NullResponse @Chance30(PE1 Enough)
@DommeLevel2 @NullResponse @Chance20(PE1 Enough)
@DommeLevel3 @NullResponse @Chance10(PE1 Enough)
@NullResponse @Wait(#Random(10,20))
@NullResponse @Chance25(Extreme Edge)
@NullResponse #EdgeMultipleRandom4_6Hold
#LetTheEdgeFade
@DommeLevel1 @NullResponse @Chance60(PE1 Enough)
@DommeLevel2 @NullResponse @Chance50(PE1 Enough)
@DommeLevel3 @NullResponse @Chance40(PE1 Enough)
@DommeLevel4 @NullResponse @Chance30(PE1 Enough)
@DommeLevel5 @NullResponse @Chance20(PE1 Enough)
@NullResponse @Wait(#Random(10,20))
@NullResponse #EdgeMultipleRandom4_6Hold
#LetTheEdgeFade
@DommeLevel1 @NullResponse @Chance90(PE1 Enough)
@DommeLevel2 @NullResponse @Chance80(PE1 Enough)
@DommeLevel3 @NullResponse @Chance70(PE1 Enough)
@DommeLevel4 @NullResponse @Chance60(PE1 Enough)
@DommeLevel5 @NullResponse @Chance50(PE1 Enough)
@NullResponse @Wait(#Random(10,20))
@NullResponse #EdgeMultipleRandom2_6Hold
#LetTheEdgeFade
@NullResponse @Goto(PE1 Enough)

(Extreme Edge)
#Edge @Edge(ExtremeHold,HoldTaunts)
#LetTheEdgeFade
@NullResponse @Wait(#Random(10,20))

(PE1 Enough)
@DommeLevel1 @Flag(Spanking) @NullResponse @Chance10(SPANKING)
@DommeLevel2 @Flag(Spanking) @NullResponse @Chance20(SPANKING)
@DommeLevel3 @Flag(Spanking) @NullResponse @Chance30(SPANKING)
@DommeLevel4 @Flag(Spanking) @NullResponse @Chance40(SPANKING)
@DommeLevel5 @Flag(Spanking) @NullResponse @Chance50(SPANKING)
#ThatsEnough @Goto(Punishment Ending)

(NO TOUCH VIDEO)
@NotInChastity @Stroking #StopStroking @StopStroking
@NotFlag(Kneeling,KneelingNever) #OnYourKnees @TempFlag(Kneeling)
@RT(I'm going to play a porn video for you,I'm gonna play on of your porn videos,You're going to watch some porn) @RT(and you'll sit thought it without touching,and you're NOT allowed to touch yourself,and you will not #JerkOff,without touching yourself,but make sure to keep your hand off that #CockAdjective #Cock)
@RT(Just sit on your greedy hands if you have trouble controlling yourself,You'll sit there with your hands behind your back the whole time,No skipping or fast forwarding,, #PetName)
@NullResponse @AFKOn @PlayVideo
@NullResponse @AFKOff @CheckFlag(PuEdged,Punishment Ending)
@DommeLevel1 @Flag(PunishmentEdging) @NullResponse @Chance10(EDGES)
@DommeLevel2 @Flag(PunishmentEdging) @NullResponse @Chance30(EDGES)
@DommeLevel3 @Flag(PunishmentEdging) @NullResponse @Chance50(EDGES)
@DommeLevel4 @Flag(PunishmentEdging) @NullResponse @Chance70(EDGES)
@DommeLevel5 @Flag(PunishmentEdging) @NullResponse @Chance90(EDGES)
#ThatsEnough @Goto(Punishment Ending)

(CFNM)
@NotInChastity @Stroking #StopStroking @StopStroking
@NullResponse @Chance66(Positions)
@Flag(Collar) @NotFlag(Collared) @NullResponse @CallReturn(Custom/Instructions/CollarOn.txt)
@Flag(PlugPunishment) @NotFlag(Plugged) @NullResponse @CallReturn(Custom/Instructions/PlugIn.txt)
@RT(I want you to go,You're going to) do @RT(a,one) @RT(household chore,chore that need to be done anyway)
@RT(I don't care what it is,You can choose what,It's up to you which chore) and I don't care @RT(how much or little work it is,if it's a lot of work or not,if it's just a small one)
@RT(As long as you get it done,But you have to finish the chore and do it properly,But don't cut any corners)
@Flag(Plug) @RT(Make sure the plug stays in,Don't let the plug fall out,The plug has to stay in your ass)
@RT(Let me know when you're done,I'm waiting,Go,Do it now,SO go ahead), #PetName
[done,finished,ready] Good #PetName
@DifferentAnswer Let me know when you're done
@RT(At least you did something useful #GeneralTime,At least your place is a tiny bit less of a pigsty now,Aren't you glad you did that?)
@NullResponse @Goto(Punishment Ending)

(Positions)
@NotInChastity @Stroking #StopStroking @StopStroking
@NullResponse @CheckFlag(PositionsExplained)
Get down on your knees just like this @ShowImage[MissBlue/Positions/KneelingClosed.jpg] @LockImages @TempFlag(Kneeling)
This is the basic kneeling position
But I have other pictures of submissive position as you will soon see
When I ring the bell you will switch positions to the one in the new picture @PlayAudio[MissBlue\bell.mp3]
Are you ready?
[yes,ready] Good
[no] Let me know when you are ready @LoopAnswer
@DifferentAnswer #YesOrNo
Now, stay like this until I say otherwise @SetFlag(PositionsExplained)
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
You didn't think I'd let you stare at that sexy submissive woman, did you? @ChatImage[MissBlue\Emotes\rolleyes.gif]
@NullResponse @Wait(#Random(20,40))
@NullResponse @Goto(Stand Open,Stand Closed)

(PositionsExplained)
@RT(I want you in the,Get down in the,Get in the,In the) basic kneeling position, #Name @ShowImage[MissBlue/Positions/KneelingClosed.jpg] @LockImages @TempFlag(Kneeling)
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@NullResponse @Wait(#Random(20,40))
@NullResponse @Goto(Stand Open,Stand Closed,Kneeling Present,Kneeling Submit)

(Kneeling Closed)
@NullResponse @ShowImage[MissBlue/Positions/KneelingClosed.jpg] @TempFlag(Kneeling) @PlayAudio[MissBlue\bell.mp3]
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@NullResponse @Wait(#Random(20,40))
@DommeLevel1 @NullResponse @Chance85(enough)
@DommeLevel2 @NullResponse @Chance70(enough)
@DommeLevel3 @NullResponse @Chance55(enough)
@DommeLevel4 @NullResponse @Chance40(enough)
@DommeLevel5 @NullResponse @Chance25(enough)
@NullResponse @Goto(Kneeling Open,Kneeling Present,Stand Open,Stand Closed,Kneeling Submit,Against The Wall)

(Kneeling Open)
@NullResponse @ShowImage[MissBlue/Positions/KneelingOpen.jpg] @TempFlag(Kneeling) @PlayAudio[MissBlue\bell.mp3]
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@NullResponse @Wait(#Random(20,40))
@DommeLevel1 @NullResponse @Chance85(enough)
@DommeLevel2 @NullResponse @Chance70(enough)
@DommeLevel3 @NullResponse @Chance55(enough)
@DommeLevel4 @NullResponse @Chance40(enough)
@DommeLevel5 @NullResponse @Chance25(enough)
@NullResponse @Goto(Kneeling Closed,Kneeling Present,Stand Open,Stand Closed,Kneeling Submit,Against The Wall)

(Kneeling Present)
@NullResponse @ShowImage[MissBlue/Positions/KneelingPresent.jpg] @TempFlag(Kneeling) @PlayAudio[MissBlue\bell.mp3]
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@NullResponse @Wait(#Random(20,40))
@DommeLevel1 @NullResponse @Chance85(enough)
@DommeLevel2 @NullResponse @Chance70(enough)
@DommeLevel3 @NullResponse @Chance55(enough)
@DommeLevel4 @NullResponse @Chance40(enough)
@DommeLevel5 @NullResponse @Chance25(enough)
@NullResponse @Goto(Kneeling Open,Kneeling Closed,Stand Open,Stand Closed,Kneeling Submit,Against The Wall)

(Kneeling Submit)
@NullResponse @ShowImage[MissBlue/Positions/KneelingSubmit.jpg] @TempFlag(Kneeling) @PlayAudio[MissBlue\bell.mp3]
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@NullResponse @Wait(#Random(20,40))
@DommeLevel1 @NullResponse @Chance85(enough)
@DommeLevel2 @NullResponse @Chance70(enough)
@DommeLevel3 @NullResponse @Chance55(enough)
@DommeLevel4 @NullResponse @Chance40(enough)
@DommeLevel5 @NullResponse @Chance25(enough)
@NullResponse @Goto(Kneeling Open,Kneeling Closed,Stand Open,Stand Closed,Kneeling Present,Against The Wall)

(Stand Open)
@NullResponse @ShowImage[MissBlue/Positions/StandingOpen.jpg] @DeleteFlag(Kneeling) @PlayAudio[MissBlue\bell.mp3]
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@NullResponse @Wait(#Random(20,40))
@DommeLevel1 @NullResponse @Chance85(enough)
@DommeLevel2 @NullResponse @Chance70(enough)
@DommeLevel3 @NullResponse @Chance55(enough)
@DommeLevel4 @NullResponse @Chance40(enough)
@DommeLevel5 @NullResponse @Chance25(enough)
@NullResponse @Goto(Kneeling Open,Kneeling Present,Kneeling Closed,Stand Closed,Kneeling Submit,Against The Wall)

(Stand Closed)
@NullResponse @ShowImage[MissBlue/Positions/StandingClosed.jpg] @DeleteFlag(Kneeling) @PlayAudio[MissBlue\bell.mp3]
@NullResponse @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@NullResponse @Wait(#Random(20,40))
@DommeLevel1 @NullResponse @Chance85(enough)
@DommeLevel2 @NullResponse @Chance70(enough)
@DommeLevel3 @NullResponse @Chance55(enough)
@DommeLevel4 @NullResponse @Chance40(enough)
@DommeLevel5 @NullResponse @Chance25(enough)
@NullResponse @Goto(Kneeling Open,Kneeling Present,Stand Open,Kneeling Closed,Kneeling Submit,Against The Wall)

(Against The Wall)
@NullResponse @UnlockImages @PlayAudio[MissBlue\bell.mp3]
@NotFlag(Kneeling) #OnYourKnees @TempFlag(Kneeling)
@RT(Crawl over to the corner and,Now,I want you to) @RT(take this position,kneel down exactly like this) @RT(until you hear the bell,until I ring the bell) @ShowImage[MissBlue/Positions/AgainstTheWall.jpg] @LockImages
@RT(Go now,NOW,Do it,Go ahead), #PetName @Wait(10)
@NullResponse @ShowImage[MissBlue/black.*]
@DommeLevel1 @NullResponse @Wait(#Random(20,50))
@DommeLevel2 @NullResponse @Wait(#Random(30,60))
@DommeLevel3 @NullResponse @Wait(#Random(40,70))
@DommeLevel4 @NullResponse @Wait(#Random(50,80))
@DommeLevel5 @NullResponse @Wait(#Random(60,90))
@NullResponse

(enough)
@NullResponse @UnlockImages @PlayAudio[MissBlue\bell.mp3]
@RT(Okay,That's enough for now,Alright,That's enough), @RT(you can sit down now,sit down #PetName,sit down,you can sit back down) @DeleteFlag(Kneeling)
@NullResponse @Wait(#Random(10,20))
@NullResponse @Goto(Punishment Ending)

(Punishment Ending)
@NullResponse @RapidCodeOn @SetMood(#DomMoodMin)
@NullResponse @DeleteFlag(PuEdged)
@Flag(Kneeling) #OnYourKneesNot @DeleteFlag(Kneeling)
@End