Beginners Guide to Creating Packages / Mods
Back
This page describes how to create your own
Fractal Block World packages / mods.
Help! I am a beginner but I want to make my own world!
Creation Manual First, download the creation manual.
Read that when needed.
Next, install the package package tutorial 1
and play it to learn how to make your own package.
If you want to make a package with gravity, also install and play the
package package tutorial 2.
You can find those tutorial packages
here.
When you are ready to make your own package, make a copy of the
blank package.
This can be found in the list of "Stub Packages"
here.
If you want to make a game with gravity, make a copy of the
blank gravity package and install it.
Add to and modify this new package to create your world.
Step 1: Read the Guide to Installing Packages / Modes
This guide contains
basic information about how packages work.
That guide is a prerequisite for this one.
Step 2: Choose a Package Name
The name of your package can only involve letters (capital and lowercase),
numbers, and underscores.
The name of your package is the name of the folder of your package.
Note: folders that START with _ are NOT packages.
Step 3: Decide If You Want To Make A Standalone
Package or a Mod
Also, you probably want to make a copy of an existing package
to start your new package.
Step 4: Create the File "About/install_dir.txt"
Create the file "About/install_dir.txt"
in the folder of your package.
If you are making a standalone package,
this file should read as follows:
Data/Packages
If you are making a mod for a standalone package,
this file should read as follows:
Input/Packages
Step 5: Create the File "About/mod_for.txt"
Create the file "About/mod_for.txt".
If you are making a standalone package,
keep this file empty.
If you are making a mod for a standalone package,
have the About/mod_for.txt contain the name of the
standalone package.
For example, if you are making a mod for the xar package,
then the file About/mod_for.txt should read as follows:
xar
Step 6: Create the File "About/about.txt"
This is optional.
Create the file "About/about.txt"
and put in it a small amount of text which describes your mod.
This text is shown if the player is starting a new game
(if it is a standalone package)
or in the mod selection GUI in the game.
Step 7: Create the File "About/thumbnail.jpg"
This is optional.
Create the file "About/thumbnail.jpg".
This image is displayed if the player is starting a new game
(if it is a standalone package)
or in the mod selection GUI in the game.
A safe resolution for this thumbnail is 512 by 512.
Step 8: Create the File "dependencies.txt"
Create the file "dependencies.txt".
This file lists all packages that your mod depends on.
If you are making a mod for the xar package, then your
dependencies.txt should read as follows:
wf xar
Here wf stands for "well-founded".
The dependencies.txt file is used so that those packages listed
are loaded BEFORE your package.
So if you have the line "wf xar", then the xar package will
be loaded before your package.
The dependencies do not need to be "transitive".
That is, if your package is called X and it depends on Y,
which in turn depends on Z, then your dependencies.txt
should list Y but it does not have to list Z.
When the user selects which mods are enabled,
they must order the mods so that all these
dependency relations are satisfied.
The order in which you list dependencies in your
dependencies.txt actually does not matter.
It is up to the user to order them in the
game's mod selection GUI.
More About "dependencies.txt": Mods Depending on Mods
You can even create a mod (in Input/Packages) that depends on other mods
(in Input/Packages).
We do not necessarily recommend doing this.
The following is very important: If you are referring to a package
in the Input/Packages directory in the dependencies.txt file,
you much prefix its name with __USER__
to differentiate it from packages in the Data/Packages directory.
For example, suppose you are making a mod called
advanced_xar_mod and it depends on another mod called
basic_xar_mod.
So, here are the relevant packages:
Data/Pacakges/base
Data/Pacakges/xar
Input/Packages/basic_xar_mod
Input/Packages/advanced_xar_mod
Note that the dependencies.txt of the
Data/Packages/xar package is
wf base
Let's say the dependencies.txt file of the
Input/Packages/basic_xar_mod is
wf xar
Then the dependencies.txt file of
Input/Packages/advanced_xar_mod should be
wf xar
wf __USER__basic_xar_mod
Actually, the "wf xar" is not needed here
in this last file because it is listed in the basic_xar_mod,
but it doesn't hurt to be safe.
Note in this example, if the player wants to enable
the mod advanced_xar_mod, they have no choice but to list
base first, then xar, then basic_xar_mod, then
advanced_xar_mod.
On the other hand, if advanced_xar_mod did not depend on
basic_xar_mod, then the player could choose which is
listed first: basic_xar_mod or advanced_xar_mod.
For this reason we recommend not having mods
depend on other (Input/Packages) mods unless there is a very strong
reason to do so.
Step 9: Add Content
Everything beyond this point is optional.
You can add certain files and folders to the package.
For this, consult the Creation Manual.
See also the other guides on this website
(here).