Skip to content

Instantly share code, notes, and snippets.

View gaymeowing's full-sized avatar
🧙‍♀️
diverging they neurons

witchiest gaymeowing

🧙‍♀️
diverging they neurons
View GitHub Profile
--!native
--[[
setup dragdetector
originally wriitten by PrinceTybalt on 10/6/2023, this is a refactored version
that is a function that can be applied to any drag detector, and doesnt require
cloning any scripts
original: https://create.roblox.com/store/asset/14988529693
]]
@gaymeowing
gaymeowing / weak.luau
Created November 29, 2024 21:40
a weak table utility so its easier to get types with weak tables
--!native
-- weak
-- a weak table utility so its easier to get types with weak tables
--[[
this has string temporarially, so that the type checker wont scream when
the __call metamethod is used
--]]
export type WeakType =
-- impl
-- a wrapper for easily implementing properties and methods
-- in lune to mock roblox stuffs
local roblox = require("@lune/roblox")
export type GenericInstance<I> = roblox.Instance & I
type PropertySetter<I, P> = (instance: GenericInstance<I>, new_value: unknown) -> P
--!native
-- duster
-- fast and lightweight maid impl ( thats also better than janitor )
type Types = "table" | "function" | "thread" | "Instance" | "RBXScriptConnection"
type TableCleanupMethod = <V>(self: (V & {})) -> ()
export type Cleanable =
--!native
-- uuid
-- function for generating a uuid, based on https://gist.github.com/jrus/3197011
local uuid_format = "%x%x%x%x%x%x%x%x-%x%x%x%x-4%x%x%x-%x%x%x%x-%x%x%x%x%x%x%x%x%x%x%x%x"
local wrap_in_curly_braces_format = "{%*}"
local string_format = string.format
local random_seed = math.randomseed
local random = math.random
@gaymeowing
gaymeowing / Exp.luau
Created March 20, 2024 15:15
Class for experience and levels
--!native
--!strict
-- Exp
-- Level and experience class modified from
-- https://rostrap.github.io/Libraries/Math/Leveler/
-- @Kalrnlo
-- 20/03/2024
local Players = game:GetService("Players")
--!native
-- abbrev timezone
-- simple function for getting a timezone in its abbreviated form
-- ie EST (Eastern Standard Time)
local GSUB = string.gsub
local DATE = os.date
local function abbrev_timezone(offset: number?): string
local function AssetTypeToAccesoryType(AssetType: Enum.AssetType): Enum.AccessoryType
local Success, EnumItem = pcall(function(EnumItemName)
return if Enum.AccessoryType[EnumItemName] ~= nil then Enum.AccessoryType[EnumItemName] else nil
end, string.split(AssetType.Name, "Acc")[1])
return if Success then EnumItem else Enum.AccessoryType.Unknown
end
print(AssetTypeToAccesoryType(Enum.AssetType.WaistAccessory)) --> Enum.AccessoryType.Waist
print(AssetTypeToAccesoryType(Enum.AssetType.Hat)) --> Enum.AccessoryType.Hat
@gaymeowing
gaymeowing / Caller.luau
Last active February 9, 2024 16:58
Simpler alternatives to signals
--!strict
-- Caller
-- a simple signal alterative, thats a function that returns 2 functions
-- first is for adding a callback and returns a function to disconnect
-- second is for running the callbacks with the given values
-- inspired by bin from util.redblox.dev
-- 09/02/2024
-- @Kalrnlo
@gaymeowing
gaymeowing / PlayerLoaded.Zap
Last active January 21, 2024 02:29
PlayerLoaded event handler for Zap https://zap.redblox.dev/
type void = boolean?
event PlayerLoaded = {
from: Client,
type: Reliable,
call: SingleAsync,
data: void
}