Jump to content

"Jet" engines on Eve for Alien Space Programs?


Recommended Posts

Eve's oceans are made of "explodium" if the biome "Explodium Sea" is to be taken at face value. Let's suppose "explodium vapour" is in the atmosphere. And using a "Move KSP to another planet" mod set is rather difficult to navigate in without jet engines. Someone once suggested making an "explodium-breathing engine" that uses oxidizer only, but I'm not posting there as that's a pretty old thread.

Forget the science behind making a jet engine that works with surrounding atmosphere and an oxidizer for a moment; kerbals somehow designed and constructed jet engines on Kerbin so what if they evolved from Eve and did a similar feat? How much modding effort would it take to clone a jet engine and make it run on oxidizer / intake air instead of liquid fuel / intake air? Or maybe, since Kopernicus is already in use with these planet mods, just rename "Oxygen" to "Explodium vapour," take it away from Bin (renamed Kerbin) and Laythe then put it on Eve and Jool maybe, and then tweak the stock jet engines to run on oxidizer?

(Please don't take this as a "make this mod for me" request; I'll make the attempt myself if it passes a "smell test" from other modders.)

[Edit] I guess I have an answer as to how hard it is. Thanks to the folks here for pointing me in the right direction; as it turns out it's pretty easy to make a modded engine and intake. See config examples below.

Edited by Gordon Fecyk
Thanks for respondants and provided answers below
Link to comment
Share on other sites

I've already suggested in a more recent thread (with this exact same question) than the one you linked... Install Karbonite. Eve's atmosphere and oceans then become full with actual useable rocket fuel resource (Karbonite) and you get actual propfan and turbojet engines that run on this and IntakeAir IntakeAtm. There's no need to go through the whole convoluted process of renaming Oxygen and breaking KSP itself. If anything, mod your favorite stock engines after this to also use these two resources.

The same person who made Karbonite works for Squad so this mod may exist in part just to answer your question. He may also be he one who named "Explodium."

Of course, you get intake parts and rocket engines exclusively for this resource too. Look what I managed to do with it. If you still want Oxygen, karbonite's formula is KaO3 so you can produce and store Oxygen directly from it. (Oxygen tanks not included in mod.)

OMNsuqy.jpg

Edited by JadeOfMaar
Link to comment
Share on other sites

 

2 hours ago, JadeOfMaar said:

There's no need to go through the whole convoluted process of renaming Oxygen and breaking KSP itself. If anything, mod your favorite stock engines after this to also use these two resources.

I did a search on 'intake fuel' before posting this. Maybe I should've been more broad and I'd have stumbled on the other threads. Thanks for the hint!

I'll take further questions to the Karbonite threads. The ideal for me, a Stock fan, would be to have Eve versions of the stock intakes and jet engines similar to the Eve Optimized Engines available as rocket engines.

Link to comment
Share on other sites

3 hours ago, Gordon Fecyk said:

I did a search on 'intake fuel' before posting this. Maybe I should've been more broad and I'd have stumbled on the other threads. Thanks for the hint!

I'll take further questions to the Karbonite threads. The ideal for me, a Stock fan, would be to have Eve versions of the stock intakes and jet engines similar to the Eve Optimized Engines available as rocket engines.

While Karbonite is a good solution to this specific problem, it shouldn't be supremely difficult to define a different resource that would logically be found in Eve's atmosphere and create engines for it.

Link to comment
Share on other sites

1 hour ago, DStaal said:

it shouldn't be supremely difficult to define a different resource that would logically be found in Eve's atmosphere and create engines for it.

The hard part would be telling these engines how to tell if the resource even exists, and then how to use it. RoverDude seems to have done the really hard work already; adapting it to invent "ExplodiumVapour," and then making engines that work with it and oxidizer, looks much easier now. Then again, Karbonite already has "IntakeAtm."

It's worth exploring. It's also important to note that resource frameworks like this exist, so I wouldn't step on someone else's work.

Link to comment
Share on other sites

I think what DStaal is getting at is that if you look at something like the CommunityResourcePack in the ResourceConfig directory you can see how resources are defined for a planet. So making you Eve Explodium is just creating a config file to add it to Eve's atmosphere. Then a MM patch can get you a jet engine that uses your new resource instead of LF and another MM patch to get a intake that collects your resource in place of IntakeAtm. I may be missing something but that would be my first attempt at it.

