open-index/open-npm huggingface dataset:
npm package: @quenty/steputils
Description: Binds animations into step, where the animation only runs as needed
Latest version: 3.6.3

## StepUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Binds animations into step, where the animation only runs as needed

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/StepUtils">View docs →</a></div>

## Installation
```
npm install @quenty/steputils --save
```
npm package: @quenty/streamingutils
Description: Provides utilities for working with Roblox's streaming system
Latest version: 10.16.0

## StreamingUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Provides utilities for working with Roblox's streaming system

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/StreamingUtils">View docs →</a></div>

## Installation
```
npm install @quenty/streamingutils --save
```

## Usage
Usage is designed to be simple.

### `StreamingUtils.promiseStreamAround(player, position, timeOut)`
npm package: @quenty/string
Description: This module provides utility functions for strings
Latest version: 3.3.6

## String
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

This module provides utility functions for strings

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/String">View docs →</a></div>

## Installation
```
npm install @quenty/string --save
```
npm package: @quenty/sunpositionutils
Description: Utility to position the sun and to retrieve sun information specific to Roblox.
Latest version: 2.4.2

## SunPositionUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility to position the sun

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/SunPositionUtils">View docs →</a></div>

## Installation
```
npm install @quenty/sunpositionutils --save
```

## Usage
Usage is designed to be simple.

### `SunPositionUtils.getGeographicalLatitudeFromDirection(direction)`

### `SunPositionUtils.getClockTimeFromDirection(direction)`

### `SunPositionUtils.getDirection(azimuthRad, altitudeRad, north)`
npm package: @quenty/symbol
Description: Unique symbol implementation for Roblox
Latest version: 3.5.2

## Symbol
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

A 'Symbol' is an opaque marker type.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/Symbol">View docs →</a></div>

## Installation
```
npm install @quenty/symbol --save
```

Symbols have the type 'userdata', but when printed to the console, the name of the symbol is shown.
npm package: @quenty/table
Description: Table and Set utility functions for Roblox
Latest version: 3.9.2

## Table
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Contains table and set utility functions for Roblox.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/Table/">View docs →</a></div>

## Installation
```
npm install @quenty/table --save
```
npm package: @quenty/teamtracker
Description: Tracks a player's current team, since the Team property is unreliable
Latest version: 13.28.0

## TeamTracker
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Tracks a player's current team, since the Team property is unreliable

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TeamTracker">View docs →</a></div>

## Installation
```
npm install @quenty/teamtracker --save
```

## Usage
Usage is designed to be simple.

### `TeamTracker.new(player)`

### `TeamTracker:GetPlayer()`

### `TeamTracker:Destroy()`
npm package: @quenty/teamutils
Description: Team utility methods
Latest version: 10.28.0

## TeamUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Team utility methods

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TeamUtils">View docs →</a></div>

## Installation
```
npm install @quenty/teamutils --save
```

## Usage
Usage is designed to be simple.

### `TeamUtils.areTeamMates(playerA, playerB)`
npm package: @quenty/teleportserviceutils
Description: Utility functions for teleport srevice
Latest version: 9.28.0

## TeleportServiceUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility functions for teleport srevice

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TeleportServiceUtils">View docs →</a></div>

## Installation
```
npm install @quenty/teleportserviceutils --save
```
npm package: @quenty/templateprovider
Description: Base of a template retrieval system
Latest version: 11.33.0

## TemplateProvider
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Base of a template retrieval system

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TemplateProvider">View docs →</a></div>

## Installation
```
npm install @quenty/templateprovider --save
```

## Deferred replication template behavior

1. We want to defer replication of templates until client requests the template
2. Then we want to send the template to the client via PlayerGui methods
3. We want to decide whether or not to bother doing this

This will prevent memory usage of unused templates on the client, which happens with the cars and a variety of other game-systems.

We can't store the stuff initially in cameras or in team-create Roblox won't replicate the stuff. But we can move on run-time and hope...
npm package: @quenty/terrainutils
Description: Utility functions for manipulating terrain
Latest version: 10.12.0

## TerrainUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility functions for manipulating Roblox's terrain

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TerrainUtils">View docs →</a></div>

## Installation
```
npm install @quenty/terrainutils --save
```

