MAT Automaton
Version: 1.0.2.0
By dB
Introduction
MAT Automaton is a framework that employs the Python 3 interpreter to allow MAT players to script the behaviour of their player. With Pyreal, MAT Automaton provides tight bindings with the Unreal Engine. As a result, it is possible to write code similar to Unreal Script with full access to Unreal Engine internals. MAT Automaton includes an in game command line console and a graphical menu. A sample aimbot/wallhack script is included, but users are encouraged to modify it or write their own.
Instructions
- Start the launcher via the shortcut in the start menu.
- If you are running Windows XP or Vista/W7 with UAC disabled, start the game and the injection will be performed automatically. Otherwise, MAT Automaton will ask you for the location of of your MAT executable (MAT.exe) (e.g. \Program Files\MAT\System\MAT.exe)
- Press END to access the menu.
- Press INSERT to access the console.
Notes
- The scripts are located in the directory "Scripts" accessible from the installation path and in the profile application data path "%AppData%\MAT Automaton\Scripts".
- For an introduction to Python refer to The Python Tutorial
- For a reference on the Unreal Engine refer to Unreal Wiki
I would love to see others contribute scripts, as the goal of this project is to see what types of creative things people come up with.
Here is a snippet of the included script, just to whet your appetite:
Code:
# Get required game objects
Canvas = canvas
PC = self.Viewport.Actor
AlphaBlended = self.AlphaBlended
Texture = self.Texture
# Reset the canvas
Canvas.Reset ()
# Draw the background
self.RenderPanel ( canvas )
# Calculate player location
PlayerLocation = PC.Pawn.Location
CenterLocation = Vector ( PlayerLocation[0], PlayerLocation[1], 0 )
# Gather some geometry about panel
Border = Vector ( self.Border, self.Border, 0 )
PanelSize = self.Size - Border * 2
PanelCenter = self.Position + Border + PanelSize/2
# Setup the colors
colors = {-1 : self.Colors [ 'self' ],
TEAM_Blue : self.Colors [ 'team_blue' ],
TEAM_Red : self.Colors [ 'team_red' ]}
# Find angle for transformation
CameraRotation = PC.CalcViewRotation
RotationRadians = -CameraRotation.Yaw * (math.pi/32768) + math.pi/2
# Render the pawn nodes
for Pawn in Master.Pawns ():
# Skip dead pawns
if ( Pawn.Health <= 0 ): continue
# Get team information
Team = -1 if Pawn == PC.Pawn else self.GetTeam ( Pawn )
# Calculate normalized marker location for pawn
PawnLocation = Vector ( Pawn.Location[0], Pawn.Location[1], 0 )
Marker = (CenterLocation - PawnLocation) / self.Radius
Marker = self****tate ( Marker, RotationRadians )
for i in [0, 1]: Marker[i] = max ( min ( Marker[i], 1 ), -1 )
# Calculate marker position on panel
Marker = PanelCenter + (Marker/2) * PanelSize
# Draw the marker on the panel
Canvas.DrawColor = self.Colors['shadow']
Canvas.SetPos ( Marker[0] - 3, Marker[1] - 3 )
Canvas.DrawTile ( AlphaBlended, 7, 7, 0, 0, Texture.USize, Texture.VSize )
Canvas.DrawColor = colors[Team]
Canvas.SetPos ( Marker[0] - 2, Marker[1] - 2 )
Canvas.DrawTile ( AlphaBlended, 5, 5, 0, 0, Texture.USize, Texture.VSize )
VirSCAN Results