Chrono Ark

Chrono Ark

Not enough ratings
Chrono Ark - Modding Tutorial
By Seer
This is a guide designed to introduce you to mod creation for Chrono Ark. This will cover how to use the built-in interface for modding as well as customizing behaviors through writing your own c# scripts.
2
   
Award
Favorite
Favorited
Unfavorite
Getting Started - Using Builtin Modding Tools
To begin start up Chrono Ark. Once arriving at the start menu, click the button for Workshop.



After the Workshop menu opens, in the upper left corner, there is a button with the text "Mod Editor" Click this button.



The Modding Screen
This section will overview the Modding Screen and its components.

First Step:
To the upper right corner, you should see a Text box and to its right a button displaying the text "Create New Mod".



Enter a desired name for your Mod into the text box. Try to name the mod appropriately so you can easily identify it. Additionally do not use spaces. Replace spaces with an Underscore "_". It's OK to create a test mod with a name like "MyMod_Test_01". You can use this mod as a means to experiment with modding, and when you're comfortable with what you've learned, you can try to create specific mods.

Once you've decided on a name, click the create mod button. A dialog will pop up.



This dialog is informing you that if you are currently working on a mod with uncommitted changes, that you will lose your unsaved changes. Make sure to read dialog prompts carefully. In this case, you shouldn't already have an open mod definition, so proceed with clicking Confirm.

The screen is then populated with these items.



Here's an overview of each item:

Mod id: This is the value you entered for your mod name. It's used as an identifier which is why underscores are used instead of spaces. This is an unchangeable value.

Title: This will be the displayed name of your Mod. For example "My Mod Test 01". It is OK to use spaces here.

Author: Your name or relevant moniker would go here.

Version: The current version of your mod. This is a field to keep record of which version of your mod is most current. You'd update this when you make changes to your mod.

Description: A description of your mod and its functionality.

Change Mod Cover: This is where you can associate a main image for your mod description. We'll touch more on that in detail later on when we discuss publishing a mod to the Workshop.

Fill in the fields and once you've done that, click the save button at the bottom right of the screen.



Make sure to save frequently. Losing unsaved progress can be extremely infuriating, so do yourself the favor and adapt a habit of saving, even for small changes.

The Modding Screen Con't
After setting up the basic info, we're going to navigate to the Script window which can be accessed by click the Script button to the left side of the screen.



You should then see this screen.



This screen is where you build your mod. For this part, you will have to download an IDE known as Visual Studio. There's an express edition which can be used at no cost. It's a version meant for use as a learning tool.

To install Visual Studio Express, you can follow this link: https://visualstudio.microsoft.com/vs/express/

Use the documentation to assist you with installation if needed.

After installing Visual Studio, we're going to set the value for Path of MSBuild.exe.

1. Click Choose
2. Navigate to the necessary directory. You can use the path in the image as reference.
3. Select the MSBuild.exe file
4. Confirm your selection
5. The text value for the path should now show a file path to MSBuild.exe

Once you've set the path, Click the button Save & Hot-update Scripts. A dialog should appear.



This dialog is informing you that if you're actively working outside the built in modding environment, that it is recommended to save and backup your work before proceeding. We'll touch more on what this implies later. For now, click the Confirm button.

What this action does is create the necessary dependencies for your mod to integrate with the game. You'll need to do this for any changes you make so they will show up in the game.

Now that we've come this far, we can start creating our first mod item.
Modding - Character
Navigate to the tab labeled Character at the top of the screen.

You should see the following.



You can click the choose button which will load a input prompt for selecting a character from the game or from your mod.



Select the option Game as your Source. After doing so, the field for Load Character will have populated with values from the game. These values are Keys and uniquely identify character entries. This means you cannot reuse the same value more than once. Additionally, you may notice not all the values are identifiable. This is the case for a lot of keys for the game. You will have to learn which is which and utilize the filtering methods included with the selection menu.

KeyID Contains: This searches your entered value against an object's key value.

Name Contains: If you know the specific name, or parts of the name, you can enter the value here to get a reference for object's whose name include the entered value.

Once you have selected a character to load, click Confirm.



The Character Screen has methods for altering various aspects of a character's data. If you've selected data of a game character, the fields on the screen have populated with their values. When creating original content not part of the core game, use the relative objects as means for guidance when setting values. This is a great way to ensure stability in your mod.

To the left in the image are various categories which relate to aspects of a character you can edit.

Stats: Stat progression in the game is calculated a formula specified on the Stats screen. A represents the lower bound and B represents the upper bound. The game will then calculate a value for that stat based on the lower and upper bound for each character level.

Passive: This screen contains data about a character's passive skill. The value for Passive Class Name is a reference to a class definition in the game. We'll go into that more in depth later on.

Encyclopedia: This area contains data which will be displayed in the games encyclopedia.

Camp: Here you can set image data which will be used when displaying a character. This is relevant to adding new characters in the game.

Text: You can add text which will appear in game for their respective parts. View some game characters to get an idea of what possible entries might be like.

