Author: JFFK

0

LibVectorMath (1.0.0)

LibVectorMathA comprehensive, no-nonsense vector math library for Lua, designed for Elder Scrolls Online add-on development. Provides 2D, 3D, and 4D vector operations: creation, arithmetic, normalization, dot/cross products, and more.OverviewLibVectorMath is a pure Lua library for ESO add-on developers (and anyone else who needs robust vector math). It supports:2D, 3D, and 4D vector operationsBoth static (function-based) and OOP (mixin) usageAll the basics: add, subtract, scale, normalize, dot/cross product, and moreFeatures2D, 3D, and 4D Vector Support: Separate modules for each dimension.Static Functions: Operate directly on numbers (e.g., Add(x1, y1, x2, y2)).Mixin Objects: OOP-style, e.g., vector:Add(otherVector).Comprehensive API: Includes scaling, division, addition, subtraction, normalization, dot/cross products, angle calculations, and more.Pure Lua: No dependencies except ESOs Lua environment.InstallationExtract the contents of LibVectorMath.zip into your AddOns directory.Declare it as a dependency in your add-on manifest:## DependsOn: LibVectorMathLoad it in your Lua code:local LibVectorMath = LibVectorMathUsageLibVectorMath exposes three main modules:LibVectorMath.Vector2D (2D vectors)LibVectorMath.Vector3D (3D vectors)LibVectorMath.Vector4D (4D vectors)Each module provides:Static functions (operate on numbers, e.g., Add(x1, y1, x2, y2))Mixin objects (OOP-style, e.g., vector:Add(otherVector))API ReferenceVector2DStatic MethodsScaleBy(scalar, x, y): Scales a vector by a scalar.DivideBy(divisor, x, y): Divides a vector by a scalar.Add(leftX, leftY, rightX, rightY): Adds two vectors.Subtract(leftX, leftY, rightX, rightY): Subtracts one vector from another.Cross(leftX, leftY, rightX, rightY): 2D cross product (returns a scalar).Dot(leftX, leftY, rightX, rightY): Dot product.GetLengthSquared(x, y): Squared magnitude.GetLength(x, y): Magnitude (length).Normalize(x, y): Returns a unit vector.CalculateAngleBetween(leftX, leftY, rightX, rightY): Angle between two vectors (radians).RotateDirection(rotationRadians, x, y): Rotates a vector by a given angle.Mixin Methods (OOP-style)Create(x, y): Returns a new 2D vector object.AreEqual(left, right): Checks equality.:Initialize(x, y): Initializes the vector.:IsEqualTo(other): Checks equality with another vector.:GetXY(): Returns x, y.:SetXY(x, y): Sets x, y.:ScaleBy(scalar): Scales this vector.:DivideBy(scalar): Divides this vector.:Add(other): Adds another vector.:Subtract(other): Subtracts another vector.:Cross(other): Cross product with another vector.:Dot(other): Dot product with another vector.:IsZero(): Checks if both components are zero.:GetLengthSquared(): Squared magnitude.:GetLength(): Magnitude.:Normalize(): Normalizes this vector.:RotateDirection(rotationRadians): Rotates this vector.:Clone(): Returns a copy.Vector3DStatic MethodsScaleBy(scalar, x, y, z): Scales a vector by a scalar.DivideBy(divisor, x, y, z): Divides a vector by a scalar.Add(leftX, leftY, leftZ, rightX, rightY, rightZ): Adds two vectors.Subtract(leftX, leftY, leftZ, rightX, rightY, rightZ): Subtracts one vector from another.Cross(leftX, leftY, leftZ, rightX, rightY, rightZ): 3D cross product (returns a vector).Dot(leftX, leftY, leftZ, rightX, rightY, rightZ): Dot product.GetLengthSquared(x, y, z): Squared magnitude.GetLength(x, y, z): Magnitude (length).Normalize(x, y, z): Returns a unit vector.AddVector(left, right): Adds two vector objects, returns a new one.SubtractVector(left, right): Subtracts two vector objects, returns a new one.NormalizeVector(vector): Normalizes a vector object, returns a new one.ScaleVector(scalar, vector): Scales a vector object, returns a new one.CalculateNormalFromYawPitch(yaw, pitch): Returns a normal vector from yaw/pitch.CalculateYawPitchFromNormal(x, y, z): Returns yaw/pitch from a normal vector.CalculateYawPitchFromNormalVector(vector): Same as above, but takes a vector object.CreateNormalVectorFromYawPitch(yawRadians, pitchRadians): Returns a new normal vector object.Mixin Methods (OOP-style)Create(x, y, z): Returns a new 3D vector object.AreEqual(left, right): Checks equality.:Initialize(x, y, z): Initializes the vector.:IsEqualTo(other): Checks equality with another vector.:GetXYZ(): Returns x, y, z.:SetXYZ(x, y, z): Sets x, y, z.:ScaleBy(scalar): Scales this vector.:DivideBy(scalar): Divides this vector.:Add(other): Adds another vector.:Subtract(other): Subtracts another vector.:Cross(other): Cross product with another vector.:Dot(other): Dot product with another vector.:GetLengthSquared(): Squared magnitude.:GetLength(): Magnitude.:Normalize(): Normalizes this vector.:Clone(): Returns a copy.Vector4DStatic MethodsScaleBy(scalar, x, y, z, w): Scales a vector by a scalar.DivideBy(divisor, x, y, z, w): Divides a vector by a scalar.Add(leftX, leftY, leftZ, leftW, rightX, rightY, rightZ, rightW): Adds two vectors.Subtract(leftX, leftY, leftZ, leftW, rightX, rightY, rightZ, rightW): Subtracts one vector from another.Dot(leftX, leftY, leftZ, leftW, rightX, rightY, rightZ, rightW): Dot product.GetLengthSquared(x, y, z, w): Squared magnitude.GetLength(x, y, z, w): Magnitude (length).Normalize(x, y, z, w): Returns a unit vector.AddVector(left, right): Adds two vector objects, returns a new one.SubtractVector(left, right): Subtracts two vector objects, returns a new one.NormalizeVector(vector): Normalizes a vector object, returns a new one.ScaleVector(scalar, vector): Scales a vector object, returns a new one.Mixin Methods (OOP-style)Create(x, y, z, w): Returns a new 4D vector object.AreEqual(left, right): Checks equality.:Initialize(x, y, z, w): Initializes the vector.:IsEqualTo(other): Checks equality with another vector.:GetXYZW(): Returns x, y, z, w.:SetXYZW(x, y, z, w): Sets x, y, z, w.:ScaleBy(scalar): Scales this vector.:DivideBy(scalar): Divides this vector.:Add(other): Adds another vector.:Subtract(other): Subtracts another vector.:Dot(other): Dot product with another vector.:GetLengthSquared(): Squared magnitude.:GetLength(): Magnitude.:Normalize(): Normalizes this vector.:Clone(): Returns a copy.Final NotesThis library is designed for use in Elder Scrolls Online add-ons, but it’s pure Lua, so you can probably use it anywhere Lua runs (with minor tweaks for math functions if needed).If you find a bug, congratulations! You get to keep both pieces. (But seriously, open an issue or submit a PR.)If you use this in your project, give a shout-out. Or don’t. I’m not your mom.LicenseLibVectorMath is not created by, affiliated with, or sponsored by ZeniMax Media Inc. or its affiliates. The Elder Scrolls and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries. All rights reserved.Support & ContributionsIf you find a bug or have a feature request, please submit an issue on GitHubor ESOUI. Contributions via pull requests are welcome!

