• Profile image

    @MansBestFriend people are welcome to release their crafts whenever they want. So if somebody wants to post a legitimate craft when they reach a particular points milestone I take no issue with that, nor with a note in the description, nor with markings on the craft. What I do take issue with is crafts pots and forum posts that have no redeeming value and are just 1) colored rectangles, 2) reposts of old crafts, or 3) would otherwise be considered spam/junk in the absence of the "thanks for the points" flare. For an example here is an older post that I wouldn't have removed because it was a totally new, legitimate aircraft that happened to have a "thank you for the points" (referring to a previously reached milestone) in the title (and didn't have any other points begging behavior like a bunch of tags).

    That said I still think this is a silly thing to do, and while I won't delete such things I continue to encourage everybody to refrain from obsessing about points.

    3.9 years ago
  • Profile image

    This is slightly imperfect, but you can take your desired orbital velocity vector, subtract from that your velocity vector due to the rotation of the planet while you are sitting on the surface, and then find the angle between that vector and the north vector to determine the launch trajectory. The reason this is imperfect is that your change in velocity is not instantaneous. As a result I believe you will continue to pick up excess lateral velocity during launch. I'm not sure how this is simulated in SR2 but in real life I imagine that a rocket has lateral force imparted on it by the fact that the atmosphere is rotating with the planet. To get a perfect inclination you will probably need to continually check your current velocity vector (or orbital inclination) against your desired vector or inclination and adjust your heading to compensate throughout your main engine burn.

    3.9 years ago
  • Profile image

    You can see a full accounting of you points here: https://www.simplerockets.com/Account/Points?d=0.

    If you're asking how you wound up with a number of points ending in three event though points come in denominations of 25, 15, and 2, that is simple math: 15+2+2+2+2 = 23 for example. Also when a successor to one of your crafts gets upvotes you get a fraction of the normal points. More info: https://www.simplerockets.com/about/points

    3.9 years ago
  • Profile image

    Posts about points are unnecessary, and they detract from the real content on the site. I made a forum post specifically about removing “thank you for the points” posts. It’s totally possible you didn’t see that, so no big deal, but “congrats for the points” is in the same vein.

    3.9 years ago
  • Profile image

    Removed for failing to comprehend the spirit of the law 🤦‍♂️

    3.9 years ago
  • Profile image

    For tanks that are connected via parts with "Fuel Line" enabled fuel is drained from the tank with the highest "Priority" value first (this setting is below Fuel Type in the part properties panel). So if you want to drain your "external" tanks first, leave your "main" tank's priority at 0 and set your "external" tanks' priorities to values larger than zero.

    3.9 years ago
  • Profile image

    What's the behavior you are observing? When firing engines they should pull from all the tanks in the current group (connected directly or via parts with fuel lines) in priority order, so rates should not be an issue. If fuel isn't being drawn from some tanks then they are probably not connected (you need to enable fuel line on the tanks and other parts in between the engine and the tank). If your "main" tank is being emptied first but you want to empty the connected tanks first then you may need to adjust your tank priorities.

    If you specifically want to use a separate fuel tank and transfer fuel in using the part info panel during flight, the you are limited by the fuel transfer rate for the type of fuel, and the number of sources. So increasing the number of "external" tanks should increase the total transfer rate. If you're curious the code looks something like this:

    private void UpdateTransfer(FuelType fuelType, float deltaTime)
    {
      double totalSourceFuel = 0.0;
      double totalDestCapacity = 0.0;
      int destCount = 0;
      int sourceCount = 0;
      foreach (IFuelSource fuelSource in this.FuelSources)
      {
        if (fuelSource.FuelType == fuelType && fuelSource.FuelTransferMode == FuelTransferMode.Drain)
        {
          totalSourceFuel += fuelSource.TotalFuel;
          ++sourceCount;
        }
        else if (fuelSource.FuelType == fuelType && fuelSource.FuelTransferMode == FuelTransferMode.Fill)
        {
          double currentDestCapacity = Mathd.Clamp(fuelSource.TotalCapacity - fuelSource.TotalFuel, 0.0, fuelSource.TotalCapacity);
          totalDestCapacity += currentDestCapacity;
          ++destCount;
        }
      }
      if (destCount <= 0 || sourceCount <= 0)
        return;
      double maxSourceTransferAmount = (double) fuelType.FuelTransferRate * (double) sourceCount * (double) deltaTime;
      double actualTransferAmount = Mathd.Min(totalDestCapacity, totalSourceFuel, maxSourceTransferAmount);
      if (actualTransferAmount > 0.0)
      {
        double amountPerDest = actualTransferAmount / (double) destCount;
        double amountPerSource = actualTransferAmount / (double) sourceCount;
        double transferTally = 0.0;
        foreach (IFuelSource fuelSource in this.FuelSources)
        {
          if (fuelSource.FuelType == fuelType && fuelSource.FuelTransferMode == FuelTransferMode.Fill)
          {
            double amount = fuelSource.TotalCapacity - fuelSource.TotalFuel;
            if (amount > amountPerDest)
              amount = amountPerDest;
            transferTally += fuelSource.AddFuel(amount);
            if (fuelSource is IFuelTransferredHandler transferredHandler)
              transferredHandler.OnFuelTransferred();
          }
        }
        for (int index = 0; index < sourceCount; ++index)
        {
          foreach (IFuelSource fuelSource in this.FuelSources)
          {
            if (fuelSource.FuelType == fuelType && fuelSource.FuelTransferMode == FuelTransferMode.Drain)
            {
              double amount = Mathd.Min(amountPerSource, transferTally);
              transferTally -= fuelSource.RemoveFuel(amount);
              if (fuelSource is IFuelTransferredHandler transferredHandler)
                transferredHandler.OnFuelTransferred();
              if (transferTally <= 0.0)
              {
                index = sourceCount;
                break;
              }
            }
          }
        }
      }
    }
    

    3.9 years ago
  • Profile image

    Please don't spam the forum with pointless posts.

    3.9 years ago
  • Profile image

    There are bugs related to burn nodes created in future orbits after a change of SOI. If you still cannot delete a burn node even though it is unlocked, then perhaps you are running into that?

    3.9 years ago
  • Profile image

    Mixing PCI vectors and Lat Lon? The vector you mentioned is definitely Lat Lon so if you want to compare it with nav |Position| you will need to convert that to Lat Lon as well.

    3.9 years ago
  • Profile image

    It's not a single instruction, but it's not that complicated. Because you can lock heading to a PCI vector all you need to do is lock heading to the radial vector in a loop. Assuming that by "radial" you mean away from your parent body you can just use your position vector (toward the parent body would be your position vector * -1). I'm not sure it is necessary, but I tend to normalize vectors in this case by force of habit.

    3.9 years ago
  • Profile image

    The Ansible Mod makes it possible to broadcast to other crafts within range (default is 10km when in orbit).

    3.9 years ago
  • Profile image

    @Tweedle_Aerospace Well first off, as a volunteer moderator I don't have the ability to modify the source code of this website, so "you guys" isn't really a meaningful category here. Secondly I would speculate that the developers didn't want to deal with hosting large volumes of images from arbitrary sources. When you start letting people upload any image you run into a number of issues: users can upload arbitrarily large images, you don't have control over source image encoding so you have to validate images and possibly re-encode, there is an increased risk of copyright violations and resulting liability or having to deal with take down notices, you have to pay the storage costs and maintain network infrastructure to serve files to browsers. Services like imgur exist solely because other people don't want to have to deal with these issues, and imgur chooses to focus on that as their entire business and monetize it with ads.


    You could certainly submit a suggestion to have the website support attaching files including images to forum posts. I will grant you that other forums out there do support this. However, there's a lot of things the developers could be working, and most users seem to be able to figure out how to host and embed images using the current system. So I wouldn't make this a priority if it were up to me.

    3.9 years ago
  • Profile image

    The URL you are currently using: https://ibb.co/23cnDRL does return an image, it returns an HTML file, and for some reason when the webpage requests it for an image tag it actually responds with an error. You need to use an image hosting service that supports cross domain image embedding. Google Drive will not work because the URL for an image hosted in google drive returns a html page that displays the image, and the actual image URL is only temporary (it will start to return an error after a few minutes).

    3.9 years ago
  • Profile image

    You basically want to maintain a certain Thrust to Weight Ratio. A rough estimate can be achieved by determining the required Thrust based on the current Mass, Gravity, and Maximum Thrust. These are all constantly changing unless you moving, and/or burning propellant. The basic equation is Throttle = (TWR * Mass * Gravity) / MaxThrust. A TWR of 1.0 is hovering, a TWR of 2 will cause you to accelerate at 1x Gravity assuming you are going straight up. As you leave the atmosphere and escape the gravitational influence of your parent body this formula becomes less useful, and what you really want to adjust for is your rate of acceleration directly (instead of as a factor of gravity as TWR does).

    3.9 years ago
  • Profile image

    I appreciate that you're just testing things out, but I'm removing it as it doesn't really add any value for the community.

    4.0 years ago
  • Profile image

    Your post has been removed because it appears to have broken the website rules. You can read them here. We kindly ask that you refrain from using profanity. Thanks.

    4.1 years ago
  • Profile image

    Can you be more specific about what your having trouble with? Are you able to get to orbit and then perform the transfer maneuvers to get to Luna? Is it just the fuel efficiency aspect that you are finding difficult?

    4.1 years ago
  • Profile image

    @SNSA @HSH That black box is a code block (monospace font, respects whitespace literally instead of using normal markdown rules). It happens when you indent your text with 4 spaces. You can learn more about it in the Post Formatting Guide

    4.2 years ago
  • Profile image

    @HSH I think @TopGottem101fly is basically in the right here. This has no relation to the site's rules about copying. Naming your craft or making use of a common word like "Aurora" in no way makes that "your property." I don't think there is a patent and trademark office on Droo with which you could file a claim, so I think you can both freely make use of the name "Aurora" however you wish.

    4.2 years ago
  • Profile image

    Please don't spam the forums with meaningless posts.

    4.2 years ago
  • Profile image

    The actual reason why mods don't work on android is explained here.

    4.2 years ago
  • Profile image

    1km is the distance where crafts within the atmosphere get loaded.

    4.2 years ago
  • Profile image

    10 km is the distance at which other crafts that are not inside the atmosphere will be loaded such that they have a full physics model, run vizzy programs. Beyond this distance crafts will only have their positions updated based on basic orbital mechanics assuming no forces besides the gravity from the parent planet. If you set up two satellites on a perfect collision course, and then switched to control of a 3rd satellite that was more than 10 km away the first two satellites would pass right through each other without colliding. So you are correct, the extra CPU activity and consequent lag is due to loading the details of that craft (all of its parts, their state, meshes, colliders, etc.).

    4.2 years ago
  • Profile image

    @FLYGUY101 I think the same concept would work fine with a motor. The input constant is just the power level. And the activation group controls whether it's on or off. If you wanted to target a fixed rpm or something that would be more complicated.

    4.2 years ago
  • Profile image

    This question is not appropriate for this forum.

    4.2 years ago
  • Profile image

    There's no way to make a part truly invisible, however you can use part scale and move it inside of another part. You move parts inside of others using the move parts tool and switch the mode to "Self" instead of "Connected".

    4.2 years ago
  • Profile image

    98% MacOS, 1% Windows, 1% iPad

    4.2 years ago
  • Profile image

    @RikHar I figured it out. For some reason the hinge rotator's part id is changing after returning control back to the vehicle's command chip. If you rename your hinge rotator to something unique like "left-door-hinge" and the replace all your usage of the part id 386 with the expression part ID of [left-door-hinge] that should make it work. I haven't been able to reproduce the part id changing behavior with a simpler craft so I'm not sure what's causing that, but it commonly happens when crafts dock, so it's a good idea to avoid hard coded part ids anyway.

    4.2 years ago
  • Profile image

    I take it this happens in flight, when you are controlling the astronaut. This could be an issue with activation group replication, or if you are relying in Slider 1/Slider 2 the it could be that parts are switching from the command chip in your rover to the astronaut. Does selecting the command chip and clicking "Take Control" fix the issue?

    4.2 years ago
  • Profile image

    There were flight programs in the nosecones of your side boosters. Here is a version without any extra flight programs.

    4.2 years ago
  • Profile image

    It is possible to add Flight Programs to parts that are not Command Pods/Command Chips. This is done using the "Add Flight Program" button in the ticker panel. Unfortunately it is not easy to find a Flight Program on a non-standard part without looking at the XML (you basically have to select every part and check it's properties for an "Edit Program" button). If you can share an unlisted craft link I would be happy to take a look.

    4.2 years ago
  • Profile image

    I prefer A personally. I think the extra visual detail (the lines running down the length of the ship) break up the monotony that is otherwise a large flat panel.

    4.3 years ago
  • Profile image

    These two modes for velocity exist because sometimes it is useful to know your velocity relative to the surface (which is what "surf" mod shows you), and on the other hand in space it is more useful to know your velociting relative to the planet's center. If you use orbit velocity sitting on the ground you will see that you are moving at over 100 meters per second. The behavior you are seeing with regard to Vizzy is because "prograde" depends on what the user has selected in the user interface. It is unfortunate that Vizzy does not make it possible to specify which version of prograde you would like to lock to. I hope this helps.

    4.3 years ago
  • Profile image

    ...yes. Once two craft become docked they turn into a single craft, so flight programs running on what were previously two separate craft should be able to exchange messages.

    4.3 years ago
  • Profile image

    In case you are not familiar with the dot vector operator, the full name for it is dot product and it is a way of combining to vectors and getting a single number. Algebraically it involves multiplying and summing all of the components. Geometrically it is the product of the lengths of the two vectors times the cosine of the angle between them. So when the angle between them is greater than 90 degrees (i.e. one of the vectors points "away" from the other) the result is negative.

    4.3 years ago
  • Profile image

    If you have a PCI vector with from your position to your target's position (which you can get via [nav |Target Position|] - [nav |Position|]), then you can find the heading to that vector by projecting that vector onto the plane tangential to the surface at your position, finding the angle between the North PCI vector and your vector to target, and then if the vector is pointing "away from" the east vector you would take 360 minus the resulting angle).

    • To project a vector onto a plane defined as the plane perpendicular to your gravity vector: $vector_to_target - [ [$vector_to_target] |project| [velocity |Gravity|] ] (what this is doing is taking the vertical component of the vector and subtracting it).
    • Checking if the vector points "away" from east: if [ [$projected_vector_to_target |dot| [nav |East|]] < 0] then [ 360 - [ [$projected_vector_to_target] |angle| [nav |North|] ] ] else [ [$projected_vector_to_target] |angle| [nav |North|] ]

    4.3 years ago
  • Profile image

    It will be hard to figure out what is going on without seeing a screenshot of your code or being able to download your craft.

    4.3 years ago
  • Profile image

    Good luck!

    4.3 years ago
  • Profile image

    I think the community is pretty stingy with the upvotes for simple but functional rockets. It's also pretty stingy with certain replicas because they've been done so many times (there must be 50 Falcon 9s on the site). I think most people upvotes things when the think it looks really cool/unique/distinctive, or when it looks like it took a lot of work. Most simple rockets don't look like they took a lot of effort, even if you actually put a lot of work into tuning your stages and engine parameters.

    4.3 years ago
  • Profile image

    One thing to be aware of is that it is not possible for a craft to dock with itself, so if you are trying to assemble a station with multiple segments in orbit you can only dock each new component with precisely one docking port on the station. There's a suggestion to change this, and if you are on a PC there is a mod to work around it. With either the mod, or with that suggestion implemented, you could construct a robotic arm to precisely position components in order to get them docked.

    4.3 years ago
  • Profile image

    Another thing you could do is tweak the nozzles for your second stage to be more optimized for vacuum firing (i.e. use a bell nozzle with higher nozzle length. However, if your second stage is designed to return to the surface of Droo eventually this might not be advisable.

    4.3 years ago
  • Profile image

    The difference between bad at coding and good at coding is just knowledge and practice. The best place to start is this video tutorial series by Mrmaraunet. There's also some explanation of the different instructions and expressions on the wiki.

    4.3 years ago
  • Profile image

    This sounds like some kind of bug. There of been intermittent reports of such problems in the past. You should probably report it from within the game.

    4.3 years ago
  • Profile image

    Thorough answer posted in Discord.

    For anybody who hasn't joined yet/if that link doesn't work, here's an invite to the SimpleRockets Chat Discord.

    4.3 years ago
  • Profile image

    There isn't currently a way to search specifically for tags, although the text of a tag should match craft with that tag (but will also match craft without the tag but with word in the description). As far as why, the reason is that the search functionality is utilizing Google's index and search algorithm, and from Google's perspective each craft page is just a webpage, it doesn't know the difference between tags, title, or description. There is a suggestion specifically regarding this limitation that you may want to upvote. Or if you were asking about the forum as opposed to craft upvote this suggestion

    4.4 years ago
  • Profile image

    Since you can get part positions vector with part [$part_id] |Position| and, there's a distance operator that takes two vectors, this is pretty straightforward: [ part [$part1_id] |Position| ] |dist| [ part [$part2_id] |Position| ].

    4.4 years ago