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 :)
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 :)