Jump to content

Balancing SSTO vs classical rocketry a.k.a. another take at part "aging"


Recommended Posts

Current KSP has, in my view, three playing modes worth considering related to funds.

One is using classical rocketry, (asparagus-) staged rockets dropping parts all along their path. This mode is somewhat disfavored in current KSP as it is not possible to get that much funds for recovering whatever remained from such ship.

Second is reusable approach, using ships that are able to return to KSC (or just to the ground) mostly intact and returning most of their value on recovery. This one appears to be the most profitable in current KSP.

Third is again reusable approach, this time using truly reusable ships, i.e. without recovering, just refueling the ship on KSC or in another suitable place and sending it to another mission. This third approach is rather tedious in current KSP but is possible and may start being used if it turns profitable so it must be considered in all balancing.

Here I am trying to balance these three modes, particularly to close the relatively huge gap between the "classical rocketry" and "reusable with recovery" modes without opening another gap towards "true reusable" mode.

My idea lies in a kind of part aging. This aging would, though, not take place in time, but in part usage. Particularly, each part would be built/purchased to withstand certain dv.

- on purchase, price of a part would depend on amount of dv the part is designed to withstand. This would be made tweakable, so you would be able to mount the same part designed e.g. for 6000 m/s dv (cheap) or for 60000 m/s dv (expensive).

- on recovery, the refund would depend on remaining dv budget of each part

- on usage, if a part in a ship depletes its dv budget, all ship's engines/RCS would automatically block (except currently burning SRBs)

- it would be possible to repair parts for amount corresponding to "repaired" dv budget. Such repair should be possible anywhere under some reasonable conditions (e.g. presence of a Kerbal and the ship must not produce any thrust for certain time) and should be possible both for individual parts and for whole ships

- there would always be a visible "aging meter" showing how much dv budget is left on the weakest part of the ship. That would allow the player to issue repairs in time and/or consider whether the ship is capable of planned task or not.

- the part dv budget would be depleted by engine thrust. The depleted amount would be calculated as vector sum of all engine thrusts divided by mass of the ship (i.e. two rocket engines burning in opposite directions would not deplete anything as they produce no net thrust). Sitting on launchpad would not deplete anything. Reentry would not deplete anything. Gliding in the air or falling on parachutes would not deplete anything as well. Even torque-driven helicopters, as crazy as they are, would not deplete anything. Just engine thrust (SRBs, rocket engines, jets, RCS). Sitting on launchpad with an engine producing thrust upwards not sufficient to lift the rocket would deplete the rocket's dv budget, though. The idea is it is not actually the dv but rather vibrations and mechanical load caused by the engine what's making parts aged.

With this, all the three playing modes would IMO get way closer. You could design a staged rocket and give its parts just enough dv budget that it almost depletes when you stage them. Then it's almost irrelevant if you try and recover them (receiving next to nothing as their budget is almost depleted) or you just stage them off and forget.

SSTOs would of course still be an option but they would pay less on recovery, or require periodic repairs for comparable price. That would prevent opening a new gap between the two reusable modes.

Of course it means there would be higher money circulation as parts aging would require either paying for repairs or cause bigger money loses on recoveries. That means more and better paying contracts would be needed but I believe there is no major problem balancing that.

Link to comment
Share on other sites

That's an interesting suggestion, and thoughtfully expressed. I agree that SSTOs and other fully recoverable craft are overpowered economically and some method of further balancing the three playstyles would be beneficial.

I would suggest, though, that the part aging be based on a metric other than delta-V. Using delta-V would create some odd situations, like a tug decoupling it's payload having its lifespan reduced because it's now less massive. I would suggest a time-based aging metric, either absolute time in service or hours of actual operation.

There's also an opportunity for some career progression with this suggestion through part upgrades. I've been against varying part performance in the past for a variety of reasons, but upgradable part longevity might be a good way to add some more progression to career mode.

Link to comment
Share on other sites

I love this suggestion, it adds a new level of depth to the game. I'd recommend using time as the key component instead of dV though, as accelerating doesn't really affect anything directly other than the engine itself... most parts just deteriorate with use (and many are used regardless of acceleration, take solar panels on a station for example) so using time as the degradation component could still be tweakable, but also allow for the degradation of bases/stations/etc. This also opens up whole new ideas, garages/hangars where players can store/refuel/maintain/repair vehicles, and maybe even a repair bay intended for use with stations (read: really heavy) where it could be used to make repairs to docked vessels and/or repair the station itself... though it should consume a "repair supplies" resource in the process.

