Important! Please read the announcement at
Also! Please read the retirement announcement at

Dustin's Relto Page Tutorial

From UamWiki

Welcome here!

This tutorial assumes you're using 3dsmax rather than Blender, but it is possible with Blender too. For more info on the two, and also on getting starting with making Ages, see Creating Ages.

Creating the .age File

It is much like making a regular Age, but we'll need to make the .age file a little differently. Basically, we'll use the same values as Personal.age ("Personal" is Relto's filename), but we'll remove the psnlMystII page and add ours. Let's say that we want to call our page "DustinsFancyReltoPage". And we need to pick a *unique* Page number too. It must be over 100, but let's keep them less than 400 for now. I'll keep a list at UAM/ReltoPages/List, and if you would like to reserve some, please just let me know! For our example, we'll pick 100. (Again, you'll need a different one for yours.)

Here's the Personal.age file we'll put in 3dsmax's output folder:


Note that we've removed the two lines for "psnlMYSTII" and "psnlDustAdditions". Also note, that we added "UamPage-" out front, so that the full pagename is "UamPage-DustinsFancyReltoPage". That's important! (By the way, as with all 3dsmax .age files, make sure that you create them with a regular text editor and not PlasmaShop or similar Uru tools.) Feel free to copy this text and change the pagename and pagenumber to suit your own needs!

Working in 3dsmax

Now, in 3dsmax, when we create the PageInfo component as usual, we'll pick "Personal" and select our pages from the dropdown list. Now just model and export as you would for any other Age!

To get a feel for where Cyan's stuff is in Relto, you could try the /location command, or if you're feeling adventurous, importing Relto with an old Pyprp/Blender and exporting to .obj, then importing into 3dsmax! (But you must be careful not to export Cyan's meshes, so watch out for that ;)

Converting with Drizzle

When it comes to converting, you need to be using Drizzle29 or newer. On "The Art" tab of Drizzle, where you'll do the converting, you need to select the "Partial Age" option on "The Art". (It should warn you if you don't have this set.) And set the "Ages" field to "Personal". (Normally, Ages shouldn't have the "Partial Age" option set, but we need it for Relto Pages and Ahra Pahts shells, because those are pre-existing Ages, and we don't want to overwrite them!)

Testing in Uru

There are two ways to go about this: hardcoded and through UAM

Hardcoded Testing

Edit Uru's (not 3dsmax's) Personal.age file with some Uru tool. Add your line that looks like "Page=UamPage-DustinsFancyReltoPage,100" to the end and save it. You should now see your additions when starting up Uru. This is a little dangerous, because Uru might crash, but you should be able to remove that line from the .age file if that happens, and delete your new prp.

UAM Testing

This is probably the preferable way, but it requires you to create the Page Information File, as described here UAM/ReltoPages. This is just a .txt file saved in Uru's /img/UamRelto folder. In our case, it would be called "UamRelto--DustinsFancyReltoPage.txt". Be careful, because Windows will often try to hide a file's extension, so you might actually have a file called "UamRelto--DustinsFancyReltoPage.txt.txt" To check if this is the case, right-click the file and go to properties; this should show it's true name.

Anyway, once this file is created, you should just be able to link in and enable the page through your Relto book!


Please feel free to email me any questions or try asking on the forums!

If using Blender instead of 3dsmax

The above tutorial is intended for Cyan's Plugin + 3dsmax. If you are using Blender + Pyprp, it's more complicated, but still possible. If you're using 3dsmax, please ignore this section! I made this info a long while ago in an email, so I'll just add it here:

(Everything in [[ ]] is stuff that needs to be replaced.)

(It's done like an Ahra Pahts shell is, if you've done that before.) In Blender's Text window where you would set the SequencePrefix, change the page's name, page index(aka page number), and sequence prefix. E.g. let's say we're having this page called "UamPage-YourReltoPageName" with a page number of 177, you would have:

    sequenceprefix: 13
        -index: [[177]]
        name: UamPage-[[YourReltoPageName]]

(The sequenceprefix is set to 13, because that is Relto's sequence prefix.) You shouldn't have any other pages listed.

For each object you want to be included, add an int property called "page_num" and set it to [[177]]

Then, whenever you export, use File->Export->PyPrp->"All as full age, per-page textures (.age)"

This should create Personal_District_UamPage-YourReltoPageName.prp, which you can then copy to Uru's /dat folder.

Making it attainable shouldn't be too hard. You just need to call some python code. So for the object you want them to click on, you use some alcscript:

        pinned: true
            pythonfile: [[YourAgename_YourPythonfile]]
            region: [[YourClickableRegion]]

And then in [[YourAgename_YourPythonfile]].py, put:

actClickableObject = ptAttribActivator(1, 'Clickable object activator')
strObject = ptAttribString(2, 'Object string')
class [[YourAgename_YourPythonfile]](ptModifier,):
    def OnNotify(self, state, id, events):
        if ((id == and state):
            print 'Getting page...'
            import uam

(Everything in [[ ]] is stuff that needs to be replaced.)

And then it should work! Your Relto book should flash when you click it, which shows that the page has been registered. Then when you link to Relto, it should be in your Relto book.