## Usage
Usage is designed to be simple.

### `TerrainUtils.getTerrainRegion3(position, size, resolution)`

### `TerrainUtils.getTerrainRegion3int16FromRegion3(region3, resolution)`

### `TerrainUtils.getCorner(region3)`

### `TerrainUtils.getCornerint16(region3, resolution)`
npm package: @quenty/textboxutils
Description: Holds utility methods for textboxes
Latest version: 7.26.0

## TextBoxUtils

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Holds utility methods for textboxes

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TextBoxUtils">View docs →</a></div>

## Installation

```
npm install @quenty/textboxutils --save
```
npm package: @quenty/textfilterservice
Description: Utility service that provides text filtering to the client
Latest version: 13.29.0

## TextFilterService
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility service that provides text filtering to the client

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TextFilterService">View docs →</a></div>

## Installation
```
npm install @quenty/textfilterservice --save
```
npm package: @quenty/textfilterutils
Description: Utility functions for filtering text
Latest version: 10.16.0

## TextFilterUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility functions for filtering text

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TextFilterUtils">View docs →</a></div>

## Installation
```
npm install @quenty/textfilterutils --save
```

## Usage
Usage is designed to be simple.

### `TextFilterUtils.promiseNonChatStringForBroadcast(str, fromUserId, textContext)`

### `TextFilterUtils.promiseLegacyChatFilter(playerFrom, text)`

### `TextFilterUtils.promiseNonChatStringForUserAsync(str, fromUserId, toUserId, textContext)`

### `TextFilterUtils.getNonChatStringForBroadcastAsync(str, fromUserId, textContext)`

### `TextFilterUtils.getNonChatStringForUserAsync(str, fromUserId, toUserId, textContext)`

### `TextFilterUtils._promiseTextResult(getResult, ...)`
npm package: @quenty/textserviceutils
Description: Holds utilities involving the Roblox TextService and text fitting to size.
Latest version: 13.32.0

## TextServiceUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Holds utilities involving the Roblox TextService and text fitting to size.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TextServiceUtils">View docs →</a></div>

## Installation
```
npm install @quenty/textserviceutils --save
```
npm package: @quenty/throttle
Description: Adds the throttle function to Roblox
Latest version: 10.11.0

## Throttle
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

A throttle implementation for Roblox

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/throttle">View docs →</a></div>

## Installation
```
npm install @quenty/throttle --save
```
npm package: @quenty/tie
Description: Tie allows interfaces to be defined between Lua OOP and Roblox objects.
Latest version: 10.36.0

## Tie
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Tie allows interfaces to be defined between Lua OOP and Roblox objects. This is designed in part to replace BinderGroups, which were a way to previously allow systems to interface with each other in a generic way. Instead, an object may implement a TieInterface, which is basically bindable functions/events.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TieInterface">View docs →</a></div>

## Installation
```
npm install @quenty/tie --save
```

## Design philosophy
This package does two things. First of all, it basically automates the creation of interfaced definitions, that is, tying a Lua object to BindableEvent/BindableFunction definitions. Second of all, it lets objects be centralized as an interface definition.

## Changes to make

1. Ensure tie properties can be attributes
1. Allow tie functions instead of methods
1. Add tie library as a primary interface (less OOP)
1. Ensure you can ad-hoc create a tie (low-level scripting)
1. Support tagged ties with
1. Ensure ties can be queried via CollectionService
1. Allow client implementation of server-based ties

## Realms

1. By default everything is a "shared" realm
npm package: @quenty/time
Description: Library handles time based parsing / operations. Untested. Based off of PHP's time system. Note: This library is out of date, and does not necessarily work. I recommend using os.time()
Latest version: 2.4.6

## Time
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Library handles time based parsing / operations. Untested. Based off of PHP's time system. Note: This library is out of date, and does not necessarily work. I recommend using os.time()

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/Time">View docs →</a></div>

## Installation
```
npm install @quenty/time --save
```

## Usage
Usage is designed to be simple.

### `Time.getDaysMonthTable(year)`
Returns a Days in months table for the given year

### `Time.getSecond(currentTime)`

### `Time.getMinute(currentTime)`

### `Time.getHour(currentTime)`

