SCUMM Revisited
Last update: Sunday, September 02, 2001

Hosted by:
| Lucas Arts Adventure Super site |
----

Main
News
SR3
Warning
Features
FAQ
History
Download
Forum
Secrets
Articles
Specs
Thanks
Help
Links

Community
| |
----

CMI Script Opcodes

Following is a total list of script opcodes used in Curse of Monkey Island. The ones having only a number as their name are likely to be unused.

DecimalHexOpcode NameDescription
0000O_0
1001O_PUSH_NUMBERPush number onto stack.
2002O_PUSH_VARIABLEPush variable value onto stack.
3003O_PUSH_ARRAY_VALUEPush array value onto stack.
4004O_PUSH_ARRAY2_VALUE?
5005O_DUPDuplicate stack value
6006O_POPPop value from stack.
7007O_NOTNOT (!)
8008O_EQEquals (==)
9009O_NEQDoes not equal (!=)
1000AO_GTGreater than (>)
1100BO_LTLess than (<)
1200CO_LEQLess than or equal (<=)
1300DO_GEQGreater than or equal (>=)
1400EO_ADDAdd (+)
1500FO_SUBSubtract (-)
16010O_MULMultiply (*)
17011O_DIVDivide (/)
18012O_LANDLogical AND
19013O_LORLogical OR
20014O_BANDBinary AND
21015O_BORBinary OR
22016O_MODModulus (%)
23017O_23
24018O_24
25019O_25
2601AO_26
2701BO_27
2801CO_28
2901DO_29
3001EO_30
3101FO_31
32020O_32
33021O_33
34022O_34
35023O_35
36024O_36
37025O_37
38026O_38
39027O_39
40028O_40
41029O_41
4202AO_42
4302BO_43
4402CO_44
4502DO_45
4602EO_46
4702FO_47
48030O_48
49031O_49
50032O_50
51033O_51
52034O_52
53035O_53
54036O_54
55037O_55
56038O_56
57039O_57
5803AO_58
5903BO_59
6003CO_60
6103DO_61
6203EO_62
6303FO_63
64040O_64
65041O_65
66042O_66
67043O_67
68044O_68
69045O_69
70046O_70
71047O_71
72048O_72
73049O_73
7404AO_74
7504BO_75
7604CO_76
7704DO_77
7804EO_78
7904FO_79
80050O_80
81051O_81
82052O_82
83053O_83
84054O_84
85055O_85
86056O_86
87057O_87
88058O_88
89059O_89
9005AO_90
9105BO_91
9205CO_92
9305DO_93
9405EO_94
9505FO_95
96060O_96
97061O_97
98062O_98
99063O_99
100064O_IFif ()
101065O_IF_NOTif not ()
102066O_JUMPjump/goto
103067O_BREAK_HEREBreak out of script
104068O_BREAK_HERE_VAR
105069O_WAIT_FOR_STUFFWait Sub opcodes
10606AO_SLEEP_JIFFIESSleep for jiffies (10ths of a second)
10706BO_SLEEP_SECONDSSleep for seconds
10806CO_SLEEP_MINUTESSleep for minutes
10906DO_STORE_VARIABLEAssign value to variable
11006EO_INC_VARIABLEIncrease variable value (++)
11106FO_DEC_VARIABLEDecrease variable value (--)
112070O_ARRAY_DIMSet dimension of array
113071O_STORE_ARRAYAssign value to array
114072O_INC_ARRAYIncrease array value
115073O_DEC_ARRAYDecrease array value
116074O_ARRAY_DIM2Set dimensions of 2 dimensional array
117075O_STORE_ARRAY2Assign value to 2 dimensional array
118076O_ASSIGN_ARRAY?
119077O_ARRAY_SHUFFLEShuffle array
120078O_ARRAY_LOCALIZE?
121079O_START_SCRIPTStart script
12207AO_START_SCRIPT_QUICK?
12307BO_END_SCRIPTEnd script
12407CO_STOP_SCRIPTStop script from running
12507DO_CHAIN_SCRIPT?
12607EO_RETURNReturn
12707FO_START_OBJECT?
128080O_STOP_OBJECT?
129081O_CUT_SCENEStart of cutscene (interface off)
130082O_END_CUT_SCENEEnd of cutscene (interface on)
131083O_FREEZE_SCRIPTS?
132084O_OVERRIDE?
133085O_OVERRIDE_OFF?
134086O_STOP_SENTENCE?
135087O_DEBUGSet debug mode
136088O_DEBUG_WINDEXSet debug mode with output to external window
137089O_CLASS_OFSet class of script
13808AO_STATE_OF?
13908BO_OWNER_OFSet owner of object
14008CO_CAMERA_PAN_TOPan camera to (X,Y)
14108DO_CAMERA_FOLLOWMake camera follow character/object
14208EO_CAMERA_ATPlace camera at specific (X,Y)
14308FO_SAY_LINETalk
144090O_SAY_LINE_DEFAULTTalk using default actor
145091O_SAY_LINE_SIMPLETalk with less arguments
146092O_SAY_LINE_SIMPLE_DEFAULTTalk with less arguments using default actor
147093O_PRINT_LINEPrint a line on screen
148094O_PRINT_CURSOR
149095O_PRINT_DEBUG
150096O_PRINT_SYSTEM
151097O_BLAST_TEXTText to output to screen
152098O_DRAW_OBJECTDraw object
153099O_153
15409AO_BLAST_OBJECT
15509BO_155
15609CO_USERFACE?
15709DO_CURRENT_ROOMSet current room
15809EO_COME_OUT_DOOR
15909FO_WALK_ACTOR_TO_OBJECTWalk to object
1600A0O_WALK_ACTOR_TO_XYWalk to coordinate
1610A1O_PUT_ACTOR_AT_XYPut at coordinate
1620A2O_PUT_ACTOR_AT_OBJECTPut at object
1630A3O_FACE_TOWARDSChange facing
1640A4O_DO_ANIMATIONAnimate
1650A5O_DO_SENTENCE
1660A6O_PICK_UP_OBJECTPick up object
1670A7O_SET_BOX
1680A8O_SET_BOX_PATH
1690A9O_SET_BOX_SET
1700AAO_HEAP_STUFFHeap sub opcodes
1710ABO_ROOM_STUFFRoom sub opcodes
1720ACO_ACTOR_STUFFActor sub opcodes
1730ADO_CAMERA_STUFFCamera sub opcodes
1740AEO_VERB_STUFFVerb sub opcodes
1750AFO_START_SFXStart sound effect
1760B0O_START_MUSICStart music
1770B1O_STOP_SOUNDStop sound (effect or music)
1780B2O_SOUND_KLUDGE?
1790B3O_SYSTEMSystem sub opcodes
1800B4O_VERB_SETS
1810B5O_NEW_NAME_OFSet new name of object
1820B6O_GET_TIME_DATEGet time and/or date
1830B7O_DRAW_BOX
1840B8O_ACTOBJ_STAMP
1850B9O_START_VIDEOStart cutscene video
1860BAO_KLUDGE
1870BBO_187
1880BCO_188
1890BDO_189
1900BEO_190
1910BFO_191
1920C0O_192
1930C1O_193
1940C2O_194
1950C3O_195
1960C4O_196
1970C5O_197
1980C6O_198
1990C7O_199
2000C8F_START_SCRIPTStart script
2010C9F_START_OBJECTStart object script
2020CAF_PICK
2030CBF_PICK_DEFAULT
2040CCF_PICK_RANDOM
2050CDF_IN_SET
2060CEF_RANDOMGet random number
2070CFF_RANDOM_BETWEENGet random number between two values
2080D0F_CLASS_OFGet class of script
2090D1F_STATE_OF
2100D2F_OWNER_OFGet owner of object
2110D3F_SCRIPT_RUNNINGTest if script is running
2120D4F_OBJECT_RUNNINGTest if object is running
2130D5F_SOUND_RUNNINGTest if sound is running
2140D6F_ABSGet absolute value
2150D7F_PIXEL
2160D8F_KLUDGE
2170D9F_IN_BOXTest if object is in box
2180DAF_VALID_VERB
2190DBF_FIND_ACTOR
2200DCF_FIND_OBJECT
2210DDF_FIND_VERB
2220DEF_FIND_ALL_OBJECTS
2230DFF_ACTOR_INVENTORY
2240E0F_ACTOR_INVENTORY_COUNTGet number of items in inventory
2250E1F_ACTOR_VARIABLEGet actor variable (property)
2260E2F_ACTOR_ROOMGet current room for actor
2270E3F_ACTOR_BOXGet current box for actor
2280E4F_ACTOR_MOVINGTest if actor is moving
2290E5F_ACTOR_COSTUMEGet current costume for actor
2300E6F_ACTOR_SCALEGet current scale of actor
2310E7F_ACTOR_DEPTHGet current Z position of actor
2320E8F_ACTOR_ELEVATIONGet current actor elevation
2330E9F_ACTOR_WIDTHGet current actor width
2340EAF_ACTOBJ_FACINGGet current actor/object facing
2350EBF_ACTOBJ_XGet X position of actor/object
2360ECF_ACTOBJ_YGet Y position of actor/object
2370EDF_ACTOR_CHORE
2380EEF_PROXIMITY_2ACTOBJSGet distance between 2 actors/objects
2390EFF_PROXIMITY_2POINTSGet distance between 2 points
2400F0F_OBJECT_IMAGE_XGet X position of object image
2410F1F_OBJECT_IMAGE_YGet Y position of object image
2420F2F_OBJECT_IMAGE_WIDTHGet width of object image
2430F3F_OBJECT_IMAGE_HEIGHTGet height of object image
2440F4F_VERB_XGet X position of verb
2450F5F_VERB_YGet Y position of verb
2460F6F_STRING_WIDTH
2470F7F_ACTOR_ZPLANE
2480F8O_248
2490F9O_249
2500FAO_250
2510FBO_251
2520FCO_252
2530FDO_253
2540FEO_254
2550FFO_255
256100SO_256
257101SO_257
258102SO_258
259103SO_259
260104SO_260
261105SO_261
262106SO_262
263107SO_263
264108SO_264
265109SO_265
26610ASO_ARRAY_SCUMMVAR
26710BSO_ARRAY_STRING
26810CSO_ARRAY_UNDIM
26910DSO_269
27010ESO_270
27110FSO_271
272110SO_272
273111SO_273
274112SO_274
275113SO_275
276114SO_ASSIGN_STRING
277115SO_ASSIGN_SCUMMVAR_LIST
278116SO_ASSIGN_2DIM_LIST
279117SO_279
280118SO_280
281119SO_281
28211ASO_282
28311BSO_283
28411CSO_284
28511DSO_285
28611ESO_WAIT_FOR_ACTORWait for actor (to finish current action?)
28711FSO_WAIT_FOR_MESSAGEWait for message
288120SO_WAIT_FOR_CAMERAWait for camera (to finish current action?)
289121SO_WAIT_FOR_SENTENCE
290122SO_WAIT_FOR_ANIMATION
291123SO_WAIT_FOR_TURN
292124SO_292
293125SO_293
294126SO_294
295127SO_295
296128SO_SYSTEM_RESTARTRestart game
297129SO_SYSTEM_QUITQuit game
29812ASO_298
29912BSO_299
30012CSO_300
30112DSO_301
30212ESO_302
30312FSO_303
304130SO_304
305131SO_305
306132SO_CAMERA_PAUSE
307133SO_CAMERA_RESUME
308134SO_308
309135SO_309
310136SO_310
311137SO_311
312138SO_312
313139SO_313
31413ASO_314
31513BSO_315
31613CSO_HEAP_LOAD_CHARSETLoad character set to heap
31713DSO_HEAP_LOAD_COSTUMELoad costume to heap
31813ESO_HEAP_LOAD_OBJECTLoad object to heap
31913FSO_HEAP_LOAD_ROOMLoad room to heap
320140SO_HEAP_LOAD_SCRIPTLoad script to heap
321141SO_HEAP_LOAD_SOUNDLoad sound to heap
322142SO_HEAP_LOCK_COSTUMELock costume in heap
323143SO_HEAP_LOCK_ROOMLock room in heap
324144SO_HEAP_LOCK_SCRIPTLock script in heap
325145SO_HEAP_LOCK_SOUNDLock sound in heap
326146SO_HEAP_UNLOCK_COSTUMEUnlock costume
327147SO_HEAP_UNLOCK_ROOMUnlock room
328148SO_HEAP_UNLOCK_SCRIPTUnlock script
329149SO_HEAP_UNLOCK_SOUNDUnlock sound
33014ASO_HEAP_NUKE_COSTUMERemove costume from heap
33114BSO_HEAP_NUKE_ROOMRemove room from heap
33214CSO_HEAP_NUKE_SCRIPTRemove script from heap
33314DSO_HEAP_NUKE_SOUNDRemove sound from heap
33414ESO_334
33514FSO_335
336150SO_336
337151SO_337
338152SO_ROOM_PALETTESet room palette
339153SO_339
340154SO_340
341155SO_ROOM_INTENSITYSet room intensity
342156SO_342
343157SO_ROOM_FADEFade room
344158SO_ROOM_RGB_INTENSITYSet room color intensity
345159SO_ROOM_TRANSFORMTransform room
34615ASO_ROOM_CYCLE_SPEEDSet palette cycling speed
34715BSO_ROOM_COPY_PALETTECopy palette
34815CSO_ROOM_NEW_PALETTECreate new palette
34915DSO_ROOM_SAVE_GAMESave game
35015ESO_ROOM_LOAD_GAMELoad game
35115FSO_ROOM_SATURATIONSet saturation of room colors
352160SO_352
353161SO_353
354162SO_354
355163SO_355
356164SO_ACTOR_COSTUMESet actor costume
357165SO_ACTOR_STEP_DISTSet actor width of steps
358166SO_358
359167SO_ACTOR_ANIMATION_DEFAULTSet actor animation to default
360168SO_ACTOR_ANIMATION_INITInitialize animation
361169SO_ACTOR_ANIMATION_TALKSet actor animation to talk animation
36216ASO_ACTOR_ANIMATION_WALKSet actor animation to walk animation
36316BSO_ACTOR_ANIMATION_STANDSet actor animation to standing animation
36416CSO_ACTOR_ANIMATION_SPEEDSet speed of animation
36516DSO_ACTOR_DEFAULT
36616ESO_ACTOR_ELEVATION
36716FSO_ACTOR_PALETTESet actor palette
368170SO_ACTOR_TALK_COLORSet actor talk color
369171SO_ACTOR_NAMESet name of actor
370172SO_ACTOR_WIDTHSet width of actor
371173SO_ACTOR_SCALESet scaling of actor
372174SO_ACTOR_NEVER_ZCLIP?
373175SO_ACTOR_ALWAYS_ZCLIP?
374176SO_ACTOR_IGNORE_BOXESMake actor ignore boxes
375177SO_ACTOR_FOLLOW_BOXESMake actor follow boxes
376178SO_ACTOR_SPECIAL_DRAW
377179SO_ACTOR_TEXT_OFFSETSet text offset relative to actor
37817ASO_ACTOR_INITInitialize actor
37917BSO_ACTOR_VARIABLESet actor variable
38017CSO_ACTOR_IGNORE_TURNS_ONMake actor ignore turns
38117DSO_ACTOR_IGNORE_TURNS_OFFMake actor follow turns
38217ESO_ACTOR_NEWNew actor
38317FSO_ACTOR_DEPTHSet actor Z position
384180SO_ACTOR_STOP
385181SO_ACTOR_FACEMake actor face angle
386182SO_ACTOR_TURNTurn actor
387183SO_ACTOR_WALK_SCRIPTSet walk script for actor?
388184SO_ACTOR_TALK_SCRIPTSet talk script for actor?
389185SO_ACTOR_WALK_PAUSE
390186SO_ACTOR_WALK_RESUME
391187SO_ACTOR_VOLUMESet volume of actor speech
392188SO_ACTOR_FREQUENCYSet frequency of actor speech
393189SO_ACTOR_PAN
39418ASO_394
39518BSO_395
39618CSO_396
39718DSO_397
39818ESO_398
39918FSO_399
400190SO_400
401191SO_401
402192SO_402
403193SO_403
404194SO_404
405195SO_405
406196SO_VERB_INITChoose verb number for editing
407197SO_VERB_NEWNew verb
408198SO_VERB_DELETEDelete verb
409199SO_VERB_NAMESet verb name
41019ASO_VERB_ATSet verb (X,Y) placement
41119BSO_VERB_ONTurn verb on
41219CSO_VERB_OFFTurn verb off
41319DSO_VERB_COLORSet verb color
41419ESO_VERB_HICOLORSet verb highlighted color
41519FSO_415
4161A0SO_VERB_DIMCOLORSet verb dimmed (disabled) color
4171A1SO_VERB_DIM
4181A2SO_VERB_KEYSet keypress to associate with verb
4191A3SO_VERB_IMAGESet verb image
4201A4SO_VERB_NAME_STRSet verb name
4211A5SO_VERB_CENTERCenter verb
4221A6SO_VERB_CHARSETChoose charset for verb
4231A7SO_VERB_LINE_SPACINGChoose linespacing for verb
4241A8SO_424
4251A9SO_425
4261AASO_426
4271ABSO_427
4281ACSO_428
4291ADSO_429
4301AESO_430
4311AFSO_431
4321B0SO_432
4331B1SO_433
4341B2SO_434
4351B3SO_435
4361B4SO_VERBS_SAVE
4371B5SO_VERBS_RESTORE
4381B6SO_VERBS_DELETE
4391B7SO_439
4401B8SO_440
4411B9SO_441
4421BASO_442
4431BBSO_443
4441BCSO_444
4451BDSO_445
4461BESO_446
4471BFSO_447
4481C0SO_448
4491C1SO_449
4501C2SO_450
4511C3SO_451
4521C4SO_452
4531C5SO_453
4541C6SO_454
4551C7SO_455
4561C8SO_PRINT_BASEOP
4571C9SO_PRINT_END
4581CASO_PRINT_ATPrint at coordinates (x,y)
4591CBSO_PRINT_COLORPrint color
4601CCSO_PRINT_CENTERCenter output
4611CDSO_PRINT_CHARSETSet print character set
4621CESO_PRINT_LEFTLeft justify output
4631CFSO_PRINT_OVERHEAD
4641D0SO_PRINT_MUMBLE
4651D1SO_PRINT_STRINGSet string to print
4661D2SO_PRINT_WRAPSet print wordwrap
4671D3SO_467
4681D4SO_468
4691D5SO_469
4601D6SO_470
4711D7SO_471
4721D8SO_472
4731D9SO_473
4741DASO_474
4751DBSO_475
4761DCSO_CURSOR_ONTurn cursor on
4771DDSO_CURSOR_OFFTurn cursor off
4781DESO_CURSOR_SOFT_ONTurn soft cursor on
4791DFSO_CURSOR_SOFT_OFFTurn soft cursor off
4801E0SO_USERPUT_ON
4811E1SO_USERPUT_OFF
4821E2SO_USERPUT_SOFT_ON
4831E3SO_USERPUT_SOFT_OFF
4841E4SO_CURSOR_IMAGESet cursor image
4851E5SO_CURSOR_HOTSPOTSet cursor hotspot
4861E6SO_CURSOR_TRANSPARENTSet cursor transparent color
4871E7SO_CHARSET_SET
4881E8SO_CHARSET_COLOR
4891E9SO_CURSOR_PUT
4901EASO_490
4911EBSO_491
4921ECSO_492
4931EDSO_493
4941EESO_494
4951EFSO_495
4961F0SO_496
4971F1SO_497
4981F2SO_498
4991F3SO_499
5001F4SO_500
5011F5SO_501
5021F6SO_502
5031F7SO_503
5041F8SO_504
5051F9SO_505
5061FASO_506
5071FBSO_507
5081FCSO_508
5091FDSO_509
5101FESO_510
5111FFSO_511