Link to comment
Share on other sites

Yes wasml, I was thinking just that when I was reviewing the Community Resource Pack. Then it'd be a matter of specifying "IntakeExp" and Oxidizer for instance, instead of IntakeAir and LiquidFuel for an engine's resources.

Just before I dove into the pack though, I rummaged around the jet engine config files for inspiration. I came up with these parts:

PART // miniIntakeExp
{
	// name = miniIntake
	name = miniIntakeExp
	[...]
	title = Small Circular Explodium Intake
	description = A must-have for explodium breathing engines, this intake duct will pull in outside air to run turbine engines on, as long as there is any outside air to begin with, of course. Optimized for subsonic flight.
	[...]
   	MODULE
	{
		name = ModuleResourceIntake
		resourceName = IntakeAir
		// checkForOxygen = true
		checkForOxygen = false
		[...]
	}
	[...]
}

Turning off "checkForOxygen" is really, really, really cheaty as now IntakeAir is available anywhere with an atmosphere. But it gave me a proof-of-concept for this:

PART // miniJetEngineOx
{
	name = miniJetEngineOx
	title = J-21 "Hades" Basic Jet Engine
	description = A small explodium breathing turbojet. Not very efficient, anemic thrust, but hey--it's cheap! Requires Oxidizer.
	[...]
	MODULE
	{
		[...]
		PROPELLANT
		{
			// name = LiquidFuel
			name = Oxidizer
			resourceFlowMode = STAGE_STACK_FLOW_BALANCE
			// ratio = 1
			ratio = 1.2 // Guessed based on rocket 9:11 LFO ratio
			[...]
		}
		[...]
	}
	MODULE
	{
		name = ModuleTestSubject
		// Deleted Oxygen constraint
		[...]
	}
	[...]
}

I just needed to invent a Mk0 Oxidizer tank to finish the set. Oscar-Bs may also be used. The J-21 "Hades" performs on Eve about as well as I expected, still drawing 'air' at 30 km up. This probably needs balancing out. To make this work with the Community Resources pack, I'd just have to invent Eve Explodium Vapour and make this engine work with it instead of IntakeAir.

As a proof-of-concept, it works quite well. Maybe for further Purple Space Program play-throughs I'd use it on Eve, but it would be dishonourable to take that intake part anywhere else.

I won't make the parts available for download as they contain Porkjet's work from Squad, unless they say it's OK for me to do that. Hopefully the snippets here get the concept across.

Edited by Gordon Fecyk
Fixed up syntax of config examples
Link to comment
Share on other sites

17 minutes ago, Gordon Fecyk said:

I won't make the parts available for download as they contain RoverDude's work from Squad, unless they say it's OK for me to do that. Hopefully the snippets here get the concept across.

You should be able to write MM patches that just contain the changes from the original parts - I believe that's how Eve Optimized Engines works.

And I know it's possible to define whether a particular resource exists in an atmosphere, and it's concentrations.  Ask around on the CRP thread and I'm sure you'll be able to get some help in writing an intake that only works on Eve.

Link to comment
Share on other sites

@DStaal I can help out with resource configs. I've done quite a lot in that department: add them in the desired physical state to a planet or a specific biome, make new ones that don't exist, setup ISRU and engines to use it, etc. It's no problem if he also shares his new system for others to enjoy or troubleshoot, especially if it's built on clones of stock parts (but when building off of another mod (especially models and textures), licensing needs to be considered).

I gave a bit of a tutorial in a previous thread asking for help with a new resource and I explained all the parameters necessary for defining your own resource and seeding planets with it. you'll find that here.

The Community Resource Pack would no longer be necessary for this system to function since neither IntakeAtm nor Karbonite are going to be used but the resource definition and distribution must be within this mod's own folder(s) for ease of sharing (and just to keep files tidy).

IntakeAtm is meant for use with any air-breathing engine to be able to use an atmosphere without needing to hack IntakeAir or get tied up with it and Oxygen-consuming engines when targeted by other mods. Under normal circumstances the OP's engines would need to be rigged for IntakeAtm + ExplodiumVapor + Oxidizer but this won't be needed since the atmosphere in entirety is considered to be ExplodiumVapor.

