Skip to content
OnatronGD edited this page Jun 21, 2025 · 9 revisions

Welcome to the wiki for this PuzzleScript fork!

About this fork

This fork is primarily meant for use in my PuzzleScript projects. Feel free to use it yourself, but for now it'll be tailored to my needs and I may make breaking changes.


Features added:

  • key_repeat_interval_start: Can be set in a project's prelude. If set, this will override key_repeat_interval for the first input in a set of repeated presses sent to the game. (I plan to expand on this feature eventually, allowing for things like slowly making presses sent to the game speed up as you hold a button or making the key repeat interval change again after, say, 10 repeated presses are sent to the game. No promises, though!)

Some features I might add in the future:

  • Easy way to briefly display a sprite/animation without adding an undo event or preventing input during the time it's visible (e.g. for visual feedback on failure to move) - maybe by using ~> instead of -> (or a keyword after the rule) for rules that should be automatically reverted after some time?
    • + an accompanying prelude option ("feedback_sprite_interval"?) that determines how long these feedback sprites will be displayed for
    • Note: The again keyword technically works for adding feedback sprites, but I have some issues with this:
      • The player can't interrupt the animation - the full thing will always play before further input is allowed.
      • For move fail animations done with this, the player can hold a movement key to repeatedly play the animation, but I want it to interrupt player input. (This could be fixed with a different feature, though, like a keyword that makes a rule interrupt player input when it's applied)
      • I might not want the time a feedback sprite is displayed to depend on again_interval.
  • A way to display sprites from the OBJECTS section of your project in text (e.g. in a message)
    • Would probably use something similar to rule syntax (object names in square brackets, "|" character indicates that the next objects should be placed on the next 'tile')
    • https://github.com/increpare/PuzzleScript/issues/523 <- came up with idea before seeing this, but part of it is basically what I'm talking about. (I probably wouldn't want to limit it to just messages, though - e.g. should also allow embedding sprites in title and author fields.)
  • Expanding on the functionality of key_repeat_interval_start (as mentioned before)
  • Settings menu
    • Possible settings:
      • Mobile control style - maybe separate settings for movement controls (swipe, joystick, d-pad) and other non-mute-button controls (toggleable menu, individual buttons, maybe gestures of some sort)
      • Control rebinding
      • Ask for confirmation before going back to menu? (something like "Are you sure you want to exit? Progress since the last level/checkpoint will be lost. [Yes/No]")
      • Undo a restart? [Yes/No]
    • Some way to add live previews of what effect a setting will have (e.g. What holding a movement key will do given the current settings)
    • nosettings prelude option to disable settings menu
  • A settings section for projects that lets you add settings to the settings menu and reference them in rules
  • Make the controls listed on the title screen change depending on input method (keyboard vs. controller) and whether or not you're on mobile
    • If I implement control rebinding, that should also affect the displayed controls

Clone this wiki locally