Link to comment
Share on other sites

I like the idea of a vehicle being recovered and that vehicle being reused. Parts collected should be stored in some magical, infinite warehouse for the player to disassemble and reuse.

No refunding of money. You bought it, you own it... until it falls apart on you.

I think SS engines should have an amount of Dv just like non-SS... As SS engines should be reusable as well.

You use a SS Engine, you drop it on the land it breaks apart and blows up... whelp, now you're out that money. You drop it with a parachute and it lands softly, or drops in the water and floats... Now you can recover it and reuse it. Sell it, get the money back? To who? ... No. No reselling, no money back. You've not got an SS Engine.

What will you do with that SS Engine? Store it in a scrap yard somewhere, where it might one day get reused? Reuse it now and over and over until it finally gives out? Use it again and dump it so it blows up this time? - Either way, no refund. You've got an SS Engine now... What you going to do with it?

Link to comment
Share on other sites

a tug decoupling it's payload having its lifespan reduced because it's now less massive.

That's not true. A tug dimensioned to fly to Jool and back between repairs would be able to do that journey both empty and with payload. The only difference would be that without payload it would be able to do that using less fuel.

I did not propose actual time metric because KSP timescales and time warp would throw mayhem to that. And 'time in actual operation' is IMO very similar to dv metric because in most cases you operate your ships to give them certain acceleration. DV just adds 'intensity of operation' into the equation.

dv is said to be the currency of space travel, right?

Edited by Kasuha
Link to comment
Share on other sites

I like your approach of the thing even if I don't think we would require such balance anywhere soon. (reusable rocket are hard to build and we lack all the features that would allow to refuel and reload a yet-to-exist cargo bay)

dV can indeed be seen as the absolute resources.

Link to comment
Share on other sites

That's not true. A tug dimensioned to fly to Jool and back between repairs would be able to do that journey both empty and with payload. The only difference would be that without payload it would be able to do that using less fuel.

I did not propose actual time metric because KSP timescales and time warp would throw mayhem to that. And 'time in actual operation' is IMO very similar to dv metric because in most cases you operate your ships to give them certain acceleration. DV just adds 'intensity of operation' into the equation.

dv is said to be the currency of space travel, right?

I see your point with time warp; however, it could be argued that it would warrant more thought in that case (planning ahead)... after all, must you not think ahead when it comes to electric charge also? Life support (i know that's separate, but still... in the line of "reality" i figured it bore worth mentioning)? Another thing is that I don't believe the game monitors dV in any way, just fuel levels... however, time is already kept by the game and would make adding this feature simpler. As far as intensity of operation, I'd vote rather for using time as the primary metric and maybe have g-force act like a "multiplier", creating excessive wear and tear. G-force has the added benefit of being another stat the game tracks already, and also has a more logical connection to something that might be considered to increase wear and tear on parts that aren't engines. It also has the effect of scaling damage with respect to what a vessel is doing. For example, nuke engines are built to last a long time... they have to be, having one wear out before it's depleted it's fuel on run #1 wouldn't make much sense, any high-dv/low-thrust engine is going to suffer a raw deal if dV is the measuring factor (and they already get a bad rap for usually being heavy with poor TWR). It doesn't seem right to punish them further. :)

edit: g-force is also tied intrinsically to dV (as also with acceleration directly)... however, while dV is also tied to ISP and weight ratios, g-force is not.

edit2: another thought I had, you could have bases/stations with repair bays set up to automatically perform routine maintenance as long as supplies are available to minimize the need for micromanaging and the danger of having things become inoperable during timewarp. A single interplanetary ship might not need a repair bay, but a flotilla might benefit from the presence of at least one amongst the fleet. (flotillas are my preferred method for interplanetary missions)

Edited by impyre
Link to comment
Share on other sites

Nice idea, I really like this suggestion. Would add a whole new level of difficulty.

The tweakable quality for parts would let you create heavy (and now expensive) launch stages that would have enough endurance to "just" withstand the launch. After that they are dropped anyway. SSTO's would require more durable parts, especially if they should launch/land several times (Karbin-Laythe missions).

About calculating the "usage" of the parts, impyre's idea with time and g-Force multiplier is quite good for measuring the stress on the parts and also would take aerobraking into account. After all, the reentry heat and forces are factors why spaceplanes (shuttles) need a big overhaul after each mission.

This would be good stuff for a mod - I am not sure if the complexity of this would be approved for stock - as we don't even have reentry heat (yet?).

But the idea is great :)

