Skip to content

Instantly share code, notes, and snippets.

View stravant's full-sized avatar

Mark Langen stravant

View GitHub Profile
@stravant
stravant / feedback.csv
Created October 11, 2026 10:19
All CoinHunt user feedback (to 2026-10-11)
Rating Device Type Platform Timestamp Comment
InExperience Computer Windows 1791713455512 The Metal Detecting and the Mint is not working.
InExperience Computer Windows 1791712270385 old fairground doesnt work
InExperience Tablet iOS 1791680871803 Your 1943 Pennys should be made of steel.
InExperience Computer OSX 1791680407805 I'd like to be able to more easily rotate the coins.
InExperience Computer Windows 1791680004160 topdadsdasda
InExperience Tablet Android 1791677576577 Add it so I can turn off the talking it makes me very uncomfortable
Upvote Computer Windows 1791676825355 Being able to rotate the coin to get a better look at the date would be nice
InExperience Computer Windows 1791676466680 could you add ways to earn points throughout the day? quizzes etc? i'm autistic and this game reaaally helps me so would love this!!!
InExperience Computer Windows 1791659924023 make so i can find coins ore buy rolls infinite so i dont have to stop everyday
@stravant
stravant / gist:eb7da2730dc5626398052fd5dbdca4a7
Created October 11, 2026 10:15
Claude CoinHunt telemetry analysis (to 2026-10-11)
The game's main problem is that players don't come back, and most of the fixable loss is in the
first ten minutes: the tutorial sort on phones and the first real roll right after it.
Sources: Roblox's analytics API (09-23 to 10-11), 19,908 first-session logs (10-03 to 10-10),
and 3,607 player saves joined to their logs. The saves are a one-moment sample, not a census.
The picture
- Growth is bought. 91% of users come from sponsored ads; home recommendations bring 0.5%. DAU
is about 4,000, and 83% are new each day.
┌───────────────────┬───────┬─────────────────────┐
│ Left at │ Share │ Median time reached │
├───────────────────┼───────┼─────────────────────┤
│ Welcome │ 15% │ n/a │
├───────────────────┼───────┼─────────────────────┤
│ Table │ 5% │ 16 s │
├───────────────────┼───────┼─────────────────────┤
│ Sort │ 27% │ 24 s │
├───────────────────┼───────┼─────────────────────┤
│ Bank │ 2% │ 2.6 min │
@stravant
stravant / reloader.gd
Last active November 15, 2025 21:23
Simple plugin auto-reloader for Godot plugin development
################################################################################
## stravant's Godot plugin auto-reloader ##
## For ease of plugin development ##
## MIT licensed ##
## ##
## Call preload("./reloader.gd").new() in your EditorPlugin component's ##
## _enter_tree method to enable automatic reloading whenever you save changes ##
## to any of the plugin files for a tighter plugin rapid prototyping loop. ##
## ##
## Source: https://gist.github.com/stravant/7aec484bb5e34e3a6196faaa13159ac3 ##
@stravant
stravant / DatastoreBytes.lua
Created October 24, 2023 04:50
Module which packs a sequence of variable length integers into a Datastore safe string at maximal density
local DS_INT_TO_INT = {} :: {[number]: number}
local INT_TO_DS_INT = {} :: {[number]: number}
local INT_TO_DS_CHAR = {} :: {[number]: string}
local DS_INT_MAX;
do
-- All characters under this are control characters, must avoid them because
-- they get expanded out into control sequences.
local MIN_DS_VALUE = 0x20
local MAX_DS_VALUE = 0x7E
for i = 1, 5 do
local part = game.ReplicatedStorage.FogPart:Clone()
part.Parent = workspace
part.Position = Vector3.new(0, i * 10, 0)
end
workspace.Checkpoints.ChildAdded:Connect(function(checkpoint)
if checkpoint.Name == "100" then
checkpoint.Touched:Connect(function(hit)
... same touched stuff
end)
end
end)
@stravant
stravant / createSharedToolbar.lua
Created August 15, 2022 07:48
createSharedToolbar Module
local CoreGui = game:GetService("CoreGui")
export type SharedToolbarSettings = {
ButtonName: string,
ButtonIcon: string,
ButtonTooltip: string,
ToolbarName: string,
CombinerName: string,
ClickedFn: () -> (),
@stravant
stravant / createSharedToolbar.lua
Created June 23, 2022 07:02
Module that manages a toolbar shared by multiple plugins in a way that supports reloading.
local CoreGui = game:GetService("CoreGui")
export type SharedToolbarSettings = {
ButtonName: string,
ButtonIcon: string,
ButtonTooltip: string,
ToolbarName: string,
CombinerName: string,
ClickedFn: () -> (),
@stravant
stravant / fetch_masterduel_info.py
Created February 14, 2022 05:32
Fetch info from masterduelmeta.com to compute relative value of SRs / URs.
import requests
import json
import urllib.parse
import re
top_decks_url = "https://www.masterduelmeta.com/api/v1/top-decks?limit=0"
included_cards = {
"Lightning Storm": 1,
"Solemn Judgment": 1,