So I recently got back into royals and I keep letting my HS go down without realising, I created a timer using python (or rather ChatGPT did) to basically countdown from 120 seconds (HS buff time) and when it hits zero it beeps an alarm reminding me to recast. In my mind the timer is no different to using a timer in google and just alt tabbing and resetting it every 120 seconds however this is tedious and not very effecient. I know this is very noob of me to let my buff times fall off and some might say just be more vigilant but I like watching stuff whilst training and sometimes it just slips my mind, Just want to know if this is allowed. I have not used this timer in-game yet (so pls no ban if it's not allowed :3) and am awaiting confirmation that it complies with the rules. I hope this explanation reassures you of its safety and compliance. Thank you for your understanding and any guidance you can provide! Here's why I think it's safe: No Game Interaction: The python script doesn't modify the game’s memory, inject code into the game client, or automate gameplay actions. It only runs in terminal and monitors my keyboard input (listening for the R key to reset the timer). No Automation: I'm manually pressing R to reset the timer. The script doesn’t perform any automatic actions within the game; it’s just a timer with an alert. Legitimate Use Case: Setting up external timers or reminders is a common practice among gamers, especially for timing buffs, cooldowns, or other game-related activities. Acts as a Simple Timer:The script functions as a basic countdown timer with an audible alert. This is similar to using a stopwatch, a kitchen timer, or even your smartphone’s alarm to track cooldowns or buffs. No Impact on Other Players: The timer doesn’t give me an unfair advantage over other players. It’s a personal tool designed to help me manage my own gameplay experience without affecting anyone else. User Control:The script requires direct user input to function. It’s completely under the user’s control and only does something when the user specifically interacts with it by pressing the R key. Thanks in advance for any answers <3 The python code (if allowed and not against ToS other users feel free to use): import time import threading import keyboard import sys import os def beep_alarm(stop_event): """Function to beep an alarm sound until the stop_event is set.""" while not stop_event.is_set(): print('\a') # Beep sound for all platforms time.sleep(1) def clear_console(): """Function to clear the console.""" os.system('cls' if os.name == 'nt' else 'clear') def start_timer(): """Function to start the Holy Symbol buff recast timer.""" timer_duration = 110 # 120 seconds time_left = timer_duration alarm_thread = None stop_event = threading.Event() # Event to signal stopping the alarm def reset_timer(_): nonlocal time_left, alarm_thread, stop_event clear_console() # Clear the console before resetting the timer time_left = timer_duration print(f"Timer reset to {timer_duration} seconds.") stop_event.set() # Signal the alarm to stop alarm_thread = None # Allow new alarm thread to be created # Set up the key press handler keyboard.on_press_key('r', reset_timer) print("Holy Symbol buff recast timer started. Press 'R' to reset the timer.") while True: time.sleep(1) time_left -= 1 if time_left == 0: print("\nTime's up! Recast Holy Symbol!") if alarm_thread is None: stop_event.clear() # Reset the stop event alarm_thread = threading.Thread(target=beep_alarm, args=(stop_event,), daemon=True) alarm_thread.start() sys.stdout.write(f"\rTime left: {time_left} seconds ") sys.stdout.flush() if __name__ == "__main__": try: start_timer() except KeyboardInterrupt: print("\nTimer stopped.")
Not exactly the same but I once asked a timer for skills on cooldown and that's what they said. Hopefully yours gets approved since you even showed them out to do it lol, I wouldn't have known how to code.
Ahh nice thanks, yeah hopefully they can approve this as it's not really CD tracking, more just a way to keep my buff up at all times. Also I'm not great at coding either needed ChatGPT to help me for the most part xDD But if it is allowed by looking at the comments in the code other users could rebind the reset key and time of countdown for their own use cases: timer_duration = 110 # 120 seconds - Countdown time keyboard.on_press_key('r', reset_timer) - Key that resets the timer ('r') Again i see this as being no different to going into google and having a timer open in a tab it's just like 1 less step of having to alt tab and resetting the timer every 120 seconds, just kind of streamlines that proccess
That was asking for an in-game feature. This is asking if an external tool is allowed, which is a very different discussion
As i've been given the green light from admins to use the tool, to help other members of the community I've compiled the timer into an exe if anyone else thinks they'll find the timer useful, timer can be ran by an executable (https://github.com/Fontodbz/Maple-Buff-Timer/releases/tag/v1.0) or you can build and run the programme from source (if you know how to) Full project is at https://github.com/Fontodbz/Maple-Buff-Timer If you know how to code and would wish to contribute maybe by making a GUI or something that would be cool as I know a lot of people will be sceptical about code running in cmd. All the code is open source and can be viewed here: https://github.com/Fontodbz/Maple-Buff-Timer/blob/main/maple_buff_timer.py Thanks once again Staff for taking the time to give the green light <3