[CLOSED] Button Mash Mini-Game refuses to work and idk how to fix it

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

[CLOSED] Button Mash Mini-Game refuses to work and idk how to fix it

#1 Post by Kyren »

EDIT: I decided to go away from this and do something else.

I took some insparation from Friday Night Funkin but I want it to be a button-mash so it is more friendly for phone users. Here is my code.

I love some help with a button mash-like mini-game!

Here is a custom_screen's commands

Code: Select all

init python:
    def player_pressed():
        # Perform actions when the button is pressed
        # For example, you can increment a variable or trigger an event
        pass  # Replace this with your actual action

screen button_mashing_game():
    vbox:
        # Display the image button for the player to press
        imagebutton:
            idle "button-idle.png"  # Image for the button's idle state
            hover "button-idle.png"  # Image for the button when hovered (same as idle)
            selected "button-lit.png"  # Image for the button's pressed state
            action Function(player_pressed)  # Action when the button is pressed
        text "Opponent's Progress:"
        bar value game.opponent_progress range (0, 100)
        text "Your Progress:"
        bar value game.player_progress range (0, 100)

Here is the Mini-Game itself:

Code: Select all

 
# Define the player_pressed function
init python:
    def player_pressed():
        # Increase player progress when the button is pressed
        game.player_progress += 10  # Adjust the increment as desired
        # Opponent's turn
        opponent_turn()

# Define opponent's turn logic
init python:
    def opponent_turn():
        # Determine opponent's progress based on difficulty level
        opponent_progress_increment = 5 + game.difficulty * 2  # Adjust difficulty impact as desired
        game.opponent_progress += opponent_progress_increment

# Define the start_mini_game label
label start_mini_game:
    # Reset progress variables
    $ game['player_progress'] = 0
    $ game['opponent_progress'] = 0

        # Display "Ready?" image
    show ready
    pause 1.5  # Adjust the pause duration as needed

    # Display "Set..." image
    show set
    pause 1.5  # Adjust the pause duration as needed

    # Display "GO!" image
    show go
    pause 1.5  # Adjust the pause duration as needed

    # Show the mini-game screen
    show screen button_mashing_game

    # Loop until either player wins or exits the mini-game

    label game_loop:
        if game['player_progress'] >= 100:
        # Player wins the mini-game
            "You win!"
            pause 1 # Pause for readability
            jump station2
        elif game['opponent_progress'] >= 100:
        # Opponent wins the mini-game
            "You lose!"
            pause 1  # Pause for readability
            jump game_over

    # Hide the mini-game screen
    hide screen button_mashing_game
The issue I keep now bumping into is that the opponent is not there.

EDIT: The objective of this code is to symbolize overcoming fear. When you lose, the screen darkens, creating a vignette effect, while winning makes the screen clear again. At the top, there's a progress bar that shifts to the left if you lose and to the right if you win. In the middle, there's a button to press as fast you can!
Last edited by Kyren on Mon Mar 11, 2024 9:49 pm, edited 7 times in total.

jeffster
Veteran
Posts: 495
Joined: Wed Feb 03, 2021 9:55 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#2 Post by jeffster »

Hi Kyren, I don't know about button mash but there is [ code ]...[ /code ] tag (and </> button) that allows to show your code properly formatted, with indents. You can edit your post and with the formatted code it would be easier to read the script and help you. :-)
If the problem is solved, please edit the original post and add [SOLVED] to the title. 8)

Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#3 Post by Kyren »

jeffster wrote: Fri Mar 08, 2024 7:30 am Hi Kyren, I don't know about button mash but there is [ code ]...[ /code ] tag (and </> button) that allows to show your code properly formatted, with indents. You can edit your post and with the formatted code it would be easier to read the script and help you. :-)
Aaah, thanks! I just updated it with that! Thank you as I didn't see it and assumed the [ c ]...[ /c ] was what it was!

Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#4 Post by Kyren »

Updated the page with code and added a small clarification!

jeffster
Veteran
Posts: 495
Joined: Wed Feb 03, 2021 9:55 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#5 Post by jeffster »

