Looking for something similar to this

Hello everyone,
im currently building a eco Free-roam/Drift server called CFXDrift.
I’ve managed to get the server how i want it running in a basic view point, and now im adding scripts that have controls like N to open this and ect ect

to help new players i’m looking for somthing that displays the controls on screen automatically on joining and can be toggled to either be there or not.
i would also like it to have support for noclipping as this is somthing i would like the players to freely be able to do.

thanks in advance - Flip

heres some info you might want:
framework: ESX
have i looked elsewhere: yes, searched on yt, google and the fourms for anything like Control NUI, Controls UI, ect ect

I believe this is a part of VMenu but I could be wrong

im not really wanting to install vMenu, as otherwise it becomes like every other server out there :frowning: but thanks for reply

BUMP
need something
not sure if this is anything but i downloaded the Vmenu script and dug round the dll files and found this

        headerTexture = this.HeaderTexture;
        string key = headerTexture.Key;
        headerTexture = this.HeaderTexture;
        string str = headerTexture.Value;
        double num2 = (double) x;
        double num3 = (double) y;
        double num4 = (double) width;
        double num5 = (double) height;
        API.DrawSprite(key, str, (float) num2, (float) num3, (float) num4, (float) num5, 0.0f, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue);
      }
      else
        API.DrawSprite("commonmenu", "interaction_bgd", x, y, width, height, 0.0f, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue);
      API.ResetScriptGfxAlign();
      int font = 1;
      float size = 1215f / MenuController.ScreenHeight;
      API.SetScriptGfxAlign(76, 84);
      API.SetScriptGfxAlignParams(0.0f, 0.0f, 0.0f, 0.0f);
      API.BeginTextCommandDisplayText("STRING");
      API.SetTextFont(font);
      API.SetTextColour((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue);
      API.SetTextScale(size, size);
      API.SetTextJustification(0);
      API.AddTextComponentSubstringPlayerName(this.MenuTitle);
      if (this.LeftAligned)
        API.EndTextCommandDisplayText(Menu.headerSize.Key / 2f / MenuController.ScreenWidth, y - API.GetTextScaleHeight(size, font) / 2f);
      else
        API.EndTextCommandDisplayText(API.GetSafeZoneSize() - Menu.headerSize.Key / 2f / MenuController.ScreenWidth, y - API.GetTextScaleHeight(size, font) / 2f);
      API.ResetScriptGfxAlign();
      this.MenuItemsYOffset = Menu.headerSize.Value;
    }

not sure if this means anything to anyone but i thought that as its adding text with the MenuController function then it might be somthing that someone can use to help me avoid using Vmenu

Adding onto my new reply, forgot to mention, NUI creation requires not only lua but javascript, css, and html I believe.