Forest Logo
search
package_2

whim

By @th3pr0fessor

Roblox

Mirrored

WhimTune Framework

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.

Table of Contents

Features

  • Modular Design: Easily add or modify game content without altering core scripts.
  • Data-Driven: Define behaviors, interactions, and states using Lua tables.
  • Flexible Interactions: Create complex interactions between characters and objects with minimal coding.
  • Autonomy System: Implement NPC autonomy based on traits and needs, similar to The Sims.
  • Extensible: Designed to be extended with custom modules and systems.

Getting Started

Installation

  1. Clone the repository to your local machine:

    git clone https://github.com/YourUsername/WhimTune.git
    
  2. Import the cloned folder into your Roblox Studio project.

  3. Place the WhimTune folder in ReplicatedStorage or ServerStorage depending on your needs.

Basic Setup

  1. Load the Framework: In your main script, require the TuningManager module to access the framework's functionality.

    local TuningManager = require(game.ServerStorage.WhimTune.TuningManager)
    
  2. Define Your First Object: Create a new tuning module for an object, such as a chair, and place it in the ObjectTuning.lua file.

    local ObjectTuning = {
        Chair = {
            Name = "Comfortable Chair",
            Components = {"seat", "comfort"},
            Interactions = {
                SitOnChair = {
                    Type = "Sit",
                    Animation = "SitOnChairAnimation",
                    Effects = {
                        {Type = "CommodityChange", Commodity = "Comfort", Amount = 15},
                    },
                },
            },
            States = {
                Default = "Clean",
                Broken = {
                    Animation = "BrokenChairAnimation",
                    InteractionsDisabled = {"SitOnChair"},
                },
            },
        },
    }
    
    return ObjectTuning
    
  3. Initialize Objects: Use the TuningManager to initialize the objects in your game.

    local chairTuning = TuningManager.GetObjectTuning("Chair")
    -- Apply the tuning to the in-game object
    

Tuning Modules

Object Tuning

Object 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."

Trait Tuning

Traits define specific behaviors and buffs for characters. These can influence how characters interact with the world and other characters.

Interaction Tuning

Interactions control the actions between characters and objects, defining the conditions, outcomes, and associated animations.

Central Tuning Manager

The 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.

Autonomy System

The 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.

Contributing

We welcome contributions to the WhimTune framework! To contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Submit a pull request with a clear description of your changes.

License

WhimTune is released under the MIT License. See LICENSE for more information.

Package Details

Install command (Click to copy)


Version

0.2.5

License

MIT

check_circle

Safe for commercial use

infoThe package archive does not include its license text; the license is declared in its manifest metadata.

Automated license review — not legal advice.