Kingdom Under Fire: The Crusaders

Kingdom Under Fire: The Crusaders

Not enough ratings
Reworked SOX Guide
By 復活した黒
Almost complete Guide for SOX.
   
Award
Favorite
Favorited
Unfavorite
Introduction
Hello, I left this Guide in a sorry state for a longer time than I intially wanted. This rework will take a look at almost every SOX File, how to edit them and how to add stuff to them.

Requirements:


Preparation:
Hex Editor 16 Bytes per row (Depending on the Hex-Editor, but usually in the Options Menu), you can also keep it at normal settings, but I use mine with 16 Bytes, which may confuse you.
Hex Converter set to 32 bit unsigned(!) integer. Byte Order from Big Endian to Little Endian.
The File Structure
The general Structure is:

data/Text = Has almost all the Text in the game and it's freely editable.

data/SOX = Has Files that define things like Jobs, Spells, Troops. This includes their stats, their connection to Items/Jobs and much other things. You could think of it as a File that the game accesses for anything that has to do with the 3 above mainly.

data/SOX/Language = Has the SOX Strings. Those strings define various things that have to do with the Main SOX Files, something that the normal data/Text doesn't fit in, it's hard to explain.

In this Guide we will first go through SOX from top to bottom, sorted by name. Then SOX Language, then Normal Text, unless either of the last 2 are required to make the main ones work.
General Reference Byte List
Job ID
//Number - Those are the Hex ID's
enum K2_JOB_TYPE { JOB_H_ARCHER = 0, //00 JOB_H_LONGBOW_MAN, //01 JOB_H_INFANTRY, //02 JOB_H_SPEARMAN, //03 JOB_H_H_INFANTRY, //04 JOB_H_KNIGHT, //05 JOB_H_PALADIN, //06 JOB_H_CAVALRY, //07 JOB_H_H_CAVALRY, //08 JOB_H_STORM_RIDER, //09 JOB_H_SAPPER, //0A JOB_H_PYRO_TECHNICIAN, //0B JOB_H_BOMBER_WING, //0C JOB_H_MORTAR, //0D JOB_H_BALLISTA, //0E JOB_H_HARPOON, //0F JOB_H_CATAPULT, //10 JOB_H_BATTALOON, //11 JOB_DE_ARCHER, //12 JOB_DE_CAVALRY_ARCHER, //13 JOB_DE_FIGHTER, //14 JOB_DE_KNIGHT, //15 JOB_DE_LIGHT_CAVALRY, //16 JOB_DO_INFANTRY, //17 JOB_DO_RIDER, //18 JOB_DO_H_A_RIDERS, //19 JOB_DO_AXE_MAN, //1A JOB_DO_H_A_INFANTRY, //1B JOB_DO_SAPPER, //1C JOB_D_SCORPION, //1D JOB_D_SWAMP_MAMMOTH, //1E JOB_D_DIRIGIBLE, //1F JOB_D_BLACK_WYVERN, //20 JOB_DO_GHOUL, //21 JOB_D_BONE_DRAGON, //22 JOB_WALL, //23 JOB_SCOUT, //24 JOB_SELFDESTRUCTION, //25 JOB_ENCABLOSA_MONSTER, //26 JOB_ENCABLOSA_FLYING_MONSTER, //27 JOB_ENCABLOSA_RANGED, //28 JOB_ELF_WALL, //29 JOB_ENCABLOSA_LARGE, //2A JOB_LAST, };

TypeID
//Number - Those are the Hex ID's
enum { T_TYPE_MELEE = 0, //00 T_TYPE_ARCHER, //01 T_TYPE_SPEAR, //02 T_TYPE_RIDER, //03 T_TYPE_FLYING, //04 T_TYPE_SIEGE, //05 T_TYPE_AXE, //06 T_TYPE_BOMBER, //07 T_TYPE_WALL, //08 // 성벽 부대 T_TYPE_MORTAR, //09 T_TYPE_CAVALRY_ARCHER, //0A T_TYPE_SAPPER, //0B T_TYPE_SELFDESTRUCTION, //0C // Unit수 1인 자폭부대(Ghoul) T_TYPE_ELF_ARCHER, //0D T_TYPE_PALADIN, //0E T_TYPE_SCORPION, //0F // 미션 스크립트에서 사용하기 위한 Troop들 T_TYPE_DUMMY_0, //10 T_TYPE_DUMMY_1, //11 T_TYPE_DUMMY_2, //12 T_TYPE_DUMMY_3, //13 T_TYPE_DUMMY_4, //14 T_TYPE_DUMMY_5, //15 T_TYPE_DUMMY_6, //16 T_TYPE_DUMMY_7, //17 T_TYPE_DUMMY_8, //18 T_TYPE_DUMMY_9, //19 T_TYPE_DUMMY_10, //1A T_TYPE_DUMMY_11, //1B T_TYPE_DUMMY_12, //1C T_TYPE_DUMMY_13, //1D T_TYPE_DUMMY_14, //1E T_TYPE_DUMMY_15, //1F T_TYPE_BATTALOON, //20 T_TYPE_BALLISTA, //21 T_TYPE_SCOUT, //22 T_TYPE_SWAMPMAMMOTH, //23 T_TYPE_ENCABLOSA_RANGED, //24 T_TYPE_ELF_WALL, //25 T_TYPE_ENCABLOSA_COLUMN, //26 T_TYPE_ENCABLOSA_BIG, //27 T_TYPE_NUM, // 부대 종류 수 };

TroopInfo ID
00 - Archer
01 - Longbow
02 - Infantry
03 - Speakman
04 - H.Infantry
05 - Knight
06 - Paladin
07 - Cavalry
08 - Heavy Calvary
09 - Storm Rider
0A - Sappers
0B - Pyrotech
0C - Bomber Wing
0D - Mortars
0E - Ballista
0F - Ballista
10 - Catapult
11 - Battaloon
12 - Dark Archers
13 - Calvary Archers
14 - Dark Fighter
15 - Dark Knight
16 - Dark Calvary
17 - Orc Infantry
18 - Orc Riders
19 - Orc Heavy Rider
1A - Orc Axemen
1B - Orc Heavy Infantry
1C - Orc Sapper
1D - Scorpion
1E - Swamp Mammoth
1F - Dirigible
20 - Wyvern
21 - Ghoul
22 - Bone Dragon
23 - Wall Guards
24 - Scout
25 - Exploding Ghoul
26 - Encablossa
27 - Encablossa Flier
28 - Encablossa Spitter
29 - Dark Wall Guard
2A - Encablossa

Skill ID's
00 - Melee
01 - Range
02 - Frontal
03 - Riding
04 - Teamwork
05 - Scouting
06 - Gunpowder
07 - Taming (Beast Mastery)
08 - Fire
09 - Lightning
0A - Ice
0B - Holy
0C - Earth
0D - Curse
FE FF FF FF - Every Skill.

Ability List
00 - Scout
01 - Trap
02 - Set Fire
03 - Mine
04 - Remove
05 - Open Water Gate
06 - Tree of Healing
07 - Enrage
08 - Fire Arrow
09 - Direct Arrow
0A - Pour Oil
0B - Bless & Heal
0C - Holy Explosion
0D - Firepot
0E - Firebag
0F - Shockwave
10 - Elemental Boost
11 - Self-Destruct
After this are Officer Spells and general Elemental Spells (Like Meteor, Blizzard etc.)

ItemAttInfo
00 - HP Recovery +10%
01 - HP Recovery +20%
02 - EXP Earned +10%
03 - EXP Earned +15%
04 - EXP Earned +20%
05 - SP Earned +10%
06 - SP Earned +15%
07 - SP Earned +20%
08 - HP +10%
09 - HP +15%
0A - HP +25%
0B - HP Recovery Rate +30%
0C - HP Recovery Rate +50%
0D - KO Recovery Speed +30%
0E - KO Recovery Speed +50%
0F - Auto Block +10%
10 - Auto Block +20%
11 - Add Fire to Attack
12 - Add Lightning to Attack
13 - Add Ice to Attack
14 - Add Holy to Attack
15 - Add Poison to Attack
16 - Add Curse to Attack

Resist ID's
00 = Melee
01 = Range
02 = Explosion
03 = Frontal
04 = Fire
05 = Lightning
06 = Ice
07 = Holy
08 = Poison
09 = Curse
FE FF FF FF = Every Skill.
AbilityByJob
data/SOX - AbilityByJob.sox
Like the name, this SOX gives the Jobs their Abilities. For example - Archers with Fire Arrows.

Let's look at the structure that floyd provided in his Modder's Guide.

struct _ABILITYBYJOB_INFO { int job; const int MAX_JOB_ABILITY = 5; int abilityIDs[MAX_JOB_ABILITY]; };

First comes the Job Hex Byte, then a constant of 5 for Job Abilities. A constant will always stay the same, meaning that every Job has 5 Abilities they can have. A attribute constants have as well is, that they do not have to be written out in the File, which I will get into right now.

First, we have this screenshot. The "64 00 00 00" is the SOX Header, a general Header for the SOX Files, altough not all begin with this one. The "23 00 00 00" defines how many Jobs are in there with the structure. Entering this 23 in our Hex Converter will give us a Amount of 35 Jobs. Looking at our reference, the last chooseable Job in that list is the Bone Dragon, ending at the same Hex. So every Job we have access to one way or another has a ability definition in this SOX. The 64 and the 23 only have to be defined at the start of the File, meaning they don't appear after this.

Now, continuing from that, the marked byte is the first Job "00 00 00 00". The refence list tells us that this byte is for the Job H_ARCHER, so Human Archers. With that in mind, there is the constant that follows.
Like I said earlier, a constant doesn't have to be written out in a File that is already defined. Meaning that the Hex 05 for this constant is never written in this SOX. Meaning, that after the Job ID are the AbilityID's.

With that in mind, let's read the Human Archers Abilities:
00 00 00 00 = Job Human Archers
08 00 00 00 = Fire Arrow
09 00 00 00 = Direct Arrow
FF FF FF FF = No Ability
FF FF FF FF = No Ability
FF FF FF FF = No Ability
So we have 2 defined Abilites for Human Archers. To let it sink in how it works again, let's also take the next Job.

01 00 00 00 = Job Longbows
08 00 00 00 = Fire Arrow
09 00 00 00 = Direct Arrow
FF FF FF FF = No Ability
FF FF FF FF = No Ability
FF FF FF FF = No Ability

Like I said earlier, SOX Header and Number of Jobs only have to be defined at the beginning of the File. Meaning that Jobs follow directly after the last one without any Byte between them. Without the constant, we would have more freedom in the number of Abilities, but we would've to write out the number the troops has everytime. They kept it simple in short.

Anyway, how about we give the normal Archers a new Ability?
For this example, I will give my Archers the Tree Healing Ability. The reference byte list tells me that the byte for the Ability is a 06. So I edit that in:

And if we go ingame with a Archer Troop now: (Note, for Gerald Fire Arrows are disabled till his 5th Mission, which is why you don't see them)
AbilityInfo
data/SOX - AbilityInfo.sox
General Spell stat Info, like which user, what kind of range, damage, can it damage walls and other things.

Again the structure provided by floyd in his Modders Guide:
struct SOX_ABILITY_INFO { short nId; bool bCon_User; // leader/troop short nSetType; // Job에따라세팅하는지, Job과Skill에 따라 세팅하는지 User가 직접 세팅하는지 short nType; // 어느 근처에 가서 사용하는건지 바로 사용하는건지 액션모드에서 사용하는건지 short nRange; // 마법 사용 범위 short nEffectRange;// 마법 영향 범위 short nDuration; // 지속 시간 short nDamage; // damage short nSP; // SP사용량 int nParm1; // parm1 int nParm2; // parm2 #define MAX_ABILITY_REQUIRE_SKILL 2 struct _STATE_INFO { int nId; int nValue; } Con_Skill[MAX_ABILITY_REQUIRE_SKILL] // condition (Skill) SOXString pIconName; SOXString pImageFN; };

Like for AbilityByJob, the Hex starts with "64 00 00 00" for the Header and "39 00 00 00" for the Number of Spells defined in the SOX File.

Let's look at one full spell byte list:

And break it down:
00 00 00 00 = First 00 is the ID, has to be Unique.
01 00 00 00 = Is the User. 00 Means it's a Leader Ability, like Duane's Unique one. 01 Means that the Troop can use this, provided they have the Skill.
00 00 00 00 = Whether setting it according to job, setting it according to job and skill, or setting it by user. (00/01/02)
To oversimplify: Abilities that are set by AbilityByJob are 00, Spells like Meteor are 01 since anyone can use it, provided they have the Skill and 02 is something like Duane's Unique Ability again.
01 00 00 00 = Can't really wrap my finger around this one yet.
FF FF FF FF = Range, FF'ed bytes mean that there is no range limit.
FF FF FF FF = Effect range. To simplifly if you were to set a higher number here for Meteor, the radius of it's damage would increase. Something like a invisible circle where damage drops that gets increased if you mess with this number.
FF FF FF FF = Duration. FF means that the ability never stops.
00 00 00 00 = Damage, probably no need to explain this one.
00 00 00 00 = SP. EE 02 00 00, something Meteor has = 750 SP. Changing this to 01 00 00 00 would decrease the cost to 1 SP.
00 00 00 00 = Parameter 1. Parameters decide wether or not a Spell can damage things like a Wall or Burn Trees. Will compile a list later for those.
00 00 00 00 = Second Parameter

Now, there is a definition of 2 for REQUIRE_SKILL. This is something like the constant from AbilityByJob. The 2 doesn't have to be written into the File, meaning that the Skill ID and the Required Level come next.
05 00 00 00 = Skill ID for Scout
01 00 00 00 = Required Level, meaning you need 1 Level in Scout to use this Ability.
FF FF FF FF = Second Skill ID
FF FF FF FF = Required Level for Second Skill

Following are the Icon and Image Data. The Icon can be defined in Interface, altough I will not do that here. Anyway, 08 Tells how long the name is @(Scout) = 8 characters, same for the Image name.
CharInfo
To be Edited
ItemTypeInfo
data/SOX - ItemTypeInfo.sox

Structure provided by floyd:
struct _BASIC_ITEM_INFO { int nTypeId; int costMax; int costMin; const int NUM_SET = 2; struct _SKILL_INFO { short modifierSkillID; short modifierSkillMin; short modifierSkillMax; } SkillInfo[NUM_SET]; short attributeProbability; short attribute[2]; short imageNum; char equipPos; bool bBow; bool bMagical; struct _RESIST_INFO { short modifierResisID; short modifierResisMin; short modifierResisMax; } ResistInfo[NUM_SET]; short modifierElementalProbability; short modifierElementalMin; short modifierElementalMax; bool modifierElementalEnableHoly; struct _SPECIAL_ITEM { short modifierBonusProbability; short modifierBonusMin1; short modifierBonusMax1; short modifierBonusMin2; short modifierBonusMax2; short priceRate; } modifierBonus[3]; SOXString imageName; };
Instead of a 64 00 00 00 Header we have a 02 00 00 00 Header and 60 00 00 00 for the number of Items.

Im using a already edited version that sets Item cost to 1. So don't wonder if it looks different for you.

00 00 00 00 = First 00 is the Item ID, has to be unique.
01 00 00 00 = Max Cost
01 00 00 00 = Min Cost
Once again a constant here, which tells us that the next section comes 2 Times.
00 00 00 00 = Skill ID for Melee
03 00 00 00 = Minimum of the Skill Level
0C 00 00 00 = Maximum of the Skill Level, this is spread from level 1 to 30 of the Troop.
FF FF FF FF = Skill ID 2. No Skill. Setting this to FE FF FF FF would give a random second Skill.
00 00 00 00 = Minimum of the Skill Level
00 00 00 00 = Maximum of the Skill Level

0F 00 00 00 = Attribute Probability, goes from 00 (0%) to 63 (99%)
02 00 00 00 = Starting Attribute
0A 00 00 00 = Ending Attribute.
Explanation for the Attribute: Attribute are stuff like EXP Earned. It will start in this case from 02, which is EXP earned +10% to 0A, which is HP +25% and will randomly choose a attribute including the 2 and those between the hex 02 - 0A. It has in this case a 15% (0F) chance to apply a attribute in general, second attribute uses the same chance. Changing starting to 00 and ending to 16 would give the equipment you are editing a chance to apply every single attribute there is.

05 00 00 00 = Image Num. Please do not edit it yourself, as it's crash prone if you don't know what you are doing.
00 00 00 00 = Equip Position. Will compile a list later on for this.
00 00 00 00 = Is it a Bow? (Only 00 = No and 01 = Yes possible)
00 00 00 00 = Is it a magical Item? (Same as Bow)

Now this section will use the same constant as for Skills here again.
FF FF FF FF = Resist ID - Changing it to FE FF FF FF would give it a random resistance.
00 00 00 00 = Min Resist
00 00 00 00 = Max Resist (-1)
FF FF FF FF = Resist ID 2
00 00 00 00 = Min Resist
00 00 00 00 = Max Resist (-1)
Important to note, that Weapons can have Resistance applied to them. So you can change Resist ID to 00 00 00 00, give it a min and Max and it will show up ingame without problems.

0C 00 00 00 = Elemental Probability, is again a percentage. If Skill ID 2 is FF FF FF FF, this probability will try to give it a Element instead.
03 00 00 00 = Minimum Element Skill Level
08 00 00 00 = Maximum Element Skill Level
01 00 00 00 = Enable Holy? (Only 00 = No and 01 = Yes possible) Also applies to resistance, so it can have Holy.

This section has again a constant, this time set to 3 (modifierBonus[3]). Bonuses are special Items you see with a added name to them, that will also cost more than normal.
0A 00 00 00 = Bonus Probability 1, again a percentage, but looks like its in reverse.
02 00 00 00 = Skill 1 Minimum Level
04 00 00 00 = Skill 1 Maximum Level
00 00 00 00 = Skill 2 Minimum Level (If Skill ID 2 is FF'ed, usually 00 here.)
00 00 00 00 = Skill 2 Maximum Level
01 00 00 00 = Pricerate (Edited in this case. Do not know how the Multiplier works yet)
14 00 00 00 = Bonus Probability 2
05 00 00 00 = Skill 1 Minimum Level
07 00 00 00 = Skill 1 Maximum Level
00 00 00 00 = Skill 2 Minimum Level
00 00 00 00 = Skill 2 Maximum Level
01 00 00 00 = Pricerate
1E 00 00 00 = Bonus Probability 3, again a percentage.
08 00 00 00 = Skill 1 Minimum Level
0A 00 00 00 = Skill 1 Maximum Level
00 00 00 00 = Skill 2 Minimum Level
00 00 00 00 = Skill 2 Maximum Level
01 00 00 00 = Pricerate

Like before with Icons and Image:
07 Lenght of Picture = E_HU_1S
JobInfo
Note: This does not unlock Battaloons and Bone Dragons, since they are tied to flags, just like the Heroes ability to only select Infantry as their troops.
This is a preparition for my upcoming Unit cloning/Editing guide with the Blender Script


You can find the file again in SOX: JobInfo.sox
Let's break it down again
  • First byte (11) after the "a" from "tga" is the ID this unit has.
  • 06 is the Position on the X Axis
  • 03 is the Position on the Y Axis
  • The following 8 bytes are Job connections, like how normal Infantry and Heavy infantry are connected. Which means you can have up to 8 Jobs connected to this one, which is pretty much every direction. If we want to edit one of the FF bytes, we can for example make a connection from the Battaloon to the advanced sappers. I already made that connection in this screenshot (0B), meaning the connection goes from the advanced sappers to my Battaloon. Make sure to edit the 0B for example so that the 3 following up FF bytes are 00 (0B 00 00 00) in order to avoid crashes and error loops.
  • Following up to this, for Battaloons and Bone Dragons you will usually see a good number of FF Bytes. Split them in 4 like usual (FF FF FF FF) which is the indicator for that specific connection.
  • So we got ID, PosX, PosY and now 8 utilized bytes of Job connections, there are still 6 unexplained ones in red.
  • The last 6 Bytes work like this: SkillID (00 = Melee for example) Skill Level (09 = You need 9 points in melee to pass requirements). These bytes work like the last ones, meaning they can be FF bytes again and can be edited again. Currently the max you can do is 3 requirements with this, this however can also be expanded. (to follow up soon)
LeaderGeneration
SOX Header = 64 { int count; //13(Hex) without Edit, adding new groups needs a edit here. }
struct LeaderGeneration { int CharInfoID; //Is it a Human Offcier/Hero Officer short Faction; // 00 Human, 01 Orcs, 02 Dark Elves int NumOfficers; //How many are in this UnitID int startIcon; //What Icon/Model data to use in Barracks int EndIcon; // ^ enum { NUM_SKILLS = 11 }; struct SkillInfo { int nSkillID } SkillInfo[NUM_SKILLS]; };
struct LeaderGenerationString { int UnitID; short namesize; // 2 Bytes, indicates how long a name is in hex char string[namesize]; // Name in string, needs to be size of "namesize" };

This one will talk about LeaderGeneration. LeaderGeneration will generate the Officers you can Hire. These Officers are divided into Parts. For example, Officers with Knight Armor, Paladin Armor, Elfs, Dwarfes, Blue/Heavy Armor and Wizards all have their own Part, but no single Officer gets a part of his own. Meaning they are grouped. The exception are the Hero Officers, whichs learnable skills are also defines here. Heroes themselves don't need a definition here, since they are not able to learn anything anyway.






This Block is right at the beginning. Now, what is it for? This is for Blue/Heavy armored Officers. I don't want to bore you with stuff, so I will talk about the Juicy stuff only. There are overall 18 Block for each type, all split into 4 Bytes. If we take a look at the picture and if you have a original copy of LeaderGeneration opened up, then you will instantly see some differences, starting at the 6th block, the 1E. This 1E (=30 in dec), is the minimum number of skills a Officer can have, meaning an Officer, which can have a max num of skills of 2, one of which is always melee, will try to fill it with Melee and maybe a secondary skill so both together give 30 skillpoints. Now, this can give some wanky results with elementals, as they can have 29 earth and 1 melee for example.

Continuing from this, the 7th byte following from that is the maximum number of skills an Officer can have. I have 23 here (=35 in dec), meaning the game will try to fill a max number of skills between 30 to 35 skillpoints. Now, the limit for this is actually 24 (=36 in dec), anything beyond that point will not be given by the game, even if you set minimum to lets say 32 (=50 in dec), the game wont show those Officers anymore in the Barracks. It can't handle them in a way.

Anyway, after that are the Skills the Officer group can have. Removing a Skill means, that a Officer of that group can't generate this Skill in the Pub and also cannot learn this Skill in the Barracks. I made some edits already here.
9th Block - 00 00 00 00 = Melee. You COULD remove melee, altough I don't recommend it.
10th Block - 01 00 00 00 = Ranged.
11th Block - 04 00 00 00 = Teamwork.
12th Block - 02 00 00 00 = Frontal
13th Block to 18th Block = FF FF FF FF - No Skill

If I Edit the FF FF FF FF on the lets say 13th Block to 0A 00 00 00, the Officer Group can learn and can be given the skillpoint in the Pub for Ice Magic.

List of Starting offsets:
  • Human Blue/Heavy Leader - 0x008
  • Orc Leader - 0x050
  • Dark Elves Female - 0x098
  • Human Knight Leader - 0x0E0
  • Human Paladin Leader - 0x128
  • Human Elf Leader - 0x170
  • Human Wizard - 0x1B8
  • Human Dwarfes - 0x200
  • Orc Ogre - 0x248
  • Dark Elves Male - 0x290
  • Lich - 0x2D8
  • After this Point are Hero Officer. You can edit Skills they can Learn here.
  • Ellen - 0x320
  • Rupert - 0x368
  • Duane - 0x3B0
  • Thomas - 0x3F8
  • Morene - 0x440
  • Cirith - 0x488
  • Leinhart - 0x4D0
  • Urukubarr - 0x518
SkillInfo
We open up SkillInfo.sox located at Data/SOX in a hexeditor.
If you have followed the things before this so far, there is a indicator again, but this time not for letter lenght, but for the max level. Let's take a look at the beginning of the file.




Ignoring the stuff in the beginning(if you are interested, you can find the full info on floyd's guide), the part we are interested in is "@(S_Melee)..IL_SKL_Melee.tga" If you have learned anything about hex, you will notice right away that at the bottom right of the picture there is a 2. The byte is 32, if we calculate that, we get a 50. This is the indicator we are looking for to increase the skills level. If we change that to 63 and save that:




We will get this in the game:






Editing the Numbers after the a of TGA is the slot number. Riding for example 02, changing that to 01 will decrease the slot number Riding will take up with that edit.
TroopInfo
To be Edited.
Map_CharInfo
To be Edited
Map_TroopInfo
To be Edited
SkillPointTable
To be Edited.
37 Comments
mad at video games Sep 17, 2020 @ 2:06pm 
thanks! can't wait for the unit editing guide
Ahrimansiah May 2, 2020 @ 2:49pm 
Hey bro any chance you could make a simple buildable bone dragon and Battaloon a mod please?
復活した黒  [author] Apr 21, 2020 @ 5:07pm 
Sure: https://discord.gg/TJCGkFd
#modding-chat is where we discuss most stuff about kuf tc modding.
SwaagJawhnsin Apr 21, 2020 @ 4:46pm 
Mind uploading the discord link?
Zoey Apr 21, 2020 @ 2:14pm 
ok
復活した黒  [author] Apr 21, 2020 @ 2:13pm 
That falls into the category stg editing what I did there. (changing/adding stuff to a mission)
Im not interested in making a CE script, especially since I never had to use Cheat Engine for Crusaders, except for EXP/Gold i needed in Barracks and im more about hard mods, that changes stuff to one thing no matter how many campaigns you start, than soft mods like Cheat Engine and Savegame modding, sorry.
Zoey Apr 21, 2020 @ 2:02pm 
well you uploaded a screenshot from the game doing stuff like this

https://steamcommunity.com/sharedfiles/filedetails/?id=2067720013

also the cheat engine has the tools to change the units to orcs to knights on any character you play as leading the group on any story mode as i said before, can't you upload some type of cheat engine script like how this person did it?

https://fearlessrevolution.com/viewtopic.php?t=11770
復活した黒  [author] Apr 21, 2020 @ 1:14pm 
Altough SOX could be used to swap around models this will more likely break than show results
復活した黒  [author] Apr 21, 2020 @ 1:11pm 
This is not what .SOX is for. The things you said fall into 1) Savegame Modding, 2) Memory Editing (cheat engine), 3) Interface editing and 4) stg editing.
Savegame Modding is the best currently, as you can also change things like Equipment, stats from those and Models. Various things possible.
Memory Editing requires you to know coding
Interface Editing is hard coded, no way around that yet.
stg editing requires the know-how.

If you are interested, there is a Discord where modders like me talk about the games code. Savegame modding layout gets posted there pretty often and a tool seems to come out sooner or later for that.
Zoey Apr 21, 2020 @ 1:01pm 
this did not help me figure out, how to change the officers and leaders from the other story modes.

the only way easier to change the units to other units from the other story modes such as changing orcs to knights, is by using the cheat engine. you or someone else should release a mod like how resident evil 5 has it which is called ultimate trainer when you can change stuff without having to deal with confusion coding.

by the way i don't own the game on here, its on my other account.