Alliance Francophone Sudden Strike

Fusion modding · UNITS / AVIA / LAND/DOM / ANIMAT / EXPLOSIONS

Français

Engine settings (misc\engine)

lang/MISC/ENGINE, which the game reads as misc\engine, sets the gameplay mods of the AF engine (HS2Engine and the CustomGameDLL Game_Dll.dll): cover, crew survival, reversing, vehicle motion, paradrops, medics, solo damage, ricochets, shot-down aircrews. The game reads this file once, at startup, after misc\misc.

A change to a value needs no new DLL. Edit the file, then build lang.aps again.

Syntax

reverse_range_cells 12
cover_share infantry dense 30 75
cover_prone 30 60
  • One key value line per setting. A dash in the first column makes the line a comment.
  • Absent key: the AF value applies. Without the file, the game plays as before.
  • Value out of range: the engine moves it to the nearest limit.
  • Pair out of order: both keys take their AF values. The pairs are cover_trees_moderate ≤ cover_trees_dense, cover_small_radius ≤ cover_massive_radius, cover_reach_cells ≤ cover_forest_reach_cells, crew_shot_wait_first_percent ≤ crew_shot_wait_max_percent, ricochet_bounce_near ≤ ricochet_bounce_far and ricochet_bounce_min_degrees ≤ ricochet_bounce_max_degrees. paradrop_scatter must be a power of 2.
  • The HS2Engine log records each changed value and each correction. The CustomGameDLL DLL writes no log.
  • Multiplayer: all the players of a game must have the same file, as with the unit sheets.

The file is ASCII with CRLF line ends. Before a commit, run python3 tests/check_tuning_data.py from HS2Engine: it rejects unknown or duplicate keys, values out of range and malformed lines.

Cover table

cover_share <unit> <zone> <damage %> <silhouette %> sets one cell of the table, each % from 0 to 100. cover_prone <damage %> <silhouette %> adds to it for a prone soldier, anywhere. Zones do not stack: the best damage cut and the best silhouette cut count.

Unitisolatedmoderatedensenarrowmassivehorizontalbuilding
infantry10 2020 5030 750 2020 4010 3020 50
weapon10 1010 3015 500 010 1515 3020 20
vehicle0 00 100 200 00 100 00 10

Zones: isolated vegetation, moderate forest, dense forest, narrow scenery, massive scenery or hill, lying scenery and craters, house. Units: infantry, fixed weapons (guns, MGs), vehicles. AF value of cover_prone: 30 60.

Keys

A turn is 40 ms at the usual speed. A cell is 32 px. “stock” gives the original game’s value where the setting replaces one.

Cover (HS2_MOD_COVER)

KeyPurposeRangeAF value
cover_trees_moderatemoderate forest from this many (1 or 2: isolated); at most cover_trees_dense1..93
cover_trees_densedense forest from this many (more than 7)1..98
cover_small_radiuspx; below it, no cover; at most cover_massive_radius0..2558
cover_massive_radiuspx; below it, narrow0..25516
cover_massive_widthpx, blocked footprint’s minor width (16 px subcells); below it, narrow16..22432
cover_reachpx to a scenery object (standing, lying, cliff)0..3232
cover_wall_reachpx to a house’s blocked 16 px footprint quarter0..3116
cover_vehicle_reachpx beyond a vehicle’s (or wreck’s) radius (+-2 cells are scanned)0..3216
cover_reach_cellscells, any cover (stock 3); at most cover_forest_reach_cells1..83
cover_forest_reach_cellscells, moderate and dense forest1..85
cover_enough_percent% silhouette cut (standing infantry) from which all cover is as good and the nearest wins (50: moderate forest, houses, vehicles, the filled shield; 100: the best always)1..10050
cover_danger_reachpx from a hazard: no destination within0..16064
cover_burst_shotsa hazard’s effect spawns at least this many damaging shots1..642
cover_fragile_armora house is a hazard at EXPLOSIVE armour up to this0..2552
cover_score_per_mille0..1000709
cover_cursor_strongfilled from old P 49 (moderate forest, houses, vehicles)1..10049

Crews of destroyed vehicles (HS2_MOD_CREW)

KeyPurposeRangeAF value
crew_novice_percent% chance at experience 00..10025
crew_veteran_percent% chance at full experience (0x8000), linear between0..10030
crew_wound_percent% of the type’s health, the most a wound takes (uniform from 0)0..10090

Passengers of destroyed vehicles (HS2_MOD_PASSENGERS)

KeyPurposeRangeAF value
passenger_novice_percent% chance at experience 00..10025
passenger_veteran_percent% chance at full experience (0x8000), linear between0..10030

Reversing (HS2_MOD_REVERSE_MOVE)