It seems that opponent_turn() is called from inside of player_pressed().

Meaning, both you and opponent "press" when and only when you press.

As the result, each press of yours gets just a single increase or decrease (depending on which value is larger, yours or opponent's).

I imagine the opponent turns should happen independently from players' presses, probably by timer.
https://renpy.org/doc/html/screens.html#timer
If the problem is solved, please edit the original post and add [SOLVED] to the title. 8)

Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#6 Post by Kyren »

jeffster wrote: Fri Mar 08, 2024 11:00 am It seems that opponent_turn() is called from inside of player_pressed().

Meaning, both you and opponent "press" when and only when you press.

As the result, each press of yours gets just a single increase or decrease (depending on which value is larger, yours or opponent's).

I imagine the opponent turns should happen independently from players' presses, probably by timer.
https://renpy.org/doc/html/screens.html#timer
It is somewhat you are fighting against the CPU's clicking so in a way they are "Pressing" a button while your aim is press faster than them.
Time based might be a bit bad as not everyone can react fast enough as everyone can press a button.

jeffster
Veteran
Posts: 495
Joined: Wed Feb 03, 2021 9:55 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#7 Post by jeffster »

Kyren wrote: Fri Mar 08, 2024 1:31 pm It is somewhat you are fighting against the CPU's clicking so in a way they are "Pressing" a button while your aim is press faster than them.
Time based might be a bit bad as not everyone can react fast enough as everyone can press a button.
If it's not time based, then it's what based?
I understand that you can't press faster than them, if every your click is their click at the same time. :shock:
Anyways, good luck with your game.
If the problem is solved, please edit the original post and add [SOLVED] to the title. 8)

Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#8 Post by Kyren »

jeffster wrote: Fri Mar 08, 2024 2:29 pm
Kyren wrote: Fri Mar 08, 2024 1:31 pm It is somewhat you are fighting against the CPU's clicking so in a way they are "Pressing" a button while your aim is press faster than them.
Time based might be a bit bad as not everyone can react fast enough as everyone can press a button.
If it's not time based, then it's what based?
I understand that you can't press faster than them, if every your click is their click at the same time. :shock:
Anyways, good luck with your game.
It is a button mash but I am now trying to just make a bar that fills instead. You have to press it fast enough to make the bar fill and the bar will slowly go down to 0. Once at 0 it is game over and once at 100% or max you win.
Sorry if this is going all around all but thanks for trying to help!

Code: Select all

# Define a Python function to update the progress bar
python:
    def update_progress_bar(progress):
        renpy.call_screen("button_mashing_game")  # Call the screen to update the progress bar
        renpy.pause(0.01)  # Pause briefly to ensure screen updates
        renpy.get_screen("button_mashing_game").progress_fill.xsize = progress * 100  # Update the width of the fill image based on progress

screen button_mashing_game():
    modal True
    add "bg peach.png"  # Add your background image here
    add "stats_idle.png" xpos 100 ypos 100  # Add an empty progress bar image
    add "stats_hover.png" xpos 100 ypos 100 xanchor 0.0 yanchor 0.0 xsize 0 ysize 100 id "progress_fill"  # Add a fill image that will change size
    add "button_lit.png" xpos 300 ypos 300 focus_mask True action Function(mash_button)  # Add a button image that the player can press

Code: Select all

    label start_mashing:
        # Show the mini-game screen
        show screen button_mashing_game

        # Loop until either player wins or exits the mini-game
        while True:
            $ progress += progress_increment  # Increment the progress
            if progress >= max_progress:
            # If progress reaches max, break the loop
                return
                # Check if the game should end

        python:
            renpy.call_in_new_context("update_progress_bar", progress)

        # Pause for a short duration
        pause 0.1

            # Check win condition if knowledge >= 1
            if progress >= max_progress:
                # Player wins the mini-game
                hide screen button_mashing_game # Hide the mini-game screen
                "You win!"
                pause 1 # Pause for readability
                jump station2
            
            if progress <= 0:
                # Opponent wins the mini-game
                hide screen button_mashing_game
                "You lose!"
                pause 1  # Pause for readability
                jump game_over
 

