There are two ways to think of such a goal: Place the object anywhere in a room (e.g. drop a body in a room), or place it on another object (e.g. drop a scroll on a desk).
When doing this for the first time, it is recommended that you try the following in a small practice mission:
-
Add to the object the script TrigRoomDeposit
Create a
Route link from the object to the Room (you can type the Room’s name in the
From box).
If your goals have not yet been created, for now you can create any type of
Lever (
Buttons won’t work here) and give the object a
ControlDevice link to it. You can then check that it’s working.
If the goal has been created, instead of the
Lever, create a
QuestVarTrap and add the
Trap→Quest Var property.
In this property, enter the following: =1:goal_state_X where X is the goal number.
Create a
ControlDevice link from the object to the
QuestVarTrap. When the object is dropped, the goal should become complete.
Go into Game Mode and check that it works.
This method will only work in Thief 2. The script TrigRoomDeposit isn’t available for Thief 1. You will have to use one of the other methods.
Add to Object 1 the property:
Act/React→Sources. You’ll then see what looks like the
Links window. But it isn’t.
Click on Add, and the Source Editor window should appear.
Before entering the object number, select HolyStim from the Stimulus menu below.
Once the stim has been selected, the object will revert to None(0). If you get into the habit of choosing stim before entering the object number, you are less likely to forget about this bug.
From the Propagator menu, select Contact
Set the Intensity to 10. The window should look something like this:

Choose your stim wisely. Choose a stim that will not affect anything else in your mission. For example if your mission has zombies, don’t use HolyStim. If you create your own stim (by selecting Act/React Stimuli from the Show Tree menu), you can be sure it will not interfere with anything in your mission. This will require the use of a custom gamesys, and the mission and gamesys will need to be reloaded for the new stim to be ready for use.
If you only need the object to be in a particular location, such as satisfying a “bring object to this room” objective in Thief 1, then you can use a simple Marker for the second object. In that case, it will also help to have a larger intensity for the stimulus.
If your goals haven’t yet been created, place a Button nearby, and note the ID, or give it a name.
-
You should see a Behaviour window.
For Object, enter the name or ID of Object 2 (There is no need to enter A Table (11). 11 will be fine).
From Stimulus, select whatever stim you added to Object 1.
For Min Intensity enter 9 , and for Max Instensity, enter 11.
From Effect, what you choose depends on whether or not you’ve got a goal to test.
If you haven’t yet created the objective (e.g. by running a TOW generated cmd file or by typing the commands yourself), create a button and note it’s ID number. In this example, the ID is 4.
From Effect, choose Frob Object, and for Target Object, enter the name or ID of the Button

If the objective has already been created, set the Effect to Set Quest Variable.
In the bottom right of the Behaviour window is an Edit Effect button. Click on that, and you should see an Effect Data window.
In the Quest Variable field, enter: goal_state_X , where X is the goal number.
Operation can be left at it’s default value (Set To).
In the Operand field, put 1 . I.e. it sets the value of goal_state_X to 1

This tutorial was originally written by
Apache and stored at the
Dromed Central.
This tutorial will explain everything I did to make the “Goal: Bring this AI here” with adding new goals afterwards. I’ll try to make this as easy as possible to follow (I hope).
Making the Trigger AI:
This is an invisible AI that will trigger the goals. Create any type of AI. I used a male servant for this demo.
Place him in the room that Garrett has to bring the body to.
Add these properties:
You now have an AI the is really in the room, just you can’t see or hear him/her and he/she can’t see or hear you.
Making the Bring Here AI:
Just create whatever type of AI you want. Note the concrete number after it is placed.
Linking the two AIs:
Link the trigger AI to the target AI with an
AIWatchObj link. Open the settings and look at the picture:

QuestVarTraps and Buttons:
Create the following items and place them in a
blue room:
2 QuestVarTraps
2 Buttons
In this demo I renamed the QVTs & buttons to make it easier for me to remember:
First button
GoalTrigger1 is linked to
BringHereVarTrap (QuestVarTrap) with a
ControlDevice link.
Second button
GoalTrigger2 is linked to
NewGoal (QuestVarTrap) with a
ControlDevice link.
Add this property to BringHereVarTrap:
Trap→Quest Var:
=1:goal_state_0 (Change “0” to the actual goal number.)
Add this property to NewGoal:
Trap→Quest Var:
=1:goal_visible_0 (Change “0” to the actual goal number.)
This is all you need to do to make the Bring AI here with NewGoal pop-up for your FM.
The rest is what I did to unlock that lever controlling the exit door:
Create a door… an unbashable type works best.
Create a Lockbox and place in a blue room.
Link the door to the
Lockbox with a
Lock link.
And you’ll see how I removed the link in the Link Data picture provided.