Creating modifications for School Game


So, after a huge amount of time, we are creating a guide for creating modifications to the game. However, it is worth understanding that the entire existing framework is under development exactly the same as the game, which means that it may be a little raw, but we can say with confidence that this will not prevent us from supporting it every new update. The first thing you should know from this is that all your modifications will work on old and new versions where there is a framework in the game. It will not happen that your modification from a year ago will one day simply not work on any of the versions of the game. No, we will do our best to support your efforts and creativity. So… What is the current framework like? With it, you can create your own locations, your own labels on the map (starting from version 944), your location interactions, events with randomized NPCs, and much, much more. Everything is so that you can implement your ideas right in the game and create something that will be interesting and curious. We take care of advertising and other details, committing to add to this framework what you may need. Well, since we've dealt with this, it's time to start, right?



So, briefly about the game system. A fairly old summary, which was launched by us a long time ago, but it basically describes the whole situation a little (now some has changed):

Every game hour, the game calculates the actions of the NPCs: moving to locations, changing clothes, and their activities. All these calculations are based on the tastes, characters and predispositions of each individual randomized NPC. In addition, attributes, combat skills, individual challenge events and some other mechanics are calculated every hour. Undoubtedly, this requires good power, which is simply not needed for the same novels, and here we remember which game engine SG - RenPy was made on.

In addition to miscalculations, every game hour in the game contains miscalculations when changing the day and week, which is why Monday becomes the longest day when loading.

Well, now that we've figured out the general system of the game, we're moving on to a simpler part of it - the framework system. The framework itself is as simple and intuitive as possible: it consists entirely of functions.

Navigation 
 1) Initialization your modification
2) Adding item in the game
3) Creating events
4) Creation your location in world map
5) Function which will be complete every hour
6) Creating the location of interactions
7) Creation your sublocation
8) Creating events with RNPCs
9) Adding your clothes for RNPCs
10) Adding your panties for RNPCs
11) Adding your swimsuit for RNPCs
12) Adding your brassiere for RNPCs
13) Adding your golfs for RNPCs

Example with mod linked to this post!

You just need to enter the data you need, and you will be able to do everything without any problems. Then the game will do everything automatically. It should be remembered that the game itself is made in Python, where syntax is important, so watch out for indentation, extra characters and other elements of your code. Then everything will be described as the first, second, and so on elements of the function. The function elements are a text or numeric string that has meaning in the initializations of individual functions in your modifications. Don't worry, it will be clearer later.


1) Initialization of your modification (initial_mod). It would seem that this isn't necessary, but this is another thing - you can leave links to your resources, make a description there, put the version and description of the modification itself. It should be understood that as soon as you want, we will upload it to the servers for download so that everyone who logs into the game knows about it (yes, it will be displayed in the folder with modifications). Of course, your modification can be private, personally yours. We will have nothing against this, but for the convenience of users, please do not forget this feature. Well, now let's look at it in more detail.

1. Part of the function is the name of your modification. It's simple here - enter the name you want. Your fantasy - go ahead. The line number is 4.

2. The version of your modification. If you keep updating your modification, this is a useful line. This way the user will know whether he has the latest version or an older one. The line number is 5.

3. Description of your modification. Well, everything should be clear without words: what the modification does and other info. Nothing complicated. The line number is 6.

4. Links. Links to yourself or somewhere else. In general, they should lead to you, but you can always prescribe something like no if you do not want to leave them. The line number is 7.


2) A more difficult thing to understand. You need to create a variable. A variable is a set of data. In this case, the variable will indicate the quantity of an item. The variable is shown in the screenshot below, line 11. The very name of the function (add_item) speaks for itself - the item creation function. The initialization of the function takes place at 12 line, it can also be seen in the screenshot. So, in more detail:

1. The name of the item. Naturally, here you have to name your subject. For example, "Apple". Everything is simple and clear here.

2. A variable for your subject. You should have created it using the example of line 11. If it is not clear, read the preface again, but in general it can be written as apple = 0, observing the syntax. This variable can be changed a little later and in general it will be linked to your function, so remember this.

3. The name of the label where the game will take you when you click on the button.

4. The weight of your item. You can use both fractional numbers and integers.

5. Description of your subject. It will be displayed in the inventory or online store. Here, too, everything is clear - what the subject does, how it works.

6. The cost of the item in the grocery store/online store.

7. A toggle switch indicating where the item will be displayed. 0 - only in inventory, 1 - only in grocery store and inventory, 2 - only in online store inventory, 3 - everywhere.


3) The event creation function is a fundamental part of creating stories. Here, by creating a variable inside the modification file, you can start your storyline or do whatever comes to mind, everything is simple! Create a variable, set it to False, create conditions for its loss, and set the condition to true in the labels. The event is complete; you can continue further. This way, you can create your storyline without any problems. As with plot characters and randomized NPCs, even with your own - no one limits you.

1. The condition itself. Actually, you can see an example on the screen, and if you need a single variable, we will leave you the source codes of the game, where you can take everything you need.

2. The label that the game will move to after the conditions are met. It's simple: the condition is met - the transition.


4) Do you want to create your own location? No problem. Do this with this small function (label_in_world_map). Everything is simple here, however, it is larger than all the others, which may cause difficulties. (Available only in version 944!)

1. The name of the location. The way it will be displayed on the map.

