PDA

View Full Version : Simple things that we can mod


DGDobrev
12-08-2009, 10:17 PM
Well, I've been looking through the ses.kfs file for the past 1 hour, so I may as well share the insights I got while doing so. It is my first time, yet it's so easy to find out what does what and how it does it :P

Open the ses.kfs with winzip/winrar. There is a ton of files there, but we need only a few.

1. hero.txt

This text file contains everything about the three classes. You can mod: the starting money, the starting runes, the starting leadership, the leadership gain per level, the speed of the improvement of the pet dragon, etc. Here's how the warrior looks:

hero_warrior { // ******************** Воин ********************
// стартовые параметры -> "//" indicates a comment, so it's not taken into account by the program
start { -> the next lines are the starting values.
leadership=180
attack=2
defense=1
intellect=0
mana=10
rage=20
gold=2000
rune_might=5
rune_mind=2
rune_magic=1
crystals=3
book=6
// стартовые умения изученные и недоступные
skills_open=rage_control //heroism, rage,traning //order,chaos,dist
skills_off=hi_magic,resurrection ->delete those and Amelie will be able to learn the class specific skills of other classes as well
army=bowman|3|footman|5|bear|2 -> the starting army
spells {
spell_haste=-1
}

items {
time_clock=1
picture_inspirit=1
}
}
// слоты
slots {
// имя_слота_в_интерфейсе=типы _предметов_которые_в_него_м жно_складывать_перечислен ые_через_запятую
// не забываем указывать картинки нужных комбинаций в hero.txt -> slot_bgs -> this is the slot setup, if you change it, don't forget to point the right slot picture in the slot_bgs part of the hero.txt file - and make sure such picture exists, or it will not show
1=helmet
2=weapon
3=armor
4=boots
5=regalia,dress
6=weapon,shield
7=belt,gloves
8=artefact
wife=wife
}
// прокачка
level_up { -> the multiplier on level-up
leadership=20 //60,80
book=1,6 // растет на 1 каждый 6 уровень ->how the spell book expands - in this case, by 1 scroll every 6 levels
}
k_spirit_up=1.0 // коэффициент набирания опыта спирита ->how quickly the pet dragon improves
}

It is the same for the other classes, simply the values are different.

2)companion.txt
In this file you can edit the companion's bonuses, slots, etc. Simply use the pre-written codes. Now letls take moro dark for example:

companion_dark {
category=o
image=heroitem_partner_maroc.png
hint_config=object_item
label=itm_companion_dark_name
hint=itm_companion_dark_hint
information_label=
maphint=
mapinfo=
price=10
maxcount=0
level=3
race=human
use {}
wifeslots { ->here the game indicates the slots. Must be written properly, separated by a comma if he can equip more than one thing
9=weapon
10=armor
11=helmet
12=regalia,belt
}
children=
fight {
{
filter {
belligerent=ally
race=undead
}
pbonus=moral,1,0,0,-100,0,0
dbonus=
rbonus=
attack_on=
attack_off=
}
}
mods { -> "mods" mean what will the companion affect if recruited - like moro's +3 attack bonus, jimmy's +700 leadership, etc. The values can be modified.
attack=count,3
}
propbits=usable,rare,wife
params {
use=100
item_count=1
footman=5
skeleton=2
kbk=50
}

Here's jimmy's leadership bonus, for example:
mods {
leadership=count,700
}

I wouldn't touch the actions thingy if I were you (and me)... It seems something hardcoded.

3)hidden.txt
Now this is one very cool file. It contains all wanderers' spells with all their properties!!! Let's take a look:

hidden_flame_gaze { ->the name of the scroll
category=o
image=buff_Flame_Gaze.png
hint_config=object_item
label=
hint=
information_label=
maphint=
mapinfo=
price=10
maxcount=0
level=1
race=human
use {}
mods {->what does it modify - you can change the bonus at will as usual
leadership=count,20%
}
propbits=hidden
params {
count=1 ->how many battles does it last. It is 1 battle by default. Titan sword has count=2 by default, meaning 2 battles
}

4)items.txt
This is one huge file that describes any item in the game and its bonuses. They can be changed at will.

Here's the banner of true faith, for example:

