Skill Trees
Name
: Unique id., which may be referenced in any Class configuration.Skills
: A config. object which contains list of skills.AsciiMap
: An ascii map which is used to build the inventory view of the skill tree
Skills
Skills: [
{
SkillId: "ntrpg:bandage"
MinPlayerLevel: 1
MaxSkillLevel: 4
Conflicts: [
]
SoftDepends: [
]
HardDepeneds: [
]
SkillSettings: {
healed-amount: 4,
range: 3,
range_levelbonus: 0,
healed-amount_levelbonus: 2,
manacost: 20
manacost_levelbonus: 5,
cooldown: 30000,
cooldown_levelbonus: -500
}
SkillTreeId: 1
},
{
SkillId: "ntrpg:arrowstorm"
MinPlayerLevel: 2
MaxSkillLevel: 4
Conflicts: [
]
SoftDepends: [
"ntrpg:Bandage": 1
]
HardDepeneds: [
]
SkillSettings: {
damage: 6,
period: 100,
min-arrows_levelbonus: 1,
period_levelbonus: -10,
min-arrows: 2,
max-arrows: 7,
damage_levelbonus: 2,
max-arrow_levelbonus: 2,
manacost: 10
manacost_levelbonus: 4,
cooldown: 60000,
cooldown_levelbonus: -10000
combination: RL
}
SkillTreeId: 2
},
{
SkillId: "ntrpg:grapplinghook"
MinPlayerLevel: 1
MaxSkillLevel: 3
Conflicts: [
]
SoftDepends [
]
HardDepeneds [
]
SkillSettings: {
range: 8,
range_levelbonus: 4,
manacost: 10,
manacost_levelbonus: 5
}
SkillTreeId: 91
},
{
SkillId: "ntrpg:dodge"
MinPlayerLevel: 3
MaxSkillLevel: 4
Conflicts: [
]
SoftDepends: [
"ntrpg:GrapplingHook":2
]
HardDepeneds: [
]
SkillSettings: {
chance: 5,
chance_levelbonus: 5
}
SkillTreeId: 92
}
]
MinPlayerLevel
- Player has to have same or higher level to be able to learn the skilMaxSkillLevel
- How much skillpoints may player invest in the skill- The real skill level may be incremented by
all_skills_bonus
property- “Tempoar” level bonus. This kind of bonus might have lots of sources - Custom enchantments/effects, specializations etc.
- The real skill level may be incremented by
Conflicts
- If a player already has a skill in this array then wont be able to learn the skills defining the array.- If you want to efficiently stop player from being able to learn two skills at the same time the conflict has to be defined on both “sides”
- There is no validation if when a player joins a game. If you change your skilltree later player’s will keep all conflicting keys (same rule applies for HardDepends and SoftDepends configuration)
HardDepends
- Before being able to learn the skill, the player has to have at least one skillpoint in all skills in the arraySoftDepneds
- Before being able to learn the skill, the player has to have at least one skillpoint in any skill in the arraySkillSettings
- The main configuration for the skill,- There always has to be all possible configuration nodes.
- You can find configuration nodes in the
dump
file in theconfig/nt-rpg
folder
SkillTreeId
- Unique id (numeric) which is used as a reference to the skill in theAsciiMap
AsciiMap
AsciiMap
- To write this ascii array might be a little bit trickyX
- initial point which is displayed as a center after typing/skilltree
command- Any non number character is taken as a blank space in the menu
- All rows has to have same amount of “columns” (any number is taken as one
dot
/column
, even numbers with two and more digits) i will try to make this simpler in future - Its possible to reload this map at any time via the
reload command
-
and|
will be displayed as wooden sticks with custom display names, again i suggest you to use optifine’s CIT & custom resource pack to make this looks better
AsciiMap: [
...................
.....91-2...........
.....|.X...........
.....3-11............
]
Generic Skills
-
Sharing possible configuration nodes as any other skill, expect
SkillSettings
section -
types
spec
item-access
attribute
property
Spec
- If you would like to have some class specialization this is the way to go.
{
SkillId: "mynamespace:someid"
Type: spec
Tier: 1
EnterCommands: []
ExitCommands: []
}
Property
{
SkillId: "mynamespace:someid"
Type: property
MinPlayerLevel: 3
MaxSkillLevel: 1
type: property
Properties: [
{
level: 1
property-name: ice_damage_bonus_mult
value: 0.7
}
]
SkillTreeId: 5
}
Item access
{
Type: item-access
SkillId: "mynamespace:someid"
MinPlayerLevel: 2
MaxSkillLevel: 1
type: item-access
Items: [
{
level: 1
items: [
"DIAMOND_AXE;7;Battle Axe"
]
}
]
SkillTreeId: 4
}
gui.conf
within the gui.conf file you can define skills to change their icon within the skilltree; this is useful when using the CIT feature of Optifine.
You can use either the SkillId:
or the Name:
of the skill; this must be in a “Skill:Id”:“item:id” or "Name:“item:id” format.
SkillId:
Example:
"ntrpg:bandage":"minecraft:potion"
"ntrpg:grapplinghook":"minecraft:bow"
‘Name:’ Example:
"Rage":"minecraft:stained_glass_pane"
"Flame Sphere":"minecraft:fire_charge"