Questions here: an inquiry thread! [Updated Sep 15th, 2014]

Discuss and distribute tools and methods for modding. Moderator - Grognak
Post Reply
The Legacy
Posts: 21
Joined: Fri May 09, 2014 2:24 am

Re: Questions here: an inquiry thread!

Post by The Legacy »

Thanks for the feedback. :)
kartoFlane wrote:The original Overdrive, which IIRC was being written in C#, is no longer being developed and has been abandoned for quite some time. Vhati has restarted the project in Java, but it proved to be too big (since it's basically like developing FTL, but instead of two people, it's just one guy)
That's a real shame. :( Well, hopefully someone will pick it up in the future.
2. Is there a way to modify the maximum upgrade level of the reactor power?
3. Is there a way to reprogram the crew's abilities to something else, beyond the default races, outside of the cosmetics of name and graphics?
Nope
Again, a real shame. So the race's statistics and programming are hardcoded into the EXE? If it isn't, if it's in some other file, I'm surprised someone hasn't tried to access it.

...Actually, I've read that the developers follow the modding community with interest. Have people asked the developers if they're willing to make a mod development kit or something? Or adding 'hooks' to the game's code to allow modifications of content/data that's currently not accessible? If they made the game Steam Workshop compatable, it would add a whole new spin to the game. :)
Is there also a way to add more than eight crewmembers to a player (or NPC?) ship without crashes or other issues?

For the player - without crashing: no, with crashing: perhaps (have the ship start with more than 8 crew members). IIRC, enemy ships can go above the limit without any complications, but I'm not sure.
It's worth testing, for sure. :)
4. Is there a way to add more than four weapons? I've tried it, and though it seems to work, it does cause problems with the interface. Thus...
You can, but as you have found out yourself, the UI doesn't really like this.
That's a nuisance. :P May mean that I may be forced to forego drones in my mod (though this may not be a bad thing).
5. Is there a way to change the positioning of the UI, to make room for changes to the stats of various systems?
Not sure what you mean by 'changes to the stats of various systems', but there's no way to move the UI elements.
I was referring to, for example, adding more than four weapons, and other similar changes that exceed the game's UI. Though I've noticed that you can resize the graphical elements, it does not appear that, in most cases, this will create a more compact UI. In any case, it's a frustrating limitation as it'll make making my mod concept somewhat more difficult (among with the other things listed above).
6. Is there a way to create new room designs, and to modify the effects of upgrading a system beyond their vanilla defaults?
Again, not sure what you mean here. If by 'room designs' you mean interior images, then yes, you can change that, but you can't have them change based on the system's level. It might be possible to emulate this with glow images though, but they depend on the skill of the crew member manning the system.
It's also not possible to change the way systems work. For the most part, system bug out when upgraded beyond vanilla limit (eg. engines reset evade to 0).
Sorry for my lack of clarity. XD Anyways, I was meaning creating brand new systems, or modifying existing systems with a new set of statistics. But based on your previous answers and the above answer, it sounds like you can't. Also annoying, but I may be able to work around it.
7. Is there a way to create new ships instead of overwriting the existing ones and their variations?
Nope.
Drat. However, does that also include NPC ships? Or only player ships?
The Legacy wrote:That's because FTL treats the 'lvl' attribute as a minimum requirement, not the exact level that is required. Though what you have found is indeed interesting, that you can have the choice require at least two crew members of a specific race. Dunno about the other modders, but I didn't know that.
I'd have to test more to find out, but that's what I found so far. I haven't unlocked all of the ships yet (such as the Rock cruiser), so I can't say I know if it does truly work as I described. However, I do know that, set to 0, even with Rock under Req, it shows up even if you have none, and if lvl is set to 1, that it only works if you have (at least?) 1 crewmember.
The Legacy wrote:Good thinking, but tricks of that kind work only on interpreted languages like Javascript or Python ;) FTL's data files use XML format, and the game itself is written in C++, which is a compiled language.
In XML, the value of attributes is a string, so you can place whatever you want in between the quotation marks. It's only a matter of how the code later interprets that string... FTL happens to look at the 'lvl' attribute as an integer. If the string isn't a number (eg. "<1"), then it returns a default value, most likely 0.
That is true; however, even though it's an XML file, it's a C++ program that's reading the data; thus, I had the suspicion that if the lvl tag is an integer, integers can be affected by math, and assuming the code for lvl was written as described above, it would take that entire like, and essentially add code to the existing line. Again, it was worth a try, but alas... :)
dalolorn wrote:Legacy, kartoFlane, you're going at this the wrong way.

