[WIP] A Local Manager & Editor for Funscripts and Videos
Hey everyone,
I’m currently working on a new tool designed to make managing and working with funscripts and their associated videos a lot easier.
Why I’m Making This
I’ve downloaded thousands of videos and scripts over time, but keeping everything clean and organized has become a nightmare.
Trying to find a specific video or script often turns into a frustrating mess of folders and filenames.
Why C# Instead of Python?
I know that most tools in this space are written in Python — but I chose C# because:
I have way more experience with C# than Python
It allows me to build a fast, polished native Windows UI with WPF
I’ve seen a lot of users here struggle with Python tools due to confusing install steps or missing dependencies
My goal is to make it feel like a regular Windows app: simple to install, easy to use, and reliable no messing with environments or terminals.
Core Features (planned & in progress):
A clean local library to organize your videos and funscripts
Tagging, filtering, and searching support
Preview thumbnails and metadata display
Simple drag-and-drop or folder-based import
Optional linking of scripts to videos automatically
Planned Extras:
A basic funscript editor (timeline + value curve editing)
A built-in funscript preview player (video + device output preview)
Potential integration with local tools like ScriptPlayer or OFS
Batch tools like script renaming, trimming, or conversion helpers
AI Assisted tools using the onnx runtime (Im not sure what if any tho)
I’m also planning to add optional compression features, so I can reduce the overall disk space usage of my collection without losing data.
The goal is to make it lightweight, useful, and completely offline-first.
It’s a WPF desktop app written in C# and currently in early development but it’s already taking shape.
I’d Love Your Feedback:
If you’ve ever found yourself juggling tons of scripts and videos, what features would you want in a tool like this?
What annoys you the most when managing scripts or setting up new scenes?
What kind of editor features would be helpful but not overkill?
Any quality-of-life ideas that would make this a daily-use app for you?
Let me know your thoughts and suggestions! I’m building this with community use in mind, and would love to shape it around real feedback.
I’ll be posting updates here as things come together, and releasing test builds as soon as it’s functional enough to share.
All code will be released on GitHub once i have it in a acceptable state.
QT with either C++ or Python achieves the same thing while also being deployable to mac/linux. Arguably far more open source friendly also, like you said, most devs in this community speak Python.
That’s because most don’t bother making actually coherent installable packages out of their scripts/small GUI programs, because it’s often not needed. Just document them properly and have a bit of bash to automate env creation/building/installation, and you’re done. The problem is that’s a lot of overhead for single devs typically making small automation tools for themselves or the community. For a bigger project like yours or FunGen or others, yeah for sure installable/executable versions should be made, and that’s entirely possible in python too. This isn’t about what is and isn’t possible as much as it is about how much time and effort people can dedicate to build up this open source community.
Like i have a similar moonshot proposal to create a next gen replacement of OFS focusing on scripting automation and extendability written with pyqt. Sounds nice, would I be able to achieve all that by myself in a reasonable timespan, considering i also have a life outside of this? no.
I understand wanting to stick with what’s familiar over trying something different. That’s a choice in the end, but i would argue a lot of folks here would prefer more consideration towards multiplatform support. There’s probably other ways to write C# apps that don’t lock you on Windows. I would also argue a bunch of features you’ve listed have already been attempted by other smaller scripts and projects on this forum, so it would be wise to first check out what’s already available and see maybe they can be extended or combined.
I’m making something too, in Typescript/Vue
I think I have already like 3 dropped scratches of managers and have a working EDI reimplementation and script editor
Should post it as well I guess
Can’t you just run it with Wine?
Weeeeell, if you use LLMs you can make a working implementation in an evening (I did)
Miss me with vibe coding for anything larger than a few hundred lines of code for a small automation script, respectfully. I’m an embedded software engineer, i prefer to create proper architectures for what i’m coding.
Also “just run it in wine” is not a wholesale replacement for proper multiplatform support.
I’m going to stop y’all before it keeps going. That is not the subject, his decisions have been made. Let’s keep the post clean for those that actually want to answer to OP.
unfortunately its not just a few hundred lines at this point, and i genuinely still have no idea what vibe coding is, i keep reading articles and memes about it but i still don’t really understand what it means sorry.
tags were the many thing i was wanting to focus on with the searching (other then by title), i have seen that some funscripts have a tags section in them but were never filled so that was annoying to me
A feature I would love is being able to have multiple different scripts linked to the same video. I have a few videos that have had different versions from different scripters, or variations of the same script from the same scripter (e.g. HARD / SOFT, EASY vs. ADVANCED, etc.) I was thinking of figuring out how to give each video and associated scripts a unique ID at the beginning of the file names that the program uses to actually do the matching, then past that GUID everything would be considered a comment basically, or metadata, Ideally also being able to switch between them easily, perhaps even while watching the video..
Just make it a postfix same as a multi-axis postfix, and make player ignore it
e.g. example.mp4, example.funscript and example.[simple].funscript example.roll.funscript and example.[simple].roll.funscript