Back To Top
  • Hey Guest,
    If you are interested in ghosting, the Ghosting Awards from February 2025 all the way up to June 2025 have just been announced:

    Statement regarding the delays

    Ghosting Awards for February 2025

    Ghosting Awards for March 2025

    Ghosting Awards for April 2025

    Ghosting Awards for May 2025

    Ghosting Awards for June 2025
    Dismiss Notice
  • List Official Featured Ghosts

    Discussion in 'Races' started by mR..A, Oct 31, 2016.

    Tags:
    1. YourKidding

      YourKidding Well-Known Member Team Truck Official Author

    2. ShamatoZ

      ShamatoZ Forum Legend Team Balloon Official Author

      I've got some quick advice here, be advised I cooked this up in like 10 minutes, so there may have been some big factors that I have missed. Please read everything, and ask me (or the most beneficial thing for you to do is to ask someone who is better than me) for some help!:

      Screenshot 2021-04-13 172130.png

      I noticed here, that you didn't get as close to the corner as you could have. My advice is to try and get closer, as shown here:

      Screenshot 2021-04-13 171531.png

      As you can see, getting closed saves time, but it comes at the cost of being riskier, especially in longer heli levels.
      Speed preservation is also very important in heli, and getting a good line isn't the easiest thing that you can do (especially if you switch between pressing left and right, which you shouldn't do if you want a straight helicopter line)

      Some examples of a heli line, for two different star placements:

      #1 - Star on the very right:

      STAR.png

      Take a line similar to this. Following the red line is a good way to keep the maximum amount of speed possible! (don't move too much at the start. As you get further in, start pressing more in the direction you want to go.) Think of this as a sort of parabola, where the ends don't have much movement, and the middle requires you to move more.

      #2 - Star near the top, it is also where we are heading with the heli, in your ghost:

      STAR_UP.png

      This is similar to the other heli, but even less movement is required at the start, and less overall movement at that corner. Take a line similar to the red one to get good speed. [ask Madara, or another good heli player for more tips, I'm not very good with heli myself to perfectly explain every small detail]


      Point #2:

      Screenshot 2021-04-13 172340.png

      I noticed a big error here (no disrespect meant). You hit the ground, which lost quite a bit of the speed that you would have had. I also noticed your line that you took. [Your line is the blue. The better line that I found would be red] You should try to avoid hitting the ground with heli, as it can mess up your ghost most of the time, depending on how severe the bounce is.

      A showcase of the red line:
      Screenshot 2021-04-13 172658.png

      Entering with more speed, and a wider angle negates the chance of hitting the ground, and you also get set up nicely for the next part! [the next part is obviously specific, without that part there, you should try and get through there just like the red line]

      Point #3:

      Screenshot 2021-04-13 172514.png

      You slowed down here. The blue line represents what you did, while the red shows what you could have done better. Maintaining speed is all about slowing down in the heli, in order to prepare yourself to make difficult sections without slowing down, or bouncing and possibly dying.
      You should try to collect the star as close to the edge as possible.

      Point #4:

      Screenshot 2021-04-13 173004.png

      This was a big mistake that I noticed right away. I produced two, better alternative lines that you could have taken.
      BLUE: This is the line that you ended up taking. You landed pretty badly, and therefore lost a considerable amount of time, unfortunately.
      GREEN: This is a safer line to take. It keeps you from landing akwardly, and is generally a good line to take, as it also allows you the chance to switch directions if you need to.
      RED: This line is for the bravest of riders. Go for this if you really need to save time. You get to keep good speed for this one, and for this track, that would be the best line. [it probably isn't even that hard, remember I made this in 10 minutes xD]

      Screenshot 2021-04-13 173146.png

      I would also like to outline this. You had a slow time when you got the star. You could have done something similar to my ghost [look at my inputs, on the bottom left. When I unpause, all four of those keys will be registered in my ghost. I will flip my bike, and have a faster time getting the star. Of course, do this closer to the star than me. I tried this out, and I missed the star, from being too far right.]

      Point #5:

      Screenshot 2021-04-13 173235.png

      For landings, I noticed you have a tough time keeping speed. Here is a key:
      Be sure to try and land mostly on your back wheel, but never too far on your back wheel where it would result in your death.

      Screenshot 2021-04-13 173314.png

      Another point, after you hold up and left, hold up. This allows you to get your wheels in a nice position to keep speed.

      Screenshot 2021-04-13 173347.png

      Now, you may notice an issue with only holding up: Why do I keep falling on my back and dying?
      To stop this, hold up and right. If you still die, try holding up and right earlier, rather than later, as this will (most of the time) save you.

      Screenshot 2021-04-13 173512.png

      Finally, at the end, your ghost could have saved some time by getting the star earlier. (I don't know if you would have saved much time, but it would have been some time save.) The poorly drawn red circle represents where your wheel could have been to get the star, but this works better when the star isn't in the ground, it works better when the star is higher off the ground.


      Closing Comments:
      Now, if you have questions, don't be afraid to ask! I know that this isn't nearly as in-depth of a critique as I could have provided.

      I have a really good suggestion for you Max, you should get Pie's input display, if you don't already have it. You can see it in some of my screenshots, I have the first version, as I like the look of it much more. You will be able to see what keys are pressed at every single moment, which is SUPER helpful.
      Other than that, hope this helps! :thumbsup:
       
      CF25, 2020v1, Nitrogeneric and 17 others like this.
    3. ShamatoZ

      ShamatoZ Forum Legend Team Balloon Official Author

      MadMaxx21 ^^ (I'm not reposting your name, I've had to rewrite that once because I messed up, so be happy with this solution xD)
       
      CF25, 2020v1, a_drain and 5 others like this.
    4. Cerasium

      Cerasium Mod On The FRHD Speedrun.com Page Ghosting Legend Ghost Moderator Team Helicopter Best Ghoster Of 2024 Official Author

      Awarded Medals
      awe sum explanation
       
      SCrane, josephhd, a_drain and 4 others like this.
    5. YourAverageIndian

      YourAverageIndian Active Member Official Author

      yooooo this man on something. that crazy. great tips. i'll be sure to use them also. man, big essay. Awsome explaination btw
       
      Totoca12, josephhd, a_drain and 2 others like this.
    6. ShamatoZ

      ShamatoZ Forum Legend Team Balloon Official Author

      Also when are you bros gonna revive the FRHD Creators YouTube channel :thumbsdown:
      It could really help with ghosting tips from the best of the best! :thumbsup:
       
      CF25, 2020v1, Totoca12 and 5 others like this.
    7. MadMaxx21

      MadMaxx21 Well-Known Member Official Author

      wow, you have no idea how much this helps. thank you so much. when i have more free time, i'll read this again in depth and lyk if i have any questions. i've never heard of pie's input display, but i'm deffo gonna check it out. thank you so very much for this epic explanation of my ghost, your time is much appreciated.
       
      josephhd, a_drain, Totoca12 and 5 others like this.
    8. ShamatoZ

      ShamatoZ Forum Legend Team Balloon Official Author

      Here is the way that I installed it, just so you don't run into trouble like I did when I first tried to do it:

      1. Install Tampermonkey onto your computer
      Just go to the Chrome Web Store, and search up "Tampermonkey", and add it to chrome.
      Screenshot 2021-04-13 193244.png

      2. Follow this:

      Screenshot 2021-04-13 193554.png

      Click Tampermonkey ^^^

      Screenshot 2021-04-13 193615.png

      Click "Create a new script" ^^^

      Screenshot 2021-04-13 193657.png

      When you get here, select everything like I did, and delete it. Then, paste this into the blank space:

      Code:
      // ==UserScript==
      // @name         FRHD Input Display
      // @namespace    http://freeriderhd.com/
      // @version      0.9
      // @description  try to take over the world!
      // @author       Pie42
      // @include      *freeriderhd.com*
      // @grant        none
      // ==/UserScript==
      
      /*
        Short explanation: The way this works is that the main drawing function first hooks itself up to the game's main update function,
        because that's the best way to make it draw correctly. After that, every time the game ticks, the input display is drawn onto the game canvas.
        To get button highlighting, each drawing function checks the current player's '_gamepad.downButtons' to see if the current button is being held down
        (whether it's by the current player or the current replay). If the current button is being held down, the box is filled in.
      
        This input display will automatically highlight the current player, meaning that if you're watching a ghost, the display will show the ghost's
        inputs, and if you're playing, it will show your inputs. I decided not to include 'enter' and 'backspace' because it's pretty easy to tell if those
        are being held. Enjoy!
      
        Note that you can customize this to your heart's content. I have indicated the main customization things, but feel free to change whatever(just don't
        blame me if it breaks).
      */
      
      function drawDisplay() {
          var container = document.getElementById('game-container'),
              children = (container == void 0) ? undefined : container.children,
              canvas = (children == void 0) ? undefined : children[1];
          if (canvas != void 0){
              var ctx = canvas.getContext('2d');
              var cPlayer = GameManager.game.currentScene.playerManager._players[GameManager.game.currentScene.camera.focusIndex],
                  cGamepad = cPlayer._gamepad,
                  h = canvas.height,
                  w = canvas.width;
      
              //main customization variables
              //to customize a symbol, find the comment stating that key(keys are listed left to right and top to bottom), and then change the drawing done there.
              var bsize = h / 10,     //size of the boxes
                  dist = h / 15,      //distance from the edge of the screen
                  lcolor = '#000000', //color of the lines
                  fcolor = '#1B5264', //color that currently pressed inputs are filled in
                  lwidth = 2.5;       //width of the lines
      
              //sy and sx can also be customized. right now, they are set to put the input display in the lower left corner, but to move it to the top, you can use:
              //var sy = dist,
              //instead of the line that is currently there.
              var sy = (h - dist) - (2 * bsize),
      
                  //to move the display to the right, you can use
                  //sx = (w - dist) - (3 * bsize),
                  //instead of the line that is currently there.
                  sx = dist,
                  tempx, tempy;
              ctx.strokeStyle = lcolor;
              ctx.fillStyle = fcolor;
              ctx.lineWidth = lwidth;
      
              //up arrow key
              tempx = sx + bsize;
              tempy = sy;
              ctx.beginPath();
              ctx.lineTo(tempx, tempy);
              ctx.lineTo(tempx, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy);
              ctx.lineTo(tempx, tempy);
              cGamepad.downButtons.up && !cPlayer._crashed && ctx.fill();
              ctx.stroke();
      
              //change this to change the way the symbol is drawn
              ctx.beginPath();
              ctx.lineTo(tempx + (1 * bsize / 6), tempy + (2 * bsize / 3));
              ctx.lineTo(tempx + (1 * bsize / 2), tempy + (1 * bsize / 3));
              ctx.lineTo(tempx + (5 * bsize / 6), tempy + (2 * bsize / 3));
              ctx.stroke();
      
      
              //z key
              tempx = sx + (2 * bsize);
              tempy = sy;
              ctx.beginPath();
              ctx.lineTo(tempx, tempy);
              ctx.lineTo(tempx, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy);
              ctx.lineTo(tempx, tempy);
              cGamepad.downButtons.z && !cPlayer._crashed && ctx.fill();
              ctx.stroke();
      
              //change this to change the way the symbol is drawn
              ctx.beginPath();
              ctx.lineTo(tempx + (bsize / 6), tempy + (bsize / 6));
              ctx.lineTo(tempx + (5 * bsize / 6), tempy + (bsize / 6));
              ctx.lineTo(tempx + (bsize / 6), tempy + (5 * bsize / 6));
              ctx.lineTo(tempx + (5 * bsize / 6), tempy + (5 * bsize / 6));
              ctx.stroke();
      
      
              //left key
              tempx = sx;
              tempy = sy + bsize;
              ctx.beginPath();
              ctx.lineTo(tempx, tempy);
              ctx.lineTo(tempx, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy);
              ctx.lineTo(tempx, tempy);
              cGamepad.downButtons.left && !cPlayer._crashed && ctx.fill();
              ctx.stroke();
      
              //change this to change the way the symbol is drawn
              ctx.beginPath();
              ctx.lineTo(tempx + (2 * bsize / 3), tempy + (1 * bsize / 6));
              ctx.lineTo(tempx + (1 * bsize / 3), tempy + (1 * bsize / 2));
              ctx.lineTo(tempx + (2 * bsize / 3), tempy + (5 * bsize / 6));
              ctx.stroke();
      
      
              //down key
              tempx = sx + bsize;
              tempy = sy + bsize;
              ctx.beginPath();
              ctx.lineTo(tempx, tempy);
              ctx.lineTo(tempx, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy);
              ctx.lineTo(tempx, tempy);
              cGamepad.downButtons.down && !cPlayer._crashed && ctx.fill();
              ctx.stroke();
      
              //change this to change the way the symbol is drawn
              ctx.beginPath();
              ctx.lineTo(tempx + (1 * bsize / 6), tempy + (1 * bsize / 3));
              ctx.lineTo(tempx + (1 * bsize / 2), tempy + (2 * bsize / 3));
              ctx.lineTo(tempx + (5 * bsize / 6), tempy + (1 * bsize / 3));
              ctx.stroke();
      
      
              //right key
              tempx = sx + (2 * bsize);
              tempy = sy + bsize;
              ctx.beginPath();
              ctx.lineTo(tempx, tempy);
              ctx.lineTo(tempx, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy + bsize);
              ctx.lineTo(tempx + bsize, tempy);
              ctx.lineTo(tempx, tempy);
              cGamepad.downButtons.right && !cPlayer._crashed && ctx.fill();
              ctx.stroke();
      
              //change this to change the way the symbol is drawn
              ctx.beginPath();
              ctx.lineTo(tempx + (1 * bsize / 3), tempy + (1 * bsize / 6));
              ctx.lineTo(tempx + (2 * bsize / 3), tempy + (1 * bsize / 2));
              ctx.lineTo(tempx + (1 * bsize / 3), tempy + (5 * bsize / 6));
              ctx.stroke();
          }
      }
      var track = 0;
      window.setInterval(function () {
          if ($("#track-data").data("t_id") != track) {
              track = $("#track-data").data("t_id");
              function rInterval() {
                  window.clearInterval(v)
              }
              var v = window.setInterval(function() {
                  if (GameManager != undefined && GameManager.game != undefined) {
                      rInterval();
                      createjs.Ticker.addEventListener("tick", drawDisplay);
                  }
              }, 250)
          }
      }, 500)
      3. Save code:

      Screenshot 2021-04-13 194031.png

      Make sure to save it! ^^
      Afterwards, you click "Installed Userscripts", and this should pop up:

      Screenshot 2021-04-13 194045.png

      Keep in mind, the other userscripts will not show up for you if you do this, only the input display. I have installed other userscripts along with it. I could just give you the code if you want them as well.

      [THESE ARE CLEARLY NOT MY USERSCRIPTS, I AM NOT TAKING CREDIT FOR THESE IN ANY WAY!]

      You need to refresh your page for it to work!

      just trying to help you out, before you run into any trouble, like I did :thumbsdown: and ask Pie42 if you have any questions, since he is the one who made it :thumbsup:
       
      Last edited: Apr 14, 2021
      CF25, 2020v1, Chaos-Fallen and 15 others like this.
    9. MadMaxx21

      MadMaxx21 Well-Known Member Official Author

      well i see an immediate problem, haha
      TamperMonkey is blocked by my school administrator on the Chrome Web Store. :cry:
       
      Blank_Guy, Totoca12, a_drain and 2 others like this.
    10. YourAverageIndian

      YourAverageIndian Active Member Official Author

    11. YourAverageIndian

      YourAverageIndian Active Member Official Author

      tic's start was even better tho
       
      Blank_Guy, a_drain and MadMaxx21 like this.
    12. Cerasium

      Cerasium Mod On The FRHD Speedrun.com Page Ghosting Legend Ghost Moderator Team Helicopter Best Ghoster Of 2024 Official Author

      Awarded Medals
    13. Cerasium

      Cerasium Mod On The FRHD Speedrun.com Page Ghosting Legend Ghost Moderator Team Helicopter Best Ghoster Of 2024 Official Author

      Awarded Medals
    14. TheMemeBiker

      TheMemeBiker Well-Known Member Official Author

      Awarded Medals
    15. YourAverageIndian

      YourAverageIndian Active Member Official Author

      a_drain, MadMaxx21 and Cerasium like this.
    16. Cerulean

      Cerulean Legendary Cheater Ghosting Legend Official Author

      Awarded Medals
    17. Madara

      Madara eesoncanaocee Ghosting Legend Official Author

      Awarded Medals
    18. YourKidding

      YourKidding Well-Known Member Team Truck Official Author

      a_drain and MadMaxx21 like this.
    19. Terilune

      Terilune Active Member Official Author

      MadMaxx21 and Madara like this.
    20. Pie42

      Pie42 Well-Known Member Team Blob Official Author

      Awarded Medals
      Hey, this isn't a suggestion, but more of a question. Recently, I managed to get this ghost on one of white_panther's tracks. It's not super fast or anything, but what you may notice is that it uses the strange behavior of a vehicle glitch when using polygon's mod. Without polygon's mod, when you perform this glitch, you become unable to collect any powerups, making it significantly harder to complete tracks. Should ghosts like this one be allowed in the featured ghost thread, or should we stick to things that work fully in an unmodified version of the game? Arigathankyou gozaimuch~
      Edit: I feel like it's also worth noting that if you die while in this glitched state, you become unable to move, adding challenge.
       
      MadMaxx21 likes this.

    Share This Page