As my error now is

Code: Select all

File "[FILENAME].rpy", line 13: 'focus_mask' is not a keyword argument or valid child for the add statement.
    add "button_lit.png" xpos 300 ypos 300 focus_mask True action Function(mash_button)  
                                                     ^

File "[GAMENAME].rpy", line 1476: Line is indented, but the preceding pause statement statement does not expect a block. Please check this line's indentation.
    if progress >= max_progress:
    ^

Ren'Py Version: Ren'Py 8.0.3.22090809

jeffster
Veteran
Posts: 495
Joined: Wed Feb 03, 2021 9:55 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#9 Post by jeffster »

Both the error messages are very clear:

1. "focus_mask" is buttons property. "add" is showing an image there, not a button. You can't have "focus_mask" in "add" statement.

2. Like it says, check indentation in that string. Likely you have 4 extra spaces or something.
If the problem is solved, please edit the original post and add [SOLVED] to the title. 8)

Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#10 Post by Kyren »

jeffster wrote: Fri Mar 08, 2024 3:30 pm Both the error messages are very clear:

1. "focus_mask" is buttons property. "add" is showing an image there, not a button. You can't have "focus_mask" in "add" statement.

2. Like it says, check indentation in that string. Likely you have 4 extra spaces or something.
My bad, I did fix it though now it says that-- I think at least. Then now it says that minigames.update_progress_bar(progress) is not a label or something. Though I am also getting help at discord so this might change by the time you see this!

Here is my code for GAME.rpy

Code: Select all

    label start_mashing:
        $ progress = 0
        call minigames.update_progress_bar(progress)
        # Show the mini-game screen
        show screen button_mashing_game

        # Loop until either player wins or exits the mini-game
        while progress < max_progress:
            $ progress += progress_increment  # Increment the progress
            #$ progress_fill.xsize = progress * 100
            call minigames.update_progress_bar(progress)
            # If progress reaches max, break the loop
            pause 0.1
                # Check if the game should end
                #pass

        python:
            renpy.call_in_new_context("update_progress_bar", progress)
        # Pause for a short duration
        pause 0.1

        if progress >= max_progress:
                # Player wins the mini-game
            hide screen button_mashing_game # Hide the mini-game screen
            "You win!"
            pause 1 # Pause for readability
            jump station2

        if progress <= 0:
                # Opponent wins the mini-game
            hide screen button_mashing_game
            "You lose!"
            pause 1  # Pause for readability
            jump game_over
Here is the code in my FILENAME.rpy

Code: Select all

# Define a Python function to update the progress bar
label update_progress_bar(progress):
    $ progress = 0
    python:
        def update_progress_bar(progress):
            renpy.call_screen("button_mashing_game")  # Call the screen to update the progress bar
            renpy.pause(0.01)  # Pause briefly to ensure screen updates
            renpy.get_screen("button_mashing_game").progress_fill.xsize = progress * 100

    # Call the function directly
python:
    update_progress_bar(progress)

init python:
    def MashButton():
        global progress
        progress -= progress_decrement
        # Ensure progress doesn't go below 0
        if progress < 0:
            progress = 0

screen button_mashing_game():
    modal True
    add "bg peach.png"  # Add your background image here
    add "stats_idle.png" xpos 100 ypos 100  # Add an empty progress bar image
    add "stats_hover.png" xpos 100 ypos 100 xanchor 0.0 yanchor 0.0 xsize 0 ysize 100 id "progress_fill"  # Add a fill image that will change size
    imagemap:
        ground "button_lit.png"  # Image to display
        hotspot (300, 300, 100, 100) clicked MashButton()  # Define the clickable area and action

Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#11 Post by Kyren »

Kyren wrote: Fri Mar 08, 2024 5:29 pm
jeffster wrote: Fri Mar 08, 2024 3:30 pm Both the error messages are very clear:

