EverestAPI / EverestAPI/CelesteTAS-EverestInterop

Development Roadmap

Open
#90 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
85
Forks
30
PR merge metrics
No merged PRs in 30d

Description

# TODO

## CelesteTAS v3.48.0, Studio v3.11.1
- [ ] Fix crash on Windows when file is used while generating LineLinks
- [ ] Add pop-up warning when player loses berry through death
- [ ] Allow for easier parsing of ExportGameInfo format
- [ ] Limit freeze-frame skipping only to frame stepping

## The Future™
- [ ] Fix desyncs caused by "Mod Options" being (requires force-enabling RestoreSettings once) / additional entries being added to the pause menu
- [ ] Fill colliders with transparent color in the inside
* Similar to TAS Helper's current approach to lightning / spinners
* How should ColliderLists be handled? Overlap? Union?
* Would the sprites need to be precomputed to be reasonable?
- [ ] Refactor StunPause to always use AutoInput; Migrate simulate mode to AutoInput
- [ ] Allow negative SkinInput to shorten the time until the next cycle (also rename SkipInput?)
- [ ] Allow defining a Lua update hook, to update a banner with statistics (useful for challanges)
* Would probably require multiline EvalLua to be a good user experience
- [ ] Improve workflow with hazard / other cycles
- [ ] In-Studio Git client (Repo management, Line annotations)
- [ ] File annotations from CelesteTAS about warnings / errors
- [ ] Piano Roll editor for certain sub-sections or entire file
- [ ] Profiling of CelesteTAS / Studio with Tracy
- [ ] "Setup Wizzard" for new TAS files, to avoid having to enter the desired level.
- [ ] Improvement note helper, ready to post without the bot complaining (could integrate with Git/Ghost Mod)
- [ ] Statistic system, including usage time / RecordCounts, per file and total (maybe WakaTime integration, but local-only by default)
- [ ] Feedback system with occacional popup (What frequency should it be asked? What data should be collected / is even useful? Is using a Discord webhook legal according to data protection laws?)
- [ ] Add number pad support to Eto's GTK (and possibly WPF/macOS) backends
- [ ] Input recording like how other games are TASed (Would this help people transition to CelesteTAS easier? Would this potentially be harmful as inputs are more suboptimal?)
- [ ] `ChangeCampaign` command, required for using Prologue Cheat mode in other campaigns
- [ ] `ForceX` variants of commands usually blocked by `EnforceLegal` to indicate explicitly that they are required
- [ ] Add `AnalogMode,Exact` which has a similar goal like `AnalogMode,Precise` but a more reasonable implementation (with defineable min/max magnitude)
- [ ] Rework Featherline to be integrated directly into the game (could be combined with `AnalogMode,Exact`, in-game visualization, easier checkpoint definitions, etc)
- [ ] Seed Cracking utility (should be generalized, to allow for most scenarios. Maybe even go as far as stepping through the code to specify what value is expected at certain locations? Does it need to be limited to just `Calc.Random` or would it be applicable to more?)
- [ ] Fix weird renderstate after Studio update banner disappears (not reproducable, [seemingly related to the update banner?](https://discord.com/channels/403698615446536203/1257712832972193792/1396152854359572673))
- [ ] Fix clicks / mouse interactions being registered while window isn't focused
- [ ] Add custom timing and counting command, defined by a Target Query / Lua code for use with challanges. Would be a good replacement after removing state from the Info HUD. Potentially better alternative than the Lua update hook.
- [ ] Featherline in Studio produces different results than standalone app ([Reproduction (Private DM)](https://discord.com/channels/@me/1409900120761434143/1409920176312291428))
- [ ] The `performance` branch
- [ ] Rework entity watch to always use the bounding box (including visually highlighting it)
- [ ] Fix issues with Target Query `*` spread syntax and add to documentation
- [ ] Show pop-out editor for read files
- [ ] Report errors from SpeedrunTool as toast messages
- [ ] Gray-out outer menu entries while submenu is open

# Done

## CelesteTAS v3.47.1, Studio v3.11.0
- [x] Apply fuzzy-search to auto-completion
- [x] Fix EntityID-selection in target-queries
- [x] Fix font rendering on WPF in light mode
- [x] Support auto-creating desktop shortcut on Windows/Linux (required on Wayland/GNOME for icon support..)
- [x] Fix crashes when filling a query (e.g. `Invoke, Player.MoveH, *5`)
- [x] Allow changing language in TAS (in rare cases there is an optimal language)
- [x] Allow seeding of CrystallineHelper triggers
- [x] Fix Tomlet parsing of tables which contain "[]"
- [x] DebugRC parsing of `evallua` command
- [x] Ensure spawnpoint index is used when possible viable
- [x] SoCm debug accessiblity
- [x] Fix arbitrary shape lightning not showing hitboxes properly
- [x] Don't restore ExtVars changed by map triggers
- [x] Remove warning for useless `Repeat`s

## CelesteTAS v3.47.0, Studio v3.10.0
- [x] Fix deadlock when stepping back into freeze frames while trying to skip them
- [X] Improve Target Query documentation
- [x] Fix timers showing up in Info HUD when TimeRate is zero
- [x] Accurate Melvin sightline hitboxes
- [x] Fix `RealTime` command being unstable and not working properly with savestates
- [x] Fix `Play` command not working properly together with `Read` command ([Reproduction](https://discord.com/channels/403698615446536203/1257712832972193792/1404526015891374242))
- [x] Fix TAS not noticing savestate has been cleared manually
- [x] Fix dust bunnies in Oshiro cutscene being randolm ([Reproduction](https://discord.com/channels/403698615446536203/1257712832972193792/1401436032976818176))
- [x] Desync when changing options in TAS manually
- [x] Fix CelesteTAS writing file with OS file endings (see all `WriteAllLines`)
- [x] Fix AutoComplete menu being able to get "stale"
- [X] #126
- [X] #127
- [X] #123
- [x] Documentation on Wiki for `RequireDependency` and `ActivatedLobbyWarps`
- [X] #125
- [X] #122
- [x] Windows testing
- [x] Fix crash if entity has `null` scene
- [x] Fix quick edits not getting undone
- [x] Re-add support for using Tab-complete
- [x] Increase 3rd-party popup size (W = 600px)
- [x] Fix moon blocks in Stellar Odyssey not being clickable
- [x] ~~Fix crash with playback and `CloudZipperPath`s~~ Mod performs logic during `Render`, not CelesteTAS' fault
- [X] Support binding hotkeys which use `VirtualButton`
- [x] Fix not checking if window is focused for mouse actions
- [x] Hide KoseiHelper debug renderings with Simplified Graphics
- [x] Integrate BossesHelper's `set_boss_seed` into `SeedRandom`
- [x] Use quotes for generated `load` if nessecary
- [X] ~~Editing lines close to `100` causes infinite loop~~ Not reproducable
- [x] Fix not refreshing cached types after code reload
- [x] Fix TASRecorder's `start_recording` triggering a TAS start

## CelesteTAS v3.46.2, Studio v3.9.7
- [x] Fix hotkeys not being disabled in binding GUI
- [x] Fix room labels not being trimmed before being checked
- [x] Fix certain SkinModHelper+ skins not rendering correctly (Example: [EddieWoof Skin](https://gamebanana.com/mods/545838))
- [x] Fix not propagating values types after setting

## CelesteTAS v3.46.1, Studio v3.9.6

- [x] Fix `Set, Player.StateMachine.State, Player.StNormal` not working
- [x] Improve target-query workflow with collections
- [x] Fix `Invoke`-command auto-complete failing, due to accessing methods which require optional dependencies
- [x] Fix decimal count in menu not auto-updating after being changed
- [x] Disable breakpoints in `Read` commands
- [x] Fix playback speed with brekapoints
- [x] Fix RNG being seeded outside of TAS
- [x] Fix Aurora's Helper logging seeding

## CelesteTAS v3.46.0, Studio v3.9.5

- [x] Universal RNG seeding system
* [x] Vanilla (Debris, Prologue Bridge, Summit Launch, Hiccups)
* [x] Vortex Helper (related: #118)
* [x] Pandora's Box Tile Glitchers ([Case 1](https://discord.com/channels/403698615446536203/519281383164739594/1358548121537482926), [Case 2](https://discord.com/channels/403698615446536203/519281383164739594/1359639011471130906))
* [x] Leprachaun ([Case](https://discord.com/channels/403698615446536203/519281383164739594/1389172815793487944))
* [x] Spekio's Toolbox ([Case](https://discord.com/channels/403698615446536203/519281383164739594/1345725039898656779))
* [x] Aurora's Helper
* [x] Aura Helper

## CelesteTAS v3.45.2, Studio v3.9.4
- [x] Fix issues with Studio not properly recognizing other keyboard layouts (such as AZERTY)
- [x] Replace own EntityID tracking system with Everest's solution

## CelesteTAS v3.45.0, Studio v3.9.2
- [x] Fix crashes caused by SkinMod desync fixer
- [x] Fix default Custom Info Template not providing expected values
- [x] Fix `CustomSpinner@VivHelper` returning entities twice
- [x] Fix command separator not being replaced when inserting from menu
- [x] Fix not being able to undo past formatting fixup
- [x] Fix Studio auto-install not working properly on Linux
- [x] Fix desync caused by changing spinner sprites with Simplified Graphics
- [x] Fix duplicated entity results when using `@ModName` in target-query
- [x] Fix Info HUD showing base instance instead of value inside arrays
- [x] Validate room labels
- [x] Validate current level with `console load`
- [x] Add force-stop breakpoints (`***!`)
- [x] Add live-update support to the spinner color option
- [x] Fix Debug Console commands not supporting all separators, like TAS commands
- [x] Fix Studio crash on WPF related to accessing things from the wrong thread
- [x] Fix DashCD sometimes not showing, even tho it should
- [x] #117

## CelesteTAS v3.44.0, Studio v3.9.0
- [x] #109
- [x] #111
- [x] #112
- [X] #114
- [X] #115
- [X] Add `RealTime` timing command
- [x] Fix desyncs caused by SkinMods changing physics
- [x] Improve changelog workflow
- [X] Accurate hitboxes for Badeline laser
- [X] Accurate hitboxes for Arbitrary Shape Colliders
- [X] Restricted breakpoint editing experience in Studio
- [x] Allow accessing modded sessions / savedata with target-queries
- [x] Support Get/Set/Invoke from Lua
- [X] Provide auto-completions for target-query values to Set/Invoke commands
- [x] Add option to disable Auto-Pause
- [X] Better accessiblity tools
- [x] Sync-Checking system
- [X] Revert f7b86dc4a7c44dd0891ac7091ccfdab92006d7e0
- [x] Restore AnalogMode after Read command
- [X] Fix caret movement while selection is active #113

## CelesteTAS v3.43.0, Studio v3.8.0
- [x] #76
- [x] Nested/Unlimited Repeat commands
- [x] Toggleable (Rebindable?) frame operations
- [x] Restore Extended Variants after TAS ends
- [x] #99
- [x] Fix issues with `entity.Position.X` target queries

## CelesteTAS v3.42.0, Studio v3.7.0
- [x] #91
- [x] #98

## CelesteTAS v3.41.12, Studio v3.6.2
- [x] Fix caret disappearing after editing info template on WPF
- [x] Fix scroll bar size not being accounted for on WPF
- [x] Fix inserting snippets with a shortcut not moving the caret
- [x] Fix crash with last line being selected
- [x] Fix first label of a Read command counting as another room

## CelesteTAS v3.41.0 / Studio v3.2.0
- [x] Inputs are sent when they shouldn't (need to do remote-debugging with ella since I couldnt reproduce this locally)
- [x] Editor is sometimes only half the expected size
- [x] Resizing sometimes hangs
- [x] Replace old Studio only once download is finished
- [x] Show warning if StudioCom is desynced (cause the download might fail)
- [x] Allow manual downloads by checking the checksum of the Studio .zip (and keep it after installing to avoid reinstalls when just Celeste TAS changed)
- [x] Start and stop folding region if comment isn't empty
- [x] Fix in-Studio total frame count not accounting commands (Should probably pull from the game and then apply diffs instead of trying to calculate it locally? How did Studio v2 do this)
- [x] Turn auto-room-indexing into a tri-state for accounting Read files (maingame requires this)
- [x] Fix UI layout issues with the settings error dialog on WPF
- [x] Fix some UI elements needing a resize before having the correct size
- [x] Incrementally pull command data from CelesteTAS instead of duplicating it inside Studio
- [x] Some file content is missing when using foldings
- [x] Info HUD can fill entire editor (needs scrolling)
- [x] Hide username in title bar
- [x] Dont ask for discarding scratch file if it doesnt contain any non-neutral inputs
- [x] Ignore blank lines when toggling input comments
- [x] Open a text file explaining what happened with Studio v2 on first boot (probably only if `Celeste Studio.toml` exists since that indicates Studio was launched at least once)
- [x] Popout buton is disappearing? (Should probably become a tri-state in the preferences)
- [x] Custom failure message for `Assert` commands
- [x] Update Read/Play commands if auto-indexing changes labels
- [x] Implement "Integrate Read Files"
- [x] #85

## CelesteTAS v3.41.5, Studio v3.4.0
- [x] There is in-game lag for some people
- [x] Migrate rendering to SkiaSharp

Contributor guide

No contributing guide indexed for this repository

Research direction

This issue is a broad roadmap containing many unrelated unchecked bugs, features, refactors, and documentation tasks, with no files or tests named. Start by selecting one item and locating its relevant entry points in the CelesteTAS or Studio codebase. Before coding, define a focused scope and a clear completion check for that item.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.