Based on what I've heard, AE seems to have added the ability to force blue options. Though I don't know how that works, it's still worth checking out.
Perhaps, though as you said we'd need to look into that. If only there was a way to trick the "req" field to think that, instead of requiring something, that it requires the lack of something.

Anyway, thanks for your help fellas. :)
gg911
Posts: 3
Joined: Fri May 09, 2014 4:30 pm

Re: Questions here: an inquiry thread!

Post by gg911 »

I am sure that many people have tried (and failed) to make a mod hat allows you (and the rebels) to control a fleet of 2-3 ships. I have an idea on how to go about this but my question is...

Is it possible to have multiple of one system? could i have two weapon rooms? if so would there be a way to make it so one weapon room controls this missel launcher and another controls that laser?

I would like to clarify that I am unable to mod due to lack of skill (I am familiar with programing but far from proficient)

the general idea is you can take in a ship that looks like a group but is actually connected via invisible rooms so that your crew can go from one to another (this has been done) it would have events centered on having a fleet and would add new encounters and (if possible) a rebel fleet instead of the flagship.

would this be fun for players? also would anyone be able to take on this mod? I don't care about recognition if you want to make it make it.

thanks!
User avatar
RAD-82
Posts: 795
Joined: Sat Nov 09, 2013 12:16 am

Re: Questions here: an inquiry thread!

Post by RAD-82 »

dalolorn wrote:Based on what I've heard, AE seems to have added the ability to force blue options.
That has always been possible. Infinite Space does that.
Image
Junkyard has FTL mods, mostly ships and a few other things.
dalolorn
Posts: 532
Joined: Sun Sep 23, 2012 8:06 am

Re: Questions here: an inquiry thread!

Post by dalolorn »

RAD-82 wrote:
dalolorn wrote:Based on what I've heard, AE seems to have added the ability to force blue options.
That has always been possible. Infinite Space does that.
I am aware of that, but to my knowledge, that method only allowed for events following this structure:

If condition is met, proceed with event. If condition is not met, end event.

To my knowledge, this has been changed in AE, allowing for the event originally conceived by featherwings.
User avatar
RAD-82
Posts: 795
Joined: Sat Nov 09, 2013 12:16 am

Re: Questions here: an inquiry thread!

Post by RAD-82 »

AE did add new attributes for the choice tag. If The Legacy did discover that the lvl attribute can count the number of crew, then perhaps using the new attribute of max_lvl would work.

<choice req="rock" max_lvl="0" blue="false">

If there is no Rock, then the option appears like a normal option, but if there is a Rock, then the option won't show up. Unfortunately, I can't test this right now.
Image
Junkyard has FTL mods, mostly ships and a few other things.
The Legacy
Posts: 21
Joined: Fri May 09, 2014 2:24 am

Re: Questions here: an inquiry thread!

Post by The Legacy »

gg911 wrote:Is it possible to have multiple of one system? could i have two weapon rooms? if so would there be a way to make it so one weapon room controls this missel launcher and another controls that laser?

I would like to clarify that I am unable to mod due to lack of skill (I am familiar with programing but far from proficient)

the general idea is you can take in a ship that looks like a group but is actually connected via invisible rooms so that your crew can go from one to another (this has been done) it would have events centered on having a fleet and would add new encounters and (if possible) a rebel fleet instead of the flagship.
Short answer: No. Long answer: Artillery, as seen on the rebel flagship, can be placed multiple times. In theory, all you need to do is to set up one of the standard (or custom made) weapons, with one artillery room per weapon, and the weapon specified in the code. There are a few downsides, however; one, artillery cannot be aimed, and hits randomly. Two, they fire in intervals depending on their artillery upgrade level; this ranges between 20 and 50 seconds by default, so even if the weapon normally has a five second cooldown when attached to a normal weapon slot, it instead fires at the artillery cooldown. And three, you cannot adjust power levels on any artillery except the first, while ingame (power levels on the other artillery can be set through the blueprint file for your custom ship).

