Supported In:
? ? ?

The scripting command TakeOrGive has the opcode (0x1D).


  • Byte - Take Type
  • Byte - Take Value (1, 2, or 4 bytes, depending on type, mostly 1)
  • Byte - Give Type
  • Byte - Give Value (1, 2, or 4 bytes, depending on type, mostly 1)


Uses the arguments as an If to check character stats before giving something.


Gives to the most recently "selected" character. Characters can be selected either with the WhoWill, SelRndChar, or SetChar command. By default, the first character is selected. If the selected character is set to 0 (via SetChar with a 0 argument) then all characters lose or get the specified thing. ie, to give all characters 60000 experience requires two lines:

0f 00                     // select all characters
0c 00 00 10 60 ea 00 00   // give 60000 experience to selected character (ie, all)

It's not entirely obvious what is given. More investigation would be required.

This is never actually used on any map anywhere in Xeen. It was most likely never completed or tested, and simply replaced by a combined If and 0x0C TakeOrGive. DO NOT USE!

While 0x0C, 0x1C, 0x1D, and 0x26 opcodes all execute the TakeGive command, there are differences which may warrant each to have their own page.

TODO: Do we want to do serious investigation, or make an executive decision and say "don't use this"? Easier to not use. Ever.