How to Create Your Own Mods

Introduction To Modding

This guide is also available here: http://grimmeclipse.wikia.com/wiki/Creating_Your_Own_Mods

Nowadays, gvk's mod allows the community to add their own things to RWBY: Grimm Eclipse. And many are doing so. If you would like to make your own things too you can read this tutorial. Choose the topic you want to learn about and read it.

You might have cool and fancy ideas, but don't aim too high on your first mod. Start small and expand from there.

Distribution of fan made stuff is usually done through the steam modding forum for RWBY: Grimm Eclipse.

It can also be done through the GameBanana page: http://gamebanana.com/games/5736

(You can of course use both sites, if you like...)

Any questions can be directed to the steam user gvk

(To clarify, any question what so ever. "Why won't this texture load", "How do I do this", "My Unity doesn't work", "What is life?!", "Is X possible", "This isn't working, can you help me", "Is there a function for...", "Could you go through this in depth", ...)

How To Package Your Mod

Just so people don't do it in the completely wrong way.

Texture packs / Sound packs

When you got your folder with your textures or sounds, then you zip the folder with those changed files. Nothing else, nothing more, just the folder with your changed files.

All the other mods (model, maps, missions, plugins, ... etc)

As for stuff other than texture packs and sound packs, you can either zip your folder with your file(s) or just the files themselves.

Texture Packs

How to make your own texture pack:

Tools needed: Some form of image/picture/texture editing program

(e.g. Paint.net / Gimp / Photoshop / paint ...)

To start of, the in-game textures could come in handy but that is completely up to you. Here are download links for the textures:

Character only textures (247 files):

 https://drive.google.com/open?id=1fGVxUpadCmO2Fzum-FdebBeTmX9k-79H

Most common textures (668 files):

 https://drive.google.com/open?id=1n15E1po0mO1cyZbgYqNjirL6KRApGEqg

All textures (1GB zip - 1601 files):

 https://drive.google.com/open?id=1TXo5UyFDUZwfhuFOt0x2jlv4nWfqDglL

If you only want to do character edits then only download those.

Otherwise: Start with downloading the common textures[drive.google.com] , if you don't find the texture you want to change in there then continue to All textures[drive.google.com] . Once downloaded, continue the search.

(or ask what the name the texture has)

Find the texture you want to change, e.g. "Weiss_01_PSD" - the model texture for Weiss. Then move the file containing the texture you want to change to your own folder where you will keep the textures for your texture pack (Do not move all textures in there!, if so the texture loader will load every single texture, which are thousands - You only want the texture loader to load your changed files!). It is good to keep a backup of the original so you can look at it again if needed. The name needs to be the same, else the loader won't know what texture to replace your texture with. The file name works as an identifier for the texture.

Now you can open the file in your image/picture editing program and start editing the texture. Once done be sure to save it as a normal format such as .png so the texture loader can understand the file. When you have changed the textures you want to change, then you can install the texture pack (if you are unsure how to see How To Install Texture Packs[grimmeclipse.wikia.com] ). Note: You cannot change HUD during character select but once playing the level the HUD will be changed.

If you need to change particle color, you can do that as well. In your folder with your changed textures make a file named "ParticleColorData.txt" (a .txt file).

In there you can change the particle color through this format: [name]:[r],[g],[b] where [name] is the name of the particle, [r],[g],[b] is the RGB values of the color eg 255,255,255 would be white and 255,0,0 would be red. For particle names see here[pastebin.com] .

If you need help you can download other texture packs and look at them to get a clue or ask in the modding forum.

If you want to add a description to your texture pack, make a file named "description.txt" to your texture pack folder and write stuff in that file. The things you write will popup when you hover over your texture pack in the game.

Animation of textures

If you got multiple textures that you want to show in sequence (e.i. animation), then it is quite easy to do.

Example, animated ruby: https://drive.google.com/open?id=18XY1lgigBPU0a6M2Eb2s7GXKwKmOUELf

