Please consider the previous posts i made about custom profiles invalid/outdated. I also wanted to put everything related to CPs into one post.
Yes the other ones should be locked now.
squadType , sClass or sKind - soldier category
assault
sniper
rifle
tanker
engineer
pilot_fighter
radioman
pilot_assaulter
anti_tank
mgun
mortarman
flametrooper
medic
biker
paratrooper
and all of them should have _2 _3 _4 …variants. For example: mgun_3 - Machine Gunner 3
Perks
hp_boost
hp_regeneration
heal_effectivity
pilot_keen_vision
brakingTauMult
gearChangeTimeMult
drivingSpeedThresholdMult
pilot_awareness
stamina_boost
pilot_stamina_boost_base
pilot_stamina_boost
pilot_willpower
pilot_head_stabilisation
pilot_positive_g_tolerance
pilot_negative_g_tolerance
pilot_stamina_regeneration
stamina_regeneration
weight_run
less_stopping_power
more_stability_when_hit
less_recoil
more_predictable_recoil
faster_aiming_point_return_after_fire
less_aim_moving
less_maximum_shot_spread_after_turn
faster_decreasing_of_maximum_shot_spread
longer_hold_breath
less_hold_breath_cd
faster_bolt_action
faster_reload
accurate_guidance
reload_reaction
faster_change_weapon
sprint_speed
run_speed
crawl_speed
jump_height
climb_speed
less_fall_dmg
change_pose_speed
weapon_turning_speed
crawl_crouch_speed
faster_change_pose_speed
extinguish_time
repair_speed
repair_quality
repairkit_economy_usage
seat_change_speed
less_base_kill_chance
more_downed_time
less_camera_shake_on_explosions
longer_hold_breath_cd
more_building_materials
melee_damage
longer_grenade_throw
faster_building_speed
faster_aim_speed
heal_speed
faster_melee
fire_damage_mult
fire_damage_tick_resistance
more_flamethrower_fuel
faster_self_fire_putout
less_concussion_shake
less_concussion_time
heal_speed_target
heal_effectivity_target
medic_more_medbox_packs
medic_more_medpacks
SquadIDs
factionname_campaign_squadType_number
For example: ussr_moscow_assault_1 USSR Moscow Assaulter Squad I
For more info look into common.csv in the language file (enlisted-lang.vromfs.bin\lang\common) It contains all squads and their codenames.
Guide
2023.10.01: * Note that Custom profiles will not work in the editor. You will have to export the vromfs.bin file, upload it to the sandbox portal and test it in the client by launching a custom battle. This is presumably due to the editor’s own squad profile.
This is the old guide i made before. It is still valid with the extra points i added below.
As a start i will load the squad profile that was used for the Sea Predator event. Later i will edit this to my liking.
First create your scene then hit save. Then open the folder of your mission:
I have created a seperate folder for the profiles. It is not neccessary, you can just place it next to the scene.blk file.
In the editor, add the two profile entities to the scene:
The difference between the two is pretty much self explanatory.
It only has 1 property, the file path:
In my case for both profiles it is %ugm/profiles/sea_predator_profile.json
Here it is in notepad:
After creating the profiles for both players and bots we can save and restart.
We will be greeted by this error message:
It’s fine. Ignore it. export mod as vromfs.bin and launch it online.
As you can see it works as we would expect in-game:
Now let’s get to the good part. Let’s customise this.
You will have to edit this in a text editor. Not in the actual game editor.
You can imagine this profile file as a rather deep tree structure, where the top nodes are the factions themselves:
Each of these contain a lot of interesting but irrelevant definitions like how much xp is needed for the next campaign level: (I have edited the normandy_allies part of the profile)
Or how much xp do you need to earn to get an order:
What we are truly interested in are here:
SQUADS.
Note: It is easy to accidentally delete a bracket. And due to the complexity of this file it also easy to get lost. I suggest you collapse everything but the squads section.
At the top the squad’s properties are defined.
artilleryCooldown
for example (i think) has smaller value for artillery squads
engineerUnlocks
should define whether the engineer of this squad can build enginner squad exclusive buidlings like Flak AA or MG nest.
isRented
sounds interesting…
In the game we have soldier named “Rolando Wilson”
We can search this in our JSON file:
Every solder code starts with it’s equipment: (“id” : x, is the first line)
There is a lot of options here. Let’s start by renaming our guy to…Custon Name.
Now let’s increase the perk number:
to
And add actual perks:
In the game perks have a pre-set value. Like +40% jump height or -40% verical recoil.
These can all be custom. Just change the statValue to your liking.
hp_boost is Max Vitality. In this case it is +220% max hp.
The others are self explanatory.
Next section is appearance:
Thanks to @ErikaKalkbrenner you can edit the appearance of each soldier.
Next is
human_weap__weapInfo
You can see that the ammo for the m2_carbine is defined here. Our soldier gets 5 clips + one is already loaded.
Bayonet is also added here.
This is also where you add scopes to weapons which had them.
I have no idea what happens if you try to add a scope or bayonet to a wepaon which otherwise can’t equip one. You are free to try.
The last section defines the weapons.
The first few lines don’t need explanation. I also found this somehwhere:
Weapons are defined below.
Which appear correctly in the game:
grenade_thrower
is not a weapon. It is literraly a slot for soldiers to throw grenades.
Let’s replace this with the M2 Hyde gun.
You can check the weapon codes in the editor:
Let’s also give him a nice pistol:
Remember to change the ammo for the guns above.
You can find the right ammo for the gun in the editor:
This is how my weapInfo looks like:
Let’s test it.
Aaand it works!
We have the equipment we defined:
Clothing IDs In case you want to play Sims in Enlisted (Thanks to @ErikaKalkbrenner)
Modified profile.JSON:
- Use sample provided below
Debugging and what to look out for
- Brackets must always have their correct “pair”, or the game will return a “Connection refused” error when launched online, or “Corrupted profile” error when launching in local mode
- JSON Syntax requires you to NOT place commas at the closing bracket of the last element of an array. applies to all arrays of course.
- Soldiers and squads MUST have custom guids or the profile will be broken. If two squads have the same guid then, in-game, the second squad will appear as a duplicate of the first squad.
You can use https://jsonlint.com/ for debugging.
Sample JSON
Playable Mission with the custom squads:
https://sandbox.enlisted.net/post/fKUbhbKV3HWgsh4B/
Custom profile was made with motorized squad. Note that this requires entites.blk override or the vehicle squad will not be able to spawn.
Launch mission with Moscow as selected campaign
Thanks to @Devenddar and @tommyZZM
Sample mission with “source code”:
_Mechanized_1941.zip (13.3 KB)
I plan to expand this as i encounter more errors.
FAQ
!WIP!
Q: Whats the difference between bots profile and players profile?
A: Probably bots profile doesn’t have vehicle squads as the AI cannot operate tanks, plane etc.
Q: Where do i find weapon names? And the ammo that belongs to them?
A: Use the editor. Place the chosen weapon on the map then search “ammoHolder”. It will tell you which ammo it will accept.
Usually ammo is gunname_magazine. But not always.
Q: My soldier has no ammo! Or weapons!
A: You have probably made a typo in the JSON file. Recheck and try again.
Q: Can i edit the weapon’s properties? Fire rate, reload time, recoil, etc?
A: Yes. There are two possible ways to do this. If you want to apply a stat to every weapon in the mission you can override it in the entites.blk file. Otherwise edit weapInitialComponents:
First element of initialComponents is the primary weapon. Second is secondary weapon. Third is pistol etc.
**Q:How do i edit the soldier itself? (Run speed, max health?)
A: You need to edit the perks section of each soldier with the perks i listed above.
Q: Can i change the textures of guns?
A: Yes by adding the following to entites.blk:
colt_walker_gun{
_override:b=yes
"animchar__objTexReplace:object"{
"western_weapon_handgun_a_tex_d*":t="ger_camo_winter_grey*"
"western_weapon_handgun_a_tex_n*":t="western_weapon_handgun_a_tex_n*"
}
}
colt_walker_gun_item{
_override:b=yes
"animchar__objTexReplace:object"{
"western_weapon_handgun_a_tex_d*":t="ger_camo_winter_grey*"
"western_weapon_handgun_a_tex_n*":t="western_weapon_handgun_a_tex_n*"
}
}
Thanks to @Devenddar
Q: I get “connection refused” error. What do i do?