//Change jet engine to use ExplodiumVapor and Oxidizer instead of IntakeAir and LiquidFuel
@PART[this_stock_engine]
{
	@MODULE[MonduleEngine*]
	{
		
		@PROPELLANT[IntakeAir]
		{
			@name = ExplodiumVapor
			@ratio = ?
			%DrawGauge = True //make its fuel bar show in staging if it doesn't exist
		}
		
		@PROPELLANT[LiquidFuel]
		{
			@name = Oxidizer
			@ratio = ?
			%DrawGauge = True //make its fuel bar show in staging if it doesn't exist
		}
	}
}
3 hours ago, wasml said:

patch to get a intake that collects your resource in place of IntakeAtm

Haven't used this kind of thing but it should work out of the box.

//Add a new intake module
MODULE
{
	name = ModuleResourceIntake
	resourceName = ExplodiumVapor
	checkForOxygen = false //this line shouldn't even be needed if false
	area = ? //depends on stat from referene part
	intakeSpeed = ? //depends on stat from referene part
	intakeTransformName = Intake
}

RESOURCE
{
	name = ExplodiumVapor
	amount = 2
	maxAmount = 2
}

// Change an existing intake
@MODULE[ModuleResourceIntake]:HAS[#resourceName[IntakeAir]]
{
	@resourceName = ExplodiumVapor
	@checkForOxygen = false //this line shouldn't even be needed if false
}

@RESOURCE[IntakeAir]
{
	@name = ExplodiumVapor
}
Edited by JadeOfMaar
Link to comment
Share on other sites

Are you two are saying we can invent an atmospheric resource and seed specific planets with it, without writing a new plugin and just using Module Manager? That does make things absurdly simple.

8 hours ago, JadeOfMaar said:

Under normal circumstances the OP's engines would need to be rigged for IntakeAtm + ExplodiumVapor + Oxidizer but this won't be needed since the atmosphere in entirety is considered to be ExplodiumVapor.

Is Kerbin's (and Laythe's) stock atmosphere considered to be entirely IntakeAir for the purpose of jet engine use? If so, then sure, I could treat Eve's atmosphere the same way. I would have expected a nitrogen / methane atmosphere or equivalent on a real planet.

This is starting to sound fun.

11 hours ago, DStaal said:

You should be able to write MM patches that just contain the changes from the original parts - I believe that's how Eve Optimized Engines works.

Eve Optimized Engines doesn't appear to be Module Manager patches. They don't have anything in their config files that look like MM instructions, and they have their own artwork and part meshes even if they're copies of the stock parts. But if we have to use MM for making the resource, there's no harm in cloning the stock intakes and jet engines using it, making the resulting mod a smaller package.

OK, when I get a moment next, I'll try inventing the resource, cloning intakes and engines to use it, then post something to Add-on Development as a WIP. If what I'm reading from the CRP source and the Ore.cfg thread is correct, along with what's in this thread so far, I should be able to do this without any plugins and without stepping on anyone else's resource work. I'll have to review how Eve Optimized Engines gets away with cloning Squad's part meshes and art; maybe it's OK to reuse the art in the game it was created for. If it comes down to using MM to clone the parts instead, that's OK too.

Edited by Gordon Fecyk
Link to comment
Share on other sites

3 minutes ago, Gordon Fecyk said:

Are you two are saying we can invent an atmospheric resource and seed specific planets with it, without writing a new plugin and just using Module Manager? That does make things absurdly simple.

Yep.  RoverDude wrote the stock resource system that way on purpose.  :wink:   That's how CRP works: There's a file with all the resources defined, and some specific files with where those resources are found.

Link to comment
Share on other sites

On 3.4.2017 at 5:47 PM, JadeOfMaar said:

OMNsuqy.jpg

I see what you did here:D

On Topic

you don't realy have to create something absolutely new. You can also use some engines like Thermonuclear Jets that use a IntakeAtm as Propelant (like in by JadeOfMaar used MK2-Extension mod:wink:)

And one big petition don't make to many ressources. Look in the CRP first and decide if there are a Ressource that you can use, or go for the GitHub repo there and see what all are nominated.

The Rule of Tumb there is "if 2 Mods need this its in"

