{"id":41956052,"url":"https://github.com/gamesmiths-guild/forge","last_synced_at":"2026-05-02T05:12:46.445Z","repository":{"id":258087900,"uuid":"860718476","full_name":"gamesmiths-guild/forge","owner":"gamesmiths-guild","description":"Unreal GAS-like gameplay framework for C# (engine-agnostic).","archived":false,"fork":false,"pushed_at":"2026-03-29T01:49:59.000Z","size":941,"stargazers_count":18,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-29T04:32:22.511Z","etag":null,"topics":["abilities","attributes","csharp","dotnet","engine-agnostic","gameplay-ability-system","gameplay-framework","status-effects"],"latest_commit_sha":null,"homepage":"","language":"C#","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/gamesmiths-guild.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-21T02:16:24.000Z","updated_at":"2026-03-18T05:21:32.000Z","dependencies_parsed_at":"2025-12-29T06:05:33.273Z","dependency_job_id":null,"html_url":"https://github.com/gamesmiths-guild/forge","commit_stats":null,"previous_names":["gamesmiths-guild/forge"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/gamesmiths-guild/forge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamesmiths-guild%2Fforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamesmiths-guild%2Fforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamesmiths-guild%2Fforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamesmiths-guild%2Fforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gamesmiths-guild","download_url":"https://codeload.github.com/gamesmiths-guild/forge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gamesmiths-guild%2Fforge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31442924,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T15:22:31.103Z","status":"ssl_error","status_checked_at":"2026-04-05T15:22:00.205Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["abilities","attributes","csharp","dotnet","engine-agnostic","gameplay-ability-system","gameplay-framework","status-effects"],"created_at":"2026-01-25T22:35:04.280Z","updated_at":"2026-04-05T18:06:19.954Z","avatar_url":"https://github.com/gamesmiths-guild.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forge Gameplay System\r\n\r\n[![CI](https://github.com/gamesmiths-guild/forge/actions/workflows/validate-project.yml/badge.svg)](https://github.com/gamesmiths-guild/forge/actions/workflows/validate-project.yml)\r\n[![NuGet](https://img.shields.io/nuget/v/Gamesmiths.Forge.svg)](https://www.nuget.org/packages/Gamesmiths.Forge)\r\n[![License](https://img.shields.io/github/license/gamesmiths-guild/forge)](LICENSE)\r\n\r\nAn Unreal GAS-like gameplay framework for developing games in C#.\r\n\r\nForge is an engine-agnostic gameplay framework designed for building robust game systems in C#. Inspired by Unreal Engine's Gameplay Ability System (GAS), Forge provides a centralized and controlled approach to managing attributes, effects, tags, abilities, events, and cues in your games.\r\nForge is an engine-agnostic, data-driven system inspired by Unreal Engine’s Gameplay Ability System (GAS), designed to manage attributes, effects, abilities, tags, events, and cues in a structured way.\r\n\r\nThe framework eliminates the need to rebuild status systems for every game project by offering a flexible, data-driven architecture that works seamlessly with Unity, Godot, and other C#-compatible engines. With Forge, all attribute changes are handled through effects, ensuring organized and maintainable code even in complex gameplay scenarios.\r\n\r\n**Keywords:** gameplay framework, C#, engine-agnostic, data-driven, attributes, gameplay effects, abilities, gameplay tags\r\n\r\n## Quick Start\r\n\r\nNew to Forge? Check out the [Quick Start Guide](docs/quick-start.md) to build your first Forge-powered entity in minutes.\r\n\r\n## Architecture Overview\r\n\r\nForge is built around core systems that work together to provide comprehensive gameplay functionality:\r\n\r\n### Core Systems\r\n\r\n- **[Attributes](docs/attributes.md)**: Centralized attribute management with min/max values, channels, and controlled modifications.\r\n- **[Effects](docs/effects/README.md)**: Data-driven system for applying temporary or permanent changes to entities.\r\n- **[Tags](docs/tags.md)**: Hierarchical tagging system for entity classification and effect targeting.\r\n- **[Abilities](docs/abilities.md)**: Creation, granting, activation, cooldowns, costs, and instancing rules for gameplay abilities.\r\n- **[Events](docs/events.md)**: Gameplay event handling and propagation used for ability triggers and game logic reactions.\r\n- **[Cues](docs/cues.md)**: Visual and audio feedback system that bridges gameplay with presentation.\r\n- **[Statescript](docs/statescript/README.md)**: State-based scripting system for defining ability behaviors through node graphs.\r\n\r\n### Entity Integration\r\n\r\nEvery game object that uses Forge implements the `IForgeEntity` interface, providing:\r\n\r\n- `EntityAttributes` - Manages all attributes and attribute sets.\r\n- `EntityTags` - Handles base and modifier tags with automatic inheritance.\r\n- `EffectsManager` - Controls effect application, stacking, and lifecycle.\r\n- `EntityAbilities` - Grants and activates abilities, handles cooldowns/costs, and manages instancing.\r\n- `EventManager` - Dispatches and listens to gameplay events for triggers and reactions.\r\n- `SharedVariables` - Entity-level variable bag for cross-ability communication through Statescript graphs.\r\n\r\n### Advanced Features\r\n\r\nForge supports a variety of gameplay mechanics through specialized subsystems:\r\n\r\n- **[Effect Duration](docs/effects/duration.md)**: Control how long effects remain active.\r\n- **[Effect Stacking](docs/effects/stacking.md)**: Configure how multiple instances of effects combine.\r\n- **[Periodic Effects](docs/effects/periodic.md)**: Create effects that execute repeatedly on a schedule.\r\n- **[Modifiers](docs/effects/modifiers.md)**: Define how effects change attribute values.\r\n- **[Effect Components](docs/effects/components.md)**: Extend effects with custom behaviors.\r\n- **[Custom Calculators](docs/effects/calculators.md)**: Flexible logic execution within the effects pipeline.\r\n\r\n## Project Status\r\n\r\n⚠️ **Work in Progress** - This project is currently under active development and not ready for production use.\r\n\r\n### Current Features ✅\r\n\r\n- **Tags System**: Complete hierarchical tag system with inheritance.\r\n- **Attributes System**: Full attribute management with modifiers and overrides.\r\n- **Effects System**: Comprehensive effect application with stacking support.\r\n- **Cues System**: Visual feedback system for effect application/removal.\r\n- **Custom Calculators**: Flexible logic execution for effects.\r\n- **Abilities System**: Ability granting, activation, instancing, costs, cooldowns, and tag-based requirements.\r\n- **Events System**: Gameplay event handling, tagging, and trigger support.\r\n- **Statescript**: State-based scripting system for defining ability behaviors through node graphs.\r\n\r\n### Planned Features 🚧\r\n\r\n- **Multiplayer Support**: Network replication for all systems.\r\n- **More Built-in Content**: More built-in components, nodes and resolvers.\r\n\r\n## Installation\r\n\r\n### Requirements\r\n\r\nForge targets:\r\n\r\n- .NET Standard 2.1 (for broad compatibility)\r\n- .NET 8 (for modern features)\r\n\r\nInstall via NuGet, reference the Forge project directly, or download the precompiled `.dll` from the Releases page.\r\n\r\n### NuGet (Recommended)\r\n\r\nInstall the package via .NET CLI:\r\n\r\n```shell\r\ndotnet add package Gamesmiths.Forge\r\n```\r\n\r\nOr search for `Gamesmiths.Forge` in the NuGet Package Manager UI in Visual Studio.\r\n\r\n### Manual Installation\r\n\r\nIf you need to build from source or make local changes:\r\n\r\n1. Clone this repository.\r\n2. Reference the Forge project in your solution.\r\n3. Follow the [Quick Start Guide](docs/quick-start.md).\r\n\r\n## Documentation\r\n\r\nFor comprehensive documentation, explore the [docs](docs) directory, starting with the [documentation overview](docs/README.md).\r\n\r\n## Contributing\r\n\r\nThis project is not currently accepting contributions as it's still in early development. However, if you're interested in contributing or have suggestions, feel free to reach out via GitHub issues or discussions.\r\n\r\n## License\r\n\r\nCopyright © Gamesmiths Guild. See [LICENSE](LICENSE) for details.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgamesmiths-guild%2Fforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgamesmiths-guild%2Fforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgamesmiths-guild%2Fforge/lists"}