{"id":"th3pr0fessor/whim","name":"whim","scope":"th3pr0fessor","platform":"roblox","description":"A framework based off knit with a few more bells and whistles","version":"0.2.5","latest":"0.2.5","versions":["0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.1.81","0.1.82","0.1.83","0.1.84","0.1.85","0.1.86","0.1.87","0.1.88","0.1.89","0.2.0","0.2.1","0.2.2","0.2.3","0.2.4","0.2.5"],"license":"MIT","licenseRating":"safe","licenseCaveats":["The package archive does not include its license text; the license is declared in its manifest metadata."],"licenseVerified":false,"dependencies":{"sleitnick/comm":{"version":"^1.0.1","alias":"Comm"},"elttob/fusion":{"version":"^0.2.0","alias":"Fusion"},"nightcycle/maid":{"version":"^2.0.0","alias":"Maid"},"surnautica/profileservice":{"version":"^1.0.0","alias":"ProfileService"},"evaera/promise":{"version":"^4.0.0","alias":"Promise"}},"integrity":"0633ff880a649d07fc35c2403986146c8505d042a94fc500822f6f12acadee48","likes":0,"downloads":0,"install":"forest install th3pr0fessor/whim","url":"https://forest.dev/p/roblox/th3pr0fessor/whim","files":"https://api.forest.dev/ai/package/roblox/th3pr0fessor/whim/files","readme":"# WhimTune Framework\n\n**WhimTune** is a modular, object oriented, data-driven framework designed for Roblox developers, inspired by The Sims' tuning system. This framework allows you to easily configure and control the behavior, interactions, and states of objects, characters, and environments within your Roblox games.\n\n## Table of Contents\n\n- [Features](#features)\n- [Getting Started](#getting-started)\n  - [Installation](#installation)\n  - [Basic Setup](#basic-setup)\n- [Tuning Modules](#tuning-modules)\n  - [Object Tuning](#object-tuning)\n  - [Trait Tuning](#trait-tuning)\n  - [Interaction Tuning](#interaction-tuning)\n- [Central Tuning Manager](#central-tuning-manager)\n- [Autonomy System](#autonomy-system)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Features\n\n- **Modular Design**: Easily add or modify game content without altering core scripts.\n- **Data-Driven**: Define behaviors, interactions, and states using Lua tables.\n- **Flexible Interactions**: Create complex interactions between characters and objects with minimal coding.\n- **Autonomy System**: Implement NPC autonomy based on traits and needs, similar to The Sims.\n- **Extensible**: Designed to be extended with custom modules and systems.\n\n## Getting Started\n\n### Installation\n\n1. Clone the repository to your local machine:\n   ```bash\n   git clone https://github.com/YourUsername/WhimTune.git\n   ```\n\n2. Import the cloned folder into your Roblox Studio project.\n\n3. Place the `WhimTune` folder in `ReplicatedStorage` or `ServerStorage` depending on your needs.\n\n### Basic Setup\n\n1. **Load the Framework**: In your main script, require the `TuningManager` module to access the framework's functionality.\n\n   ```lua\n   local TuningManager = require(game.ServerStorage.WhimTune.TuningManager)\n   ```\n\n2. **Define Your First Object**: Create a new tuning module for an object, such as a chair, and place it in the `ObjectTuning.lua` file.\n\n   ```lua\n   local ObjectTuning = {\n       Chair = {\n           Name = \"Comfortable Chair\",\n           Components = {\"seat\", \"comfort\"},\n           Interactions = {\n               SitOnChair = {\n                   Type = \"Sit\",\n                   Animation = \"SitOnChairAnimation\",\n                   Effects = {\n                       {Type = \"CommodityChange\", Commodity = \"Comfort\", Amount = 15},\n                   },\n               },\n           },\n           States = {\n               Default = \"Clean\",\n               Broken = {\n                   Animation = \"BrokenChairAnimation\",\n                   InteractionsDisabled = {\"SitOnChair\"},\n               },\n           },\n       },\n   }\n\n   return ObjectTuning\n   ```\n\n3. **Initialize Objects**: Use the `TuningManager` to initialize the objects in your game.\n\n   ```lua\n   local chairTuning = TuningManager.GetObjectTuning(\"Chair\")\n   -- Apply the tuning to the in-game object\n   ```\n\n## Tuning Modules\n\n### Object Tuning\n\nObject tuning allows you to define the properties, interactions, and states of in-game objects. For example, a chair can have different interactions like sitting and different states like \"clean\" or \"broken.\"\n\n### Trait Tuning\n\nTraits define specific behaviors and buffs for characters. These can influence how characters interact with the world and other characters.\n\n### Interaction Tuning\n\nInteractions control the actions between characters and objects, defining the conditions, outcomes, and associated animations.\n\n## Central Tuning Manager\n\nThe Tuning Manager is the core of the WhimTune framework. It loads and manages all tuning data, providing easy access to object, trait, and interaction tunings.\n\n## Autonomy System\n\nThe autonomy system allows NPCs and characters to make decisions based on their traits, needs, and available interactions, similar to the autonomy seen in The Sims series.\n\n## Contributing\n\nWe welcome contributions to the WhimTune framework! To contribute:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bugfix.\n3. Submit a pull request with a clear description of your changes.\n\n## License\n\nWhimTune is released under the MIT License. See `LICENSE` for more information.\n","readmeTruncated":false}