• Godot Help
  • How would I add a cheat code to a title screen

Check for input events (key presses, clicks in certain locations, etc.), and activate the cheat if the correct inputs are received.

Reference:
https://docs.godotengine.org/en/4.2/tutorials/inputs/input_examples.html

If the cheat code is, for example, "iamtheone", you could start a 15-second Timer if an "i" is entered, and then accumulate additional key presses in a buffer until the buffer contains "iamtheone" (activate the cheat) or the Timer finishes (clear the buffer).

Another approach: When a specific sequence of locations are clicked within a time interval, pop up a LineEdit for entry of the cheat code.

    DaveTheCoder It doesn't work

    extends Node
    
    var cheatCodes = {
    	"gm_up gm_up gm_down gm_down gm_up gm_up gm_up gm_up": "konami"
    }
    
    func _ready():
    	if Global.debug ==0:
    		if  Input.is_action_just_pressed("gm_up") and Input.is_action_just_pressed("gm_up") and  Input.is_action_just_pressed("gm_down") and  Input.is_action_just_pressed("gm_down") and Input.is_action_just_pressed("gm_up") and Input.is_action_just_pressed("gm_up") and Input.is_action_just_pressed("gm_up") and Input.is_action_just_pressed("gm_up"):
    			Global.debug =1
    			$"../Node2D/AudioStreamPlayer2".play()

      I think that only one Input.is_action_just_pressed() can be true.

      What exactly is your cheat code? Pressing multiple keys in a sequence?

        No I wanted it to check if the inputs are pressed one by one

        xyz Okay but in the code there's this line

        var cheatCodes = {
        "gm_up gm_up gm_down gm_down gm_up gm_up gm_up gm_up": "konami"
        }

          Raptorkillz Okay but in the code there's this line

          Yeah, but there are other lines as well 🙂

          Here's an automatic class that listens to action sequences, and when it finds something, it notifies about that via a signal:

          class_name CheatCodeListener extends Node
          signal code_entered(name)
          var s: String
          var cheats  = {"ui_up ui_down ui_up" : "some cheat", "ui_left ui_right" : "some other cheat"}
          
          func _input(e):
          	for a in InputMap.get_actions().filter(func(aa): return e.is_action_pressed(aa)).slice(0,1):
          		s += a if not s else " " + a
          		for k in cheats.keys(): if s.contains(k): code_entered.emit(cheats[k]); s = ""

          Now the only thing left to do is to make a game to cheat at. Easy peasy 😃

            Raptorkillz Okay but how would I make it play a sound

            print(String.chr(0x07)). But you'll need to start a console version of Godot for this to work.

              Raptorkillz Well then you play it the same way you play the music. You already have that in the code you posted in one of your questions.

                Konami cheat in a SEGA game? Is this allowed? 😄

                • xyz replied to this.

                  trizZzle Konami cheat in a SEGA game? Is this allowed? 😄

                  I don't think so. But this thread already entered the psychoactive zone, and while passing the threshold it may have created an alternate reality in which this is not only allowed but is in fact - mandatory.

                  xyz Okay but now when I press a button is pressed it plays the sound but I want it to play the sound when the cheat is successfully entered