Intriguing mod idea, but based on current capabilities, as far as I know it's impossible. To fight a fleet, however, is technically much simpler; create an event that combines the ASB environment (and background art), combined with a single chain of events that spawns one ship after another, as many times as you want people to fight. Never tried it myself, but I can't see why it wouldn't. When I get home, I may research "quest marker" quests, and see how it works; if, for example, you wanted to gather a fleet (something that my mod will be doing), though your fleet would never directly intervene, if it's possible to forward variables or situations, perhaps it's possible to shorten the final fleet fight that one has to fight, per ship you recruit? Hopefully someone can answer for both our sakes. :P
The Legacy
Posts: 21
Joined: Fri May 09, 2014 2:24 am

Re: Questions here: an inquiry thread!

Post by The Legacy »

RAD-82 wrote:AE did add new attributes for the choice tag. If The Legacy did discover that the lvl attribute can count the number of crew, then perhaps using the new attribute of max_lvl would work.

<choice req="rock" max_lvl="0" blue="false">

If there is no Rock, then the option appears like a normal option, but if there is a Rock, then the option won't show up. Unfortunately, I can't test this right now.
Ah, didn't know about max_lvl. Thanks. :) I'll give it a try when I return home in a few days. Either that or the original question asker can.
featherwings
Posts: 40
Joined: Tue May 07, 2013 6:27 am

Re: Questions here: an inquiry thread!

Post by featherwings »

Thanks all for everyone's advice.

With the note that there's a new option with the DLC, I went hunting. It appears to be related to the "max_group" tag, but I'll need to do a lot more testing.

One more question:

I'd like to make sort of a "charge flak" weapon. When burst weapons have both multiple projectiles and multiple shots, it's bugged so that every cluster except the last is fired independently (eg: if you had a three-shot flak I, it would fire SEVEN shots - six one projectile shots and one three projectile burst.)

Is there either:
A: a way of fixing it so you can have multiple projectiles and multiple shots on the same weapon,

or

B: a way of modifying how fast the shots in a volley are fired, so I can just make it fire all the shots so fast it doesn't matter if they're burst or not?