Link to comment
Share on other sites

This is a great idea! Opens up a whole world of repair and maintenance possibilities which means more reasons to launch rockets. It also could give more purpose to orbital stations in the way of repair and maintenance hubs.

though I'm not sure about engines burning in opposite directions not depleting anything. that would need to be worked out. a craft burning engines in opposite directions should definitely undergo 'ageing'.

perhaps there could also be some kind of electrical system ageing also? but make it a significantly smaller degree.

shutting down electrical systems could prolong craft lifespan. maybe probe cores could be put in to some kind of "Hibernation mode" to reduce electrical consumption. maybe add a "Master Shutdown" button to the UI for putting craft to sleep.

But of course once the power is depleted, its depleted and could only be revived with some kind of outside intervention.

ageing of electrical components is a real life thing too...

Link to comment
Share on other sites

That's not true. A tug dimensioned to fly to Jool and back between repairs would be able to do that journey both empty and with payload. The only difference would be that without payload it would be able to do that using less fuel.

I did not propose actual time metric because KSP timescales and time warp would throw mayhem to that. And 'time in actual operation' is IMO very similar to dv metric because in most cases you operate your ships to give them certain acceleration. DV just adds 'intensity of operation' into the equation.

dv is said to be the currency of space travel, right?

Using dV as a metric, an engine with a heavy payload attached might be able to burn at maximum thrust for 30 minutes before needing repair; attach a lighter payload and it might only be able to burn for 15 minutes at maximum, using half the fuel, before needing repair. That seems counterintuitive to me, both engines are operating with the same "intensity". Similarly, I would expect an engine pushing a heavier payload to the same destination to wear out faster.

Another side effect is that "parked" craft, either in an orbit or landed, have effectively infinite lifespan since they are no longer expending dV. I'm not sure if that is the intention of the suggestion or not, but I think it would be better to have satellites and station and base modules eventually wear out, too. Some method for handling rovers would also be needed. A time-based metric would handle these situations, too.

I'm not really clear on how the KSP timescales and warping would break a time-based wear mechanic, can you elaborate?

Link to comment
Share on other sites

...I'd vote rather for using time as the primary metric and maybe have g-force act like a "multiplier" ...
...though I'm not sure about engines burning in opposite directions not depleting anything. that would need to be worked out. a craft burning engines in opposite directions should definitely undergo 'ageing'....

When I was putting this suggestion together, I considered all of such options and many more. They are all valid options but I was looking for something simple, both from playability and from implementation point of view, but also something that would work and would be hard to cheat at the same time. From implementation point of view, it is relatively simple integration. And from playability point of view, you can plan your ship just by looking at a dv chart and giving yourself some safety slack - and it would work even if you had angled engines or used opposing engines to generate electricity.

I am not against more complex and realistic solutions as long as they fit the purpose.

Regarding en route repairs, I was considering adding a single "repair tools" part containing "repair materials" resource. This resource would mediate spending on repairs, i.e. you pay up front for the "repair materials" resource and by repairing the ship, appropriate amount of "repair materials" would be drawn from the container and you'd be able to continue repairing your ship as long as the container is not empty. The resource would be transferable and would be recoverable for appropriate sum of money if you manage to return it back to Kerbin and recover. Any ship landed on Kerbin would be repairable without need for any materials (just by paying appropriate sum of money).

Of course simpler option would be just right-click on any part and choose "repair part" or "repair ship" and appropriate sum would be deduced from your account. It just does not feel realistic enough to me, even for Kerbal Space Program.

Link to comment
Share on other sites

Using dV as a metric, an engine with a heavy payload attached might be able to burn at maximum thrust for 30 minutes before needing repair; attach a lighter payload and it might only be able to burn for 15 minutes at maximum, using half the fuel, before needing repair. That seems counterintuitive to me, both engines are operating with the same "intensity". Similarly, I would expect an engine pushing a heavier payload to the same destination to wear out faster.