KeyPurposeRangeAF value
reverse_range_cellscells, the farthest destination to reverse to (stock 4; imm8)1..12612
reverse_angle1/32 turns: reverse when the next step is more off the hull (stock random, 8..15; 16: never)0..1611

Pushed guns (HS2_MOD_GUN_REVERSE)

KeyPurposeRangeAF value
gun_push_percentcannons, AA guns, howitzers, rockets (any other seltype)10..10070
gun_push_light_percentMGs (hmg) and mortars (boxer, hmortar)10..100100

Vehicle motion (HS2_MOD_VEHICLE_MOTION)

KeyPurposeRangeAF value
vehicle_start_percent% of the speed at a start (after a stop or a pivot); 100: no ramp10..10025
vehicle_accel_turnsturns from the start speed to full speed1..2506
vehicle_brake_turnsturns from full speed down to the start speed when braking1..2502
vehicle_brake_pxpx before the end of a path where braking starts; 0: off0..648
vehicle_roll_bins1/32 turns: a smaller heading change turns while rolling, a larger one pivots in place (stock 0)0..82
vehicle_turn_percent_1% of the speed while 1/32 turn off the heading10..10080
vehicle_turn_percent_2% of the speed while 2/32 or more off (up to vehicle_roll_bins)10..10060

Paradrops (HS2_MOD_PARADROP_SPREAD)

KeyPurposeRangeAF value
paradrop_scatterpx each axis around the plane (stock 32); a power of two2..12864
paradrop_extra_ticksticks between successful drops, added to reloadtime0..253

Tank crews (HS2_MOD_CREW_CYCLE)

Tanks: tank, tank2, samo, apc, mzenit. A turn is 40 ms at the usual speed.

KeyPurposeRangeAF value
crew_exit_turnsturns between two occupants leaving a tank (stock 0; 0: off)0..2500
crew_attack_crewcrew a tank needs to fire on the move, open the hatch or use binoculars, whatever the sheet’s attackcrew (all, if it seats fewer); fewer fire only at rest (stock: the sheet’s attackcrew); a member at the open hatch or the binoculars does not count (1: off)1..102
crew_switch_turnsturns fewer than crew_attack_crew need between the driver’s seat (moving, turning the hull) and the gun, both ways: no fire or reload until at the gun, no drive until at the wheel (stock 0)0..25050
crew_missing_percent% added to the reload and target search times per missing member (stock 0)0..10025
crew_max_percentthe most that adds up to, % of a full crew’s times100..1000200
crew_lone_percenta lone member’s times, % of a full crew’s100..1000200
crew_shot_wait_first_percentthe turret’s wait after a main-gun shot (gunshotwait), % of the sheet’s, with one member missing100..1000400
crew_shot_wait_step_percent% added to it per further missing member0..1000200
crew_shot_wait_max_percentthe most that adds up to (the wait stops at 254 turns); at least crew_shot_wait_first_percent100..25001000

Medics (HS2_MOD_MEDIC_PACE)

KeyPurposeRangeAF value
medic_container_factortimes rarer a medic’s heal in a house or vehicle (stock 1; Random(0x7FFF) x it x reloadtime stays in an int)1..643

Solo damage (HS2_MOD_SOLO_DAMAGE)

The % of the damage after armour that the units of the local player take in a solo game, by level. The damage they deal stays the multiplayer one.

KeyPurposeRangeAF value
solo_taken_0VERY EASY; stock 50, crews 25, and dealt x2 before and after armour0..40050
solo_taken_1EASY; stock as VERY EASY0..40075
solo_taken_2MEDIUM, the multiplayer formula; stock 1000..400100
solo_taken_3NORMAL; stock 200, crews about 4000..400200

Ricochets (HS2_MOD_RICOCHET)

The chances and the calibre formula stay in misc\misc (shot_ricochet, shot_calibre).

KeyPurposeRangeAF value
ricochet_bounce_nearpx (5 tiles), shortest flight after the bounce; at most ricochet_bounce_far32..1024160
ricochet_bounce_farpx (20 tiles), longest32..1024640
ricochet_bounce_min_degreesdeflection from the incoming line, left or right; at most ricochet_bounce_max_degrees0..9015
ricochet_bounce_max_degrees0..9045
ricochet_bounce_speed_percent% of the shell’s speed after the bounce10..20085

Crews of shot-down planes (HS2_MOD_AIRCREW)

KeyPurposeRangeAF value
aircrew_novice_percent% chance at experience 00..10020
aircrew_veteran_percent% chance at full experience (0x8000), linear between0..10040
aircrew_corner_rangepx (6 cells)0..320192
aircrew_surrender_brave_percent% chance at full morale (0x7FFF)0..10010
aircrew_surrender_broken_percent% chance at the lowest morale (-0x7FFF), linear between0..10090