<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://myst.dustbird.net/w/index.php?action=history&amp;feed=atom&amp;title=Python_Files_And_Your_Age%3A_Please_Read%21</id>
	<title>Python Files And Your Age: Please Read! - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://myst.dustbird.net/w/index.php?action=history&amp;feed=atom&amp;title=Python_Files_And_Your_Age%3A_Please_Read%21"/>
	<link rel="alternate" type="text/html" href="http://myst.dustbird.net/w/index.php?title=Python_Files_And_Your_Age:_Please_Read!&amp;action=history"/>
	<updated>2026-04-04T07:58:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>http://myst.dustbird.net/w/index.php?title=Python_Files_And_Your_Age:_Please_Read!&amp;diff=1623&amp;oldid=prev</id>
		<title>AndyLegate at 15:25, 14 February 2011</title>
		<link rel="alternate" type="text/html" href="http://myst.dustbird.net/w/index.php?title=Python_Files_And_Your_Age:_Please_Read!&amp;diff=1623&amp;oldid=prev"/>
		<updated>2011-02-14T15:25:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 15:25, 14 February 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot; &gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from Plasma import *&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from Plasma import *&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from PlasmaTypes import *&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;from PlasmaTypes import *&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;import time&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class Tomahn(ptResponder,):&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class Tomahn(ptResponder,):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; __module__ = __name__&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; __module__ = __name__&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>AndyLegate</name></author>
		
	</entry>
	<entry>
		<id>http://myst.dustbird.net/w/index.php?title=Python_Files_And_Your_Age:_Please_Read!&amp;diff=1622&amp;oldid=prev</id>
		<title>AndyLegate: Created page with &#039;If you are planing on using Python with your Age, anything from making Linking Books or Journals, to complex puzzles like Neolbah&#039;s Keypad, there is something you MUST do for you…&#039;</title>
		<link rel="alternate" type="text/html" href="http://myst.dustbird.net/w/index.php?title=Python_Files_And_Your_Age:_Please_Read!&amp;diff=1622&amp;oldid=prev"/>
		<updated>2011-02-14T15:24:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;If you are planing on using Python with your Age, anything from making Linking Books or Journals, to complex puzzles like Neolbah&amp;#039;s Keypad, there is something you MUST do for you…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;If you are planing on using Python with your Age, anything from making Linking Books or Journals, to complex puzzles like Neolbah&amp;#039;s Keypad, there is something you MUST do for your Age, or else your python is not going to work correctly.&lt;br /&gt;