I agree with your arguments but as I wrote above, I tried to come up with something simple and transparent. I am not against more sophisticated approaches as my ultimate goal is closing the gap between "reusable" and "non-reusable" which is considerably smaller in reality than in current KSP.

Another side effect is that "parked" craft, either in an orbit or landed, have effectively infinite lifespan since they are no longer expending dV.

The note above applies here, too. But even in reality, inactive things age considerably slower than things actively used. Voyager probes are still working after decades because they are in fact almost inactive - there are no moving parts moving on them and they will likely only stop working if their sturdy electronics get destroyed by cosmic radiation or their nuclear power supply depletes.

Another thing worth mentioning is the ISEE-3 satellite.

I'm not really clear on how the KSP timescales and warping would break a time-based wear mechanic, can you elaborate?

Most importantly, time-based aging does not fit the purpose, which is to close the gap between classical rocketry and reusables. You get from KSC to orbit in 15 minutes. Then you fly your rocket several years to Eeloo. You would need to introduce planning in several orders of magnitude .... "I need this part to withstand 4 minutes before I stage it, and this part to withstand 15 years because I want to bring it to Eeloo and back".

Edited by Kasuha
Link to comment
Share on other sites

Regarding en route repairs, I was considering adding a single "repair tools" part containing "repair materials" resource. This resource would mediate spending on repairs, i.e. you pay up front for the "repair materials" resource and by repairing the ship, appropriate amount of "repair materials" would be drawn from the container and you'd be able to continue repairing your ship as long as the container is not empty. The resource would be transferable and would be recoverable for appropriate sum of money if you manage to return it back to Kerbin and recover. Any ship landed on Kerbin would be repairable without need for any materials (just by paying appropriate sum of money).

personally, I think that's the best option. Gives reason for launching rockets for supply missions, and a task for kerbals to perform on EVA, while still maintaining the reward for landing craft back at KSP.

Link to comment
Share on other sites

I agree with your arguments but as I wrote above, I tried to come up with something simple and transparent. I am not against more sophisticated approaches as my ultimate goal is closing the gap between "reusable" and "non-reusable" which is considerably smaller in reality than in current KSP.

There are pluses and minuses to both approaches, I think. One benefit of time-based wear is that it is immediately understandable to even the newest of players; I'm not convinced every player grasps the dV concept and the stock game doesn't really do a lot to help in that regard.

The note above applies here, too. But even in reality, inactive things age considerably slower than things actively used. Voyager probes are still working after decades because they are in fact almost inactive - there are no moving parts moving on them and they will likely only stop working if their sturdy electronics get destroyed by cosmic radiation or their nuclear power supply depletes.

Another thing worth mentioning is the ISEE-3 satellite.

That's a good point. Perhaps different metrics for different classes of parts would be good. Minutes or hours of burn time for engines, days inhabited for kerbal carrying parts (with lifespans in years), days since launch for solar panels and RTGs, etc. Though that might be getting needlessly complex. Were you envisioning all parts having wear or only certain ones?

Most importantly, time-based aging does not fit the purpose, which is to close the gap between classical rocketry and reusables. You get from KSC to orbit in 15 minutes. Then you fly your rocket several years to Eeloo. You would need to introduce planning in several orders of magnitude .... "I need this part to withstand 4 minutes before I stage it, and this part to withstand 15 years because I want to bring it to Eeloo and back".

Engine wear based on operating time does help with that purpose. Say a rocket engine is good for one hour of burn time and is used in a reusable lifter that takes 5 minutes of burning to get to orbit, that part is only good for a dozen launches before needing some expenditures to maintain it. Most parts on that long fall to Eeloo aren't accumulating operating time as they're idle. You're definitely right though that it complicates planning, and more so than a simpler dV-based mechanic.

It might be a good idea to consider using the effect for more than just cost balancing between reusables and expendables, though I understand that's the primary goal. It can add some realism and depth of gameplay, create new problems for the player to solve, and provide another reason to send manned missions (repairs possible).

Link to comment
Share on other sites