1. "focus_mask" is buttons property. "add" is showing an image there, not a button. You can't have "focus_mask" in "add" statement.

2. Like it says, check indentation in that string. Likely you have 4 extra spaces or something.
My bad, I did fix it though now it says that-- I think at least. Then now it says that minigames.update_progress_bar(progress) is not a label or something. Though I am also getting help at discord so this might change by the time you see this!

Here is my code for GAME.rpy

Code: Select all

    label start_mashing:
        $ progress = 0
        call minigames.update_progress_bar(progress)
        # Show the mini-game screen
        show screen button_mashing_game

        # Loop until either player wins or exits the mini-game
        while progress < max_progress:
            $ progress += progress_increment  # Increment the progress
            #$ progress_fill.xsize = progress * 100
            call minigames.update_progress_bar(progress)
            # If progress reaches max, break the loop
            pause 0.1
                # Check if the game should end
                #pass

        python:
            renpy.call_in_new_context("update_progress_bar", progress)
        # Pause for a short duration
        pause 0.1

        if progress >= max_progress:
                # Player wins the mini-game
            hide screen button_mashing_game # Hide the mini-game screen
            "You win!"
            pause 1 # Pause for readability
            jump station2

        if progress <= 0:
                # Opponent wins the mini-game
            hide screen button_mashing_game
            "You lose!"
            pause 1  # Pause for readability
            jump game_over
Here is the code in my FILENAME.rpy

Code: Select all

# Define a Python function to update the progress bar
label update_progress_bar(progress):
    $ progress = 0
    python:
        def update_progress_bar(progress):
            renpy.call_screen("button_mashing_game")  # Call the screen to update the progress bar
            renpy.pause(0.01)  # Pause briefly to ensure screen updates
            renpy.get_screen("button_mashing_game").progress_fill.xsize = progress * 100

    # Call the function directly
python:
    update_progress_bar(progress)

init python:
    def MashButton():
        global progress
        progress -= progress_decrement
        # Ensure progress doesn't go below 0
        if progress < 0:
            progress = 0

screen button_mashing_game():
    modal True
    add "bg peach.png"  # Add your background image here
    add "stats_idle.png" xpos 100 ypos 100  # Add an empty progress bar image
    add "stats_hover.png" xpos 100 ypos 100 xanchor 0.0 yanchor 0.0 xsize 0 ysize 100 id "progress_fill"  # Add a fill image that will change size
    imagemap:
        ground "button_lit.png"  # Image to display
        hotspot (300, 300, 100, 100) clicked MashButton()  # Define the clickable area and action
UPDATE
The bar works, it shows but you can't interact with it and the progress doesn't go up or down. It froze in a way.

Code: Select all

    label start_mashing:
        $ progress = 0
        $ update_progress_bar(progress)
        # Show the mini-game screen
        show screen button_mashing_game

        # Loop until either player wins or exits the mini-game
        while progress < max_progress:
            $ progress += progress_increment  # Increment the progress
            #$ progress_fill.xsize = progress * 100
            $ update_progress_bar(progress)
            # If progress reaches max, break the loop
            pause 0.1
                # Check if the game should end
                #pass

        python:
            renpy.call_in_new_context("update_progress_bar", progress)
        # Pause for a short duration
        pause 0.1

        if progress >= max_progress:
                # Player wins the mini-game
            hide screen button_mashing_game # Hide the mini-game screen
            "You win!"
            pause 1 # Pause for readability
            jump station2

        if progress <= 0:
                # Opponent wins the mini-game
            hide screen button_mashing_game
            "You lose!"
            pause 1  # Pause for readability
            jump game_over

Code: Select all

init python:
    def update_progress_bar(progress):
        renpy.call_screen("button_mashing_game")  # Call the screen to update the progress bar
        renpy.pause(0.01)  # Pause briefly to ensure screen updates
        renpy.get_screen("button_mashing_game").progress_fill.xsize = progress * 100

    # Call the function directly
python:
    update_progress_bar(progress)

