TTLG|Jukebox|Thief|Bioshock|System Shock|Deus Ex|Mobile
Results 1 to 5 of 5

Thread: Optional Objectives for Thief 1/Gold

  1. #1
    Member
    Registered: Jan 2006
    Location: On the tip of your tongue.

    Optional Objectives for Thief 1/Gold

    This is a small demo mission demonstrating how to set up an Optional objective in Thief 1/Gold, since the Optional functionality is only available in Thief 2.

    Demo mission: Google Drive download link

    Instructions are included, and repeated here:

    The demo mission has three objectives:
    - Goal 0 = Not optional (Steal an Item)
    - Goal 1 = Optional (Steal an Item)
    - Goal 2 = Final (Get to the Exit)


    You will need to create a QuestVarTrigger archetype as this does not exist in T1 by default. Make a new object under TrapTrig called QuestVarTrigger and add S>Scripts and give it the script TrigQVar.

    Create a RequireAllTrap.

    Create a QuestVarTrigger for Objective 0 with property Trap>Quest Var set to =1:goal_state_0 (this sends a TurnOn signal when goal 0 is completed). Add a ControlDevice link from the QuestVarTrigger to the RequireAllTrap.

    Repeat the above for all non-optional objectives* apart from the Final one.

    *IMPORTANT NOTE 1: You do NOT need a QuestVarTrigger for any Reverse objectives (e.g. Don't kill anyone) and indeed, the setup won't work if you have them - since these are Reverse, they will only reach goal state 1 at the end of the mission anyway.

    IMPORTANT NOTE 2: For any difficulty-dependent objectives (for example, if you have different loot objectives for Normal, Hard, Expert), you will need to ensure that your QuestVarTriggers are destroyed on the other difficulties. So e.g. if you have an Expert-only objective, your QuestVarTrigger for that objective will need the property Difficulty: Destroy (0,1) to ensure it is not being included on Normal and Hard.

    Now create another QuestVarTrigger and give it Trap>Quest Var set to =0:goal_state_1 (this sends a TurnOn signal when goal 1 is incomplete). Add a ControlDevice link from the QuestVarTrigger to the RequireAllTrap.

    Now ensure you have a unique room brush for your final room (adjust these instructions as necessary if your final objective is not a Go To Location objective). Ensure the room brush has the script TrigRoomPlayer.
    ControlDevice Link the final room brush to the RequireAllTrap.

    Now we have a RequireAllTrap that will pass on it's signal only when:

    All non-optional objectives apart from the final one are complete
    AND
    The optional objective is incomplete
    AND
    The player has entered the final room.


    Now create a QuestVarTrap. Set Trap>Quest Var to =2:goal_state_1. ControlDevice Link the RequireAllTrap to the QuestVarTrap.

    This means when the above conditions are met, the optional objective will be set to Cancelled.

    Finally, we need anotherr QuestVarTrap with Trap>Quest Var set to =1:goal_state_2. ControlDevice link the RequireAllTrap to this QuestVarTrap.

    This will force the Final objective to be set to Complete if the above criteria are met (otherwise, the final objective will not be ticked off, because the test to see if the final objective is complete is run before we disable the optional objective, and since it's not really optional because we're in Thief 1, the game doesn't think all the required criteria have been met).

    A Note about Bonus objectives:
    As far as I can tell, Bonus objectives are NOT possible in Thief 1, because all objectives are hard-coded to be displayed on the mission complete screen, so even if you didn't discover the bonus objective, it will be displayed as incomplete. I'm happy to be proved wrong though.
    Last edited by nicked; 15th Nov 2024 at 12:44.

  2. #2
    Member
    Registered: Apr 2011
    Quote Originally Posted by nicked View Post
    A Note about Bonus objectives:
    As far as I can tell, Bonus objectives are NOT possible in Thief 1, because all objectives are hard-coded to be displayed on the mission complete screen, so even if you didn't discover the bonus objective, it will be displayed as incomplete. I'm happy to be proved wrong though.
    the ending screen will not show objectives that are marked as not visible. e.g. Assassins doesnt show the "loot the hammer temple" objective anymore when you finish it:


  3. #3
    Member
    Registered: Jan 2006
    Location: On the tip of your tongue.
    Unfortunately that seems to be a specific script for Assassins, as best I can tell - it has some markers with Phase1StatusManager, Phase2StatusManager etc. as scripts, and no QVarTraps or Triggers at all.

    Last time I tried to set up a bonus objective in Thief 1, I had an invisible objective, and a QVarTrigger to make it visible if the state was completed. That much worked fine, but if the objective was never completed, it would still show up as visible and completed on the mission complete screen.

  4. #4
    Member
    Registered: Apr 2011
    Quote Originally Posted by nicked View Post
    Unfortunately that seems to be a specific script for Assassins, as best I can tell - it has some markers with Phase1StatusManager, Phase2StatusManager etc. as scripts, and no QVarTraps or Triggers at all.
    those scripts only deal with setting/clearing/showing/hiding quest vars during the game.

    the debrief screen will not show objectives whose goal_visible_X is set to 0, regardless of if they are complete, or incomplete, or cancelled. I just confirmed this in a test mission in TG, both in dromed and in game.

  5. #5
    Member
    Registered: Jan 2006
    Location: On the tip of your tongue.
    Added a couple of important notes about Reverse and difficulty-based objectives.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •