I'm not too concerned with the unmodded player seeing the wrong info. We've been doing that for six months now using ships like the or_elite_msn01 to make a level 10 Anubis as well as the level 6 and the li_elite2 (juni's defender). the unmodded players see them as the anubis and as juni's defender but the modded player sees them as the Anubis Type II and the Defender Elite. (not particularly inspired names I know... sorry).
The problem that I'm having is that I'm trying now to add the capships in the same way but when I apply the new server mod the ids_name = ###### entries change for the original ships which I believe is what's causing the server to crash. If it caused the client to crash that would be no big deal as I can just tell them to run the updated client mod. As you can imagine, having the server crash can lead to all kinds of abuse and problems.
So, if the current ids_name for the CSV is 123456 for example, running the mod with the added capships changes the ids_name to 123460 which is what I think is causing the crashes.
Now; How do I convince the script to assign the same ids_name entries to the existing ships and add the new ships without causing all kinds of changes?
I have one other thing too...
The following is the entry in the script that adds the level 10 Anubis to the game.
;Class 10 Anubis Type II
;adds ship for sale at bw01_04
<data file="data\equipment\market_ships.ini" method="append" options="22:1, 22:2">
<source>
[BaseGood
base = Bw01_04_base
marketgood = oe2_package, 24, -1, 1, 1, 0, 1, 1
</source>
</data>
;adds shipdealer at bw01_04
<data file="DATA\Missions\mbases.ini" method="replace" options="22:1, 22:2">
<dest>
[MRoom
nickname = Deck
character_density = 2
fixture = bw0104_fix_trader, Zs/NPC/Trader/01/A/Stand, scripts\vendors\li_commtrader_fidget.thn, trader
fixture = bw0104_fix_weaponsdealer, Zs/NPC/Equipment/01/A/Stand, scripts\vendors\li_equipdealer_fidget.thn, Equipment
</dest>
<source>
[MRoom
nickname = Deck
character_density = 3
fixture = bw0104_fix_trader, Zs/NPC/Trader/01/A/Stand, scripts\vendors\li_commtrader_fidget.thn, trader
fixture = bw0104_fix_weaponsdealer, Zs/NPC/Equipment/01/A/Stand, scripts\vendors\li_equipdealer_fidget.thn, Equipment
fixture = bw0104_fix_ship, Zs/NPC/Shipdealer/01/A/Stand, scripts\vendors\li_shipdealer_fidget.thn, ShipDealer
[GF_NPC
nickname = bw0104_fix_ship
body = pi_pirate6_body
head = pi_pirate2_head
lefthand = benchmark_male_hand_left
righthand = benchmark_male_hand_right
individual_name = 0 ;GENERATESTRRES("AndiusTheGreat, Douglas ShipDealer"
affiliation = br_m_grp
voice = rvp111
</source>
</data>
<data file="DATA\UNIVERSE\SYSTEMS\BW01\BASES\Bw01_04_base.ini" method="replace" options="22:1, 22:2">
<dest>
[Room
nickname = Bar
file = Universe\Systems\Bw01\Bases\Rooms\Bw01_04_Bar.ini
[Room
nickname = Deck
file = Universe\Systems\Bw01\Bases\Rooms\Bw01_04_Deck.ini
</dest>
<source>
[Room
nickname = Bar
file = Universe\Systems\Br02\Bases\Rooms\Br02_03_Bar.ini
[Room
nickname = Deck
file = Universe\Systems\Br02\Bases\Rooms\Br02_03_Deck.ini
[Room
nickname = ShipDealer
file = Universe\Systems\Br02\Bases\Rooms\Br02_03_ShipDealer.ini
</source>
</data>
'adds ship for sale and sets price
<data file="data\EQUIPMENT\goods.ini" method="append" options="22:1, 22:2">
<source>
[Good
nickname = oe2_hull
category = shiphull
ship = or_elite_msn01
price = 850000
ids_name = 0 ;GENERATESTRRES("Anubis Type II"
<====================================note this entry, you'll see it later
item_icon = Equipment\models\commodities\nn_icons\or_fighter.3db
[Good
nickname = oe2_package
category = ship
hull = oe2_hull
addon = ge_oe_engine_01, internal, 1
addon = bh_elite2_power01, internal, 1
addon = armor_scale_5, internal, 1
addon = ge_s_scanner_01, internal, 1
addon = ge_s_tractor_01, internal, 1
addon = shield01_mark08_hf, HpShield01, 1
addon = LargeWhiteSpecial, HpHeadlight, 1
addon = SlowSmallYellow, HpRunningLight01, 1
addon = SlowSmallYellow, HpRunningLight02, 1
addon = SlowSmallYellow, HpRunningLight03, 1
addon = SlowSmallYellow, HpRunningLight04, 1
addon = SlowSmallYellow, HpRunningLight05, 1
addon = SlowSmallYellow, HpRunningLight06, 1
addon = contrail01, HpContrail02, 1
addon = contrail01, HpContrail03, 1
addon = DockingLightRedSmall, HpDockLight01, 1
addon = DockingLightRedSmall, HpDockLight02, 1
</source>
</data>
;changes ship info and stats
<data file="data\ships\shiparch.ini" method="replace" options="22:1, 22:2">
<dest>
[Ship
ids_name = 237042
ids_info = 66613
nickname = or_elite_msn01
LODranges = 0, 75, 150, 1000
msg_id_prefix = gcs_refer_shiparch_Ordhf
mission_property = can_use_berths
type = FIGHTER
DA_archetype = ships\order\or_elite\or_elite.cmp
material_library = Ships\order\or_ships.mat
material_library = fx\envmapbasic.mat
envmap_material = envmapbasic
cockpit = cockpits\liberty\or_elite.ini
pilot_mesh = generic_pilot
mass = 100.000000
hold_size = 600
linear_drag = 4.500000
fuse = intermed_damage_smallship01, 0.000000, 600
fuse = intermed_damage_smallship02, 0.000000, 400
fuse = intermed_damage_smallship03, 0.000000, 200
max_bank_angle = 30
camera_offset = 12, 46
camera_angular_acceleration = 0.050000
camera_horizontal_turn_angle = 17
camera_vertical_turn_up_angle = 5
camera_vertical_turn_down_angle = 25
camera_turn_look_ahead_slerp_amount = 1.000000
hit_pts = 4200
explosion_arch = explosion_li_elite
surface_hit_effects = 0, small_hull_hit_light01, small_hull_hit_light02, small_hull_hit_light03
surface_hit_effects = 150, small_hull_hit_medium01, small_hull_hit_medium02, small_hull_hit_medium03
surface_hit_effects = 300, small_hull_hit_heavy01, small_hull_hit_heavy02, small_hull_hit_heavy03
steering_torque = 43000.000000, 43000.000000, 183000.000000
angular_drag = 41000.000000, 41000.000000, 141000.000000
rotation_inertia = 8400.000000, 8400.000000, 8400.000000
nudge_force = 10000.000000
strafe_force = 20000
strafe_power_usage = 2
bay_door_anim = Sc_open baydoor
bay_doors_open_snd = cargo_doors_open
bay_doors_close_snd = cargo_doors_close
HP_bay_surface = HpBayDoor01
HP_bay_external = HpBayDoor02
HP_tractor_source = HpTractor_Source
num_exhaust_nozzles = 3
shield_link = or_elite_shield01, HpMount, HpShield01
hp_type = hp_gun_special_10, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_9, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_8, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_7, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_6, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_5, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_4, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_3, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_2, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_1, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_elite_shield_special_10, HpShield01
hp_type = hp_elite_shield_special_9, HpShield01
hp_type = hp_elite_shield_special_8, HpShield01
hp_type = hp_elite_shield_special_7, HpShield01
hp_type = hp_elite_shield_special_6, HpShield01
hp_type = hp_elite_shield_special_5, HpShield01
hp_type = hp_elite_shield_special_4, HpShield01
hp_type = hp_elite_shield_special_3, HpShield01
hp_type = hp_elite_shield_special_2, HpShield01
hp_type = hp_elite_shield_special_1, HpShield01
hp_type = hp_thruster, HpThruster01
hp_type = hp_mine_dropper, HpMine01
hp_type = hp_countermeasure_dropper, HpCM01
hp_type = hp_turret_special_10, HpTurret01
hp_type = hp_turret_special_9, HpTurret01
hp_type = hp_turret_special_8, HpTurret01
hp_type = hp_turret_special_7, HpTurret01
hp_type = hp_turret_special_6, HpTurret01
hp_type = hp_turret_special_5, HpTurret01
hp_type = hp_turret_special_4, HpTurret01
hp_type = hp_turret_special_3, HpTurret01
hp_type = hp_turret_special_2, HpTurret01
hp_type = hp_turret_special_1, HpTurret01
hp_type = hp_torpedo_special_1, HpTorpedo01, HpTorpedo02
hp_type = hp_torpedo_special_2, HpTorpedo01, HpTorpedo02
[CollisionGroup
obj = Or_star_wing_lod1
separable = true
parent_impulse = 240.000000
child_impulse = 7.000000
debris_type = debris_small_ship
dmg_hp = DpStarboardwing
dmg_obj = or_elite_dmg_star_wing_cap
separation_explosion = explosion_small_ship_breakoff
mass = 5.000000
type = Starboard_Wing
hit_pts = 525
root_health_proxy = true
[CollisionGroup
obj = Or_port_wing_lod1
separable = true
parent_impulse = 240.000000
child_impulse = 7.000000
debris_type = debris_small_ship
dmg_hp = DpPortwing
dmg_obj = or_elite_dmg_port_wing_cap
separation_explosion = explosion_small_ship_breakoff
mass = 5.000000
type = Port_Wing
hit_pts = 525
root_health_proxy = true
</dest>
<source>
[Ship
ids_name = 0 ;GENERATESTRRES("Anubis Type II"
<=====================================here it is again, is that a problem?
ids_info = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TEXT/><PARA/><TRA data="1" mask="1" def="-2"/><JUST loc="center"/><TEXT>Stats</TEXT><PARA/><TRA data="0" mask="1" def="-1"/><JUST loc="left"/><TEXT/><PARA/><TEXT>Guns/Turrets: 6/1</TEXT><PARA/><TEXT>Armor: 10,774</TEXT><PARA/><TEXT>Cargo Holds: 70</TEXT><PARA/><TEXT>Max Batteries/NanoBots: 12/12</TEXT><PARA/><TEXT>Optimal Weapon Class: 8</TEXT><PARA/><TEXT>Max. Weapon Class: 10</TEXT><PARA/><TEXT>Additional Equipment: CM, Mine, CD/Torp</TEXT><PARA/><PARA/><POP/></RDL></xml>"
ids_info1 = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TRA data="1" mask="1" def="-2"/><JUST loc="center"/><TEXT>Anubis Type II</TEXT><PARA/><TRA data="0" mask="1" def="-1"/><JUST loc="left"/><TEXT></TEXT><PARA/><TEXT>This fighter truly offers the best of all worlds. Armor, maneuverability, equipment; this ship can stand up to anything you throw at it.</TEXT><PARA/><POP/></RDL></xml>"
ids_info2 = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TRA data='1' mask='1' def='-2'/><TEXT>Stats</TEXT><PARA/><TRA data='0' mask='1' def='-1'/><TEXT/><PARA/><TEXT>Gun/Turret Mounts:</TEXT><PARA/><TEXT>Armor:</TEXT><PARA/><TEXT>Cargo Space:</TEXT><PARA/><TEXT>Max Batteries/NanoBots:</TEXT><PARA/><TEXT>Optimal Weapon Class:</TEXT><PARA/><TEXT>Max. Weapon Class:</TEXT><PARA/><TEXT></TEXT><PARA/><POP/></RDL></xml>"
ids_info3 = 0 ;GENERATEXMLRES("<xml><RDL><PUSH/><TEXT/><PARA/><TEXT/><PARA/><TEXT>6/1</TEXT><PARA/><TEXT>10774</TEXT><PARA/><TEXT>70</TEXT><PARA/><TEXT>12/12</TEXT><PARA/><TEXT>8</TEXT><PARA/><TEXT>10</TEXT><PARA/><TEXT></TEXT><PARA/><POP/></RDL></xml>"
ship_class = 3
nickname = or_elite_msn01
LODranges = 0, 75, 150, 1000
msg_id_prefix = gcs_refer_shiparch_Ordhf
mission_property = can_use_berths
type = FIGHTER
DA_archetype = ships\order\or_elite\or_elite.cmp
material_library = Ships\order\or_ships.mat
material_library = fx\envmapbasic.mat
envmap_material = envmapbasic
cockpit = cockpits\liberty\or_elite.ini
pilot_mesh = generic_pilot
hold_size = 70
;///////////////// SERVER SIDE ONLY
nanobot_limit = 71
shield_battery_limit = 71
;//////////////////////////////Client Values
;nanobot_limit = 12
;shield_battery_limit = 63
;//////////////////////////////////
mass = 100.000000
linear_drag = 4.500000
fuse = intermed_damage_smallship01, 0.000000, 600
fuse = intermed_damage_smallship02, 0.000000, 400
fuse = intermed_damage_smallship03, 0.000000, 200
max_bank_angle = 30
camera_offset = 12, 46
camera_angular_acceleration = 0.050000
camera_horizontal_turn_angle = 17
camera_vertical_turn_up_angle = 5
camera_vertical_turn_down_angle = 25
camera_turn_look_ahead_slerp_amount = 1.000000
hit_pts = 4200
explosion_arch = explosion_li_elite
surface_hit_effects = 0, small_hull_hit_light01, small_hull_hit_light02, small_hull_hit_light03
surface_hit_effects = 150, small_hull_hit_medium01, small_hull_hit_medium02, small_hull_hit_medium03
surface_hit_effects = 300, small_hull_hit_heavy01, small_hull_hit_heavy02, small_hull_hit_heavy03
steering_torque = 55000.000000, 55000.000000, 48000.000000
angular_drag = 41000.000000, 41000.000000, 35000.000000
rotation_inertia = 8400.000000, 8400.000000, 1000.000000
nudge_force = 30000.000000
strafe_force = 20000
strafe_power_usage = 2
bay_door_anim = Sc_open baydoor
bay_doors_open_snd = cargo_doors_open
bay_doors_close_snd = cargo_doors_close
HP_bay_surface = HpBayDoor01
HP_bay_external = HpBayDoor02
HP_tractor_source = HpTractor_Source
num_exhaust_nozzles = 3
shield_link = or_elite_shield01, HpMount, HpShield01
hp_type = hp_gun_special_10, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04
hp_type = hp_gun_special_9, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_8, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_7, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_6, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_5, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_4, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_3, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_2, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_gun_special_1, HpWeapon01, HpWeapon02, HpWeapon03, HpWeapon04, HpWeapon05, HpWeapon06
hp_type = hp_elite_shield_special_10, HpShield01
hp_type = hp_elite_shield_special_9, HpShield01
hp_type = hp_elite_shield_special_8, HpShield01
hp_type = hp_elite_shield_special_7, HpShield01
hp_type = hp_elite_shield_special_6, HpShield01
hp_type = hp_elite_shield_special_5, HpShield01
hp_type = hp_elite_shield_special_4, HpShield01
hp_type = hp_elite_shield_special_3, HpShield01
hp_type = hp_elite_shield_special_2, HpShield01
hp_type = hp_elite_shield_special_1, HpShield01
hp_type = hp_thruster, HpThruster01
hp_type = hp_mine_dropper, HpMine01
hp_type = hp_countermeasure_dropper, HpCM01
hp_type = hp_turret_special_10, HpTurret01
hp_type = hp_turret_special_9, HpTurret01
hp_type = hp_turret_special_8, HpTurret01
hp_type = hp_turret_special_7, HpTurret01
hp_type = hp_turret_special_6, HpTurret01
hp_type = hp_turret_special_5, HpTurret01
hp_type = hp_turret_special_4, HpTurret01
hp_type = hp_turret_special_3, HpTurret01
hp_type = hp_turret_special_2, HpTurret01
hp_type = hp_turret_special_1, HpTurret01
hp_type = hp_torpedo_special_1, HpTorpedo01
hp_type = hp_torpedo_special_2, HpTorpedo02
[CollisionGroup
obj = Or_star_wing_lod1
separable = true
parent_impulse = 240.000000
child_impulse = 7.000000
debris_type = debris_small_ship
dmg_hp = DpStarboardwing
dmg_obj = or_elite_dmg_star_wing_cap
separation_explosion = explosion_small_ship_breakoff
mass = 5.000000
type = Starboard_Wing
hit_pts = 4200
root_health_proxy = true
[CollisionGroup
obj = Or_port_wing_lod1
separable = true
parent_impulse = 240.000000
child_impulse = 7.000000
debris_type = debris_small_ship
dmg_hp = DpPortwing
dmg_obj = or_elite_dmg_port_wing_cap
separation_explosion = explosion_small_ship_breakoff
mass = 5.000000
type = Port_Wing
hit_pts = 4200
root_health_proxy = true
</source>
</data>