init python:
    def MashButton():
        global progress
        progress -= progress_decrement
        # Ensure progress doesn't go below 0
        if progress < 0:
            progress = 0

screen button_mashing_game():
    modal True
    add "UI/stats_idle.png" xpos 100 ypos 100  # Add an empty progress bar image
    add "UI/stats_hover.png" xpos 100 ypos 100 xanchor 0.0 yanchor 0.0 xsize 0 ysize 100 id "progress_fill"  # Add a fill image that will change size
    imagemap:
        ground "UI/button_lit.png" xpos 100 ypos 100 # Image to display
        hotspot (300, 300, 100, 100) clicked MashButton()  # Define the clickable area and action

Kyren
Newbie
Posts: 12
Joined: Thu Mar 07, 2024 3:36 pm
Contact:

Re: Button Mash Mini-Game refuses to work and idk how to fix it

#12 Post by Kyren »

Kyren wrote: Fri Mar 08, 2024 5:59 pm
Kyren wrote: Fri Mar 08, 2024 5:29 pm
jeffster wrote: Fri Mar 08, 2024 3:30 pm Both the error messages are very clear:

1. "focus_mask" is buttons property. "add" is showing an image there, not a button. You can't have "focus_mask" in "add" statement.

2. Like it says, check indentation in that string. Likely you have 4 extra spaces or something.
My bad, I did fix it though now it says that-- I think at least. Then now it says that minigames.update_progress_bar(progress) is not a label or something. Though I am also getting help at discord so this might change by the time you see this!

Here is my code for GAME.rpy

Code: Select all

    label start_mashing:
        $ progress = 0
        call minigames.update_progress_bar(progress)
        # Show the mini-game screen
        show screen button_mashing_game

        # Loop until either player wins or exits the mini-game
        while progress < max_progress:
            $ progress += progress_increment  # Increment the progress
            #$ progress_fill.xsize = progress * 100
            call minigames.update_progress_bar(progress)
            # If progress reaches max, break the loop
            pause 0.1
                # Check if the game should end
                #pass

        python:
            renpy.call_in_new_context("update_progress_bar", progress)
        # Pause for a short duration
        pause 0.1

        if progress >= max_progress:
                # Player wins the mini-game
            hide screen button_mashing_game # Hide the mini-game screen
            "You win!"
            pause 1 # Pause for readability
            jump station2

        if progress <= 0:
                # Opponent wins the mini-game
            hide screen button_mashing_game
            "You lose!"
            pause 1  # Pause for readability
            jump game_over
Here is the code in my FILENAME.rpy

Code: Select all

# Define a Python function to update the progress bar
label update_progress_bar(progress):
    $ progress = 0
    python:
        def update_progress_bar(progress):
            renpy.call_screen("button_mashing_game")  # Call the screen to update the progress bar
            renpy.pause(0.01)  # Pause briefly to ensure screen updates
            renpy.get_screen("button_mashing_game").progress_fill.xsize = progress * 100

    # Call the function directly
python:
    update_progress_bar(progress)

init python:
    def MashButton():
        global progress
        progress -= progress_decrement
        # Ensure progress doesn't go below 0
        if progress < 0:
            progress = 0

screen button_mashing_game():
    modal True
    add "bg peach.png"  # Add your background image here
    add "stats_idle.png" xpos 100 ypos 100  # Add an empty progress bar image
    add "stats_hover.png" xpos 100 ypos 100 xanchor 0.0 yanchor 0.0 xsize 0 ysize 100 id "progress_fill"  # Add a fill image that will change size
    imagemap:
        ground "button_lit.png"  # Image to display
        hotspot (300, 300, 100, 100) clicked MashButton()  # Define the clickable area and action
UPDATE
The bar works, it shows but you can't interact with it and the progress doesn't go up or down. It froze in a way.

