im kinda new to quest and so dont know a lot about it and i was wondering, is there anyway to make it so you can use items with out picking them up? so lets say i wanted to make a sink, without picking it up is there anyway i can make it so you can say wash your hands in it?
You should be good by going into the object's Object tab, and adding Use to the Display Verbs list, and then going to Features, checking Use/Give on, then adding the code you want under the newly formed Use/Give tab.
the general design concept:
Individual Objects can have their own actions (Script Attributes / Verbs): 'take', 'drop', 'use', 'talk', 'equip', 'cast', 'attack', 'defend', 'steal', 'learn', 'read', 'escape/run/flee', 'explore/search', etc etc etc
the already built-in Verbs/Script_Attributes, are very useful/powerful, as they're already coded to handle everything for you due to their internal coding, but you can certainly create/add your own custom Verbs/Script_Attributes too
and/or
you can get input from the player (the 'Command' Element and 'get input' Script/Function), but then you got to handle those inputs yourself (check if its correct, if the inputs exist as Objects and/or Attributes, selecting/getting the objects and/or scripts, etc etc etc), which allows you do actions upon whatever you want, though that means you also got to handle it completely as well
example of both design methods
for my custom 'talk_command' Command:
during game play, you'd type in:
(the example that I used, checks if the inputted object exists within your current location/room, we'd need different/extra coding to handle it searching through the rest of the game, if that was desired/needed/wanted of it)
talk npc1
talk npc2
talk fail test
and the 'Verb' usage provides extra internal coding, that makes its Script Attribute, show up (and handles it as to be working) as the buttons and/or hyperlinks for the Object during game play, but otherwise, Verbs are basically actually just Script Attributes (but internal coding wise, they're a, specialized type or sub type, of the 'Command' Element)
<object name="room">
<inherit name="editor_room" />
</object>
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
<attr name="parent" type="object">room</attr>
</object>
<object name="npc1">
<inherit name="editor_object" />
<attr name="parent" type="object">room</attr>
<attr name="talk" type="script">
msg ("You say \"hi\" to " + npc1.name + ".")
</attr>
</object>
<object name="npc2">
<inherit name="editor_object" />
<attr name="parent" type="object">room</attr>
<attr name="talk" type="script">
msg ("You say \"hi\" to " + npc2.name + ".")
</attr>
</object>
<verb name="talk_verb">
<property>talk</property>
<pattern>talk</pattern>
</verb>
<command name="talk_command">
<pattern>talk #object#</pattern>
<script>
msg ("You say \"hi\" to " + object.name + ".")
</script>
<unresolved>The inputted object either doesn't exist at all within the entire game or you just got the wrong spelling (typo) or it just doesn't exist within your current location/room</unresolved>
</command>