Have fun and get the Eve-Wings for yah!

Funny Kabooms

Urses

E: @JadeOfMaar Chummer i will absolutely steal this concept. I love it!

1 hour ago, Hypercosmic said:

How are we going to name jet engines which carry oxidizer instead of fuel?

 


Maybe "Blowers"?

 

Edited by Urses
Link to comment
Share on other sites

OK, here's a GitHub repository with all of my modified config files so far. The part additions include Explodium Vapour intakes, engines that run on ExpVapour and Oxidizer, and oxidizer-only versions of fuel tanks. There is also a new resource configured to be present in Eve's atmosphere, but I can't yet make the intake parts work on Eve only.

Work in progress, no Squad-owned part meshes or art are in the repository. You'll need to copy the Squad meshes and art to use some of the parts, unless I can reference the Squad art somehow.

Link to comment
Share on other sites

1 hour ago, Gordon Fecyk said:

but I can't yet make the intake parts work on Eve only.

The same way you made the planetary resource distribution for your resource to exist on Eve you can make a global resource distribution for it to be available nowhere first. The hierarchy of distributions is global > planetary > biome.

Link to comment
Share on other sites

On ‎4‎/‎4‎/‎2017 at 7:07 PM, JadeOfMaar said:

The same way you made the planetary resource distribution for your resource to exist on Eve you can make a global resource distribution for it to be available nowhere first.

I thought I got that. In the repository I set up today, I have the resource configuration defined like that. Unless I goofed on the syntax, anyway.

Edited by Gordon Fecyk
Fixed link to resource config
Link to comment
Share on other sites

In theory, you could also use something that adds a Kerbal version of the Lockheed compact fusion reactor, if such a mod exists. 

By which I mean, having electric jet engines.  Which you power with a fusion reactor small enough to fit on a large cargo plane. 

Then, you would switch to plasma engines or something like that which use lots of power to eject its fuel with more energy than you'd get from just burning it with oxidizer. 

 

Seriously, if Lockheed's Reactor, or for that matter any other compact fusion reactor comes to be, it will open a whole new set of possibilities for spacetravel in real life.

 

 

 

Link to comment
Share on other sites

In light of a collective desire to have atmospheric propulsion on Eve I say "aye" to any new propulsion method.
In light of a poor attempt to magicaly transform Jet engines into something fictional to meet the desire for having such propulsion I say "nay"

Forget the science behind making a jet engine that works with surrounding atmosphere and an oxidizer for a moment

And I am going to bring up the "science behind" this idea. Not to convert you from the core idea of having atmospheric propulsion on Eve, in fact I'm encouraging you.
But I will attempt a reconsideraton of yours on what kind of propulsion this should be.

I'm not trying to convince people not to have their fun with a mod like this. If it entices you to have such a engine for Eve then go for it. Forget I ever replied and sorry for my post its length.
But in light of what I'm going to discuss I would recommend to go for atleast a theoretical propulsion design rather then a fictional hybrid jet engine for Eve. Because it makes no sense whatsoever.

Given the temperature and atmospheric conditions at Eve I can only think that explodium is a raw naturally occuring hydrocarbon.
Hydrocarbons are filthy in their raw form. They do not burn in a clean and controlled fashion, your engine will choke itself in case it does give you any ignition hicccup if it were to be fueled by it.
But it will never get to work because unrefined hydrocarbons are volatile, sticky, explosive, corrosive and unfit for controlled engine combustion.
Any raw material present is impure by the very fact that it is raw. Its why you bring your car to ExxonMobil instead of a oil well.
It is why water is purified in your local water treatment plant.

Also, explodium is present as lakes and atmosphere. So there is precipitation of explodium in the atmosphere. Meaning that the layer of combustable explodium is limited to the lowest part of Eve's atmosphere. And I would expect any such engine to choke itself from 8km altitude and quit alltogether at 10km.


Also, last time I checked turbofan combustion chambers have their fuel injected, not their oxygen.
If oxygen is to be injected then how could it guarantee proper chamber combustion when the chamber is expecting compressed oxygen to be ambient within the chamber itself?
How can you disperse oxygen to be ambient within a high pressure chamber that is designed to compress and exhaust as much ambient air as possible?
It would require a very sophisticated system that automaticaly injects the proper amount of oxygen before it is compressed in the turbines compressor.
Which needs to happen at the same pressure (which is high even in front of the compressor)
It also needs to happen very accurate or your engine will simply fail due to oxygen starvation.

