Script & Mod Requests

The place to discuss scripting and game modifications for X Rebirth.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13817
Joined: Sun, 20. Nov 05, 23:45

Post by UniTrader » Thu, 30. Mar 17, 17:11

matveich[EG] wrote:In any case my actual mod request is to adjust ship explosion damage. As I understand it should be a library with a single <replace sel>, which adjusts explosiondamage value in macros/macro name=*/properties to 0. If only I remembered how to write those..
Nope, you have to do this for every Ship seperately. but if you are clever with the Path you can just reate the File once and then copy and Rename it, so it can be done pretty fast.

matveich[EG] wrote:And another question/request about a dedicated tanker ship. So far I have not found a mod containing one, while it would be nice to have a ship with lots of space for fuel cells to resupply your fleet.
i made a Mod which makes Energy Storage also compatible with Fuel - sadly it turned out the Vanilla AI didnt like this change because it liked to fill the whole Fuel Storage with Fuel and no Energy was remaining... i dont intend to fix this because i have no intention on relying on Vanilla Scripts and my own Scripts can account for this (with some space for improvement though ^^)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

matveich[EG]
Posts: 96
Joined: Thu, 27. Nov 14, 17:33

Post by matveich[EG] » Thu, 30. Mar 17, 18:36

UniTrader wrote:
matveich[EG] wrote:In any case my actual mod request is to adjust ship explosion damage. As I understand it should be a library with a single <replace sel>, which adjusts explosiondamage value in macros/macro name=*/properties to 0. If only I remembered how to write those..
Nope, you have to do this for every Ship seperately. but if you are clever with the Path you can just reate the File once and then copy and Rename it, so it can be done pretty fast.
So, it is one line replacement per xml patch. That is unfortunate as I will have to write a ton of patches not only for vanilla ships but for every ship pack I am using. Could you remind me if it matters where the patch is located? Is it fine to organize all these patches in library dir or they must be located in assets/units/macros?

UniTrader wrote:
matveich[EG] wrote:And another question/request about a dedicated tanker ship. So far I have not found a mod containing one, while it would be nice to have a ship with lots of space for fuel cells to resupply your fleet.
i made a Mod which makes Energy Storage also compatible with Fuel - sadly it turned out the Vanilla AI didnt like this change because it liked to fill the whole Fuel Storage with Fuel and no Energy was remaining... i dont intend to fix this because i have no intention on relying on Vanilla Scripts and my own Scripts can account for this (with some space for improvement though ^^)
Thanks, that's good to know. By a brief a look it seems that some ships mod contains dedicated tanker ships, but I have not checked that yet. In any case I can always write a patch to increase Rahanas E fuel storage and pretend it is a tanker ship.

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13817
Joined: Sun, 20. Nov 05, 23:45

Post by UniTrader » Thu, 30. Mar 17, 19:01

matveich[EG] wrote:So, it is one line replacement per xml patch. That is unfortunate as I will have to write a ton of patches not only for vanilla ships but for every ship pack I am using. Could you remind me if it matters where the patch is located? Is it fine to organize all these patches in library dir or they must be located in assets/units/macros?
the path of the patch files in the mod must be the same as the original file in the game root. so the location for each file is pretty much fixed. but as i already stated you dont have to write an individual patch for each of them, you just have to copy the same file over and over and remanme it if you are clever with your xpaths:

Code: Select all

<diff><replace sel="//properties/explosiondamage/@value">0</replace></diff>
- which can of course be automated by batch (or bash :D) Scripts ;)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

matveich[EG]
Posts: 96
Joined: Thu, 27. Nov 14, 17:33

Post by matveich[EG] » Sun, 2. Apr 17, 11:22

I have run several experiments to determine how to improve fighters and
it looks like the biggest issue with them is their slow speed relative to projectiles. Nerfing plasma/jet turret turn speed and projectile speed while increasing speed of fighters improves fighters odds of survival. However, ai scripts do not seem to like this speed increase and fighters start bumping into hull quite often. I have some ideas on how to modify attack script, but I could use some help:

1) How sequences work? Specifically:

Code: Select all

<move_to object="this.ship" destination="this.ship.zone" flightbehaviour="$fb" forcesteering="true">
    <position object="this.ship" min="500m" max="1km"/>
What is the purpose of position code block?
2) Any convenient way to replace vanilla script completely without extracting?
3) Can small ships boost? move_to has option to force ship to boost but I am not sure if it is applicable to small craft.
4) Where can I find description of flight behaviours and control models?
5) I have not noticed any checks for pilot stats in fighter.bigtarget script. Does this mean that stats have no effect on small crafts?

And a rhetorical question: any way to have custom dll, not just xml scripts with hooks for engine functions?

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13817
Joined: Sun, 20. Nov 05, 23:45

Post by UniTrader » Sun, 2. Apr 17, 13:13

1. in this context it means move somewhere within the current zone and where the position is 500m to 1km away, direction doesnt matter.

