Jump to content

Community Mod Repository and The Majiir Challenge


Majiir

Recommended Posts

Results that have higher followers and downloads, a longer version history, lots of screenshots/videos, support for the latest version for KSP, and are open source are given a higher score. Points are lost for going too long without updating your mod, or for having a short description.

Please also keep in mind that putting more weight on seasoned mods can be pretty bad for new mods, in that they become invisible.

Link to comment
Share on other sites

Please also keep in mind that putting more weight on seasoned mods can be pretty bad for new mods, in that they become invisible.
What if a mod is <1 month old, then I can give it a hefty bump just to increase exposure?

This. 1000x this. I cannot overstate how much is lost when those tiny little mods that add a minor but very useful/cool feature get buried under the overwhelming domination of the large few. For this modding community to develop, it must be possible for new and small mods from unknown authors to gain exposure.

Any mod repository that can do that that gets my vote.

Link to comment
Share on other sites

Implemented search. You can see it in action at [Link removed by moderator:  original site defunct, now taken over by malware] . I ended up going with this ranking algorithm:

 
def weigh_result(result):
    # Factors considered, * indicates important factors:
    # High followers and high downloads get bumped*
    # Mods with a long version history get bumped
    # Mods with lots of screenshots or videos get bumped
    # Mods with a short description get docked
    # Mods lose points the longer they go without updates*
    # Mods get points for supporting the latest KSP version
    # Mods get points for being open source
    # New mods are given a hefty bonus to avoid drowning among established mods
    score = result.follower_count * 10
    score += result.download_count
    score += len(result.versions) / 5
    score += len(result.media)
    if len(result.description) < 100:
        score -= 10
    if result.updated:
        delta = (result.updated - datetime.now()).days
        if delta > 100:
            delta = 100 # Don't penalize for oldness past a certain point
        score -= delta / 5
    if len(result.versions) > 0:
        if result.versions[0].ksp_version == _cfg("latest-ksp"):
            score += 50
    if result.source_link:
        score += 10
    if (result.created - datetime.now()).days < 30:
        score += 100
    return score

def search_mods(text, page):
    terms = text.split(' ')
    query = db.query(Mod).join(Mod.user)
    filters = list()
    for term in terms:
        filters.append(Mod.name.ilike('%' + term + '%'))
        filters.append(User.username.ilike('%' + term + '%'))
        filters.append(Mod.description.ilike('%' + term + '%'))
        filters.append(Mod.short_description.ilike('%' + term + '%'))
    query = query.filter(or_(*filters))
    query = query.filter(Mod.published == True)
    query = query.order_by(desc(Mod.follower_count)) # We'll do a more sophisticated narrowing down of this in a moment
    query = query.limit(100)
    results = sorted(query.all(), key=weigh_result)
    return results[page * 10:page * 10 + 10]

Basically, it starts with a broad search to find published mods with the search terms in the title, description, short description, or author name, and orders this by the follower count. Once it has that, it scores them based on:

  • Follower count
  • Download count
  • Length of version history
  • Number of screenshots/videos
  • Detail of descriptions
  • Most recently updated
  • Support for the latest KSP version
  • Open source gives you a boost
  • Being a new mod gives you a boost

Not all of these factors are given equal weight, but it should give a reasonable ranking. I'll tweak it over time to make it give the best results.

Edited by Snark
Link removed by moderator; original site defunct, now taken over by malware
Link to comment
Share on other sites

Hello everyone,

This discussion convinced me to join the mess. Have you ever considered Drupal for the job? It is pretty heavy and easy to make into a hell, but if done properly by a dev who knows what he is doing, it can be set up for the job within a week.

At this point of time I'd recommend Drupal version 8, it will be easier to develop later with the growing needs of the community.

Drupal offers out of the box, with easy configuration or light code snippet, or extra modules available:

- customizable node content management

-- all the data structure dreams and desires with fields

-- file fields, for attaching mod files themselves, screenshots, licenses, source code, etc..

-- revisioning. Mod versions stick with their posts in revision history

- there are modules to handle screenshot file field galleries

- taxonomy for all your categorization needs

- threaded commenting if needed

- configurable user roles for various permission groups

- statistics for tracking every record you configure

- searching options up to apache solnr which is amazing when set up on different vps

- a lot of modules available to handle rich text formatting, with purification in mind

- embedded media in rich text or as a node data field

- node relations by entity api, enabling options to specify incompatibilities, dependencies of nodes (mods)

- oauth module, works on D7, but need to check for D8

- responsible theme boilerplates, adaptivetheme is my favorite

- gynormous community around Drupal

- proven to handle big projects like ONN :-)

- backup and migrate is stock functionality from D8

I think we will find more goodness to adapt and utilize as time goes. I can set up a test sandbox on one xAMP vps, Debian or FreeBSD are my choices of OS. Problem is that I cannot start before 28th of June when I am back to Finland. I am travelling right now and 7" android tablet is all I have at the moment. It works well for maintaining my stuff but not too comfy for bootstrapping a project.

So as we still have time, do your research and give your opinions.

Greetings from Italy

Link to comment
Share on other sites

Added support for uploading new versions of your mods, including changelogs. Users can view and download any previous version. live demo

https://cdn.mediacru.sh/gyKK4hG_Uc4Y.png

Make the ksp version imput a drop-down menu rather then a text box. It will harder for the modder to mess up( for example: forget the zero, add a space, forget the decimal) and easier for the search engine to find

Link to comment
Share on other sites

Make the ksp version imput a drop-down menu rather then a text box. It will harder for the modder to mess up( for example: forget the zero, add a space, forget the decimal) and easier for the search engine to find

I can do that (and probably will), but what you can't tell from the screenshot is that as you start typing versions, it autocompletes them for you. Video

Link to comment
Share on other sites

Sorry about the triple post, but I thought I'd mention that Kerbal Stuff is in open beta now. It's entirely usable now and I'm just adding polish at this point. The list of currently implemented (and working) features is...

  • Create and publish mods
  • Publish new versions of existing mods (with optional changelogs)
  • Users can browse and download old versions of mods
  • Search with a sensible algorithm that weights results intelligently
  • Follow mods to be emailed when they update
  • Admins can do anything a normal user could do, plus feature cool mods on the front page
  • Download stats are being tracked and will soon be available to modders
  • Redesigned to look less like crap

This is the time to commit to Kerbal Stuff if you're excited about it. I need modders to get involved and start posting their mods on the site, and telling users to use Kerbal Stuff to get your mods. It would probably be a good idea, for example, to publish your mods now and have users start subscribing to email updates to they get a handy email as soon as you publish the 0.24 updates. Of course, it is a beta, so please let me know if you find any problems and feel free to send any general feedback my way as well.

Forum thread

Link to comment
Share on other sites

The site is absolutely gorgeus. Way better than that thing of evil called Curse Forge and at least 20 times more intuitive and functional.

Thanks! It used to look pretty meh, but I spoke with a coworker who does design stuff about it and got some good feedback.

Link to comment
Share on other sites

  • 1 month later...
I would add the Eterno Rest 2000 Space Coffin, but sadly the file on my old dying laptop was corrupted and the file no longer contains the part.cfg, its textures, and the models.

Am I missing something here? Can't you just upload a copy of the one on curse? Heck, I've got a couple version of the mod.

Link to comment
Share on other sites

  • 1 month later...
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...