• Broadcasts to other crafts and ground stations (depending on antennas if implemented)
  • Force a craft to be loaded X seconds (updating the x seconds every time you execute the block)
  • Event impulses

    • Collision

    • Explosion

    • Dock

    • Finished maneuver

    • Change of SOI

    • Staging

  • Part actions

    • Set fuel transfer to

    • Explode

    • Activate/Deactivate

  • Input controller interface in Vizzy (part [id] input [type] [value])
  • Get current craft id/current parent planet id (and a block with planet ids in the current system)
  • Get part id of the part hosting Vizzy
  • Get parameters based on planet/craft id instead of current planet/craft
  • Target crafts and not only planets
  • More craft gets

    • Lat/Long

    • Get target id

    • Get target relative speed

    • ETA and distance of next approach to the target

    • [pitch/heading/roll] of [current direction, pointing target, pointing maneuver, surface speed, orbit speed, target relative speed]

    • [pitch/heading/roll] angular velocity

    • Temperature [Ambient, Part id, Max temperature in the craft]

    • Position of [CoM, CoL, CoT, geometric center]

    • Measurements [height, width, depth]

  • More planet gets

    • Name

    • Standard Gravitational Parameter (µ) and/or mass

    • Radius

    • Edge of the atmosphere altitude

    • Position around parent planet and orbit details

  • Get current time (total time, year, day, hour, minute, second) and time since launch
  • Get current time warp mode
  • Time warp to

    • Next event (planet encounter, soi exit, maneuver...)

    • Max possible time warp

  • Make the program consume energy with each instruction
  • Print monospaced text
  • String parsing
  • Read text input
  • A terminal and a screen part where you can print text
  • Print line in a text file
  • Variable arrays and treemaps
  • Constants

    • pi

    • e

    • c

    • G

    • I'm sure I'm forgetting some

  • A folder that stores all your custom blocks instead of the ones in the current program only
  • An option to easily swap between Vizzy programs in the same craft