2. The label where your character will be transferred when clicked.

3. The horizontal position of the place mark on the map.

4. The vertical position of the place mark on the map.

5. The color of your label. Any RGB code to suit your taste and color.

6. The place mark icon. If necessary, you can ask for a complete list of them in the comments. We will complete this post a little later.

7. The background of your location. Naturally, to do this, you need to create a folder for your modification and its files directly in the explorer of your device. It's not difficult. Then, through path with modification, select the desired file. 1 file - night location, 2 - evening, 3 - morning.

8. Description of your location.

9. The name of the location/locations. It's a little more complicated here, however, in short, these are locations for randomized NPCs to move around. Name it by any method or in a way that is convenient for you. The main thing is an array of data.

10. The time when the location opens.

11. The time when the location closes.


5) A simple and uncomplicated function. It itself is called def_editor_in_hour1_hour and has one input value - the name of your function. It will give you more freedom to create events and give you a huge amount of freedom to develop something of your own, your favorite.


6) Well, everything is even simpler here - the function for creating location interaction (add_button_in_activity_category). It doesn't have a lot of input data, so it doesn't have anything difficult to master.

1. The name of the location interaction. The way it will be displayed in the game.

2. The label where this location interaction moves.

3. The locations where it appears. We will provide a full list of locations upon request and post it here a little later.


7) Your own sub locations are always good. Especially when they can be done with one uncomplicated function - add_button_in_location_category.

1. The name of the location. At your choice, of course.

2. The label where the player will be moved after clicking.

3. A list of locations where this sublocation should be. This is the same list that the RNPCs uses to determine where to go and walk.


8) The simplest and at the same time the most difficult to understand function. Firstly, you need to be familiar with the device of creating randomized NPCs using source code, and secondly, this function is also a loop. She chases away each randomized NPC when moving to a location in a loop, checking that the conditions are met, which is why spam like this can worsen the performance of the game if you do it the wrong way. In principle, we will tell you about it anyway.

1. Condition. Write down the condition so that the game does not perform too many unnecessary calculations.

2. Goto label. Everything is simple here. The conditions are met - the transition to the label.


9) Adding your own clothes to the game. To be honest, this is one of the most difficult functions to understand in this framework, so you should be extremely careful with it so as not to get a syntax error. (AVAILABLE ONLY IN BugFix2 VERSION 948/947, WHICH WILL BE AVAILABLE ON DECEMBER 2-3!)

1. The name of your clothes, which will be displayed in the game in the randomized NPCS editor.

2. The name of the variable, as well as the potential clothing preference of the randomized NPC. You can name it at random, if you don't have plan to improving the modification afterwards and you don't need to know the name of the variable with your clothes.

3. The gender of the character.

4. The path to the character's clothes. The fact is that in order for the game to successfully get the path, it must know the breast size of a randomized NPC. This means that there should be four sets of clothes for each set of clothes. Your goal is to introduce this in such a way that the additional folders in your modification, which should be called [big_tits, medium_tits, small_tits, very_small_tits], are not contained in this path. There may be a "No" if such clothes are not in your set of clothes.

5. The name of the file with your clothes with the extension. That's where point 4 leads exactly.

6. The way to the character's clothes, but already the top: sweatshirts, shirts and other strays.

7. The name of the file with your clothes with the extension. That's where point 6 leads exactly.

8. The point where the question is asked which part of the clothing needs to be checked for breast size. If check are not required for one of the parts of the set, 4 folders with tits are not needed there, one is enough, without any extra folders.

9. The depravity with which a character puts on or takes off clothes. Everything is simple here - the way to clothes is all lists. If there are only three levels of depravity of clothing, there should be exactly the same number of names here. For example, the skirt becomes shorter or the shirt becomes more unbuttoned.


10) Adding underwear for randomized female NPCs to the game. It will be displayed in the editor, as well as generated after the start of a new game session. There is one introductory data here, so you don't need to think too much - just enter the path with the right thing.


11) Function that add swimsuit. It's exactly the same as with the adding panties function.


12) Adding underwear (bra) for randomized female NPCs to the game. Everything is simple here, although it somewhat contradicts some separate concepts from the game.

1. Quick link. It must be together with "small_tits", which is then replaced by the desired breast size of the game itself during interaction with a randomized NPC.

2. The name of the bra along with the file extension.

3. The way of panties that are suitable for this set. Maybe 'no' and then it will be generated without the selected panties.


13) Function that add golfs. It's exactly the same as with the adding panties/swimsuit function.




Well, that's all for now. In the near future, this guide will be supplemented with new information, and as necessary, we will supplement it with new information. Well, in the meantime, we say goodbye to you in this post!

Files

School Game v0.948 Windows Version for itch (MEGA)
External
Nov 29, 2023
School Game v0.948 Linux Version for itch (MEGA)
External
Nov 29, 2023
School Game v0.948 MAC Version for itch (MEGA)
External
Nov 29, 2023
School Game v0.948 Android Version for itch (MEGA)
External
Nov 29, 2023

Get School Game / Sandbox, Simulator, RPG

Download Now
On Sale!
20% Off
Name your own price

Comments

Log in with itch.io to leave a comment.

We must band together, fans of the game, and create a discord server to post mods for the game and help each other.

there's mods alrdy on the official discord but no one's been making mods 

Yea that's what I meant lol a group of modders to share their projects between eacch other