A simple test for experimenting with how alterations affect the game, let's alter a character's base stats. For that click on the stats button.

For testing purposes in this case, let's set the character's Attack power. Enter 50 for A and 100 for B. This is an extremely overpowered character and will virtually one-hit most enemies. Click the save button.



Afterwards go back to the Basic tab, go to the Script menu item on the left, and click the Save and Hot-update Scripts. This will build your mod and add their changes to the game. Before going any further go and test out your mod changes to get an idea of how they affected the game.



You should notice that your character has an attack value of 50. To give perspective of how strong that is, an average max would be around 25 and our starting value is 50. It should max out at the value calculated in the stats screen.

Try and experiment with setting different values and observing their changes.
Advanced Modding - Altering Game Behavior
WARNING! PLEASE READ!

Before we get into this section of the guide, I need to go over something very VERY important. In order to alter the game behavior, you will need to peruse the underlying code. This requires the decompilation of the existing game files into code files. Essentially, you'll be taking a peek at the code structure of the game itself. DO NOT SHARE ANY PROPRIETARY CODE!!! At the least sharing code that you did not write yourself is rude, and at its worse, you could be breaking laws. So a good rule of thumb, even if access to original code files is given, you should not share the code in a capacity unrelated to your mod. To help you better understand what I'm trying to impart, take this example. You have a long-time friend who shared a secret with you. One of two scenarios would play out: (1)You share the secret with others breaking the bond of trust with that friend, (2)Or, you faithfully keep that secret, even if you have to be evasive in conversation. It's a loose example, but I really want it to be understood that you shouldn't share code that isn't yours. That's the end of that and what you do past this is your own prerogative.

Introduction

This section is where we get to the good stuff. Before proceeding, please bear in mind that this section will cover modding techniques that will require you to know some coding knowledge and fundamentals. I will do my best to explain the process so that even a newbie coder should be able to grasp the concepts. However, keep this in mind; anyone can write code, but not everyone can write good code. In this section I will review good coding practices as they pertain to modding for this game. Please keep in mind that what you learn here may not apply towards modding for other games. Let's get started.

Preparation

For this section of the guide, you will need to use an IDE (Integrated Development Environment). If you've read through the earlier sections, I mentioned that I use Visual Studio, which is a Microsoft based IDE. It's very powerful and there's an Express edition for people who just want the functionalities to code comfortably in a learning environment. If you do not have and IDE, please download/install one. However, keep in mind that this guide will move forward under the assumption that you are using Visual Studio. The current version I am using for this guide is: Visual Studio 2022 Express Edition. This is a free download. Simply go to google and type in, "Visual Studio Express Edition". I recommend choosing the latest edition, mainly because there are always useful QoL updates which makes coding easier. Additionally, if you create a Microsoft account (also free) you can connect that login to your Visual Studio and have the benefit of global settings. Read up on it if you want to know more.

First Steps

If you've read through the earlier part of the guide, then you may have noticed that the modding only utilizes the built-in modding system the Game Designers provided. I will acknowledge the fact that the interface for in-game modding is well designed, but it doesn't let you alter game behavior as much as it let's you adjust values of predefined behaviors already established by the base game. For example, you can adjust the stats of existing items, but you can't change the logic which affects how the object performs actions. This part of the guide will show you how to change the behavior of in-game objects.

Author Insight

When I first started designing mods for this game, I created a centralized testing project where I pretty much did anything I wanted to try. Of course, as any programmer knows, experimentation comes with its fair share of trial and error, especially when you consider that there is very little information that exists which explains how to mod this game. I mention this because I want you to know, that even if something you thought should work isn't working, and even after the 100th revision or more, don't lose motivation! There isn't a single programmer who hasn't had the, "Why isn't this working!?", moment. The advice I can offer you:

(1)DON'T RUSH! This isn't a race. I used to tutor computer science for a community college, and rushing a result was the most common reason for failure. Take your time and make sure you understand what your code is doing. It isn't going anywhere.

(2)GET FEEDBACK! When exploring an unfamiliar system, it's a good idea to establish a way to get confirmation of actions taken by your code. Something I personally like to do is create members to handle writing event execution to a text file. Doing this allows you to track your code's execution so you can easily identify problems. Since this game was designed using Unity, there's already a built-in function for logging debugging information. Knowing what your code is doing is vital in order to efficiently debug your code.

(3)EMPLOY GOOD PRACTICE! Employing good practice is easier said than done, at least if your new to doing it that is. On an organizational basis, "good practice" is defined internally, but there are patterns which are generally beneficial to follow. Clean code organization is the first and most prominent action to come to mind. Make sure you can easily and quickly read through your code, and make an honest effort to design it in a way that someone else could read it.



Author Notes
The guide is currently incomplete and I will be updating it regularly to include additional content. For now I hope you enjoy what is included and it allows you to begin exploring modding with Chrono Ark.
2 Comments
Goblin knight 10 Jul @ 8:11am 
Guide is very cool is it still being updated though?
ZeOverlord 25 Aug, 2024 @ 6:41am 
Stellar introduction - looking forward to seeing more in the future!