Suggestion Done Fixed in


  • Log in to leave a comment
  • Profile image
    Mod sflanker

    @haogejiuhaoge1 If you mouse over the drop down option it displays a tooltip that provides an explanation: "Clamps the magnitude of the left vector to the magnitude of the right vector or constant number."

    To elaborate a little, this expression can be used either with a two vectors or with a vector and a number. The result will be a vector. The resulting vector will point in the same direction as the original vector, but will have a magnitude that is equal to the second vector's magnitude. Clamp could be implemented as normalize(vector1) * length(vector2).


    1. [ (100, 100, 0) ] clamp [ vec [0], [3], [3] ] ==> (3, 3, 0)
    2. [ (100, 100, 0) ] clamp [ 4.24264 ] ==> (3, 3, 0)


    When passing vectors to expressions it is usually ok to use the text representation (i.e. ( 1, 2, 3)), however because the second argument to clamp might be a number or a vector, the clamp expression does not handle this correctly, so you must use an actual vector value (which is why in my example I used the vec [1], [2], [3] expression.

    FYI, for the best results, instead of pinging a developer on a random suggestion thread, either make a new post in the question forum, or ask on the SimpleRockets Chat Discord. No offense, but the developers have better things to do with their time.

    +1 1.2 years ago
  • Profile image

    @AndrewGarrison I have some difficulty in sr2. I really want to know how to comprehend the meaning of ''clamp'' in the calculate between two vectors.I try to understand it in many ways but I still don't understand.I wish you to help me to understand ''clamp''.
    I'm looking forward to your reply

    1.6 years ago
  • Profile image

    wow it was quickly implemented :)

    1.7 years ago
  • Profile image

    @Oscarcarserud Check the latest beta branch

    1.7 years ago
  • Profile image

    Lat / Long ! what I would love that.
    Also a universe star date. If that existed you would be able to calculate the position of the planets in anny given time.

    1.7 years ago
  • Profile image

    @AndrewGarrison sorting(?), with the ones you said there would be enough though. The only thing that concerns me is input controller interaction.
    Would PartName.FlightProgram.List(index) format work?

    1.7 years ago
  • Profile image

    @pedro16797 I was considering adding them arrays (well, actually lists), but no promises. I was thinking it would have these instructions: Add, Insert At Index, Remove At Index, Set At Index, Clear, Get At Index, Length, Index Of, and Contains.

    1.7 years ago
  • Profile image

    @AndrewGarrison after what I said I wanted to try this and it worked. I'm really glad this works. Still not as compact as creating one array of size X since you have to generate the variables and you can't use them in any equation, but at least it's possible to iterate them to set or change by.
    I want to explore the use of strings as arrays for numbers, my first guess (char*1 being the ascii value) was wrong, but there has to be a workaround

    1.7 years ago
  • Profile image

    @AndrewGarrison are you planning to add the arrays? I've been trying to do some programs and having to iterate them going 1 var each time is quite painful, having some kind of var(i) for iteration (or even iterators) would be quite useful

    1.7 years ago
  • Profile image

    @AndrewGarrison that's great to know actually

    1.7 years ago
  • Profile image

    @pedro16797 Using a Wait 0 seconds instruction will cause program execution to pause until the next frame, so you can use that in a loop to accomplish that.

    No plans for in-flight patching. That would be quite difficult.

    1.7 years ago
  • Profile image

    @AndrewGarrison would it be possible to allow for on the go patches for the Vizzy program? So you can change mid flight the program like irl

    +1 1.7 years ago
  • Profile image

    @NoIDontWanna that would be cool @AndrewGarrison
    Something like having two wait block styles
    wait X s
    wait X ticks

    1.7 years ago
  • Profile image
    6,996 NotAGopnik

    @pedro16797 what about waiting a single frame?

    1.7 years ago
  • Profile image

    @AndrewGarrison When I wrote it every time I saved a program the suggested name was the default name for a new program, I've tested it now and it seems to keep the name, not sure if it was in a beta or a bug, haven't played too much lately and can't test it more. I would consider it fixed, if I run into this issue again I'll make a bug report

    +1 1.7 years ago
  • Profile image

    @AngelLestat @pedro16797 Can you elaborate on this one "Keeping the name of the program when saving multiple times." When I save a flight program it remembers the last name. Does it not do that on your device?

    1.7 years ago
  • Profile image

    Priority to this:
    Keeping the name of the program when saving multiple times
    A folder that stores all your custom blocks instead of the ones in the current program only
    An option to easily swap between Vizzy programs in the same craft

    1.7 years ago
  • Profile image

    @AndrewGarrison it would be cool to have the coordinates of the intersection between the trajectory and the planet like in KSP mod Trajectories

    1.7 years ago
  • Profile image

    @swope i would think the vector from your position to the target’s position (updated every frame) you could calculate a heading by projecting it on a north and east vector. Maybe a line of sight function would be helpful as well to know if the vector intersects the planet.

    I wish we could be there at SciTech! Sounds like fun! Maybe next year.

    +1 1.7 years ago
  • Profile image
    505 swope

    @AndrewGarrison - I'm at #aiaaSciTech and I feel like there should have been a SimpleRockets 2 booth in the exhibition hall! Great teaching stuff.

    Looking forward to trying it out soon. I had the same question as @pedro16797 ... If the location is in inertial space, how will we have precision landings at the space center, or other surface locations or airborne waypoints?

    1.7 years ago
  • Profile image

    @pedro16797 I’m glad to hear you’re excited. I think a way to convert a lat/long to and from an earth centered x,y,z vector would be all you need for that.

    +2 1.7 years ago
  • Profile image

    @AndrewGarrison it's unfair to have most part of the last comment dedicated to the location.
    I'm quite hyped about having vectors, we talked about that and thought you shouldn't even bother because of complexity, looking at that screenshot just blew my mind.
    Vizzy is going to be both a learning platform and a really complex and powerful interface. The potential of the game keeps growing faster and faster. If you nail a couple more key features as you've been doing this game could be a milestone for astronomical, scientific and coding educational purposes.

    +3 1.7 years ago
  • Profile image

    @AndrewGarrison amazing job! With position it would be cool to have some way to determine position relative to surface (ie: gps like utilisations, trying to land in a specific place...), how would that work ignoring planet rotation?

    About the coordinates, if you add an option to get the coordinates of saved locations it may help with this very upvoted suggestion and in the career mode you can just remove the option to spawn in them and let the players use them as waypoints/markers without having to do an independent system

    +3 1.7 years ago
  • Profile image

    @pedro16797 @McDuetchVan @swope @Nethereal There's a lot of great suggestions here and I have been having a difficult time on how to approach it all. Especially this one: [pitch/heading/roll] of [current direction, pointing target, pointing maneuver, surface speed, orbit speed, target relative speed].

    I've decided to add support for vectors to Vizzy, so now you can do basic vector operations such as add, subtract, scale, dot, cross, project, etc (screenshot).

    I think with vectors now I can just allow access to a few key vectors such as heading, craft up/right, orbit velocity, orbit position, target position, target velocity, surface/ground normal, maneuver direction, and maneuver position. I think that should be enough to get you what you need, at least for that sub-suggestion.

    Also, I plan to make positions relative to the center of the current planet being orbited (and ignore planet rotation).

    +6 1.7 years ago
  • Profile image
    1,125 huuminberd

    Did I just see arrays? Fantastic. Lookup tables would be very handy. Mentions under breath, fuzzy logic, cough cough. Yeah we need arrays.

    1.7 years ago
  • Log in to see more comments


Log in in to upvote this post.