MatrixMoves
Playerclass plugin documentation for
MatrixMoves Beta 3
by Tuomo 'Tuco' Korva
http://www.planetunreal.com/reactor4
reactor_4@hotmail.com


Release Notes

This document describes the procedure to make pluginpackages for supporting new player classes in MatrixMoves Beta 3. Making the plugin package takes about 5minutes and requires a bit programming experience.

Supported classes

By default beta 3version supports the following player classes:
- All original UnrealTournament player classes
- All UT Bonuspack player classes
- Abbey, Alien Queen, Arab, AWolf, BobaFett, Dire, Drake, Gordon, Guardian, HellSpawn, Hunter, Lady Death, Lin Fang, Lobo, Lord Maul, Marine, Mask, Messiah, Obi-wan, Prowl, Q2Male, Ratamahatta, Rhino, Riot, Rumiko, SideSwipe, SolidSnake, Super Male, Unreal1Models, TekkBlade, Trinity, Troop, Valkyries and Yoshi.

MatrixMoves B3 uses a plugin type approach for supporting additional player classes. This means that you don't need any additional packages for playing MatrixMoves and it's easy to make new pluginpackages for player models which don't have MM support yet.

How to make a new playerclass plugin

There are two ways to make plugins:
I If the playerclass you want to support doesn't have any mod specific code (like Rumiko or Obiwan), you should add your subclass below MM_BaseMale or MM_BaseFemale. However, if the playerclass you want to support has mod-specific code (like Infiltration or U4e), you should add your subclass below the class you want to support. Look at the examples below to see how to make new pluginclasses.

Example 1. Making a plugin for Trinity player class

1. Make sure you have MatrixMoves and the unsupported player class installed to UT
OK, MatrixMoves Beta 3 and Trinity are both installed.

2. Open Unrealtournament\System\Unreal.ini file and add MatrixMovesBeta3, MMB3_PluginPack1 and the unsupported packages to the end of editpackages list
Open file in notepad. Search for editpackages and add the lines to the end of the list.
EditPackages=MatrixMovesBeta3
EditPackages=MMB3_PluginPack1
EditPackages=Trinity

3. Fire up UnrealEd and find the unsupported player class from the class hierarchy. Also click on the export all scripts.
Trinity seems to located in Pawn- PlayerPawn- TournamentPlayer- TournamentFemale-Trinity. I also export all the scripts.

4. Add a subclass to either MM_BaseMale or MM_BaseFemale depending on where the unsupported playe class was located.
Trinity is located under TournamentFemale so I'll use MM_BaseFemale.The class has some new code but it doesn't contain any mod-specific code. Right click on the MM_BaseFemale in the class browser, choose create new class, put MMB3_Trinityplugin as package name and MMTrinity as new class name.

5. Open the class you just created. Also open some other pluginclass that has been already created.
OK, MMTrinity and MMaqueen are opened in the editor.

6. Copy the code from an already ready pluginclass to the new class you created. Then open the UC file of unsupported class you exported earlier and copy/paste all the code excluding the model import code to your new class. You also need the default properties section.
I copy the code from aqueen class to Trinity class. Then I open the exported file in some text editor from F:\UT\Trinity\Classes\Trinity.uc and copy all the text from there to the trinity class open in UnrealEd2. After the copy I remove all the import commands from the class.

7. Modify the code in you new class in function PostBeginPlay so that the variables being initialized are the ones you just copied from the UC file.
Trinity has some own code for handling animations so I put it to the start of the class. To the end of the class I put the function PostBeginPlay and modify it so that it has the values of Trinity instead of Alien Queen. For example, I change the mesh to be loaded from aqueen.aqueen to Trinity.Trinity. The variables that Trinity doesn't have can be destroyed and the ones that Trinity has but the Alien Queen doesn't have I add as new ones.

8. Then I just hit compile and save the package.
Just press the compile button, then select the MMB3_TrinityPlugin package from list and press save selected packages.

9. Open Unrealtournament\System\MatrixMoves.ini file in some text editor. Add the original player class name to the first empty line in SupportedClasses. Then add the name of the class you created to the first empty line in PluginClasses.
Open file in notepad. Add the lines to the first empty line which in this case is after the cow class. The class name consists of package name and class name so for the original trinity class it'strinity.trinityi and for the plugin class it's MMB3_TrinityPlugin.MMtrinity.

SupportedClasses[0]=multimesh.tcow
SupportedClasses[1]=trinity.trinity
PluginClasses[0]=MMB3_PluginPack1.MMtcow
PluginClasses[1]=MMB3_TrinityPlugin.MMtrinity

10. You're done. Test if the plugin works in the game.

Example 2. Making a plugin for Infiltration player class

1. Make sure you have MatrixMoves and the unsupported player class installed to UT
OK, MatrixMoves Beta 3 and Infiltration are both installed.

2. Open Unrealtournament\System\Unreal.ini file and add both packages to the end of editpackages list
Open file in notepad. Search for editpackages and add the lines to the end of the list.
EditPackages=MatrixMovesBeta3
EditPackages=InfiltrationUT (Not sure if the Infiltration package name is really that !)

3. Fire up UnrealEd and find the unsupported player class from the class hierarchy
Infiltration player class seems to located in Pawn and the class name is INFUT_TMale1

4. Add a subclass for the unsupported player class and put it to a new package
Right click on the original class in the class browser, choose create new class, put MMB3_Infiltrationplugin as package name and MMInfUT_TMale1 as new class name.

5. Open MM_BaseMale class under Male1 and copy all the code from it to new player class you created
Copy/paste the code from MM_BaseMale to the MMInfUT_TMale1 class.

6. Compile code and save the new package.
Just press the compile button, then select the MMB3_Infitrationplugin package from list and press save selected packages.

7. Open Unrealtournament\System\MatrixMoves.ini file in some text editor. Add the original player class name to the first empty line in SupportedClasses. Then add the name of the class you created to the first empty line in PluginClasses.
Open file in notepad. Add the lines to the first empty line which in this case is after the cow class. The class name consists of package name and class name so for the original nali class it's multimesh.tnali and for the plugin class it's MM_BonuspackPlugin.MMtnali.
SupportedClasses[0]=multimesh.tcow
SupportedClasses[1]=InfiltrationUT.INFUT_TMale1
PluginClasses[0]=MM_BonusPackPlugin.MMtcow
PluginClasses[1]=MMB3_InfiltrationPlugin.MMInfUT_TMale1
(Not sure if the Infiltration package name is really that !)

8. You're done. Test if the plugin works in the game.


August 1st, 2000
Copyright Reactor 4 - 2000. All Rights Reserved.