Sim, acho que é mais ou menos por ai. Eu não estou muito acostumado a mexer nas sources, mas se quiser podemos tentar.
Obs: antes de começar, faça um backup de tudo!
Você está usando tfs 1.0? Se sim, vai em spells.cpp, procura por:
InstantSpell::executeCastSpell
Nessa função, procura por:
LuaScriptInterface::pushVariant(L, var);
Abaixo dessa linha, coloque:
LuaScriptInterface::pushString(L, getWords());
E por último, troque isto:
return m_scriptInterface->callFunction(2);
Por isto:
return m_scriptInterface->callFunction(3);
Se a compilação der certo, tenta usar uma spell assim:
function onCastSpell(cid, var, words)
Senão, posta o erro. Não tenho um ambiente de testes aqui, por isso não pude testar.