true_belief_banner {
category=o
image=heroitem_regalia_truebelief_banner.png
hint_config=object_item
label=itm_true_belief_banner_name
hint=itm_true_belief_banner_hint
information_label=itm_true_belief_banner_info
maphint=
mapinfo=
atoms {
1 {
atom=
lu=template_item_mb
label=
}
}
price=55000 ->the price of the item
maxcount=1 ->how many can spawn in a game
level=4
race=human
setref=set_inquisitor
use {}
fight {
{
filter {
unit=paladin
belligerent=ally
}
pbonus=krit,20,0,0,-100,0,0
dbonus=
rbonus=
attack_on=
attack_off=
}
}
mods {
rage=limit,10
}
propbits=regalia,usable
params {
item_count=10 ->how many it will give...
item_add=rune_mind ->of this designated item - in our case, mind runes
victory=50 ->this is the condition - 50 won battles
}

5)itemmonsters.txt
Concerns what kind of monsters spawn from eggs. Pretty much self-explanatory.

6)medals.txt
Now this is the file concerning medals and their prerequisites. Here's the trapper medal:

medal_trapper_1 {
category=o
image=heroitem_medal_trapper.png
hint_config=object_item
label=itm_medal_trapper_1_name
hint=itm_medal_trapper_1_hint
information_label=
maphint=
mapinfo=
price=10
maxcount=0
level=1
race=human
medclass=-1
use {}
mods {
sp_set_trap=count,1
sp_trap_attack=count,25
}
propbits=medal
params { ->there you go - the requirements of the trapper medal. Change them everywhere (in medal_trapper_2 and 3) to avoid discrepancies in-game.
max1=10
max2=50
max3=100
order=7
param=0
var=killed_by_trap
}

It's pretty much the same for the other medals. Simply change the parameters.

7)skills.txt
In this file are listed all the skills. Here you can edit prerequisites, rune count, etc. Seems a bit hard, but at least you can change the rune count easily. Let's take a look at the rage control skill:

rage_control {
pos=2,0
deps=
pic=skillicon1_03_
name=skill_rage_control_caption
hint_header=skill_rage_control
hint_text=skill_rage_control_hint
script=skill_rage
levels {

1 {
deps=
runes=9,2,0 ->cost for lvl 1
trade=
pars=+8
}
2 {
deps=
runes=10,2,0 ->cost for lvl 2
trade=
pars=+16
}
3 {
deps=
runes=11,2,0 ->cost for lvl 3
trade=
pars=+24
}
}
}

Pretty much the same for the other skills :)

8)spells.txt
Here you can edit the damage, the crystal cost and such. Here's the armageddon spell:

spell_armageddon {
category=s
profit=5
price=60000
hide=0
image=book_spell_armageddon.png
button_image=book_scroll_armageddon.png
label=SN_armageddon
attack=scripted
school=3
hint=spell_armageddon_hint
hint_header=spell_armageddon_header

scripted {
script_attack=spell_armageddon_attack
script_calccells=
attack_cursor=magicstick
ad_factor=0 // use attack/defense
//nfeatures=magic_immunitet
}
params {
duration=0
typedmg=astral
damage=200-300
lvl_dmg=70 ->percentage that damage improves by level. Min damage is 200, 70% of it is 140, so lvl 2 min damage is 340, and lvl 3 min damage is 480.
prc=50,50,50 ->now some of these should be the damage that it does to allies... the good question is which one or it based on the level of the spell.
burn=30 ->basic chance to burn - improves by 30% per lvl
}
levels {
// level = mana_cost, crystals_cost to upgrade from previous level
1=30,15
2=40,25
3=50,35
}
}

8)spellsadventure.txt
Here you can mod the prices for the spells, so it's cheaper to buy them.

9)logic.txt
Here you can find all the values the game uses in its formulas - like:

- leadership count per unit killed
// Коэффициент для перевода лидерства юнита в опыт игрока
exp_from_lead_k=0.017 //0.016

-item prices and buyouts.
// Коэффициенты для покупки/продажи
default_buy_coeff=0
default_sell_coeff=0.25 ->this means the game will buy the items at 1/4 price. Set this to 1 and it will look like you have the trading skill from KBTL.
default_sell_scroll_coeff=0.2 ->this means that the game will buy scrolls at 1/5 the price. Set it to 1 and the game will buy scrolls at cost.