0

ImperialCartographer (1)

Change Log:——————–V. 1- InitialDescription:——————–This addon adds 3D markers of all POIs around Tamriel. It is an improved compass, more visual and easier to use.DependenciesLib3DLibAddonMenu-2.0LibImplexDisclaimerThis addon was created as a showcase for the LibImplex library, which handles all types of 3D markers, but then I decided to make a complete addon out of it. It requires a lot of time to finish because all POIs must be added manually, since it’s only possible to get XY coordinates via the game API, but the height of all POIs must be measured manually. I will update it gradually. You can find the roadmap below and help with development too!Finished featuresShows all POIs on the mapPOIs with unknown height (which haven’t been added to the addon yet) appear in yellow, are always visible, and their height position equals the player’s current heightAdded POIs appear in blue, at their exact measured points, and are visible from 5m to 235m (POIs appear on the compass near 235m, so I chose this distance)All POIs change transparency based on distanceAll POIs have a label with accurate distanceAll POIs show name and ID when looked at directlyAll POIs show control name and ID when hovered over (will be changed in the future; I plan to display helpful information about the POI instead. Control name and ID are debug info I need currently)RoadmapAdd UI to more easily see which points have been addedAdd all POIs in TamrielAdd…

0

Raffle Gold (30 Days History) (25.45.1)

Change Log:——————–5/17/2025Fixed and issue with Dates being out of visible range, by removing added dates into the future.This was caused by ESO sometimes randomly removing scroll bars from drop down windowsDescription:——————–Gave the Raffle Gold Addon all the Days from Guild History available. No changes otherwise.

0

Soulframe Best Fey Build

Welcome to our Fey Build Guide for Soulframe. In this guide, we’ll explain how you can create a powerful Fey build that deals high damage. The build is good for both solo and co-op play. Fey is one of the Pacts (classes) available in Soulframe. It focuses primarily on melee damage dealing and voltaic (lightning) […]
The post Soulframe Best Fey Build appeared first on AlcastHQ.

0

Soulframe Best Garren Rood Build

Welcome to our Garren Rood Build Guide for Soulframe. In this guide, we’ll explain how you can create a powerful Garren Rood build that deals high damage. The build is good for both solo and co-op play. Garren Rood is one of the Pacts (classes) available in Soulframe. It focuses primarily on melee damage dealing […]
The post Soulframe Best Garren Rood Build appeared first on AlcastHQ.

0

Soulframe Best Ode Tempest Build

Welcome to our Ode Tempest Build Guide for Soulframe. In this guide, we’ll explain how you can create a powerful Ode Tempest build that deals high damage. The build is good for both solo and co-op play. Ode Tempest is one of the Pacts (classes) available in Soulframe. It focuses primarily on melee damage dealing […]
The post Soulframe Best Ode Tempest Build appeared first on AlcastHQ.

0

Quick Bank (1.0.0)

Quick Bank Bank all the main Currenices with one click. For this Addon to work follow these steps: ** Install QuickBank into you ESO Addons file. ** Launch the Game & Login. ** You can bank the total amount that your character is holding of: – Gold, Alliance Points, Tel Var, & Writ Vouchers. ** Head to the banker/ call the player banker. ** A UI window will appear when the Bank Scene opens in the top left by default. ** Click on of the options & the total amount will be deposited into you bank. ** The UI window can be moved & positioned to a prefered place.