The file animations.txt will be read, and the format for setting up animations in it is:

{ [what texture to be animated name], [next frame texture name], [next frame], ... } [animation speed (ie. seconds per frame)]

Tips:

Reload textures ingame: You might want to see texture edits directly in the game, to do that you'll need to go to your texture files inside the game directory. They are located at:

[Game Install Folder]/RWBY_GE/rwby-ge_Data/TexturePacks/[Texture Pack Name].

Once there you can edit the texture you want to change and save it. Once saved you in game type the command "/reloadTextures" this will reload the texture with the changes you made. (It will only reload textures from that texture pack inside game files, therefore you have to edit your textures there for the change to take place). If you like you can bind that command with "/bind k /reloadTextures" now everytime you press K-key it will reload the textures to see your texture changes directly in the game.

Terrain texture names can be found here: https://pastebin.com/cksVKh6S

It is advised to enable mipmap setting for you texture pack if you are editing that. (to avoid distortion)

There might be multiple textures looking the same, but only one of them is used in the game usually.

If you experience odd color deviations (very dark/very light) that is not pressent in your texture but is in the game, then you can tell the mod to ignore meta-gamma values of the texture. Just change the file extention from PNG/png to "pNg" (yes capital N and small p,g)

For neutral lightning use chat command: /gfx light neutral

Might remove normal maps effect.

Sound Packs

How to make your own sound pack:

The only thing you need is the audio/sound files you want to replace the in-game sounds with.

Tools: Optional: Audacity.

Note: .mp3 format is not supported. Some of the formats supported are: .wav and .ogg.

The format .OGG (or vorbis) is recommended. (both for mod reasons and file size)

You may use your own converter (such as VLC) or (if you want) here is alink to an online tool[convertio.co] and another one[online-audio-converter.com] .

All supported formats: Ogg, WAV, XM, IT, MOD, S3M

In-game audio files for download here.

This is similar to texture packs, the name works as the audio identifier. So for the audio loader to know what sound to replace it needs the correct name, hence the file name cannot be changed, else it will not load.

You find the audio file that contains the audio you want, move the file to your sound pack folder and replace it with your audio file (same name). Then just install your sound pack and try it out.

Tips: If you wonder what the name is for a sound use /printSound

It will print the name of the playing sounds in the output_log file.

Here[drive.google.com] is an example sound pack.

Model Packs

How to make your own model pack:

This is definitely not as easy as the other resource packs. I suggest to read through all this one time (or two) before starting.

You will need to know some basics about Unity. How to move around in Unity, how to move objects, how Assets window works, prefabs, importing models, and how the hierarchy works (that kind of basics). There are plenty of tutorials on the internet, just do a google search. (takes less than 30 minutes to learn the very basics)

Tools needed: Unity3D 5.4.1[unity3d.com] (as the game uses the same engine, version is important)

Unity Tool: you'll need this script[drive.google.com] (backup here[pastebin.com] ) in "Editor" folder inside Assets window inside the Unity program. (If there isn't an "Editor" folder in that asset explorer/window create one)

Notice: That it has variables "IsForWindows" and "IsForMac", you will have to edit the script to build for different platforms when you are done. (A mac user cannot use a windows build!)

You will also need to add a folder “AssetBundle” in Assets inside Unity.

{ There is a unity package here: Model Importing Tool

That automates part of the process, and makes it easier. You can try it out if you like. }

You will need a model to replace the other model with.

In-game models for download rwby here[drive.google.com] and jnpr here[drive.google.com] .

If you want animations to work you will also need bones for your model (that is like parts to separate arms from shoulder - it should not be just an immovable lump).

Unity can handle many types of models, and it is easy to import them.

Take a look at their documentation[docs.unity3d.com] .

• Download and import the in-game default models. (link above)

• Then place them in your world, and scale them to 37 in each axis (x,y,z).

Now you have to decide whether you want your model with or without animations in the game.

(The model loader uses the in-game animations - no custom animations needed)

Without animation (simple)