I don't really feel that SSTOs and other reusable designs aren't that overpowered. Yes, you get all or most of your money back, but those designs are also harder to make and require more work to fly. An expendable vehicle is so simple it can be designed in a minute, but an reusable vehicle will take more time (perhaps testing and tweaking based on the results). When both are designed, the expendable vehicle is also less complicated to fly. Getting up to orbit and back again only requires you to go vertically to 10 km up, then tilt to 45 degrees until around 30-40 km and then coast to apoapsis before circularizing. Returning is pointing retrograde, firing and then opening a parachute a km or so above the surface. A 100% recoverable RAPIER spaceplane requires you to take off, ascend at a certain angle of attack, level off at 20 or so km to pick up speed. When you get up to speed you need to point back up and switch to rockets until you get high enough to level off again. Then you need to circularize. Returning can require plane changes, multiple orbits, lining up with the KSC area, lining up with the runway, the actual landing, braking, etc.

Expendable are balanced with reusables in terms of time and effort. Expendables are low on effort, time and recovery reward. Expendables are high on effort, time and recovery reward.

Link to comment
Share on other sites

An expendable vehicle is so simple it can be designed in a minute, but an reusable vehicle will take more time (perhaps testing and tweaking based on the results).

Maybe I'm already too experienced in this game or I'm just too lazy. At certain point I built a reusable SSTO stage in about half an hour, saved it as subassembly and now I'm slapping it to whatever I want to bring to orbit. Given that I flew it some 20 times already it's less than 2 minutes of design effort per flight.

Reaching the orbit is not whole lot harder than with classical rocket, I too make a 45 degree turn at 10 km but instead of leveling at 75 km, I level at 36 km and then wait a bit more till the lifter reaches orbital speed and pushes the apoapsis out of the atmosphere where I use nuke to circularize and release the payload. It may take a bit longer but it's not hard to fly either.

Note that it's not a spaceplane. It has no wings and it launches and lands vertically. I don't find it any harder to land on KSC and only marginally harder to land on runway compared to spaceplanes, it has greater payload capacity than a plane (or rather, a plane with the same payload capacity would be very likely significantly harder to design) and the amount I get back on recovery is totally worth that bit of extra effort.

So I don't see any big difference in effort needed to build either kind of the ship, but I do see the difference in recovered funds.

Link to comment
Share on other sites

Reusable things are lot more balanced if you play without quickloading.

I don't think these two things are directly related in any way. It's a player choice whether to use or not use quicksave/quickload.

In my current Career run I did not quicksave once and I only reverted flights that I declared simulations before the launch. I had a few accidents but nothing that would cause me any trouble. I had to relaunch one probe to Moho (crash on landing attempt) and two to Jool (missed encounter on one of two Pol probes and it crashed to the moon; Tylo probe landed successfully but had too little battery capacity to be able to transmit science data reliably).

I would even say that asparagus-staged designs are more prone to Rapid Unplanned Disassembly than a jet-driven SSTO. You lift a LOT of fuel and forces on the ship are changing dramatically as your fuel tanks get empty. There are even problems with radial decouplers now but even in older versions, a dropped stage crashing into your lifter was pretty common.

Link to comment
Share on other sites

Designing an working reusable craft is much harder than designing normal rocket.

If you don't do free "simulations" it is very expensive.

yes, designing an heavy lifter is expensive too, but desingning an reusable heavy lifter is even harder.

Not reverting also means that if you fail the landing you have to build an new rocket (and reuseable craft are usually more expensive than normal ones.)

Link to comment
Share on other sites

If you don't do free "simulations" it is very expensive.

Yes but it is very expensive either way. And as I have mentioned, it's a playing style choice. Personally I use "simulations" because I don't use mods that tell me how much dv my ship has so I have to test if it is capable of doing what I am building it for using different means. I don't consider it cheating.

I would even say that using quicksaves/quickloads and reverts is the way the game is "intended to be played" because otherwise these features wouldn't be there. And the game should be balanced for the intended playing style in the first place.

Edited by Kasuha
Link to comment
Share on other sites