2. subst_01.cat/dat - for testing ok, but i discourage this method for released Mods if there are other ways because it causes more incompatibilities than xml patches.
Also for entirely changing Vanilla Scripts i recommend to redirecting to another Script early in the Script (via a single replace) - this way you can change anything you want and reverting back to Vanilla works without breaking anything. If you change the Order of Blocking Actions and/or Labels in Vanilla Scripts the next Update from EGO will break it entierly. (also you have to maintain some upwards compatibility from Vanilla)
Example for move.generic redirection:
https://github.com/UniTrader/UTCommandA ... /aiscripts
(especially files move.generic for the replace action an move.generic.wrapper which accounts for the replaced move.undock and redirects further to my own nav script if applicable to the Ship Type - you could skip the wrapper part though)

3. afaik yes, but they only use these to flee currently, not for Travel

4. there is a list of both in the scriptproperties.html - but regarding flight control models only two (in rare cases threee) will be relevant: spline, steering and in very rare cases possibly linear - best reset them to default whenever you forced a certain one for some purpose (dont forget the on_abort case)

5. see libraries/parameters.xml:

Code: Select all

  <aiflight>
    <skills>
      <skill value="0" strafespeed="0.5" strafeacc="0.5" steeringspeed="0.5" steeringacc="0.5" reactiontime="1.0" />
      <skill value="1" strafespeed="0.6" strafeacc="0.6" steeringspeed="0.6" steeringacc="0.6" reactiontime="0.8" />
      <skill value="2" strafespeed="0.7" strafeacc="0.7" steeringspeed="0.7" steeringacc="0.7" reactiontime="0.6" />
      <skill value="3" strafespeed="0.8" strafeacc="0.8" steeringspeed="0.8" steeringacc="0.8" reactiontime="0.4" />
      <skill value="4" strafespeed="0.9" strafeacc="0.9" steeringspeed="0.9" steeringacc="0.9" reactiontime="0.2" />
      <skill value="5" strafespeed="1.0" strafeacc="1.0" steeringspeed="1.0" steeringacc="1.0" reactiontime="0.0" />
    </skills>
  </aiflight>
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

matveich[EG]
Posts: 96
Joined: Thu, 27. Nov 14, 17:33

Post by matveich[EG] » Mon, 3. Apr 17, 03:46

Thanks for the info UniTrader. So far I have made some good progress: a wing of 60 fighters is now capable to take down fulmekron with only 50% casualties, while vanilla fighters all just die horribly.

Some extra things I need to know:
1) I want to adjust fighter attack code in such way so they do not move too close to the cap ship. Here is the code currently used by the game:

Code: Select all

          <move_to object="this.ship" destination="$bigtarget" flightbehaviour="flightbehaviour.bigfight" forcesteering="true" >
            <position object="$component"/>
            <interrupt_after_time time="40s" />
            <interrupt>
              <conditions>
                <check_any>
                  <event_object_destroyed object="$component" />
                  <event_object_launched_missile object="this.ship" />
                </check_any>
              </conditions>
            </interrupt>
          </move_to>
Would it be possible to achieve this by modifying "position object" line with min and max distances?

Basically, fighters tend to bump into cap ship too often especially if I up their engine speeds. So I am thinking about increasing their weapon range while forcing fighters to veer off at a greater distance from target, so effective dps stays the same while fighters do not get shot as often. Any ideas on how this can be achieved without rewriting attack script too much?


2) Plasma/jet turrets are still a problem. I have noticed that once turret fires the projectile gets attached to the turret, so the beam rotates together with turret. This means that if the turret gets a lock it will most likely hit the fighter no matter the projectile speed as turret turnspeeds above 10 are enough to compensate for fighter movement.

So I was wondering if there is a way to lock plasma/jet turrent and prevent if from rotating when it fires?

matveich[EG]
Posts: 96
Joined: Thu, 27. Nov 14, 17:33

Post by matveich[EG] » Tue, 4. Apr 17, 11:24

Still no ideas what can be done about plasma/jet turrets. Some possibilities I have investigated so far:

1) Changing turret turn rate. Ideally, I would need to have high turn rate while turret aims, and 0 turn rate during fire sequence(so beam does not adjust). However, it is not possible to change turret turn rate in a loaded game.
Setting turret turn rate to a small value(like 5) is possible but renders them quite useless to track anything at all.

2) Changing bullet properties. It is not possible to have a bullet with scale=1 and attach=0 parameters at the same time, so the bullet can either behave as an attached beam or a detached projectile. scale=1 and attach=0 cause the bullet to spawn in the middle of the zone. So changing bullet properties seems like a no go as well.

3) Changing turret AI to prevent usage of plasma/jets vs fighters. Also seems not an appropriate solution, as it would require rewriting AI fight script to handle firing of every turret manually instead of using set_turret_targets.