How would that then be possible?
Also, oxygen requires heavy pressure tanks to be stored. For that reason I don't think it will fit any aicraft design since they'd be easily to heavy.

This engine would have the following miracle properties.

*Ability to feed injected oxidiser before it enters the engines compressor and have it computer controlled so that the engine keeps combustion stability at every turbine speed.
*Ability to refine the explodium fuel as it enters the intake (which requires a secondary intake) Because you need to store it first to refine it onboard.
*Very limited use since explodium is mainly liquid and only exists as a narrow lower band in the atmosphere as it is the densest gas available.
So realisticaly your engine should stall only a few kilometres above the surface and fail completely by going any higher then 10km altitude.

Carrying oxygen around is much heavier, a secondary intake and refinery is even more heavy. A modified heavier jet engine (if at all possible) is even more weight.
The point in case: You will never get of Eve's surface. This is like suggesting a alcubierre drive. Atleast from that one we agree it's fictional.
Since a Eve jet engine is the same ballpark I wonder why you don't simply theorize a fictional engine to begin with. Instead of something of which we know it can't be done. Or atleast not successful and for any existing purpose.
 

 

Link to comment
Share on other sites

3 hours ago, Razorforce7 said:

Also, last time I checked turbofan combustion chambers have their fuel injected, not their oxygen.

If oxygen is to be injected then how could it guarantee proper chamber combustion when the chamber is expecting compressed oxygen to be ambient within the chamber itself?
How can you disperse oxygen to be ambient within a high pressure chamber that is designed to compress and exhaust as much ambient air as possible?
It would require a very sophisticated system that automaticaly injects the proper amount of oxygen before it is compressed in the turbines compressor.
Which needs to happen at the same pressure (which is high even in front of the compressor)
It also needs to happen very accurate or your engine will simply fail due to oxygen starvation.

Some of the others are reasonable concerns, but this I have issues with.  :wink:

I don't see any fundamental difference between breathing oxidizer while injecting fuel and breathing fuel and injecting oxidizer.  The general concept is that you have a two-part fuel mixture, one part of which is present in the ambient environment, so you bring the other and combine them in your combustion chamber.  Your problems of 'how much oxygen do I need?' are exactly the same as the problems of 'how much fuel do I need?' in current engines.  Yes, I'm sure there will be some technical challenges in the redesign, but fundamentally it's the same process.

Link to comment
Share on other sites

13 hours ago, Razorforce7 said:

This engine would have the following miracle properties.

*Ability to feed injected oxidiser before it enters the engines compressor and have it computer controlled so that the engine keeps combustion stability at every turbine speed.
*Ability to refine the explodium fuel as it enters the intake (which requires a secondary intake) Because you need to store it first to refine it onboard.
*Very limited use since explodium is mainly liquid and only exists as a narrow lower band in the atmosphere as it is the densest gas available.
So realisticaly your engine should stall only a few kilometres above the surface and fail completely by going any higher then 10km altitude.

Carrying oxygen around is much heavier, a secondary intake and refinery is even more heavy. A modified heavier jet engine (if at all possible) is even more weight.
The point in case: You will never get of Eve's surface. This is like suggesting a alcubierre drive. Atleast from that one we agree it's fictional.

Important points, and the resulting mod will have to get tuned to match the likely realities of what we'd find on an Eve-like planet, along with the realities of how oxidizers would be heavier and require heavier tanks.

It might even be possible to require the intakes to have two steps: Step one would be to intake IntakeAir (still would need checkForOxygen = false) and Step two would 'convert' it into ExpVapour. Right now the intakes are resource harvesters using zero electric charge, but this could be changed to use some amount of IntakeAir and EC to make refined ExpVapour. This would happen behind the scenes, but instead of the intake parts just using ModuleResourceIntake or ModuleResourceHarvester, they could use both. It would make managing the intakes quite interesting...

