v6.01
 Plugin オブジェクト内部の Variant データを設定したり、戻したりします。Softimage では、データのコンテンツや意味によって制限されることはありません。簡単なタイプ、Array、オブジェクトリファレンスなどの広範なデータを保存できます。追加されると、Softimage が実行されている間、またはプラグインを手動でアンロードするまでの間、データはアクティブな状態になります。ユーザデータは継承されません。
注:Plugin.UserData は、通常はプラグインモジュールでローカルでアクセスできる値や、他のプラグインによってグローバルにアクセスできる値を格納するために使用されます。スクリプトプラグインの場合は、プラグインモジュールで定義されているグローバル変数を使用する代わりに、Plugin.UserDataを使用することを強くお勧めします。このことは、プラグインがマルチスレッドで実行されるレンダリングオペレーションのコンテキストで特に重要です。プラグインが別のスレッドで実行される場合は、実行中のスクリプトエンジンのコピーが作成され、もう一度プラグインファイルが解析されます。このプラグインファイルは、プラグイン実装で参照されるプラグイングローバル変数を再初期化します。一方、Plugin.UserData を使用すると、スレッド間の整合性を保つことができます。 
| // get accessor Object rtn = Plugin.UserData; // set accessor Plugin.UserData = Object; | 
| # How to access a plug-in user data
from win32com.client.dynamic import Dispatch 
# Optional global variable to speed up data access
g_userdata = None
def GetUserData():
	if ( g_userdata == None ):
		# Dictionary not defined yet
		# Get the plug-in object storing the dictionary
		myPlugin = Application.Plugins("My plugin");
		if ( myPlugin.UserData == None ):		
			# Dictionary not defined yet, create it and add some object
			dict = Dispatch( "Scripting.Dictionary" )
			dict[ 'SurfPos' ] = XSIMath.CreateVector3()
			dict[ 'OutPos' ] = XSIMath.CreateVector3()
			# Store the new dictionary in the plug-in
			myPlugin.UserData = dict
		# Cache the dictionary in this module for fast access
		g_userdata = myPlugin.UserData
	return g_userdata |