How to make an image replace or a reskin mod?

From Academia: School Simulator
Jump to: navigation, search



  1. Locate Academia's installation folder. If you bought the game through Steam, you can follow this guide.
  2. Open the file at {Academia Install Folder}/Academia_Data/StreamingAssets/BaseGame/Data/TileSpriteMapping.xml using your favorite text editor. (If you're not familiar with XML, you can look at the quick primer here.)
  3. This file contains all the mapping of the images used in the game. Every Entry element has the following attributes:
    • id - Used by the game internally to identify such image
    • streamingPath - The path of the actual image file relative from {Academia Install Folder}/Academia_Data/StreamingAssets folder. For example, if we look at an entry <Entry id="BrickWall" streamingPath="BaseGame/Tiles/Wall/WallTextureBrick.png" />, you can browse to {Academia Install Folder}/Academia_Data/StreamingAssets/BaseGame/Tiles/Wall and see the file WallTextureBrick.png right there.
    • pack - Whether or not the image will be packed. This is used internally. No need to specify if the original entry doesn't have it.
  4. You're not going to edit this file. Rather, you use this file as reference on what image to reskin and where to find them.
  5. On the mod folder that you've set up, there's a default TileSpriteMapping.xml file under Data folder.
  6. To replace images with your own version:
    • Provide you own rendition of the images and save them under your mod folder. You can organize your images through subfolders.
    • You specify the entries that you want to replace in Data/TileSpriteMapping.xml, but this time you replace the streamingPath attribute with the path of your image relative from your mod folder.
    • For example, you're looking at this entry and you want to change it: <Entry id="TableDown" streamingPath="BaseGame/Tiles/Objects/TableCommonDown.png" />
      • To see the original image of this entry, browse to {Academia Install Folder}/Academia_Data/StreamingAssets/BaseGame/Tiles/Objects/TableCommonDown.png.
      • We suggest you copy this file to your mod folder. Let's say in your mod folder, you want to organize things and you want to place object images to a folder named Objects. You make this folder and copy the file here.
      • You can open the image file in your favorite image editing software and make your own rendition of the image. Say you renamed it to CustomTableCommonDown.png.
      • Next is you will need to edit Data/TileSpriteMapping.xml in your mod folder. You specify:
        <Entry id="TableDown" streamingPath="Objects/CustomTableCommonDown.png" />
      • At this point, you can test your mod if it did replace the image you intended to replace.
      • You can replace as many images as you want and you can specify as many entries as you want in your Data/TileSpriteMapping.xml like this:

  <Entry id="TableDown" streamingPath="Objects/CustomTableCommonDown.png" /> 
  <Entry id="TableLeft" streamingPath="Objects/CustomTableCommonLeft.png" />

  <Entry id="LockerDown" streamingPath="Objects/CustomLockerDown.png" />
  <Entry id="LockerLeft" streamingPath="Objects/CustomLockerLeft.png" />
  <Entry id="LockerUp" streamingPath="Objects/CustomLockerUp.png" />




  • When your mod is installed, the game replaces the default entries with the entries you specified in TileSpriteMapping.xml. The game looks for your mod's folder and loads the specified images relative to this path. So make sure that the image paths are specified correctly.
  • Do not change the size of the image when making your own version. What you can do is copy the original image to your mod folder and edit that image.
  • A tile in the game translates to 128x128 pixels. However, there may be some images that doesn't follow this size standard. Some images may be 128x196. It's best to follow the image size of the original image.
  • Do not change the id attribute, or else the game will never replace the image.
  • Ensure that the pack attribute is the same as the original entry. If it was not specified in the original, then don't specify it in your entry as well.

Wall Images


  • Each wall has 16 modes, each showing how they are connected with neighboring tiles. All 16 modes are placed in a single 512x512 image. Each wall image then is 128x128 (occupies a tile).
  • While editing a wall image, you can overlay a ruler that subdivides the image into 4 rows and 4 columns.


Generic Characters

These are characters that are procedurally generated. They are composed of a head/hair, face, and body. Each generic character is generated by choosing a random head/hair, face, and body.


Head/Hair is composed of a set of four images. These are the different orientations for Down, Right, Up, and a DownBlink (image for closed eyes). An example of this set of entries is:

   <Entry id="StudentHairM1Down" streamingPath="BaseGame/Sprites/Characters/StudentHairM1Down.png"/>
   <Entry id="StudentHairM1DownBlink" streamingPath="BaseGame/Sprites/Characters/StudentHairM1DownBlink.png"/>
   <Entry id="StudentHairM1Right" streamingPath="BaseGame/Sprites/Characters/StudentHairM1Right.png"/>
   <Entry id="StudentHairM1Up" streamingPath="BaseGame/Sprites/Characters/StudentHairM1Up.png"/>

The entries above belong to a particular head/hair. All of these images must be altered if you want to replace this head/hair. You'd also need to add these to your mod's TileSpriteMapping xml file. For example:

   <Entry id="StudentHairM1Down" streamingPath="Characters/AlienHairM1Down.png"/>
   <Entry id="StudentHairM1DownBlink" streamingPath="Characters/AlienHairM1DownBlink.png"/>
   <Entry id="StudentHairM1Right" streamingPath="Characters/AlienHairM1Right.png"/>
   <Entry id="StudentHairM1Up" streamingPath="Characters/AlienHairM1Up.png"/>

Like heads, faces are composed of a set of four images - Down, Right, Up and a DownBlink. An example is:

   <Entry id="StudentFaceF1Down" streamingPath="BaseGame/Sprites/Characters/StudentFaceF1Down.png"/>
   <Entry id="StudentFaceF1DownBlink" streamingPath="BaseGame/Sprites/Characters/StudentFaceF1DownBlink.png"/>
   <Entry id="StudentFaceF1Right" streamingPath="BaseGame/Sprites/Characters/StudentFaceF1Right.png"/>
   <Entry id="StudentFaceF1Up" streamingPath="BaseGame/Sprites/Characters/StudentFaceF1Up.png"/>

The entries above belong to a particular face. All of these images must be altered if you want to replace this face. You'd also need to add these to your mod's TileSpriteMapping xml file. For example:

   <Entry id="StudentFaceF1Down" streamingPath="Characters/AnimeFaceF1Down.png"/>
   <Entry id="StudentFaceF1DownBlink" streamingPath="Characters/AnimeFaceF1DownBlink.png"/>
   <Entry id="StudentFaceF1Right" streamingPath="Characters/AnimeFaceF1Right.png"/>
   <Entry id="StudentFaceF1Up" streamingPath="Characters/AnimeFaceF1Up.png"/>

A body is composed of a set of three images. These are for the orientations Down, Right, and Up. An example of this set is:

   <Entry id="StudentBodyF1Down" streamingPath="BaseGame/Sprites/Characters/StudentBodyF1Down.png"/>
   <Entry id="StudentBodyF1Right" streamingPath="BaseGame/Sprites/Characters/StudentBodyF1Right.png"/>
   <Entry id="StudentBodyF1Up" streamingPath="BaseGame/Sprites/Characters/StudentBodyF1Up.png"/>

Each set of 3 belong to a particular body. All of these images must be altered if you want to replace such body. You'd also need to add these to your mod's TileSpriteMapping xml file. For example:

   <Entry id="StudentBodyF1Down" streamingPath="Characters/SpaceStudentBodyF1Down.png"/>
   <Entry id="StudentBodyF1Right" streamingPath="Characters/SpaceStudentBodyF1Right.png"/>
   <Entry id="StudentBodyF1Up" streamingPath="Characters/SpaceStudentBodyF1Up.png"/>

Special Characters

These images are not created procedurally. Each one is composed of a set of four images - Down, Right, Up, and DownBlink. Each image already has all the head, face, and body embedded in them. A sample entry is the following:

   <Entry id="AristotleDown" streamingPath="BaseGame/Sprites/Characters/AristotleDown.png"/>
   <Entry id="AristotleDownBlink" streamingPath="BaseGame/Sprites/Characters/AristotleDownBlink.png"/>
   <Entry id="AristotleRight" streamingPath="BaseGame/Sprites/Characters/AristotleRight.png"/>
   <Entry id="AristotleUp" streamingPath="BaseGame/Sprites/Characters/AristotleUp.png"/>

Usually, there's no need to replace these characters as they are "special". But if you want to, you can still do it. Make a replacement image for all four images and add them to your TileSpriteMapping as well. For example:

   <Entry id="AristotleDown" streamingPath="Characters/ZombieAristotleDown.png"/>
   <Entry id="AristotleDownBlink" streamingPath="Characters/ZombieAristotleDownBlink.png"/>
   <Entry id="AristotleRight" streamingPath="Characters/ZombieAristotleRight.png"/>
   <Entry id="AristotleUp" streamingPath="Characters/ZombieAristotleUp.png"/>

Goons and the unique principals are implemented like special characters.


Pets are implemented like special characters but they have 3 sets of four images for different states of moving, sitting, and sleeping. For example, the following entries is for a single dog:

   <Entry id="BlackDogMoveDown" streamingPath="BaseGame/Sprites/Characters/BlackDogMoveDown.png"/>
   <Entry id="BlackDogMoveDownBlink" streamingPath="BaseGame/Sprites/Characters/BlackDogMoveDownBlink.png"/>
   <Entry id="BlackDogMoveRight" streamingPath="BaseGame/Sprites/Characters/BlackDogMoveRight.png"/>
   <Entry id="BlackDogMoveUp" streamingPath="BaseGame/Sprites/Characters/BlackDogMoveUp.png"/>
   <Entry id="BlackDogSitDown" streamingPath="BaseGame/Sprites/Characters/BlackDogSitDown.png"/>
   <Entry id="BlackDogSitDownBlink" streamingPath="BaseGame/Sprites/Characters/BlackDogSitDownBlink.png"/>
   <Entry id="BlackDogSitRight" streamingPath="BaseGame/Sprites/Characters/BlackDogSitRight.png"/>
   <Entry id="BlackDogSitUp" streamingPath="BaseGame/Sprites/Characters/BlackDogSitUp.png"/>
   <Entry id="BlackDogSleepDown" streamingPath="BaseGame/Sprites/Characters/BlackDogSleepDown.png"/>
   <Entry id="BlackDogSleepDownBlink" streamingPath="BaseGame/Sprites/Characters/BlackDogSleepDownBlink.png"/>
   <Entry id="BlackDogSleepRight" streamingPath="BaseGame/Sprites/Characters/BlackDogSleepRight.png"/>
   <Entry id="BlackDogSleepUp" streamingPath="BaseGame/Sprites/Characters/BlackDogSleepUp.png"/>

If you want to edit, this particular pet, you have to provide all 12 images and add them to your TileSpriteMapping file, too.

More Guides

Here are some PSD files to help you out with making mods:

Where to go from here?