Для регистрации используйте RegisterGlobalProperty. Помните, что зарегистрированное свойство должно остаться в живых, пока его регистрация действительна в движке.
// Переменные, которые должны быть доступны в скрипте. int g_number = 0; CObject *g_object = 0; Vector3 g_vector = {0,0,0}; bool g_readOnlyFlag = false; // Функция, регистрирующая глобальные переменные. void RegisterProperties(asIScriptEngine *engine) { int r; // Регистрируем простую переменную, которая моет читаться и записываться из скрипта. r = engine->RegisterGlobalProperty("int g_number", &g_number); assert( r >= 0 ); // Регистрируем переменную, куда скрипт будет сохранять CObject. // Заметим, что CObject должен быть уже зарегистрировать как ссылка. r = engine->RegisterGlobalProperty("CObject @g_object", &g_object); assert( r >= 0 ); // Регистрируем 3D вектор. // Заметим, что Vector3 дожен быть уже зарегистрирован как значение. r = engine->RegisterGlobalProperty("Vector3 g_vector", &g_vector); assert( r >= 0 ); // Регистрируем флаг, который может читаться но не может записываться из скрипта. r = engine->RegisterGlobalProperty("const bool g_readOnlyFlag", &g_readOnlyFlag); assert( r >= 0 ); }