You are looking at a bug for omenofdoom

I use the debug keyword to check out what happens when I say hi near your oddly shaped pole.

Do you know about the keyword?
read the info about debug


Now looking at the poles reaction to me saying something I see it correctly is identified as something that reacts.
It runs 'whodunit'
[DEBUG ## process block [whodunit] cmd_count=3 sub_count=7]

Which checks the init object equalsing the actors host
[DEBUG -> process_subs - (if $init_obj = $actor's host then whatwords else end)]

Failing this:
[DEBUG --> if [87] [eq] ["0"] then [whatwords] else [end]]

It runs the end block.. of which there is none and comamnd stops:
[DEBUG ## process block [end] cmd_count=3 sub_count=8]

Now the fun begins when we host the pole and say the magic word:

[DEBUG -> process_subs - (if $init_cmd like "soulharvest" then further else end)]

Which gets resolved down into
[DEBUG IF2 [say] [like] ["soulharvest"]]

So we see the $init_cmd is being translated into 'say' the command not what was said.

If you use the variable $text you should find this works.
if $text like "soulharvest then ...

Notice that like is handy here eg:
if $text like (soulharvest|disneyland|bingo) then ...

Another thing Id like to draw your attention to if you have a moment.. and thats the reaction code.

yes ##say: runsub ... works fine to trigger a reaction but
if reacting to say then whodunit

Is a much nicer and more readable way of trapping reactions.
The three are:

if target of {triggerword} then {block_to_run}
if second of {triggerword} then {block_to_run}
if reacting to {triggerword} then {block_to_run}


Im planning on removing the ability to have ##say: runsub ... work as a trigger some time in the distant future..
Its confusing, conflivs with general block names, the old form had to ask additional querstions to work out who was the $target etc..

so please use the IF versions where possible and update old code if you have any.

Thanks and have a nice cow.