### `Time.getDay(currentTime)`

### `Time.getYear(currentTime)`

### `Time.getYearShort(currentTime)`

### `Time.getYearShortFormatted(currentTime)`

### `Time.getMonth(currentTime)`

### `Time.getFormattedMonth(currentTime)`

### `Time.getDayOfTheMonth(currentTime)`

### `Time.getFormattedDayOfTheMonth(currentTime)`

### `Time.getMonthName(currentTime)`

### `Time.getMonthNameShort(currentTime)`

### `Time.getJulianDate(currentTime)`

### `Time.getDayOfTheWeek(currentTime)`

### `Time.getDayOfTheWeekName(currentTime)`

### `Time.getDayOfTheWeekNameShort(currentTime)`

### `Time.getOrdinalOfNumber(number)`

### `Time.getDayOfTheMonthOrdinal(currentTime)`

### `Time.getFormattedSecond(currentTime)`

### `Time.getFormattedMinute(currentTime)`

### `Time.getRegularHour(currentTime)`

### `Time.getHourFormatted(currentTime)`

### `Time.getRegularHourFormatted(currentTime)`

### `Time.getamOrpm(currentTime)`

### `Time.getAMorPM(currentTime)`

### `Time.getMilitaryHour(currentTime)`

### `Time.isLeapYear(currentTime)`

### `Time.getDaysInMonth(currentTime)`

### `Time.getFormattedTime(format, currentTime)`
npm package: @quenty/timedtween
Description: Linear timed tweening model
Latest version: 7.32.0

## TimedTween

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Linear timed tweening model

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TimedTweenUtils">View docs →</a></div>

## Installation

```
npm install @quenty/timedtween --save
```
npm package: @quenty/timesyncservice
Description: Quenty's TimeSyncService keeps time synchronized between all clients and the server
Latest version: 13.30.0

## TimeSyncService
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Quenty's TimeSyncService keeps time synchronized between all clients and the server

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TimeSyncService">View docs →</a></div>

## Installation
```
npm install @quenty/timesyncservice --save
```

## Features

* Promise resolves only once the clock is synced
* Battle tested across many Roblox games
* Use the same module for server and client
npm package: @quenty/toolutils
Description: Utility methods for tools
Latest version: 1.13.0

## ToolUtils

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility methods for tools

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/RxToolUtils">View docs →</a></div>

## Installation

```
npm install @quenty/toolutils --save
```
npm package: @quenty/touchingpartutils
Description: Utility to get touching parts on a Roblox part. This acts as a performance-friendly way to query Roblox's spatial tree.
Latest version: 2.2.5

## TouchingPartUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility to get touching parts on a Roblox part. This acts as a performance-friendly way to query Roblox's spatial tree.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TouchingPartUtils">View docs →</a></div>

## Installation
```
npm install @quenty/touchingpartutils --save
```

## Usage
Usage is designed to be simple.

### `TouchingPartUtils.getAllTouchingParts(part)`

### `TouchingPartUtils.getBoundingBoxParts(cframe, size)`
npm package: @quenty/trajectory
Description: Utility function for estimating low and high arcs of projectiles. Solves for bullet drop given
Latest version: 2.14.0

## trajectory
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility function for estimating low and high arcs of projectiles. Solves for bullet drop given. Returns two possible paths from origin to target where the magnitude of the initial velocity is initialVelocity.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/trajectory">View docs →</a></div>

## Installation
```
npm install @quenty/trajectory --save
```

## Usage
```lua
local bullet = Instance.new("Part", workspace)
bullet.Position = Vector3.new(0, 100, 0)

-- 200 studs down-range
local target = Vector3.new(200, 100, 0)

-- Use the actual function
local low, high, fallback = trajectory(bullet.Position, target, 250, workspace.Gravity)

-- Make part follow low trajectory if available, and then high, and then the fallback.
-- This will ensure the part, assuming it does not hit anything, hits the targetted position
bullet.Velocity = low or high or fallback
```

## API

### `trajectory(origin, target, initialVelocity, gravityForce)`
Returns two possible paths from origin to target where the magnitude of the initial velocity is initialVelocity

