Help with a mission script
-
Ok, This is far from perfect, but here goes:
C:\Program Files\Microsoft Games\Freelancer\DATA\MISSIONS\M13\npcships.ini :
i made and empty ini named this and put this in there…
[NPCShipArch]
nickname = khayman_q
loadout = King_No_Cloak
level = d13
ship_archetype = or_elite
pilot = MSN13_King
state_graph = FIGHTER
npc_class = lawful, elite_fighter[NPCShipArch]
nickname = MSN01a_Liberty_Cruiser
loadout = MSN01a_Liberty_Cruiser
level = d10
ship_archetype = li_cruiser
pilot = MSN01a_Liberty_Cruiser
state_graph = cruiser
npc_class = lawful, cruiserC:\Program Files\Microsoft Games\Freelancer\DATA\MISSIONS\M13\m13.ini :
Same as before started with an empty .ini
[Mission]
npc_ship_file = missions\m13\npcships.ini[NPC]
nickname = khayman_q
npc_ship_arch = khayman_q
voice = quintaine
space_costume = li_scrote_head, li_scrote_body, comm_li_hatcher
affiliation = fc_uk_grp
individual_name = 197512[NPC]
nickname = nomadcap
npc_ship_arch = MSN01a_Liberty_Cruiser
space_costume = li_scrote_head, li_scrote_body, comm_li_hatcher
individual_name = 237031
affiliation = fc_f_grp[MsnShip]
nickname = nomadcap
NPC = nomadcap
label = nomadcap
label = nomadcapother[MsnShip]
nickname = nomadcap1
NPC = nomadcap
label = nomadcap
label = nomadcapother[MsnShip]
nickname = nomadcap2
NPC = nomadcap
label = nomadcap
label = nomadcapother[MsnShip]
nickname = nomadcap3
NPC = nomadcap
label = nomadcap
label = nomadcapother[MsnShip]
nickname = nomadcap4
NPC = nomadcap
label = nomadcap
label = nomadcapother[MsnShip]
nickname = nomadcap5
NPC = nomadcap
label = nomadcap
label = nomadcapother[MsnShip]
nickname = khayman_q
NPC = khayman_q
radius = 0
label = khayman_q[MsnShip]
nickname = khayman_q1
NPC = khayman_q
radius = 0
label = khayman_q[MsnShip]
nickname = khayman_q2
NPC = khayman_q
radius = 0
label = khayman_q[MsnShip]
nickname = khayman_q3
NPC = khayman_q
radius = 0
label = khayman_q[Trigger]
nickname = INIT_ALL
system = ANY
InitState = ACTIVE ;Init All
Cnd_True = no_params
Act_ActTrig = INIT_NEWPLAYER
Act_ActTrig = start_init[Trigger]
nickname = INIT_NEWPLAYER
system = ANY
Cnd_BaseEnter = Li01_01_base
Act_ActTrig = welcome_to_missions[Trigger]
nickname = welcome_to_missions
system = Li01
Cnd_SystemEnter = Li01
Act_PopupDialog = 458755, 458761, CLOSE
Act_ActTrig = start_init[Trigger]
nickname = start_init
system = Li01
Cnd_SpaceEnter = no_params
Act_SpawnShip = khayman_q, khayman_q_form_on_trent, -33355, 0, -25859, 90.780900, 0, 0.624700, 0
Act_SpawnShip = khayman_q1, khayman_q_form_on_trent, -33255, 0, -25859, 90.780900, 0, 0.624700, 0
Act_SpawnShip = khayman_q2, khayman_q_form_on_trent, -33155, 0, -25859, 90.780900, 0, 0.624700, 0
Act_SpawnShip = khayman_q3, khayman_q_form_on_trent, -33455, 0, -25859, 90.780900, 0, 0.624700, 0
Act_SpawnShip = nomadcap, nomadcap, -32155, 300, -27259, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap1, nomadcap, -32155, 300, -26059, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap2, nomadcap, -32155, 300, -26459, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap3, nomadcap, -32155, 300, -26859, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap4, nomadcap, -32155, -300, -27259, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap5, nomadcap, -32155, -300, -26859, 0.780800, 0, 0.624700, 0
Act_ActTrig = test_fight[Trigger]
nickname = test_fight
system = Li01
Cnd_Timer = 20
Act_SetVibeLblToShip = khayman_q, nomadcap, REP_HOSTILE_THRESHOLD
Act_SetVibeShiptoLbl = nomadcap, khayman_q, REP_HOSTILE_THRESHOLD
Act_ActTrig = spawn2[Trigger]
nickname = spawn2
system = Li01
Cnd_Timer = 20
Act_SpawnShip = nomadcap, nomadcap, -32155, 300, -27259, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap1, nomadcap, -32155, 300, -26059, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap2, nomadcap, -32155, 300, -26459, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap3, nomadcap, -32155, 300, -26859, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap4, nomadcap, -32155, -300, -27259, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomadcap5, nomadcap, -32155, -300, -26859, 0.780800, 0, 0.624700, 0
Act_ActTrig = end[Trigger]
nickname = end
system = Li01
Cnd_Timer = 5
Act_PopupDialog = 458755, 458761, CLOSE
Act_ChangeState = SUCCEEDC:\Program Files\Microsoft Games\Freelancer\DATA\SHIPS\loadouts.ini :
added this at the bottom of the normal .ini
[Loadout]
nickname = King_No_Cloak
archetype = or_elite
equip = ge_be_engine_01
equip = shield01_mark07_hf, HpShield01
equip = infinite_power
equip = ge_s_scanner_02
equip = ge_s_tractor_01
equip = ge_s_thruster_01, HpThruster01
equip = armor_scale_5
equip = special_nomad_gun03, HpWeapon01
equip = special_nomad_gun03, HpWeapon02
equip = special_nomad_gun03, HpWeapon03
equip = co_gun02_mark03, HpWeapon04
equip = special_nomad_gun03, HpWeapon05
cargo = missile01_mark05_ammo, 20
equip = missile01_mark05, HpWeapon06
equip = fc_or_turret01_mark01, HpTurret01
equip = mine02_mark05, HpMine01
cargo = mine02_mark05_ammo, 20
equip = ge_s_cm_03, HpCM01
cargo = ge_s_cm_03_ammo, 20
;equip = cloak_osiris, HpCloak01
equip = LargeWhiteSpecial, HpHeadlight
equip = MediumBlue, HpRunningLight01
equip = MediumBlue, HpRunningLight02
equip = MediumBlue, HpRunningLight03
equip = MediumBlue, HpRunningLight04
equip = MediumBlue, HpRunningLight05
equip = MediumBlue, HpRunningLight06
equip = contrail01, HpContrail01
equip = contrail01, HpContrail02
equip = contrail01, HpContrail03
equip = DockingLightRedSmall, HpDockLight01
equip = DockingLightRedSmall, HpDockLight02
cargo = ge_s_battery_01, 30
cargo = ge_s_repair_01, 30
;cargo = commodity_cardamine, 2When you start and when it ends, an empty popup box appears. thats just so i could throw some text in.
Like i said at the top, its far from perfect but i hope it helps anyone wanting to try this out.
-
Well done, and please keep your investigations going!
-
This one uses nomad gunboats:
C:\Program Files\Microsoft Games\Freelancer\DATA\SHIPS\loadouts_special.ini :
i added this to the vanilla ini and also added it to loadouts.ini because im not sure which it uses.
[Loadout]
nickname = Nomad_Gunboat
archetype = no_gunboat
equip = infinite_power
equip = ge_ng_engine_01
equip = sfx_rumble_cruiser
equip = ge_s_scanner_02
equip = ge_s_tractor_01
equip = no_thruster, HpThruster01
equip = nomad_turret01_mark01, Hp_1_01
equip = nomad_turret01_mark01, Hp_1_02
equip = nomad_turret01_mark01, Hp_1_03
equip = nomad_turret01_mark01, Hp_1_04
equip = nomad_turret01_mark01, Hp_1_05
equip = nomad_turret01_mark01, Hp_1_06
;equip = cloak_nomad_gunboat, HpCloak01C:\Program Files\Microsoft Games\Freelancer\DATA\MISSIONS\M13\npcships.ini:
[NPCShipArch]
nickname = MSN12_Nomad_Gunboat
loadout = Nomad_Gunboat
level = d16
ship_archetype = no_gunboat
pilot = MSN12_Nomad_Gunboat
state_graph = GUNBOAT
npc_class = lawful, GUNBOATC:\Program Files\Microsoft Games\Freelancer\DATA\MISSIONS\M13\m13:
[Mission]
npc_ship_file = missions\m13\npcships.ini[NPC]
nickname = Nomad_Gunboat
npc_ship_arch = MSN12_Nomad_Gunboat
individual_name = 217202
affiliation = fc_n_grp
space_costume = benchmark_male_head, li_male_elite_body, comm_ge_generic1[MsnShip]
nickname = nomad_gunboat1
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[MsnShip]
nickname = nomad_gunboat2
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[MsnShip]
nickname = nomad_gunboat3
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[MsnShip]
nickname = nomad_gunboat4
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[MsnShip]
nickname = nomad_gunboat5
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[MsnShip]
nickname = nomad_gunboat6
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[MsnShip]
nickname = nomad_gunboat7
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[MsnShip]
nickname = nomad_gunboat8
NPC = Nomad_Gunboat
radius = 0
label = nomad_gunboat[Trigger]
nickname = INIT_ALL
system = ANY
InitState = ACTIVE ;Init All
Cnd_True = no_params
Act_ActTrig = INIT_NEWPLAYER
Act_ActTrig = start_init[Trigger]
nickname = INIT_NEWPLAYER
system = ANY
Cnd_BaseEnter = Li01_01_base
Act_ActTrig = welcome_to_missions[Trigger]
nickname = welcome_to_missions
system = Li01
Cnd_SystemEnter = Li01
Act_PopupDialog = 458755, 458761, CLOSE
Act_ActTrig = start_init[Trigger]
nickname = start_init
system = Li01
Cnd_SpaceEnter = no_params
Act_SpawnShip = nomad_gunboat1, nomadcap, -32155, 300, -27259, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomad_gunboat2, nomadcap, -32155, 300, -26059, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomad_gunboat3, nomadcap, -32155, 300, -26459, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomad_gunboat4, nomadcap, -32155, 300, -26859, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomad_gunboat5, nomadcap, -32155, -300, -27259, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomad_gunboat6, nomadcap, -32155, -300, -26059, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomad_gunboat7, nomadcap, -32155, -300, -26459, 0.780800, 0, 0.624700, 0
Act_SpawnShip = nomad_gunboat8, nomadcap, -32155, -300, -26859, 0.780800, 0, 0.624700, 0
Act_PlayMusic = none, none, none, music_dangerous_chase
Act_ActTrig = music_timer[Trigger]
nickname = music_timer
system = Li01
Cnd_Timer = 240
Act_ActTrig = end
Act_PopupDialog = 458755, 458761, CLOSE
Act_ChangeState = SUCCEED -
Yep. Ship spawning works nice, thx for tutorial
And it is possible to create dynamic dockable bases and i tnink jumpholes/jumpgates by [msnsolar] sections
One problem if other player joins to the server with the same mission (m13) - count of solars grows, and if any player on mission recconnects - again additional mission scenes - more solars and npcs :))
So storyline npcs are more “stable” than “solars” x)
-
Yea, ive had this problem too… for the moment ive just been deleting the character i used to start the script to try get around this.
I also tried with only starting the script from a /restart command using FLHook or FLShell… but again the server will spawn x2. (my theory is that its because my /restart character has already been connected with the server… im looking into trying to figure a way to catch the character before it has a name… (i.e before you name your character, you choose a restart which will start the script(s)).For people running a server i guess that a /restart is ok if you watch the number of ships you want to spawn, as long as the character is deleted afterwards.
Update on cloaking NPC:
I’ve made some hex edits for longer range scanners and draw distances, ship lod ranges too, and it seems to help.
At the moment i’m looking into changing the NPC ship’s loadouts after they have uncloaked (so they dont have cloaks mounted anymore).EDIT: Funny find!
Bases can use Cloaks too :D. I’ve just spawned the nomad city in New york and made it uncloak -
Sorry about the double post, but i just wanted to show a video teaser…
http://www.youtube.com/watch?v=XHHX1mgMJBQ
P.S sorry about the poor quality.
Cheers, Khayman
-
Brilliant!
Bwt for me any ship class and state graph other than fighter/class_fighter not worked - npc stays in place, as i said before, but with fighter/class_fighter and different pilots works well! %)
-
HeIIoween wrote:
Brilliant!Bwt for me any ship class and state graph other than fighter/class_fighter not worked - npc stays in place, as i said before, but with fighter/class_fighter and different pilots works well! %)
i just remembered that i added this to the nomads in the factionprop.ini:
[FactionProps]
affiliation = fc_n_grp
legality = unlawful
nickname_plurality = plural
msg_id_prefix = ignore
jump_preference = jumpgate
npc_ship = MSN13_Nomad_Fighter_Populator
npc_ship = fc_n_no_fighter_d19
mc_costume = mc_fc
firstname_male = 229608, 229608
firstname_female = 229608, 229608
lastname = 229608, 229608
rank_desig = 197140, 197140, 197140, 10, 15
formation_desig = 197808, 197820
formation = fighters, fighter_guild
formation = gunboats, gunboat_wall <–--------------------dont know if that will help you or not.
Cheers, Khayman
-
Thinking how to prevent npc spam…
How would be interpreted f1, alt+f4, other char selection or other server - Cnd_SpaceExit?
-
im looking into trying to figure a way to catch the character before it has a name…
Just a random thought, you might could ask at the ProcyonHook’s forums. They have done some thing that you can select your character outfit if you create a new character (even though I am sure they did a lot of coding with it) - Might be worth a try. Actually, aside of Adoxa and a few others they might be able to help you with such a specific thing.
-
Partial mission objects anti-spam. When player reconnects - no more additional copies of solars/npcs.
[Mission] npc_ship_file = missions\npcships.ini [MsnSolar] nickname = fp7base faction = li_p_grp reputation = li_p_grp system = LI01 base=intro1_base position = 3600, 1000, -21000 orientation = 1, 0, 0, 0 archetype = freeport7 loadout = freeport7 label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true [MsnSolar] nickname = freeport7_space_dome1 faction = li_p_grp reputation = li_p_grp system = LI01 position = 4118, 1000, -21000 orientation = 0, 0, 1, 0 archetype = freeport7_space_dome label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true loadout = space_dome_co_01 parent = fp7base [MsnSolar] nickname = freeport7_space_dome2 faction = li_p_grp reputation = li_p_grp system = LI01 position = 3080, 1000, -21000 orientation = 1, 0, 0, 0 archetype = freeport7_space_dome label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true loadout = space_dome_co_01 parent = fp7base [MsnSolar] nickname = freeport7_space_dome3 faction = li_p_grp reputation = li_p_grp system = LI01 position = 3600, 1000, -20609 orientation = 1, 0, 1, 0 archetype = freeport7_space_dome label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true loadout = space_dome_co_01 parent = fp7base [Trigger] nickname = tr_initialize_init system = li01 InitState = ACTIVE Cnd_True = no_params Act_ActTrig = go_mis [Trigger] nickname = go_mis system = Li01 Cnd_SystemEnter = Li01 Act_ActTrig = mis_yes ; if we have Mission_13 at players file - start_init Act_ActTrig = mis_no ; if we have No_Mission at players file - the_end_end [Trigger] nickname = mis_yes Cnd_HasMsn = yes Act_ActTrig = start_init [Trigger] nickname = mis_no Cnd_HasMsn = no Act_ActTrig = the_end_end [Trigger] nickname = start_init system = li01 Cnd_Timer = 10 Act_RandomPop = true Act_RpopAttClamp = true Act_RpopTLAttacksEnabled = true Act_SpawnSolar = fp7base Act_SpawnSolar = freeport7_space_dome1 Act_SpawnSolar = freeport7_space_dome2 Act_SpawnSolar = freeport7_space_dome3 Act_MarkObj = fp7base, 1 Act_MarkObj = freeport7_space_dome1, 1 Act_MarkObj = freeport7_space_dome2, 1 Act_MarkObj = freeport7_space_dome3, 1 Act_ActTrig = the_end_end [Trigger] nickname = the_end_end system = Li01 Cnd_SystemEnter = Li01 Cnd_Timer = 240 Act_ChangeState = SUCCEED
-
khayman wrote:
The problem with that is:
Act_ChangeState = SUCCEEDwhen this happens your bases will disapear
Copy of base will disappear.
-
Update!
At the end of any *.fl file:... [MissionState] mission_accepted = 1 ; yes we have mission att_clamp = true tradelane_attacks = true scan_clamp = true gcs_clamp = false hostile_clamp = false random_pop = true [BStoryMissionDone] [StoryInfo] ship_bought = false Mission = Mission_13 MissionNum = 0 delta_worth = -1.000000 debug = 0
At /data/missions/m13.ini:
[Mission] npc_ship_file = missions\npcships.ini [MsnSolar] nickname = fp7base faction = li_p_grp reputation = li_p_grp system = LI01 base=intro1_base position = 3600, 1000, -21000 orientation = 1, 0, 0, 0 archetype = freeport7 loadout = freeport7 label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true [MsnSolar] nickname = freeport7_space_dome1 faction = li_p_grp reputation = li_p_grp system = LI01 position = 4118, 1000, -21000 orientation = 0, 0, 1, 0 archetype = freeport7_space_dome label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true loadout = space_dome_co_01 parent = fp7base [MsnSolar] nickname = freeport7_space_dome2 faction = li_p_grp reputation = li_p_grp system = LI01 position = 3080, 1000, -21000 orientation = 1, 0, 0, 0 archetype = freeport7_space_dome label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true loadout = space_dome_co_01 parent = fp7base [MsnSolar] nickname = freeport7_space_dome3 faction = li_p_grp reputation = li_p_grp system = LI01 position = 3600, 1000, -20609 orientation = 1, 0, 1, 0 archetype = freeport7_space_dome label = lbl_fp7base radius = 0 pilot = setscene_nomad_fighter_FP7 random_name = true loadout = space_dome_co_01 parent = fp7base [Trigger] nickname = tr_initialize_init system = li01 InitState = ACTIVE Cnd_True = no_params Act_ActTrig = go_mis [Trigger] nickname = go_mis system = Li01 Cnd_SystemEnter = Li01 Act_ActTrig = mis_yes Act_ActTrig = mis_no [Trigger] nickname = mis_yes Cnd_HasMsn = yes Act_ActTrig = start_init [Trigger] nickname = mis_no Cnd_HasMsn = no Act_SetVibe = fp7base, Player, REP_HOSTILE_THRESHOLD Act_SetVibe = freeport7_space_dome1, Player, REP_HOSTILE_THRESHOLD Act_SetVibe = freeport7_space_dome2, Player, REP_HOSTILE_THRESHOLD Act_SetVibe = freeport7_space_dome3, Player, REP_HOSTILE_THRESHOLD Act_ActTrig = the_end_end [Trigger] nickname = start_init system = li01 Cnd_Timer = 10 Act_RandomPop = true Act_RpopAttClamp = true Act_RpopTLAttacksEnabled = true Act_Destroy = freeport7_space_dome1, SILENT ; kill copies of solars (detroy root must be in fuse) Act_Destroy = freeport7_space_dome2, SILENT ; -//- Act_Destroy = freeport7_space_dome3, SILENT ; -//- Act_Destroy = fp7base, SILENT ; -//- Act_SpawnSolar = fp7base Act_SpawnSolar = freeport7_space_dome1 Act_SpawnSolar = freeport7_space_dome2 Act_SpawnSolar = freeport7_space_dome3 Act_MarkObj = fp7base, 1 Act_MarkObj = freeport7_space_dome1, 1 Act_MarkObj = freeport7_space_dome2, 1 Act_MarkObj = freeport7_space_dome3, 1 Act_SetVibe = fp7base, Player, REP_HOSTILE_THRESHOLD Act_SetVibe = freeport7_space_dome1, Player, REP_HOSTILE_THRESHOLD Act_SetVibe = freeport7_space_dome2, Player, REP_HOSTILE_THRESHOLD Act_SetVibe = freeport7_space_dome3, Player, REP_HOSTILE_THRESHOLD Act_ActTrig = the_end [Trigger] nickname = the_end system = Li01 Cnd_SystemEnter = Li01 Cnd_Destroyed = fp7base, 1, EXPLODE Cnd_Destroyed = freeport7_space_dome1, 1, EXPLODE Cnd_Destroyed = freeport7_space_dome2, 1, EXPLODE Cnd_Destroyed = freeport7_space_dome3, 1, EXPLODE Act_ActTrig = the_end_end [Trigger] nickname = the_end_end system = Li01 Cnd_SystemEnter = Li01 Cnd_Timer = 1 Act_ChangeState = SUCCEED
-
Nice find!!
the server host doesnt have to start a script running!
any client can start a script running that they dont even have.What i mean is….
i had the server setup and ready to run my scripted mission07.
Before i started the script, a player joined the server and it automatically set my mission07 running for me, so i switched off the script.The server still ran the script only once and is still stable!.
so im now looking at starting all players with a “standard and silent mission script”… i’ll use it to unlock the usually locked jumpholes and gates, rep changes, dock restrictions and hopefully be able to offer players missions from certain bases etc.
-
I have crazy idea to write special mission player traffic, and replay it after each server restart. It’ll be bot - the mission creator X))
-
At /data/missions/m13.ini:
[Mission]
npc_ship_file = missions\npcships.ini[MsnSolar]
nickname = fp7base
faction = li_p_grp
reputation = li_p_grp
system = LI01
base=intro1_base
position = 3600, 1000, -21000
orientation = 1, 0, 0, 0
archetype = freeport7
loadout = freeport7
label = lbl_fp7base
radius = 0
pilot = setscene_nomad_fighter_FP7
random_name = true
.
.
.Isn’t it Mission1a? Freeport 7…
-
No, it is not mission m01a, it is peace from mission m01a with other pilot, loadout, base and faction
-
To stop the multiple spawning of all objects, base’s, npc etc i have two scripts running.
Each new player that joins the server starts on a basic script.
I have a character on a seperate i.d that has the second script info (which spawns everything then locks manhattans dock after launch). In addition to this, i can use this character to begin other missions running by landing on other bases each time locking the dock.
When a server restart happens i use the character and .beam to manhattan where i can start that script again.Seems to be working so far!
-
Locking the dock… …Start that script again…
Well that sucks! If you want people to play on this server you need either unlock the bases and reset the scripts with the server, or lock the bases and don’t restart the scripts (Making it remember what each player did), unless it will drive people crazy redoing the same missions in the same order every day again and again and again… Just thinking of it makes me hate this server, and it doesn’t exist yet.