(or both, since I'd like to be able to change the "volley speed" on other weapons)

Edit: does anyone know what the "<time>0.5</time>" tag on the charge weapons in dlcAnimations.xml actually does? I've tried playing with it, even made four charge lasers, identical clones of each other except for different <time> values, and it didn't seem to do anything.
featherwings
Posts: 40
Joined: Tue May 07, 2013 6:27 am

Re: Questions here: an inquiry thread!

Post by featherwings »

The Legacy wrote:
gg911 wrote:[snip]
[snip]

I may research "quest marker" quests, and see how it works; if, for example, you wanted to gather a fleet (something that my mod will be doing), though your fleet would never directly intervene, if it's possible to forward variables or situations, perhaps it's possible to shorten the final fleet fight that one has to fight, per ship you recruit? Hopefully someone can answer for both our sakes. :P
There are very few "variables" you can pass around with FTL's xml, sadly. Quests in game work by simply changing one of the beacons in a system to be the quest event.

For instance, the merchant delivery quest simply calls "<quest event="MERCHANT_DELIVER"/>" to create the quest beacon, and that beacon works just like any other event - it's simply guaranteed you've seen the first half of the quest line.

I'd LOVE for someone to correct me on this, but the only "variables" you have to work with are the ones you see on screen - fuel, missiles, drones, scrap, etc. I've given a lot of thought to making all missile weapons use no missiles so I can use the player's missile count to track something else, such as morality (if you pirate a ship, you lose missiles, if you want to ally with someone, it sees how "trustworthy" you are - by checking your missile count.) You might want to look at captain's edition, which does a lot of clever things with dummy augments (although the whole trade goods system is pretty bad, since it not only lets the player cheat, but it also requires the player to take action to AVOID cheating.)

EDIT: Also, you can't spawn more than one ship in a beacon. FTL doesn't like it. You'll notice that none of FTL's default events ever have you see more than one ship. If you try, it'll just end that event right there.
The Legacy
Posts: 21
Joined: Fri May 09, 2014 2:24 am

Re: Questions here: an inquiry thread!

Post by The Legacy »

featherwings wrote:Thanks all for everyone's advice.

With the note that there's a new option with the DLC, I went hunting. It appears to be related to the "max_group" tag, but I'll need to do a lot more testing.
I'll save you the effort. Go-go gadget, code!

Code: Select all

<event name="START_GAME">
	<text>The data you carry is vital to the remaining Federation fleet. You'll need supplies for the journey, so make sure to explore each sector before moving on to the next. But get to the exit before the pursuing Rebel fleet can catch up!</text>
</event>

<event name="START_BEACON">
	<choice hidden="true">
		<text>Welcome to a new sector! Get to the exit beacon and jump to the next sector before the pursuing Rebels catch you!</text>
		<event load="MANTIS_ROCK_TEST"/>
	</choice>
</event>

<eventList name="MANTIS_ROCK_TEST">
<event>
	<text>You enter a new sector. Your sensors detect a Mantis ship that seems to have corpses strapped on the hull as trophies - Rock corpses! However, the Mantis ship has not seen you yet.</text>
	<choice req="rock" lvl="0" max_lvl="0" hidden="true" blue="false">
		<text>Ignore the Mantis ship.</text>
		<event>
			<text>You keep your distance, and are able to give yourself enough space for a clear jump out.</text>
		</event>
	</choice>
	<choice req="rock" lvl="0" max_lvl="0" hidden="true" blue="false">
		<text>Attack!</text>
		<event>
			<text>You decide to engage the Mantis ship. Prepare yourself!</text>
			<ship load="MANTIS_ATTACK_TEST" hostile="true"/>
		</event>
	</choice>
		<choice req="rock" lvl="1" hidden="true">
		<text>(Rock) Your Rock crewmember...</text>
		<event>
			<text>Your Rock crewmember, agitated at the sight of the Mantis ship and its decorations, breaks rank and starts engaging the Mantis ship! Prepare yourself!</text>
			<ship load="MANTIS_ATTACK_TEST_ROCK" hostile="true"/>
		</event>
	</choice>
	</event>
</eventList>
<ship name="MANTIS_ATTACK_TEST" auto_blueprint="SHIPS_MANTIS">
	<destroyed>
		<text>With the Mantis ship destroyed you hasten to leave.</text>
		<autoReward level="MED">standard</autoReward>
	</destroyed>
	<deadCrew>
		<text>With the Mantis ship taken care of you hasten to leave.</text>
		<autoReward level="MED">standard</autoReward>
	</deadCrew>
	<crew>
		   <crewMember type="mantis" prop="1"/>
	</crew>
</ship>
<ship name="MANTIS_ATTACK_TEST_ROCK" auto_blueprint="SHIPS_MANTIS">
	<destroyed>
		<text>With the Mantis ship destroyed you hasten to leave.</text>
		<autoReward level="MED">standard</autoReward>
	</destroyed>
	<deadCrew>
		<text>With the Mantis ship taken care of you hasten to leave. However, your Rock crewmember insists that he check the ship in order to investigate the ship, and to properly dispose of the remains. During his search, he finds an imprisoned Rock! The Rock is only somewhat worse for wear, but is greatful for your rescue, and requests to join your crew. You gather what is of value, and leave.</text>
		<autoReward level="HIGH">standard</autoReward>
		<crewMember amount="1" class="rock"/>
	</deadCrew>
	<crew>
		   <crewMember type="mantis" prop="1"/>
	</crew>
</ship>
Translation: First, I made this test script by adding a eventList function that loads off of the start of the game, just so the prototype works on load.

Anyway, after testing, it seems that max_lvl does indeed work; however, it will not work unless you add lvl in the same choice field as I've gotten written above. Thus, it works as follows:

Option 1 - A number of at least 0 Rock crewmembers, and at most 0 Rock crewmembers must be on board for this choice to fire. Do not show blue text, hide this choice unless this is true.
Option 2 - Same as Option 1.
Option 3 - A number of at least 1 Rock crewmembers must be on board for this choice to fire. Show blue text (default), hide this choice unless this is true.

Glad I figured something out for you guys that you didn't know was possible previously. And thanks for teaching me something new myself. :mrgreen:
Post Reply