- origin: Vector3, Origin of the bullet
- target: Vector3, Target for the bullet
- initialVelocity: number, Magnitude of the initial velocity
- gravityForce: number, Force of the gravity

## MinEntranceVelocityUtils API

### `MinEntranceVelocityUtils.minimizeEntranceVelocity(origin, target, accel)`
Determines the starting velocity to minimize the velocity at the target for a parabula

### `MinEntranceVelocityUtils.computeEntranceVelocity(velocity, origin, target, accel)`
NOTE: This may only works for a minimizeEntranceVelocity

### `MinEntranceVelocityUtils.computeEntranceTime(velocity, origin, target, accel)`
NOTE: This may only works for a minimizeEntranceVelocity
npm package: @quenty/transitionmodel
Description: Helps with Gui visiblity showing and hiding
Latest version: 7.34.0

## TransitionModel

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Helps with Gui visiblity showing and hiding

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TransitionModelUtils">View docs →</a></div>

## Installation

```
npm install @quenty/transitionmodel --save
```
npm package: @quenty/transparencyservice
Description: Service that orchistrates transparency setting from multiple colliding sources and handle the transparency appropriately. This means that 2 systems can work with transparency without knowing about each other.
Latest version: 11.10.0

## TransparencyService
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Service that orchistrates transparency setting from multiple colliding sources and handle the transparency appropriately. This means that 2 systems can work with transparency without knowing about each other.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TransparencyService">View docs →</a></div>

## Installation
```
npm install @quenty/transparencyservice --save
```

## Usage
Usage is designed to be simple.

### `TransparencyService:Init()`

### `TransparencyService:SetTransparency(key, part, transparency)`

### `TransparencyService:SetLocalTransparencyModifier(key, part, transparency)`

### `TransparencyService:ResetLocalTransparencyModifier(key, part)`

### `TransparencyService:ResetTransparency(key, part)`
npm package: @quenty/tuple
Description: Tuple utility package
Latest version: 1.7.0

## Tuple

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Tuple utility package

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TupleUtils">View docs →</a></div>

## Installation

```
npm install @quenty/tuple --save
```
npm package: @quenty/typeutils
Description: Utility methods for manipulating Luau types
Latest version: 1.2.0

## TypeUtils

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility methods for manipulating Luau types

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/TypeUtils">View docs →</a></div>

## Installation

```
npm install @quenty/typeutils --save
```
npm package: @quenty/ugcsanitize
Description: Sanitizes UGC hats and other items
Latest version: 1.14.0

## UGCSanitize

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Sanitizes UGC hats and other items

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/UGCSanitizeUtils">View docs →</a></div>

## Installation

```
npm install @quenty/ugcsanitize --save
```
npm package: @quenty/uiobjectutils
Description: UI object utils library for Roblox
Latest version: 6.26.0

## UIObjectUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility functions to make working with UI a little bit nicer in Roblox

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/PlayerGuiUtils">View docs →</a></div>

## Installation
```
npm install @quenty/uiobjectutils --save
```
npm package: @quenty/ultrawidecontainerutils
Description: Creates a 1920x1080 scaling container to handle ultrawide monitors and screens in a reasonable way. This helps keep UI centered and available for ultrawide screens.
Latest version: 2.5.3

## UltrawideContainerUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Creates a 1920x1080 scaling container to handle ultrawide monitors and screens in a reasonable way. This helps keep UI centered and available for ultrawide screens.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/UltrawideContainerUtils">View docs →</a></div>

## Installation
```
npm install @quenty/ultrawidecontainerutils --save
```

## Usage
Usage is designed to be simple.

### `UltrawideContainerUtils.createContainer(parent)`

### `UltrawideContainerUtils.scaleSizeConstraint(container, uiSizeConstraint, scale)`
npm package: @quenty/undostack
Description: Generalized undo stack for Roblox
Latest version: 7.28.0

## UndoStack
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Undo stack functionality for editing stuff

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/UndoStack">View docs →</a></div>

## Installation
```
npm install @quenty/undostack --save
```
npm package: @quenty/userserviceutils
Description: Utilities involving UserService in Roblox
Latest version: 9.28.0

## UserServiceUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utilities involving UserService in Roblox

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/UserServiceUtils">View docs →</a></div>

