Run a script from a script?

Sorry about the noobish question but how do I run a script from a script? I want to break up my project into modular parts by having a main script run sub scripts for characters, scenes and game modes.

If I understand you correctly, you probably want the Python “import” statement. This allows you to pull into a script some or all of another’s methods, classes, variables, etc. Let me give you a few simple examples:

(I believe the following to be accurate; my apologies if any of it is in error!)

First, basic importation: importing everything from one module into another. Let’s say that we have two script files, cat.py and mew.py:

cat.py

class Cat():
    def __init__(self):
        self.sound = "meow"

    def makeSound(self):
        print self.sound

mew.py

# Here we import cat.py. Importing "*" tells Python that we want everything
from cat import *

# Now we can use the class that we created in cat.py!
myCat = Cat()
myCat.makeSound()

Second, specific importation: importing only certain elements. Again, let’s say that we have two files, “cat.py” and “mew.py”:

cat.py

class Cat():
    def __init__(self):
        self.sound = "meow"

    def makeSound(self):
        print self.sound

class NotACat():
    def __init__(self):
        self.shape = "not like a cat"

    def doSomething(self):
        print "No!"

mew.py

# Here we import the "Cat" class from cat.py.
from cat import Cat

# We can now use the "Cat" class, but not the NotACat class
myCat = Cat()
myCat.makeSound()

# This should fail:
myNotACat = NotACat()

Finally, you can also import the file as itself, which allows you to specify which file a given class, variable, etc. is to be taken from. This is perhaps particularly useful if you have multiple files with classes, variables, or whatever of the same name (perhaps as a result of using multiple third-party libraries), and want to remove the ambiguity. Again, using our two files:
cat.py

class Cat():
    def __init__(self):
        self.sound = "meow"

    def makeSound(self):
        print self.sound

mew.py

# Here we import cat.py.
import cat

# Now we can use the class that we created in cat.py!
# Note the prefix before "Cat()"!
myCat = cat.Cat()
myCat.makeSound()

There is a caveat: the above assumes that all of the files in question are in the same folder. If you want a different arrangement–such as importing a file from a sub-folder–then there’s a little more to be done. For the sake of brevity I’ll not get into that in this post, save to mention that I think that there are examples on the forum somewhere.