Code: Select all

    label start_mashing:
        $ progress = 0
        $ update_progress_bar(progress)
        # Show the mini-game screen
        show screen button_mashing_game

        # Loop until either player wins or exits the mini-game
        while progress < max_progress:
            $ progress += progress_increment  # Increment the progress
            #$ progress_fill.xsize = progress * 100
            $ update_progress_bar(progress)
            # If progress reaches max, break the loop
            pause 0.1
                # Check if the game should end
                #pass

        python:
            renpy.call_in_new_context("update_progress_bar", progress)
        # Pause for a short duration
        pause 0.1

        if progress >= max_progress:
                # Player wins the mini-game
            hide screen button_mashing_game # Hide the mini-game screen
            "You win!"
            pause 1 # Pause for readability
            jump station2

        if progress <= 0:
                # Opponent wins the mini-game
            hide screen button_mashing_game
            "You lose!"
            pause 1  # Pause for readability
            jump game_over

Code: Select all

init python:
    def update_progress_bar(progress):
        renpy.call_screen("button_mashing_game")  # Call the screen to update the progress bar
        renpy.pause(0.01)  # Pause briefly to ensure screen updates
        renpy.get_screen("button_mashing_game").progress_fill.xsize = progress * 100

    # Call the function directly
python:
    update_progress_bar(progress)

init python:
    def MashButton():
        global progress
        progress -= progress_decrement
        # Ensure progress doesn't go below 0
        if progress < 0:
            progress = 0

screen button_mashing_game():
    modal True
    add "UI/stats_idle.png" xpos 100 ypos 100  # Add an empty progress bar image
    add "UI/stats_hover.png" xpos 100 ypos 100 xanchor 0.0 yanchor 0.0 xsize 0 ysize 100 id "progress_fill"  # Add a fill image that will change size
    imagemap:
        ground "UI/button_lit.png" xpos 100 ypos 100 # Image to display
        hotspot (300, 300, 100, 100) clicked MashButton()  # Define the clickable area and action
LAST UPDATE FOR NOW!


Code 1

Code: Select all

default progress = 1
default progress_increment = 0.5  # Adjust the increment value as needed
default progress_decrement = 0.3  # Adjust the decrement value as needed
default max_progress = 10
default progress_bars_value = StaticValue(progress, max_progress)


    label start_mashing:
        $ progress = 1
        $ update_progress_bar(progress)
        $ progress_bars_value.value = progress
        # Show the mini-game screen
        show screen button_mashing_game

        # Loop until either player wins or exits the mini-game
        while progress < max_progress:
            $ progress += progress_increment  # Increment the progress
            #$ progress_fill.xsize = progress * 100
            $ update_progress_bar(progress)
            # If progress reaches max, break the loop
            pause 0.1
                # Check if the game should end
                #pass

        python:
            renpy.call_in_new_context("update_progress_bar", progress)
        # Pause for a short duration
        pause 0.1

        if progress >= max_progress:
                # Player wins the mini-game
            hide screen button_mashing_game # Hide the mini-game screen
            "You win!"
            pause 1 # Pause for readability
            jump station2

        if progress <= 0:
                # Opponent wins the mini-game
            hide screen button_mashing_game
            "You lose!"
            pause 1  # Pause for readability
            jump game_over
Code 2

Code: Select all

init python:
    def update_progress_bar(progress):
        renpy.call_screen("button_mashing_game")  # Call the screen to update the progress bar
        renpy.pause(0.01)  # Pause briefly to ensure screen updates
        #renpy.get_screen("button_mashing_game").progress_fill.xsize = progress * 100
        progress_bars_value.value = progress


init python:
    def MashButton():
        global progress
        progress = min(max_progress, progress + progress_increment) #progress = max(0, progress-progress_decrement)
        #update_progress_bar(progress)
        return

    # Call the function directly
python:
    update_progress_bar(progress)

screen button_mashing_game():
    modal True
    hbox:
        align (0.5, 0.5)
        bar value progress_bars_value range max_progress xsize 500 ysize 100 xpos 0 ypos -200
    imagemap:
        ground "UI/button_lit.png" xpos 680 ypos 400 # Image to display
        hotspot (300, 300, 100, 100) clicked MashButton()  # Define the clickable area and action

Post Reply

Who is online

Users browsing this forum: Google [Bot]