## Installation
```
npm install @quenty/userserviceutils --save
```
npm package: @quenty/utf8
Description: UTF8 utility library
Latest version: 2.3.5

## UTF8
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

UTF8 utility library to convert text to be upper or lower case.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/UTF8">View docs →</a></div>

## Installation
```
npm install @quenty/utf8 --save
```
npm package: @quenty/valuebaseutils
Description: Provides utilities for working with valuesbase objects, like IntValue or ObjectValue in Roblox.
Latest version: 13.27.0

## ValueBaseUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Provides utilities for working with valuesbase objects, like IntValue or ObjectValue in Roblox.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/ValueBaseUtils">View docs →</a></div>

## Installation
```
npm install @quenty/valuebaseutils --save
```

## Usage
Usage is designed to be simple.

### `ValueBaseUtils.getOrCreateValue(parent, instanceType, name, defaultValue)`

### `ValueBaseUtils.setValue(parent, instanceType, name, value)`

### `ValueBaseUtils.getValue(parent, instanceType, name, default)`

### `ValueBaseUtils.createGetSet(instanceType, name)`
npm package: @quenty/valueobject
Description: To work like value objects in Roblox and track a single item with .Changed events
Latest version: 13.28.0

## ValueObject
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

To work like value objects in Roblox and track a single item with .Changed events. The motivation here is to keep it simple to work with an encapsulated value. Instead of exposing an `IPropertyChanged` interface like C# might do, we instead expose objects with .Changed that are encapsulated within the object in question.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/ValueObject">View docs →</a></div>

## Installation
```
npm install @quenty/valueobject --save
```

## Features

* Battle tested
* Can take in a default value
* Automatically fires with a maid that exists for the lifetime of the value
npm package: @quenty/vector3int16utils
Description: Module for working with Vector3int16
Latest version: 2.2.3

## Vector3int16Utils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Module for working with Vector3int16

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/Vector3int16Utils">View docs →</a></div>

## Installation
```
npm install @quenty/vector3int16utils --save
```

## Usage
Usage is designed to be simple.

### `Vector3int16Utils.fromVector3(vector3)`
npm package: @quenty/vector3utils
Description: Utilities involving Vector3 objects in Roblox
Latest version: 10.10.0

## Vector3Utils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utilities involving Vector3 objects in Roblox.

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/Vector3Utils">View docs →</a></div>

## Installation
```
npm install @quenty/vector3utils --save
```
npm package: @quenty/viewport
Description: Rendering functionality for viewportFrames
Latest version: 11.37.0

## Viewport
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Rendering functionality for viewportFrames

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/viewport">View docs →</a></div>

## Installation
```
npm install @quenty/viewport --save
```
npm package: @quenty/voicechat
Description: Utility methods for voice chat
Latest version: 5.16.0

## VoiceChat

<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility methods for voice chat

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/VoiceChatUtils">View docs →</a></div>

## Installation

```
npm install @quenty/voicechat --save
```
npm package: @quenty/weldconstraintutils
Description: Utility functions to create WeldConstraint objects in Roblox
Latest version: 3.1.5

## WeldConstraintUtils
<div align="center">
  <a href="http://quenty.github.io/NevermoreEngine/">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/docs.yml/badge.svg" alt="Documentation status" />
  </a>
  <a href="https://discord.gg/mhtGUS8">
    <img src="https://img.shields.io/discord/385151591524597761?color=5865F2&label=discord&logo=discord&logoColor=white" alt="Discord" />
  </a>
  <a href="https://github.com/Quenty/NevermoreEngine/actions">
    <img src="https://github.com/Quenty/NevermoreEngine/actions/workflows/build.yml/badge.svg" alt="Build and release status" />
  </a>
</div>

Utility functions to create WeldConstraint objects in Roblox

<div align="center"><a href="https://quenty.github.io/NevermoreEngine/api/WeldConstraintUtils">View docs →</a></div>

## Installation
```
npm install @quenty/weldconstraintutils --save
```

## Usage
Usage is designed to be simple.

### `WeldConstraintUtils.namedBetween(name, part0, part1, parent)`

### `WeldConstraintUtils.namedBetweenForceWeldConstraint(name, part0, part1, parent)`