Files
Naked-Desire/COMMISSIONS.md
T
2026-06-03 15:17:02 +03:00

6.9 KiB
Raw Blame History

Commission objective backlog

Idea catalog + build status for the commission system (Source/NakedDesire/Commissions/). Pairs with GDD §13 (the design source of truth) and PLAN.md (live status). When an idea is implemented, mark it and record the class name.

Feasibility legend

  • buildable now — the signals it needs already exist.
  • 🔶 needs a planned-but-partial system — NPC types (VS5), lust & pulse (VS2), photo/livestream & followers (Phase 8), toys, restraints.
  • 🔭 needs an unbuilt system — theft (§6.3.4), rip & tear (§6.3.5), recognition/wanted (§7.6).

Path flavor: Exhibitionist = be seen · Slut = be lewd · Slave = be used / controlled.


Structural features (content multipliers — build these first)

These aren't objectives; they make every objective compose, so a handful of conditions yields a large content space.

  • Constraints / modifiers — a constraint decorates an objective; the step only counts while all its constraints also hold (the base ANDs them into the satisfaction check). "Do X while Y" with no new objective code.
    • WhileObservedBy(count) UObservedConstraint (implemented)
    • DuringPhase(Day/Night) UDayPhaseConstraint (implemented)
    • WhileWearing(slot) / WhileNotWearing(slot) UWearingSlotConstraint (implemented)
    • WhileAtLocation(tag) ULocationConstraint (implemented) — backed by ULocationSubsystem.
    • WhileMoving / WhileRunning * — needs a gait-changed signal or a cheap poll.
  • Sequential stepsbSequentialObjectives on a commission: objectives activate one at a time in order ("strip at A → walk naked to B → masturbate at C"). (implemented)
  • Optional bonus objective — a non-required step that bumps the reward (risk/reward texture). (idea)
  • Time limit — a per-commission deadline is a failure condition, not a "while" gate; it belongs with failurePenalty / day-end expiry, not the constraint set.

Exposure / coverage (mostly — same signals the dial already uses)

  • BeFullyNaked(duration) UBeFullyNakedObjective (implemented)
  • ExposeBodyPart(part, duration) UExposeBodyPartObjective (implemented)
  • BeFullyNakedNearNPCs(count, duration) UBeFullyNakedNearNPCsObjective (implemented)
  • WearOnlyUnderwear(duration) UWearOnlyUnderwearObjective (implemented). Exhibitionist.
  • BeToplessOnly / BeBottomlessOnly(duration) — one region bare, the other covered.
  • StayBelowCoverage(threshold, duration) — total/region coverage under X (revealing, not nude).
  • ExposeWhileWalking(part, meters) — keep a part revealing across N meters (per-part walk).
  • UseExposeAction(part, count) (after VS3) — trigger the §6.3.6 flash action N times.

Observation / NPC reactions ( count-based; 🔶 type-based)

  • GatherCrowd(count) UGatherCrowdObjective (implemented). N NPCs observing simultaneously.
  • BeObservedWhileExposed(count, duration) UBeObservedWhileExposedObjective (implemented). N observers while any region is revealing (partial exposure counts).
  • StayUnseenWhileNaked(duration) UStayUnseenWhileNakedObjective (implemented). Fully naked with zero observers (stealth exhibitionism / risk).
  • BeObservedByNPCType(type, count|duration) 🔶 (in §13.4) — Walker / Stalker / Blogger / etc.
  • BePhotographedByBlogger(count) 🔶 · EndureStalker(duration) 🔶 · EscapeAfterSnitch() 🔶 (VS5).

Attributes: embarrassment / arousal ( embarrassment; 🔶 lust/pulse)

  • ReachEmbarrassment(threshold) / SustainEmbarrassment(threshold, duration) UReachEmbarrassmentObjective (implemented; a hold duration turns Reach into Sustain).
  • ReachLust(threshold) / EdgeWithoutResolving(duration) 🔶 (VS2).
  • MasturbateNearNPCs(count) / MasturbateAtLocation(tag) 🔶PerformAction, Slut-gated (§23 #26).
  • KeepPulseElevated(threshold, duration) 🔶.

Location / travel (ULocationSubsystem now provides enter/leave + tag queries)

  • EnterLocationNaked(tag) · TourLocationsNaked(tagset) · LingerExposed(tag, duration) (the last two = BeFullyNaked + a ULocationConstraint).
  • ReachLocationAwayFromClothing(tag, meters) — arrive having left clothes ≥N m behind.
  • ReturnHomeNaked() -ish — end the session at the apartment with no clothing (loop-closer).

Movement / endurance ()

  • WalkNakedDistance(meters) (in §13.4) · MoveDistanceFromClothing(meters) (in §13.4).
  • RunNakedDistance(meters) URunNakedDistanceObjective (implemented). Distance accrues only while running + naked.
  • WalkNakedWhileObserved(meters, minObservers) .

Clothing / outfits / restraints

  • WearOutfit(tag, duration) — go out in a specific authored set (needs an outfit id/tag on items).
  • GoOutInBodysuitOnly(duration) .
  • WearRestraintInPublic(slot, duration) 🔶 (restraints §6.3.7) — Slave flavor.
  • WearVibratingToy(duration) / ActivateToyNearNPCs(count) 🔶 (toy vibration audible to NPCs).
  • DegradeConditionTo(x) / RipClothing 🔭 (rip & tear) · LetItemBeStolen() 🔭 (theft).

Photo / livestream / followers (🔶 Phase 8)

  • TakePhotoAtLocation(tag) 🔶 (in §13.4) · PostPhotoExposing(part) 🔶 · PhotoExposureScoreAbove(x) 🔶.
  • SelfieAtLandmark(tag) 🔶 · LivestreamForMinutes(n) 🔶 · LivestreamWhileWalkingNaked(meters) 🔶.
  • GainFollowers(count) 🔶 · CompleteTipRequests(count) 🔶.

Items / economy ( / 🔶)

  • DeliverItemTo(target) (in §13.4) · DeliverWhileNaked(target) — deliver fully naked (§15.1).
  • DropClothingAtLocation(tag) — a "dead drop" leaving a garment behind.
  • SellWornUnderwearAtDropoff() 🔶 — risk-based drop-off (§15.1).

Risk / loss (🔶 / 🔭)

  • SurviveSessionNaked() -ish — complete a session never wearing clothing.
  • GetCaughtAndEscape() 🔶 (police, VS5) · WantedWhileExposed() 🔶 (recognition, §7.6).

Suggested build order

  1. Structural — constraints framework + sequential steps. (done)
  2. All- objectives — done: StayUnseenWhileNaked, GatherCrowd, BeObservedWhileExposed, WearOnlyUnderwear, RunNakedDistance, ReachEmbarrassment/SustainEmbarrassment. Location objectives (EnterLocationNaked, LingerExposed, …) need no new class — author them as BeFullyNaked / ExposeBodyPart + a ULocationConstraint.
  3. Location system — done: ULocationSubsystem + ULocationConstraint; the whole Location/travel group and WhileAtLocation are unblocked. (Build the location objectives with the batch.)
  4. Per-system batches as VS5 (NPC types), VS2 (lust/pulse), toys, restraints, and Phase 8 (photo/livestream/followers) land.