{"id":"dig1t/attrify","name":"attrify","scope":"dig1t","platform":"roblox","description":"No-code behavior system for Roblox using CollectionService tags and attributes","version":"1.0.1","latest":"1.0.1","versions":["1.0.1"],"license":"Apache-2.0","licenseRating":"safe","licenseCaveats":["Modified files must carry a notice of changes. If the package ships a NOTICE file, its attributions must be preserved.","The package archive does not include its license text; the license is declared in its manifest metadata."],"licenseVerified":false,"dependencies":{"dig1t/maid":{"version":"^1.1.3","alias":"Maid"},"dig1t/signal":{"version":"^1.0.3","alias":"Signal"},"dig1t/util":{"version":"^1.0.20","alias":"Util"}},"integrity":"c655f6f2177c2a296207f3e681a3472f3c9fa96b13d549165eb43ac0eaccd566","likes":0,"downloads":0,"install":"forest install dig1t/attrify","url":"https://forest.dev/p/roblox/dig1t/attrify","files":"https://api.forest.dev/ai/package/roblox/dig1t/attrify/files","readme":"# Attrify\n\nAttrify lets you add game mechanics to your Roblox game without writing code.\n\nHere's how it works: you put a tag (a label) on a part, and Attrify makes that part do something. Want a jump pad? Tag a part with `attr_jump_pad` and it becomes one. Want to change how high it launches players? Set an attribute (a setting on the part) in the Properties panel. No scripts needed.\n\n## What you get\n\n- **50 ready-made behaviors** (called watchers) for things games need all the time: coins, kill parts, moving platforms, doors, checkpoints, and more\n- **No scripting required** - everything is set up with tags and attributes in Roblox Studio\n- **Use only what you need** - watchers only run when you tag something with them\n- **Works with typed Luau** - if you do write code, the types are all there\n- **Signals** - if you want your own code to react when something happens (like a coin being collected), you can\n\n## Try it\n\n1. Add the `attr_jump_pad` tag to any BasePart\n2. Set the `attr_jump_distance` attribute to `30`\n3. Play the game and touch the part. You get launched!\n\nThat's the whole setup for most watchers.\n\nIf you want your own code to react to events, connect to a signal:\n```lua\nlocal Attrify = require(ReplicatedStorage.Packages.Attrify)\n\nAttrify.Signals.CoinCollected:Connect(function(player, value, part)\n    print(player.Name, \"collected\", value, \"coins!\")\nend)\n```\n\n## Getting started\n\nInstall with [Wally](https://wally.run) by adding it to your `wally.toml`:\n\n```toml\n[dependencies]\nattrify = \"dig1t/attrify@1.0.1\"\n```\n\nAttrify needs one line of code on the server and one on the client. After that, everything is tags and attributes.\n\n```lua\n-- Server script\nlocal Attrify = require(ReplicatedStorage.Packages.Attrify)\nAttrify.start()\n\n-- Client script\nlocal Attrify = require(ReplicatedStorage.Packages.Attrify)\nAttrify.start()\n```\n\n## All 50 watchers\n\n| Category | Count | Watchers |\n|----------|-------|----------|\n| **Animation** | 8 | `attr_bobber`, `attr_elevator`, `attr_moving_platform`, `attr_orbiter`, `attr_shaker`, `attr_spinner`, `attr_swing_part`, `attr_thwomp` |\n| **Collect** | 2 | `attr_coin`, `attr_collectible` |\n| **Combat** | 4 | `attr_damage_zone`, `attr_heal_part`, `attr_heal_zone`, `attr_kill_part` |\n| **Constraint** | 2 | `attr_hinge_part`, `attr_rope_part` |\n| **Destruction** | 2 | `attr_breakable`, `attr_respawner` |\n| **Door** | 3 | `attr_auto_door`, `attr_sliding_panel`, `attr_swing_gate` |\n| **Interaction** | 3 | `attr_button`, `attr_clickable`, `attr_prompt_part` |\n| **Movement** | 8 | `attr_conveyor`, `attr_gravity_zone`, `attr_jump_pad`, `attr_push_zone`, `attr_slow_zone`, `attr_speed_boost`, `attr_speed_zone`, `attr_teleporter` |\n| **Obby** | 6 | `checkpoint`, `spawn_point`, `attr_crumbling_part`, `attr_cycling_kill_part`, `attr_cycling_platform`, `attr_fading_part` |\n| **Sound** | 3 | `attr_ambient_sound`, `attr_proximity_sound`, `attr_touch_sound` |\n| **Visual** | 9 | `attr_beamer`, `attr_billboard`, `attr_color_cycler`, `attr_fader`, `attr_flickerer`, `attr_glowing`, `attr_pulser`, `attr_spotlighter`, `attr_trail` |\n\n## Examples\n\nSource code, `.rbxl`, and `.rbxm` examples are in [Releases](https://github.com/dig1t/attrify/releases).\n\n## Documentation\n\nThe [full documentation](https://firebit-dev.github.io/docs/attrify/docs/intro) covers:\n- Every watcher and its settings\n- How to install Attrify\n- The API for writing your own code around it\n","readmeTruncated":false}