Anyway, I came back to this thread to notify readers of a pre-release of this mod. It's now useable in that the engines require Explodium Vapour, the intakes will only work on Eve, and that there are oxidizer versions of liquid fuel-only tanks. It's most practical if you use GregroxMun's Alien Space Programs mod that puts the KSC on Eve, but if you can get a craft there from Kerbin normally, it could fly.

Link to comment
Share on other sites

On 4/7/2017 at 11:18 PM, Gordon Fecyk said:

It might even be possible to require the intakes to have two steps: Step one would be to intake IntakeAir (still would need checkForOxygen = false) and Step two would 'convert' it into ExpVapour. Right now the intakes are resource harvesters using zero electric charge, but this could be changed to use some amount of IntakeAir and EC to make refined ExpVapour. This would happen behind the scenes, but instead of the intake parts just using ModuleResourceIntake or ModuleResourceHarvester, they could use both. It would make managing the intakes quite interesting...

About the code snippet I dropped for you in the CRP thread to add ModuleResourceHarvester to the intake parts, that solves part-- maybe most of the problem here. You are meant to keep both ModuleResourceIntake and ModuleResourceHarvester but if you want to amp up the realism you can decrease the Efficiency value or raise the ElectricCharge ratio value. There's no need to add IntakeAir as an input resource. Altitude or atmosphere pressure already affect(s) the amount of ExpVapor generated by a harvester. The cutoff for all atmospheric resources tends to hover around the midpoint between sea level and vacuum.

Link to comment
Share on other sites

1 minute ago, JadeOfMaar said:

[The ModuleResourceHarvester example] solves part-- maybe most of the problem here.

Indeed, it solved most of the problem of making this work on Eve only. This is also the bit that will help me balance the intakes / harvesters between game play and realism. Right now they use zero EC like a Kerbin / Laythe air intake would, but that could change, or I could introduce another requirement.

I did a lot of ground tests with the harvesters, and tuned the efficiency ratings to produce about as much ExpVapour as an air intake would produce IntakeAir at 0 m/s sea level. The harvesters had a base harvesting rate of about 54 units/second with efficiency = 1. From there I'd record how much IntakeAir each normal intake would make, for instance the miniIntake would produce about 7 units/sec, and I'd divide 54 U/sec into that to get an efficiency of 0.13. Repeat for each intake.

Some intakes and engine / intake combos ended up with values greater than one; the J-90 Goliath could take in massive amounts of IntakeAir, and the derivative J-91 Atlas ended up taking as much ExpVapour; 407 units/sec at 0 m/s sea level. The majority of them ended up with fractions of one, with the smallest being the radial-mounted ramp intake / harvester at 0.07, or just under 4 units/sec at 0 m/s sea level.

Once speed picks up, harvesting rate increases. I didn't compare speeds to IntakeAir on Kerbin yet, but I'm pretty sure this is supposed to get worse as one approaches and exceeds Mach 1. This might be where I'd need to make IntakeAir a factor somehow. Perhaps create another resource for the engines to use, let's call it 'CleanExpVap' for the moment, and make it a function of IntakeAir and ExpVapour instead of ExpVapour and EC. Or make it a function of IntakeAir, ExpVapour and EC together. That's starting to get complicated gameplay-wise though, and all of the stock jet engines except for the Rapier generate EC anyway so there doesn't seem to be a point in that.

I have to agree with Razorforce7 though that this vapour probably exists in a pretty low band of the atmosphere. In v0.1.2 of the mod, a shock cone harvester with tuned efficiency settings can still gather enough vapour at 45 km to drive a J-X5 Beelzebub engine at speeds under Mach 5. This isn't realistic. On Kerbin we're lucky to get the J-X4 Whiplash to operate above 22 km. So the next challenge seems to be to establish reasonable altitude limits for this resource.

Link to comment
Share on other sites

@Gordon Fecyk There's no point to adding IntakeAir as a propellant (making the total into 3) at this point. The next step for your mod: directly controlling engine performance, lies in adjusting the velCurve node in each engine and/or adding a machCurve inside the harvest module. I don't know if machCurve works for the harvest module as it works for the intake module but it's quite worth a shot. Respectively, each of the values in the keys of these curves are Mach, Thrust/Effect Multiplier, Tangent In, Tangent Out. You should be fine with setting/leaving the tangents at 0 or just deleting them.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...