In Unity:

• Replace the root name of your custom model with either of the root names for the in-game models but with a "M_" Like this: M_Bip001 or M_Weiss Root or M_Blake 1 or M_Yang Root .

Then the model loader will apply your custom model root to the appropriate in-game model.

To continue the tutorial go to "Make a pack from Unity model into RWBY" part bellow.

With animations

In Unity:

Note: you probably need to pose your model like the game model is posed, else animations might be wrongly translated from game to custom model.

• I suggest putting the models next to each other or inside of each other, make one a little transparent so you can easily see how they are posed.

• Then pose your custom model like the in-game default model you downloaded (you don't have to be super precise when posing your model) (if you want, you can re-scale individual parts of your custom model to better fit the in-game model).

• Once done with the posing, make a copy of your now posed model/gameobject and move the copy somewhere else so you can go back if something goes wrong (Do a backup - you don't want to redo the stuff).

• Now put both models (custom and default) at 0,0,0 in world space. (so they overlap, you may need to change Y-cord a little on the custom model so they are at the same height.)

Now there are two ways of doing this with animations. I recommend the first way (A).

A (recommended way of doing it)

• You move each corresponding bone to the bone of the default model.

Eg. Your custom model thigh to the model thigh of the original so it becomes a child in the hierarchy.

• Begin with the innermost child, eg toes and fingers, and work upward from there.

Example: Move "Custom Model Left Toe" to "M_Weiss L Toe0" (note that the original model part has M_ in front, rename it if there is no 'M_' infront )

Then move: "Custom Model Left Foot" to "M_Weiss L Foot"

And continue upwards like that (calf, thigh, ...), then when you come to the pelvis start with the fingers and then hand and work upward from there. Until you have all bones matched.

Make sure the original in-game model bone has an “M_” at the start, if not add it to the name.

(No need to rename your custom model part, only the original model parts)

You also need to move every other part that is part of your custom model to the original model.

(eg if you have something like antenna it should also be moved to the original model).

Here is an example of this: http://imgur.com/N4ZyVR5

Here is another example: http://imgur.com/z8UuBsh

-[End of A, go to 'Make a pack from Unity model into RWBY']-

B (alternative way to do it / not recommended way of doing it)

You name each corresponding bone in Unity like the original model bone is named but with an “M_” at the start (if it already got that you don't need to put it there again).

Like so: M_[default model bone name]

Example: "Custom Model Left Foot" needs to be renamed "M_Weiss L Foot".

-[End of B]-

Make a pack from Unity model into RWBY

You need to do this final step for so the model loader can load the custom model that you have inside Unity.

• Now, disable the original model mesh so it is not active and not visible.

(for Weiss, the name is "Weiss Mesh" and that should be disabled).

Disable weapon model as well.

• Only your model mesh should be visible. Make sure your object is at 0,0,0. Make a prefab of the object you now got (the object that is the original model but with your model inside).

• Click the prefab, and in the bottom right corner, there is a little gray box.

• Add your prefab to an assetbundle (right corner).

• The name of the assetbundle will be the name of the pack.

• Now, in Unity, at the top tabs, Assets -> Build AssetBundles.

• Then in your Assetbundle folder (you made earlier), you will find your model pack file, it is a file with no extension with the same name as your assetbundle name.

• Finally, you can install your pack (that file in your Assetbundle folder) and use your models in the game.

Shaders (free to use):

Simple Unlit: download[drive.google.com]

Simple Unlit Cutout: download[drive.google.com]

Vertex Lit with transparency and shadow: download[drive.google.com]

Or use Standard with Emission set to 0. But I recommend simple unlit for this game.

Accessories

How to make your own accessories pack:

This is definitely not as easy as the other resource packs. It is similar to model packs.

You will need to know some basics about Unity. How to move around in Unity, how to move objects, how Assets window works, prefabs, importing models, and how the hierarchy works (that kind of basics). There are plenty of tutorials on the internet, just do a google search. (takes less than 30 minutes to learn the very basics)

Tools needed: Unity3D 5.4.1[unity3d.com] (as the game uses the same engine, version is important)

Unity Tool: you'll need this script[drive.google.com] in "Editor" folder inside Assets. (make "Editor" folder if you haven't)

Notice: That it has variables "IsForWindows" and "IsForMac", you will have to edit the script to build for different platforms when you are done. (A mac user cannot use a windows build!)

You will also need to add a folder “AssetBundle” in Assets inside Unity.

When you make your model, remember that this game is not so well made. So I don't recommend to use any more than 15000 vertices. (500-8000 is a good range).

Import your models/accessories in Unity. Make sure you apply textures and a material/shader.

For size reference, the player characters are about one standard Unity cylinder of height.

Now to make the models compatible with the game/accessories loader:

• Make sure your object is at 0,0,0. Make a prefab of the object you now got (the object that is the original model but with your model inside).

• Click the prefab, and in the bottom right corner, there is a little gray box.

• Add your prefab to an assetbundle (right corner).

• The name of the assetbundle will be the name of the pack.

• Now, in Unity, at the top tabs, Assets -> Build AssetBundles.

• Then in your Assetbundle folder (you made earlier), you will find your model pack file, it is a file with no extension with the same name as your assetbundle name.

• Finally, you can install your pack (that file in your Assetbundle folder) and use your accessories in the profile menu.

Language

Tools: plain text editor.

Here is the english translation file: https://drive.google.com/open?id=1BaXE866sKR4O0NG14TtN6RUszPFcGQea

Use the english translation file as a template. And translate the phrases in that file.

The name of the file will be the language name.

Put the file in [Game installation folder]\RWBY_GE\rwby-ge_Data\LanguagePacks

Then when you start the game, you can pick that new language in normal settings menu.

Here is an example language I made from the template[drive.google.com] above.

Example language: https://drive.google.com/open?id=1IqcX0wrGx4g1Zp320PETdedjCu9Br_oZ

Custom Maps

How to make your own map/level for this game:

You will need to know Unity, how to use it and stuff. You don't need to know any code, just how to use Unity - that is how to make a world and such.

Tools needed: Unity3D 5.4.1[unity3d.com] (as the game uses the same engine, version is important)

Model tools: this is optional, but if you want to create your own model: I recommend Blender, of course anything you like works too.

Unity Tool: you need this script[drive.google.com] in "Editor" folder inside Assets window in Unity program. (create an "Editor" folder if there is none)

You need to add a folder “AssetBundle” in Assets inside Unity.

Now you make your scene with all your models, textures and stuff. Once done make sure the scene is saved in Assets. Click the scene, in the bottom right you will see a gray box, Add your scene to a new assetbundle. This new assetbundle must only contain the scene, nothing else! Now in the top of Unity: Assets -> Build AssetBundles. In your Assetbundle folder (you made earlier) you will find your scene/map/level file which is the same as your assetbundle name. You can go ahead and install this file in you ModMaps folder.

No need to add a camera to the level. That is done by the game.

Important:

- All surfaces/objects that the player character should be able to stand on needs to be on layer 8 in Unity. Add layer "Terrain" on User Layer 8. Mark the objects with that layer.

- If Grimm should be able to walk in your scene you need a NavMesh

Unity: Window -> Navigation tab. Then click build. (once done you should see some blue areas).

- Image for the map should be named "[assetbundle name]-img" (jpg/png file) and be 1392x835

For Survival mode support:

Create an empty GameObject named "SurvivalSpawnPoints". All children to that object will be spawn points for the mod. (recommended to only use empty game objects for spawn point). The mod will loop through the positions and use them as spawn points. (The transform of the object represents the position and rotation).

Tip: There are cool tools available[www.mapcore.org] to help you make a map.

Map scripts:

This part covers running code inside the map. This may be skipped if you don't have any scripts/code you want to include.

Unity does not include any scripts inside your assetbundle file!

Managed programming languages are supported. For example the popular C# language, that I recommend using.

You will have to create a .dll file, in eg Visual Studio, containing the scripts you want to use and inside that dll file add your custom scripts to the game objects. You create a class named "Initializer" in default namespace (that means none), the mod will look for that class and execute the method 'public static void Initialize()'. That method is your starting point, from there you can add and change stuff on your map, such as adding scripts to game objects or adding stuff to the player.

Your code has to be in .NET 3.5 framework, else it will not work since the game uses that version (and the mod will only load that version). Go to your settings in your project and change that. Also, the Assembly name has to be in this format: [scene name]-comp.

I recommend setting your build output path to your ModMaps folder.

It could come in handy to reference the dlls UnityEngine and Assembly-CSharp (and UnityEngine.UI), they are located at "[Install folder for RWBY]\RWBY_GE\rwby-ge_Data\Managed\". It is good to reference them right away so you don't get confused later on, when you'll need them. You can use the gvkModAPI dll if you need to access stuff from the game. Make sure every dll you reference is not copied: http://imgur.com/GEvYcyJ

Here [drive.google.com] is an example project.

Custom Missions

How to make your own missions for this game:

You create your missions by programming. (Making a dll file)

Tools needed: IDE, eg Visual Studio for your code.

Managed programming languages are supported. For example the popular C# language, that I recommend using.

Make a class library project. Your code has to be in .NET 3.5 framework (or lower), else it will not work since the game uses that version (and the mod will only load that version). Go to your settings in your project and change that. Assembly name can be whatever you like. I recommend setting your build output path to your Missions folder.

Add these dll files in your references to you IDE (visual studio): UnityEngine.dll, UnityEngine.UI.dll, Assembly-CSharp.dll and importantly gvkMissionsMod.dll, they are all located at "[YouriInstall folder for RWBY]\RWBY_GE\rwby-ge_Data\Managed\". It is good to reference them right away. You can add reference to gvkModAPI.dll if you need to access stuff from the game. Make sure every dll you reference is not copied: http://imgur.com/GEvYcyJ

Start of by making a class that extends "gvkMissionsMod.MissionsMod.Mission". And make a constructor like this:

public ExampleMission() : base(NAME, DESCRIPTION) { // set name and description for mission MapName = "Emerald_Forest_01"; // sets the level for the mission }

And then the method "public override System.Collections.IEnumerator Start()" // Executed at mission start.

From there you can do what you want eg, spawn enemies and stuff. Check out the gvkModAPI functions.

Here [drive.google.com] is an example project.

Plugins

How to make your own plugins for this game:

You create your plugins by programming. (Making a dll file)

Tools needed: IDE for your code, (for example Visual Studio).

Managed programming languages are supported. For example the popular C# language, that I recommend using. (this guide will not teach any coding, go to youtube for that)

Make a class library project. Your code has to be in .NET 3.5 framework, else it will not work since the game uses that version (and the mod will only load that version). Go to your settings in your project and change that. Assembly name can be whatever you like. I recommend setting your build output path to your Plugins folder.

I suggest starting by referencing the dlls UnityEngine and Assembly-CSharp and UnityEngine.UI, they are located at "[Install folder for RWBY]\RWBY_GE\rwby-ge_Data\Managed\". It is good to reference them right away, so you can use them when you need them. You can use the gvkModAPI dll if you need to access stuff from the game. Make sure every dll you reference is not copied: http://imgur.com/GEvYcyJ

Make a class with a name ending with "Plugin". Make a "public static void Start()" and "public static void Stop()" method. The mod will call these when the plugin is activated and when it is deactivated. Check out the gvkModAPI functions that can help you.

Example project.[drive.google.com]

I can provide another more interesting plugin example if wanted.

-----------------------------------------------------------

Want something to be explained better, or is it missing something, just comment below.

And as always, any questions about anything is welcome :)

Feel free to add me as a friend.

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=954097543					

More RWBY: Grimm Eclipse guilds