-difficulty settings (k-coefficient):
difficulty_k {

exp=0.5|1.0|1.30|1.7 // k for xp required for next level (meaning XP on normal*k)
alead=0.5|1.0|1.30|1.7 // strength of enemy army
spexp=0.5|1.0|1.15|1.3 // pet dragon improvement k
money=3.0|1.0|0.75|0.5 // money gain per difficulty
rage=2.0|1.0|0.85|0.7 // rage gain per diff.
manarage=2.0|1.0|0.80|0.5 // rage loss/mana gain on the map k

start_gold=5.0|1.0|1.00|1.0 // starting gold k
start_crystals=5.0|1.0|1.00|1.0 // starting crystals k
start_mana=2.0|1.0|1.00|1.0 // starting mana k
start_rage=2.0|1.0|1.00|1.0 // starting rage k
start_rune_might=3.0|1.0|1.00|1.0 // starting might runes k
start_rune_mind=3.0|1.0|1.00|1.0 // starting mind runes k
start_rune_magic=3.0|1.0|1.00|1.0 // starting magic runes k
start_book=3.0|1.0|1.00|1.0 // magic book scroll space k

bossatk=1.0|1.0|1.4|1.7 // k for boss damage
bosshp=1.0|1.0|1.4|2.0 // k for boss HP

deadmoney=3.0|2.0|1.7|1.5 // k for money when a battle is lost

boxradar= 1 | 1 | 0 | 0 // this switch shows chests, flags, etc on the radar. It is 0 by default for hard&impossible, setting it to 1 will show them on those difficulties as well.
}

And numerous other things, it's very easy to grasp it :)

10)morale.txt
Here you can edit morale relations so that you can mix armies at will. Simply refer to the coding, it's pretty much self-explanatory.

11)boxes.lua
Shows what you can get from the chests.

function genbox( racemask ) --ftag:boxgen

local mapk = Game.MapLocDifficulty()

local K = Boxgen.rnd(100)
K = K - 1 -> if you increase this number, you will improve the chance that an item will spawn from a chest. If the value after the calculation is >=0, then the chest will give you cash.
if K < 0 then
if not Boxgen.object( mapk, racemask ) then -- генерируется предмет. Если не сгенерился, то деньги

-- cant add object, add money
Boxgen.parcount( "money", "*7" ) -- генерим денег Mini,Small,Average

end
return true
end

K = K - 3
if K < 0 then
local r = Boxgen.rnd(3)

if r == 0 then
Boxgen.parcount( "rune_might", "1" ) ->"1" is the number of runes you can get. You can increase the number to improve rune gain.
elseif r == 1 then
Boxgen.parcount( "rune_magic", "1" )
else
Boxgen.parcount( "rune_mind", "1" )
end

return true
end

K = K - 5
if K < 0 then
local r = Boxgen.rnd(113)

if r < 100 then
Boxgen.parcount( "crystals", "1" ) ->"1" is the number of crystals you can get. You can increase the number to improve crystal gain.
elseif r < 110 then
Boxgen.parcount( "crystals", "2" )
else
Boxgen.parcount( "crystals", "3" )
end

return true
end

K = K - 15
if K < 0 then -- простой свиток

local r = Boxgen.rnd(100)
local count = 3
if r < 80 then
count = 1
elseif r < 95 then
count = 2
end

if not Boxgen.scroll( mapk, count ) then
-- cant add scroll, add money
Boxgen.parcount( "money", "*7" ) -- генерим денег Mini,Small,Average
end


return true
end

K = K - 1 ->you can increase this number to improve the chance that a wanderers' scroll will spawn from a chest
if K < 0 then -- магия странствий

if not Boxgen.scroll( ) then
-- cant add scroll, add money
Boxgen.parcount( "money", "*7" ) -- генерим денег Mini,Small,Average
end

return true
end

-- Boxgen.parcount( "money", "*7" ) -- генерим денег Mini,Small,Average
local r = Boxgen.rnd(100)
if r < 50 then
Boxgen.parcount( "money", "*1" ) -- генерим денег Mini
elseif r < 80 then
Boxgen.parcount( "money", "*2" ) -- генерим денег Small
else
Boxgen.parcount( "money", "*4" ) -- генерим денег Average
end

There you go... Easy KBAP and KBTL modding :) Just make sure you back up the ses.kfs file before making any changes.

Or, for all it seems... you can extract all the modified files from ses.kfs file and pack them with winzip/winrar in another kfs file named anyway you wish and put it in the data/mods folder. The current mods seem to be made this way :)

Urbz
12-08-2009, 11:14 PM
Good stuff, very nice finds DG ! :eek:

DGDobrev
12-08-2009, 11:32 PM
Well, the only thing left to do now is to play around with the values I guess. I haven't done any modding at all, but it looks really easy-to-do stuff.

EDIT: And indeed it is :) In like 10 mins I modded the game for a warrior who starts with 50 runes (all kinds), chests on the battlefield yield item each time, has armageddon spell that inflicts 250k damage at lvl 3 and costs 0 mana :P It is simply so easy, that it's laughable. Just don't forget to backup the original file.

rancor26
12-09-2009, 05:37 AM
Nice this'll definitely help people out, only thing we now need is someone to explain stuff in the file embryos.txt (contains all troop spawns when you create new game etc.);)