&lt;br /&gt;
You MUST set up a &amp;quot;Dummy&amp;quot; python file for your Age. This file will have the same name as your .age file. For example, Neolbah&amp;#039;s .age file is Neolbah.age, and the &amp;quot;Dummy&amp;quot; python file for it is called Neolbah.py.&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;Dummy&amp;quot; python file must be in your python .pak file.&lt;br /&gt;
&lt;br /&gt;
You must also assign it to an object that is in your Age, so you will have to make copies of both the complied and uncomplied (.py and .pyc) versions of the file and place them in your python folders in your Max export folder.&lt;br /&gt;
&lt;br /&gt;
Making a &amp;quot;Dummy&amp;quot; python file is easy, you can copy the one I have for Eder Tomahn below and just edit it (I&amp;#039;ll tell you where):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from Plasma import *&lt;br /&gt;
from PlasmaTypes import *&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
class Tomahn(ptResponder,):&lt;br /&gt;
    __module__ = __name__&lt;br /&gt;
    __module__ = __name__&lt;br /&gt;
&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        ptResponder.__init__(self)&lt;br /&gt;
        self.id = 1022605&lt;br /&gt;
        self.version = 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def OnFirstUpdate(self):&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def OnServerInitComplete(self):&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def OnNotify(self, state, id, events):&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def OnSDLNotify(self, VARname, SDLname, playerID, tag):&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
glue_cl = None&lt;br /&gt;
glue_inst = None&lt;br /&gt;
glue_params = None&lt;br /&gt;
glue_paramKeys = None&lt;br /&gt;
try:&lt;br /&gt;
    x = glue_verbose&lt;br /&gt;
except NameError:&lt;br /&gt;
    glue_verbose = 0&lt;br /&gt;
&lt;br /&gt;
def glue_getClass():&lt;br /&gt;
    global glue_cl&lt;br /&gt;
    if (glue_cl == None):&lt;br /&gt;
        try:&lt;br /&gt;
            cl = eval(glue_name)&lt;br /&gt;
            if issubclass(cl, ptModifier):&lt;br /&gt;
                glue_cl = cl&lt;br /&gt;
            elif glue_verbose:&lt;br /&gt;
                print (&amp;#039;Class %s is not derived from modifier&amp;#039; % cl.__name__)&lt;br /&gt;
        except NameError:&lt;br /&gt;
            if glue_verbose:&lt;br /&gt;
                try:&lt;br /&gt;
                    print (&amp;#039;Could not find class %s&amp;#039; % glue_name)&lt;br /&gt;
                except NameError:&lt;br /&gt;
                    print &amp;#039;Filename/classname not set!&amp;#039;&lt;br /&gt;
    return glue_cl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getInst():&lt;br /&gt;
    global glue_inst&lt;br /&gt;
    if (type(glue_inst) == type(None)):&lt;br /&gt;
        cl = glue_getClass()&lt;br /&gt;
        if (cl != None):&lt;br /&gt;
            glue_inst = cl()&lt;br /&gt;
    return glue_inst&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_delInst():&lt;br /&gt;
    global glue_inst&lt;br /&gt;
    global glue_cl&lt;br /&gt;
    global glue_paramKeys&lt;br /&gt;
    global glue_params&lt;br /&gt;
    if (type(glue_inst) != type(None)):&lt;br /&gt;
        del glue_inst&lt;br /&gt;
    glue_cl = None&lt;br /&gt;
    glue_params = None&lt;br /&gt;
    glue_paramKeys = None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getVersion():&lt;br /&gt;
    inst = glue_getInst()&lt;br /&gt;
    ver = inst.version&lt;br /&gt;
    glue_delInst()&lt;br /&gt;
    return ver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_findAndAddAttribs(obj, glue_params):&lt;br /&gt;
    if isinstance(obj, ptAttribute):&lt;br /&gt;
        if glue_params.has_key(obj.id):&lt;br /&gt;
            if glue_verbose:&lt;br /&gt;
                print &amp;#039;WARNING: Duplicate attribute ids!&amp;#039;&lt;br /&gt;
                print (&amp;#039;%s has id %d which is already defined in %s&amp;#039; % (obj.name,&lt;br /&gt;
                 obj.id,&lt;br /&gt;
                 glue_params[obj.id].name))&lt;br /&gt;
        else:&lt;br /&gt;
            glue_params[obj.id] = obj&lt;br /&gt;
    elif (type(obj) == type([])):&lt;br /&gt;
        for o in obj:&lt;br /&gt;
            glue_findAndAddAttribs(o, glue_params)&lt;br /&gt;
&lt;br /&gt;
    elif (type(obj) == type({})):&lt;br /&gt;
        for o in obj.values():&lt;br /&gt;
            glue_findAndAddAttribs(o, glue_params)&lt;br /&gt;
&lt;br /&gt;
    elif (type(obj) == type(())):&lt;br /&gt;
        for o in obj:&lt;br /&gt;
            glue_findAndAddAttribs(o, glue_params)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getParamDict():&lt;br /&gt;
    global glue_paramKeys&lt;br /&gt;
    global glue_params&lt;br /&gt;
    if (type(glue_params) == type(None)):&lt;br /&gt;
        glue_params = {}&lt;br /&gt;
        gd = globals()&lt;br /&gt;
        for obj in gd.values():&lt;br /&gt;
            glue_findAndAddAttribs(obj, glue_params)&lt;br /&gt;
&lt;br /&gt;
        glue_paramKeys = glue_params.keys()&lt;br /&gt;
        glue_paramKeys.sort()&lt;br /&gt;
        glue_paramKeys.reverse()&lt;br /&gt;
    return glue_params&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getClassName():&lt;br /&gt;
    cl = glue_getClass()&lt;br /&gt;
    if (cl != None):&lt;br /&gt;
        return cl.__name__&lt;br /&gt;
    if glue_verbose:&lt;br /&gt;
        print (&amp;#039;Class not found in %s.py&amp;#039; % glue_name)&lt;br /&gt;
    return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getBlockID():&lt;br /&gt;
    inst = glue_getInst()&lt;br /&gt;
    if (inst != None):&lt;br /&gt;
        return inst.id&lt;br /&gt;
    if glue_verbose:&lt;br /&gt;
        print (&amp;#039;Instance could not be created in %s.py&amp;#039; % glue_name)&lt;br /&gt;
    return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getNumParams():&lt;br /&gt;
    pd = glue_getParamDict()&lt;br /&gt;
    if (pd != None):&lt;br /&gt;
        return len(pd)&lt;br /&gt;
    if glue_verbose:&lt;br /&gt;
        print (&amp;#039;No attributes found in %s.py&amp;#039; % glue_name)&lt;br /&gt;
    return 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getParam(number):&lt;br /&gt;
    pd = glue_getParamDict()&lt;br /&gt;
    if (pd != None):&lt;br /&gt;
        if (type(glue_paramKeys) == type([])):&lt;br /&gt;
            if ((number &amp;gt;= 0) and (number &amp;lt; len(glue_paramKeys))):&lt;br /&gt;
                return pd[glue_paramKeys[number]].getdef()&lt;br /&gt;
            else:&lt;br /&gt;
                print (&amp;#039;glue_getParam: Error! %d out of range of attribute list&amp;#039; % number)&lt;br /&gt;
        else:&lt;br /&gt;
            pl = pd.values()&lt;br /&gt;
            if ((number &amp;gt;= 0) and (number &amp;lt; len(pl))):&lt;br /&gt;
                return pl[number].getdef()&lt;br /&gt;
            elif glue_verbose:&lt;br /&gt;
                print (&amp;#039;glue_getParam: Error! %d out of range of attribute list&amp;#039; % number)&lt;br /&gt;
    if glue_verbose:&lt;br /&gt;
        print &amp;#039;GLUE: Attribute list error&amp;#039;&lt;br /&gt;
    return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_setParam(id, value):&lt;br /&gt;
    pd = glue_getParamDict()&lt;br /&gt;
    if (pd != None):&lt;br /&gt;
        if pd.has_key(id):&lt;br /&gt;
            try:&lt;br /&gt;
                pd[id].__setvalue__(value)&lt;br /&gt;
            except AttributeError:&lt;br /&gt;
                if isinstance(pd[id], ptAttributeList):&lt;br /&gt;
                    try:&lt;br /&gt;
                        if (type(pd[id].value) != type([])):&lt;br /&gt;
                            pd[id].value = []&lt;br /&gt;
                    except AttributeError:&lt;br /&gt;
                        pd[id].value = []&lt;br /&gt;
                    pd[id].value.append(value)&lt;br /&gt;
                else:&lt;br /&gt;
                    pd[id].value = value&lt;br /&gt;
        elif glue_verbose:&lt;br /&gt;
            print &amp;quot;setParam: can&amp;#039;t find id=&amp;quot;,&lt;br /&gt;
            print id&lt;br /&gt;
    else:&lt;br /&gt;
        print &amp;#039;setParma: Something terribly has gone wrong. Head for the cover.&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_isNamedAttribute(id):&lt;br /&gt;
    pd = glue_getParamDict()&lt;br /&gt;
    if (pd != None):&lt;br /&gt;
        try:&lt;br /&gt;
            if isinstance(pd[id], ptAttribNamedActivator):&lt;br /&gt;
                return 1&lt;br /&gt;
            if isinstance(pd[id], ptAttribNamedResponder):&lt;br /&gt;
                return 2&lt;br /&gt;
        except KeyError:&lt;br /&gt;
            if glue_verbose:&lt;br /&gt;
                print (&amp;#039;Could not find id=%d attribute&amp;#039; % id)&lt;br /&gt;
    return 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_isMultiModifier():&lt;br /&gt;
    inst = glue_getInst()&lt;br /&gt;
    if isinstance(inst, ptMultiModifier):&lt;br /&gt;
        return 1&lt;br /&gt;
    return 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def glue_getVisInfo(number):&lt;br /&gt;
    pd = glue_getParamDict()&lt;br /&gt;
    if (pd != None):&lt;br /&gt;
        if (type(glue_paramKeys) == type([])):&lt;br /&gt;
            if ((number &amp;gt;= 0) and (number &amp;lt; len(glue_paramKeys))):&lt;br /&gt;
                return pd[glue_paramKeys[number]].getVisInfo()&lt;br /&gt;
            else:&lt;br /&gt;
                print (&amp;#039;glue_getVisInfo: Error! %d out of range of attribute list&amp;#039; % number)&lt;br /&gt;
        else:&lt;br /&gt;
            pl = pd.values()&lt;br /&gt;
            if ((number &amp;gt;= 0) and (number &amp;lt; len(pl))):&lt;br /&gt;
                return pl[number].getVisInfo()&lt;br /&gt;
            elif glue_verbose:&lt;br /&gt;
                print (&amp;#039;glue_getVisInfo: Error! %d out of range of attribute list&amp;#039; % number)&lt;br /&gt;
    if glue_verbose:&lt;br /&gt;
        print &amp;#039;GLUE: Attribute list error&amp;#039;&lt;br /&gt;
    return None&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
At the top of the file, where it says:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Tomahn(ptResponder,):&lt;br /&gt;
    __module__ = __name__&lt;br /&gt;
    __module__ = __name__&lt;br /&gt;
&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        ptResponder.__init__(self)&lt;br /&gt;
        self.id = 1022605&lt;br /&gt;
        self.version = 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change where it says &amp;quot;class Tomahn(ptResponder,):&amp;quot; to have YOUR Age&amp;#039;s name instead. This MUST be the SAME name as your .age file name. So if my Age is named Candy Island, and the .age file is Candy_Island.age, then I would change the above script to read:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class Candy_Island(ptResponder,):&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will also need to change the &amp;quot;self.id&amp;quot; number. This is a unique number that is like a serial number. Many times I&amp;#039;ll just use my Age&amp;#039;s sequence number, and add 3 more digits. So if my Age&amp;#039;s sequence number is 5883, I would make the self.id number 5883001.&lt;br /&gt;
&lt;br /&gt;
Once you have made, saved and added this file to your python .pak file for your Age and have placed copies of it in your Max Export folder with the other python files, you now need to add it to your Age.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Open up Max, and you can either just select an object you already have in your Age, or you can make a &amp;quot;Dummy&amp;quot; point like I did:&lt;br /&gt;
&lt;br /&gt;
[[File:Globalpyth1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Once you have decided where to put your python file, you need to add it. Here is what the roll out will look like:&lt;br /&gt;
&lt;br /&gt;
[[File:Globalpyth2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Make sure you put a check mark where it says &amp;quot;Make Global&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
That&amp;#039;s all you have to do. If you DO NOT do this, then you will have problems getting your python to work in your Age, like you will be able to click on a linking book or journal, but NOTHING will happen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return To: [[Andy&amp;#039;s Max Tutorials]]&lt;/div&gt;</summary>
		<author><name>AndyLegate</name></author>
		
	</entry>
</feed>