Any extra thoughts on how to balance beam type weapons vs small craft?

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13817
Joined: Sun, 20. Nov 05, 23:45

Post by UniTrader » Tue, 4. Apr 17, 16:18

what about massively increasing their Spread? that way they should missmore often if tey track small targets, but should still hit for bigger ones?
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

matveich[EG]
Posts: 96
Joined: Thu, 27. Nov 14, 17:33

Post by matveich[EG] » Wed, 5. Apr 17, 08:52

UniTrader wrote:what about massively increasing their Spread? that way they should missmore often if tey track small targets, but should still hit for bigger ones?
There seems to be an option for that(angle) in bullet properties. However, it affects only projectile bullets(attach=0 and scale=0), while having no affect on beams. Moreover, this option is absent from bullet specification by default, so I assume it is not supposed to affect beams.

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13817
Joined: Sun, 20. Nov 05, 23:45

Post by UniTrader » Wed, 5. Apr 17, 17:26

matveich[EG] wrote:
UniTrader wrote:what about massively increasing their Spread? that way they should missmore often if tey track small targets, but should still hit for bigger ones?
There seems to be an option for that(angle) in bullet properties. However, it affects only projectile bullets(attach=0 and scale=0), while having no affect on beams. Moreover, this option is absent from bullet specification by default, so I assume it is not supposed to affect beams.
There is no hurt in simply trying. some things are incredibly flexible, small example:
Zones have only IDs in Vanilla (and no Description), but if you define a shortname attribute and set a Description Attribute it works as expected ^^ this option is not used anywhere in Vanilla though.
Also another example is to combine the properties
count="300" ricochet="0" maxhits="8"
for bullets. not used anywhere in Vanilla, but this Combination turns the Weapon into a shoot-through Shotgun, and if you give it the right bullet mesh it is basically a Phase Shockwave Generator :D
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
IM7TX-57
Posts: 243
Joined: Tue, 12. Feb 08, 10:04

Post by IM7TX-57 » Wed, 5. Apr 17, 17:52

Greetings,

I wanted to ask if it would be possible to create a mod that allows you to buy NPC ships that match the Skunk so that you can fight with, for example, three Skunks side by side.

So a mod that makes the Skunk to NPC shipyards.
If something like this does not exist already ..
Angriff ist die beste Verteidigung
Image
Long live the USC!
Excuse my bad English, I use BabelFish to translate

matveich[EG]
Posts: 96
Joined: Thu, 27. Nov 14, 17:33

Post by matveich[EG] » Thu, 6. Apr 17, 05:20

Well, I did try various combinations of properties for bullets. Unfortunately, non of them delivered any acceptable results. To be honest I think that beam bullets do not support angle specification at all, so it should be added to the engine for consistency.

In any case, if I do not come up with any other method, I will probably settle with nerfs to jet turret turn and reload speeds and buffs to figher hp/shields and engines.

BTW, any particular reason why small ships do not do ware reservation?

Code: Select all

<!-- all reservations have been wiped as of 4.0, restore reservations we need, but only for L or XL ships, since smaller traders didn't do reservations before -->
<do_if value="this.ship.isclass.ship_xl or this.ship.isclass.ship_l">

dertien
Posts: 237
Joined: Tue, 22. Feb 05, 14:27

Post by dertien » Sat, 6. May 17, 03:11

I was looking for a script to keep the expensive drones docked on a certain capital ship and let the Defense Officer manage guns only when encountering hostile ships.

The drones are way too expensive to be used as cannon fodder, and I would like to know if there is a way to stop them from launching automatically and keeping them docked without setting the Def Officer to idle.

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13817
Joined: Sun, 20. Nov 05, 23:45

Post by UniTrader » Sat, 6. May 17, 14:21

dertien:
should be simple to make a mod for this, but when you deactivate the Snippet for launching drones in the DO Script then who will launch drones instead? you cannot start them per player command afaik (or did 4.10 change this? ) so you would turn them from cannon fodder to entirely useless and could simply leave them out instead..
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

dertien
Posts: 237
Joined: Tue, 22. Feb 05, 14:27

Post by dertien » Sun, 7. May 17, 03:54

When one looks at mm carrier and more carriers mod it allows you to dock the fighters assigned to one and they will not auto launch AFAIK.

As to where to give the player this option, I was thinking about something in the same line as the option in the menu when you view the Captain's detail page where you can set 'Refuel Automatically' to yes or no.

Adding an option in the menu when viewing the details of the Defense Officer that would say 'autolaunch drones' yes or no would fit the bill nicely.

That way a Titurel with combat drone complement coming across a hostile Heavy Sul will be able to spare its drones keeping them safe and use guns instead, but still have the drones aboard for other less lethal encounters, like boarding operations against a Sanahar.

I have no insight of the scripting at all used in Rebirth so not sure if this is even feasible.

Post Reply

Return to “X Rebirth - Scripts and Modding”