Tiagop
12-09-2009, 01:47 PM
Any1 having errors when starting a new game after changing some stuff like leadership, runes, starting army etc?

cant start my game

rancor26
12-09-2009, 02:00 PM
Any1 having errors when starting a new game after changing some stuff like leadership, runes, starting army etc?

cant start my game

Not me, you propably messed something up :(

Tiagop
12-09-2009, 03:43 PM
When starting the game my game exits and i get a windows error window.

i only got the error after i changed the starting army setup

is there any way top unlock islands without getting the actual map?

wanted to start with lizardmen/or demon army:)

rancor26
12-09-2009, 03:55 PM
When starting the game my game exits and i get a windows error window.

i only got the error after i changed the starting army setup

is there any way top unlock islands without getting the actual map?

wanted to start with lizardmen/or demon army:)

Well u can use dev-mode commands to get the army you want and to teleport to islands you want (there's also a command that removes clouds so you can easily teleport using the map) ;)

DGDobrev
12-09-2009, 04:23 PM
When starting the game my game exits and i get a windows error window.

i only got the error after i changed the starting army setup

is there any way top unlock islands without getting the actual map?

wanted to start with lizardmen/or demon army:)

If you got an error after you changed the starting army setup, you probably got the coding all wrong. You should search the file for the proper names of the units and replace the ones you used with the proper ones.

Tiagop
12-09-2009, 06:50 PM
Probably mate...gonna have to investigate the situation ;)

rancor, what do you mean by the commands? well, gonna try to create my army.

By the way.

If having, for example, 100leardership and i create an army with, lets say, 100bears (having too many for the leadership) can an error occur?

rancor26
12-09-2009, 06:55 PM
Probably mate...gonna have to investigate the situation ;)

rancor, what do you mean by the commands? well, gonna try to create my army.

By the way.

If having, for example, 100leardership and i create an army with, lets say, 100bears (having too many for the leadership) can an error occur?

No it just says you don't have enough leadership bla bla bla but no errors, and you can find all info about dev-mode on russian forums http://kingsbounty.ru/forum/index.php?showtopic=2236

Just use google translate to translate it to english and you should be fine ;)

DGDobrev
12-09-2009, 07:04 PM
Yep, that should work :) That forums is a great place for everyone who looks for mods. Some mods are even usable in the english version with some tweaking.

Right now all that I need is the master mod version 2.2.3 to get some of them working properly with the english version... I still get some crashes using the 2.2.2 version of the mod. Sadly, the link to the 2.2.3 master mod in that forum is inactive.

Kings Bounty Hunter
12-09-2009, 10:37 PM
erm, doesn't this thread prove you can cheat horribly then post A HIGH SCORE?

I'm getting worried now :(

bucazaurus
12-09-2009, 11:00 PM
And you should be .

DGDobrev
12-10-2009, 12:10 AM
This is why it is prudent that people should post a save game just before finishing the game along with their screenshots. I did that for my impossible no-loss mage game to show that everything is fair and square :)

There are many things that can be modified in a game and still make it look like nothing has been touched though...

bucazaurus
12-10-2009, 12:19 AM
Very true. Here is an example. :)
All you can say to this is "How the hell !?!"

Tiagop
12-10-2009, 09:12 AM
rotfl

The Rider
12-10-2009, 10:19 AM
there are more complicated mods, I will use in my next game a mod that makes all special attacks and spells do critical damage as the ordinary attacks (chance based) and I will use my mod that gives random runes, crystals or rage/mana potions after every battle (not everything at one :) )
In the russian forum there are mods that allow you to exchange one type of runes for another, convert units to undead or demons, or even play with new units (army of light and army of darkness).

Akimbo
12-10-2009, 10:22 AM
Just use google translate to translate it to english and you should be fine ;)

The translation is amazingly unhelpful in some areas :p

Shame there's not much of a modding scene for the English side of the game. I take it it's much bigger on the Ru side?

DGDobrev
12-10-2009, 11:00 AM
Well, the russians had much more time to play it and work on it. I suppose that mods will pop up for the english one as well, but for now it seems that we have to translate the russian ones and adapt them for the english version.

rancor26
12-10-2009, 11:18 AM
The translation is amazingly unhelpful in some areas :p

Shame there's not much of a modding scene for the English side of the game. I take it it's much bigger on the Ru side?

Ya it sucks hard sometimes but it gives you usually atleast some idea what's going on :-) but i think we should have atleast one person who actually knows both russian and english to translate them correctly.

DGDobrev
12-10-2009, 11:36 AM
Guess who's that one :P