{"id":14961564,"url":"https://github.com/pyxus/fray","last_synced_at":"2025-04-07T19:14:41.893Z","repository":{"id":38040147,"uuid":"421283456","full_name":"Pyxus/fray","owner":"Pyxus","description":"Fray – Godot Combat Framework","archived":false,"fork":false,"pushed_at":"2024-01-30T00:53:39.000Z","size":22880,"stargazers_count":275,"open_issues_count":10,"forks_count":13,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-07T19:14:37.475Z","etag":null,"topics":["fighting-game-engine","game-development","gdscript","godot","godot-addon","godot-combat","godot-fighting","godot-plugin","godotengine"],"latest_commit_sha":null,"homepage":"https://fray.pyxus.dev","language":"GDScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pyxus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-26T04:48:19.000Z","updated_at":"2025-03-29T09:03:41.000Z","dependencies_parsed_at":"2024-09-24T13:43:16.019Z","dependency_job_id":"a0146185-ae7c-48ad-9a91-3b87a1d1fcba","html_url":"https://github.com/Pyxus/fray","commit_stats":{"total_commits":723,"total_committers":4,"mean_commits":180.75,"dds":"0.43706777316735823","last_synced_commit":"ab186b335f1fc42837092d16971dca8f4e580b18"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pyxus%2Ffray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pyxus%2Ffray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pyxus%2Ffray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pyxus%2Ffray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pyxus","download_url":"https://codeload.github.com/Pyxus/fray/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713258,"owners_count":20983683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fighting-game-engine","game-development","gdscript","godot","godot-addon","godot-combat","godot-fighting","godot-plugin","godotengine"],"created_at":"2024-09-24T13:25:42.513Z","updated_at":"2025-04-07T19:14:41.845Z","avatar_url":"https://github.com/Pyxus.png","language":"GDScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fray\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"assets/images/fray_banner.gif\" alt=\"Fray Logo\"\u003e\n\u003c/p\u003e\n\n![Fray status](https://img.shields.io/badge/status-alpha-red) ![Godot version](https://img.shields.io/badge/godot-v4.2+-blue) ![License](https://img.shields.io/badge/license-MIT-informational)\n\n## 📖 About\n\nFray is a modular Godot 4 addon designed to aid in the development of action-oriented games. It offers solutions for combatant state management, complex input detection, input buffering, and hitbox organization. If your project requires any of these functionalities you may benefit from using Fray.\n\n## ⚠️ IMPORTANT\n\n**Fray is currently in an alpha state.**\n\nWhat does this mean?\n\n- It has not been tested rigorously enough for me to be comfortable recommending it for use in a serious project.\n\n- The documentation is incomplete and there is a lack of good examples.\n\n- Lastly, it is still susceptible to refactors, meaning the API is subject to change.\n\nThat being said, a significant portion of Fray is functional, with any remaining bugs likely being simple oversights rather than major design flaws. If these issues do not concern you, and/or you are interested in testing the framework, please feel free to explore!\n\n\n\n## ✨ Core Features\n\n### Resource-Based Hierarchical State Machine\n\n- Build state machines declaratively in code using the included builder class.\n\n- Control state transitions using callable transition prerequisites and advance conditions.\n\n- Extend states and transitions to further control state flow and/or encapsulate game behavior within different states.\n\n\n[comment]: \u003cMake a new animation which show cases a more fighting-game relevant animation AND sub states. Maybe on ground and in air\u003e\n\n### Composite Input Detection \n\n- Declaratively describe the many composite inputs featured in action / fighting games ([directional inputs](https://mugen.fandom.com/wiki/Command_input#Directional_inputs), [motion inputs](https://mugen.fandom.com/wiki/Command_input#Motion_input), [charged inputs](https://clips.twitch.tv/FuriousObservantOrcaGrammarKing-c1wo4zhroMVZ9I7y), and [sequence inputs](https://mugen.fandom.com/wiki/Command_input#Sequence_inputs)) using component based approach.\n\n- Check defined inputs anywhere using included input singleton.\n\n[comment]: \u003cMake animation which shows code on left, controller on the bottom highlighting the combined inputs, and example of executing input in game on right.\u003e\n\n\n### Hitbox management\n\n- Define hitboxes using template class with extendable attributes resource.\n\n- Organize hitboxes using hit states and hit state managers. \n\n- Key active hitboxes in animation player using a single property for easier timeline management.\n\n[comment]: \u003cShow gif of hitbox organization\u003e\n\n## 📚 Getting Started\n\nFray comes with comprehensive documentation integrated with Godot 4's documentation comments. This means you can access explanations for classes and functions directly within the Godot editor.\n\nFor additional guides and resources, check out the [official Fray wiki](https://fray.pyxus.dev).\n\n## 📦 Installation\n\n### GitHub Release (Recommended, Stable)\n\nComing soon...\n\n### Asset Library (Recommended, Stable)\n\nComing soon...\n\n### GitHub Branch (Latest, Unstable, Godot 4.2+)\n\n1. Downloaded the [latest main branch](https://github.com/Pyxus/fray/archive/refs/heads/main.zip)\n2. Extract the zip file and move its contents to `addons/fray`.\n3. Enable the addon inside `Project/Project Settings/Plugins`\n\n---\n\nIf you would like to know more about installing plugins see the [Official Godot Docs](https://docs.godotengine.org/en/stable/tutorials/plugins/editor/installing_plugins.html).\n\n## 📃 Credits\n\n- Controller Button Images : \u003chttps://thoseawesomeguys.com/prompts/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyxus%2Ffray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyxus%2Ffray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyxus%2Ffray/lists"}