Genlite

**GenLite** is an open-source third party plugin via Tampermonkey for *Genfanad*, written in TypeScript. The plugin features several quality-of-life improvements over the official client.

GenLite is currently not endorsed by the Genfanad development team. The Genfanad Player Agreement states that you are only allowed to use the official client, with the official client being defined as "an unmodified web-browser, the steam client, and any other clients released as 'Official' by the Rose Tinted Games team."

**Discussion about GenLite in the official Genfanad Discord channel is not allowed.**

Use GenLite at your own risk.

## History

Development on GenLite began on the 5th of December 2022 with the first version being released on the same day: Genlite 0.1. Since GenLite is open source, it has allowed multiple community members to contribute their own improvements to the plugin.

## Features

Below is a list of all the features GenLite has to offer:

### Camera

* Larger range of camera angles
* Further zoom out and closer zoom in
* Increase render distance. (Note: Big render distances can cause the game to freeze when holding down a keypress).
* A skybox
* Distance fog (adds a fog effect to distant scenery

### Chat Filtering

* Condense repeated chat messages
* Right-click ignore to hide specific game messages (e.g. Succesfully mined an ore)
* Preserve short chat history across-login is coming soon TM

### Drop Recorder

* Record drops from enemies in the game
* View and search drops and kills in the GenLite sidebar
* Sends drops to the GenLite database for community aggregating (off by default in the settings).

Enhanced Banking

* CTRL+click an item to withdraw/deposit X (where X is the last withdrawn X)

### Enhanced Context Menu

* Right-click "Lookup" to view that object/item/NPC wik page
* Change rock name's to their ores
* Pacifist mode: move attack to right-click only

### Highscores

* Collect highscore data and share with GenLite servers
* View highscores in GenLite discord

### Hit Recorder

* Record all hits done by and to the player
* Current and cumulative DPS trackers (reset by shift-clicking the tracker)
* Hits done by the player is located at ``*GenLiteHitRecorder.playerHitInfo*`` in the console.
* Hits done by enemy is located at ``*GenLiteHitRecorder.enemyHitInfo*`` in the console.
* Resets can be done with ``*GenLiteHitRecorder.resetEnemyHitInto()*`` ``*GenLiteHitRecorder.resetPlayerHitInfo()*`` ``*GenLiteHitRecorder.resetAll()*``.

### Item Highlights

* Adds item tags above the item drops (Can be turned off).
* Items can be condensed together in a single stack or all drops can be shown.
* Adds the ability to increase or decrease item priority. Hold ``*alt*`` and 2 buttons will appear next to the item tags. These are toggles, not decrease / increase buttons.
* The minus(-) will reduce the priority hiding the item and making it only pickupable via the right click menu.
* The plus(+) will increase priority highlighting the item and moving it to the top of the pickup list, this will even ignore engaging an enemy in combat if it is standing on top of the item.

### Item Tooltips

* Adds tooltips to items in your inventory.
* Value tooltip shows the value of an item if sold to a shop.

### Locations

* Adds location labels to the top of the screen for where you are in the game (WIP).
* Adds current coordinates to the top of the screen.
* Adds an embedded version of Genfamap accessed by clicking on the compass (rightlicking opens a transparent version).

### NPC Highlights

* Adds nametags to all npcs.
* Adds an HP ammount once the enemy has been hit. This is stored locally between sessions.
* Ability to hide enemy packs by holding ``*alt*`` and clicking the minus(-) button that appears. This can be inverted.

### Player Tools

* Adds nametages to all players.
	+ Green: Friended Players
	+ Grey: Non-Friend/Ignored Players
* Adds an option to hide your character (Hide Me)

### Recipe Recorder

* Records all smithing/cooking/etc recipes
* Can view and search recipes in the GenLite side bar
* Stored locally between sessions.

### Wiki Data Collection

* Records data for the GenLite database and Fandom Wiki (off by default).
* This is stored locally regardless if you are sending data to the server and this data is needed by other plugins so do not disable this plugin.

### XP Calculator

* Adds to the skill tool tips in the game.
* XP per Action: Average XP gain from an action.
* Action TNL: Number of average actions to the next skill level.
* XP per hour.
* Time to Level.
* Can be reset by shift clicking on a skill. ctrl-shift click any skill to reset every skill.

### Other Quality-of-Life Improvements

* Disable dragging items while holding shift, makes dropping items easier
* sound notifications:
	+ low health
	+ health regen alert
	+ full inventory
* quest counter
* menu scaler
* music selector + shuffle

### Chat Commands

Genlite provides some functionality through chat commands, prefixed with two forward slashes: `//`

* ``*//help`*` prints help and list of commands.
* ``*//help <command>`*` prints help for that command, for example ``//help music``
* `*`//logged`*` prints time since logged in.
* *``//played`*` prints time played (recorded locally, cannot record time played without GenLite. This can be reset with `GenLiteGeneralChatCommands.playedTime = 0` in the browser console).

## GenLite Search Syntax

This search syntax applies to **Recipe Recorder** and **Drop Recorder**, which both have a Sidebar panel for searching through your recipes and drops.

### Basics

The search bar does a simple text match across the whole recipe. Including inputs, outputs, quantity, and even icon URL.

For example, "`**bar**`" will return forging recipes that require or produce metal **bar**s, while also matching the Logs to De**bar**ked Wood recipe.

Search terms separated by a comma must all be matched for a result to show. For example `plate,rat` matches recipes that have both words, i.e. cooking recipes with plates and rat meat but not chicken recipes.

### Shortcuts

The text is manipulated slightly to allow for easier searching. Here are those changes and examples that work as you might expect:

* All searching is case insensitive: ``L.q. IrOn bAR``
* Item qualities do not require periods: ``LQ iron bar``
* Leaving quality out matches all qualities, meaning ``Iron Bar`` will match LQ, NQ, and HQ.
* If you specifically want NQ, prefix with NQ or N.Q.
* Forging components can match in various forms:
	+ exact item name: ``L.Q. Bronze Component (Sheet)``
	+ leave out component: ``LQ Bronze Sheet``
	+ match all metals: ``LQ Sheet`` or ``Sheet``

### Prefixes

There are also special prefixes that let you narrow the search further:

* ``in:<item>`` - matches recipe inputs
* ``out:<item>`` - matches recipe outputs
* ``mob:<monster>`` - matches monster names
* ``drop:<item>`` - matches dropped item names

Note: do not include a space after the colon. ``in:iron`` works but ``in: iron`` does not.

### Exclude

Finally, you can prefix any search with a minus to exclude that term. For example: ``in:nq sheet,-out:arrowhead`` will match recipes requiring a NQ sheet (of any metal) excluding those with arrowhead outputs.

## External links

GenLite installation

GenLite Discord