I loved this idea at first, but on second thought: no.

  1. implementation. No matter how I think of it, it would require a counter attached to every aging part that needs to be updated with every physics tick. We have enough lag already, thankyouverymuch.
  2. while I can EVA around my ship, it's nothing I'm looking forward to. Other means of fixing things would amount to little more than "click buttons". I don't like either.
  3. what's the punishment for skipping an inspection? Malfunction? Part failure? Bad idea.
  4. There will be a lot of "my ship breaks down halfway to the Mun" bug reports. The ship wouldn't break down if they had used the durable parts, of course, but we're talking about an audience that consistently fails the throttle_at_zero test. What do you expect to happen?

I suggest a simple "the part has been used" attribute that only needs to be updated once. Recovering unsused bits yields 100% (so people can still abort by recovery and pay no fine); but anything that has been used, if only for a moment, is scored down to (say) 66%. Plus, the game won't let you start any previously used engine after it has been landed near KSC: "Hey mister, that vehicle inspection is overdue" -- so refueling won't work, at least not on KSC proper.

People could still land outside KSC and send a tanker. I don't doubt that some will, even though it will be much more hassle than just earning more money through simple contracts. If that's what makes them happy, by all means, let them.

Or... just leave it as it is. The monetary system will necessarily be balanced for newbies and casual gamers; anyone who can think up and build a SSTO shouldn't have any monetary problems whatsoever. At that level of gameplay, funds serve no real purpose anymore, they're only about bragging rights.

Link to comment
Share on other sites

Maybe I'm already too experienced in this game or I'm just too lazy. At certain point I built a reusable SSTO stage in about half an hour, saved it as subassembly and now I'm slapping it to whatever I want to bring to orbit.

Its not the 2 minutes of design effort per flight that counts, as you're just using subassemblies what they're for. The half hour it took you to design that SSTO was more than if you had designed an expendable launch vehicle. SSTOs are thus more difficult than expendables. You are probably too skilled at the game, which means that medium difficulty becomes trivial, hard becomes medium and only extremely hard remains a challenge. For the majority of players (according to a survey, only 23% of forumgoers had gotten to the Mun) fully reusable vehicles are (extremely) hard, while expendable vehicles are easier.

Link to comment
Share on other sites

implementation. No matter how I think of it, it would require a counter attached to every aging part that needs to be updated with every physics tick. We have enough lag already, thankyouverymuch.

As long as all parts "age" at the same rate, you just find the lowest value and record the difference. You can propagate the value to all parts when necessary, e.g. during save, when docking, or when switching to another ship.

while I can EVA around my ship, it's nothing I'm looking forward to. Other means of fixing things would amount to little more than "click buttons". I don't like either.

Repairing on EVA is optional and completely irrelevant to the base idea.

what's the punishment for skipping an inspection? Malfunction? Part failure? Bad idea.

There will be a lot of "my ship breaks down halfway to the Mun" bug reports. The ship wouldn't break down if they had used the durable parts, of course, but we're talking about an audience that consistently fails the throttle_at_zero test. What do you expect to happen?

My proposal is it would stop producing thrust, so the ship would be inoperable until you either repair the ship or get rid of spent parts (e.g. by staging). And if each part gets some reasonable durability by default and there was visible counter showing you remaining durability I doubt such events would be common - everybody would learn to watch it as well as everybody is used to watching the altimeter. I don't remember any complaints about "my ship suddenly crashed to the ground, I did not see that coming".

In general you're dismissing the idea based on irrelevant and optional details.

I suggest a simple "the part has been used" attribute that only needs to be updated once. Recovering unsused bits yields 100% (so people can still abort by recovery and pay no fine); but anything that has been used, if only for a moment, is scored down to (say) 66%. Plus, the game won't let you start any previously used engine after it has been landed near KSC: "Hey mister, that vehicle inspection is overdue" -- so refueling won't work, at least not on KSC proper.

Sorry but this is SO easy to cheat. It does exactly what I am trying to avoid - opening gap between "recovery reusable" and "true reusable" ships. You'd just not land on KSC and you'd need to send the refueler a few kilometers away. Yes, true reusable ships are a hassle but can be used and if they come out significantly more profitable than other ways, it will be used.

Edited by Kasuha
Link to comment
Share on other sites

How about instead of an aging cost you just have a large initial cost so as to account for the maintenance of such a complicated plane

1= easier to implement

2= makes old school rockets more economical viable

3 approximates reality as those things have a HUGE maintenance cost to keep them running ...one of the reasons the space shuttle was originally scrapped

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...