A request was made to create and maintain a sticky thread explaining the patch process for non-devs.
The process is actually quite simple.
A successful submit requires social and technical skills.
The set of social skills includes the ability to get along with devs at the KoLmafia.us community. Users that have managed to alienate themselves from members of the dev team tend to have their proposed patches ignored.
The ability to determine the appropriateness of a patch and the level of support for it is extremely useful. A patch that violates the spirit of KoLmafia (for example, that allows access to non-KoLmafia directories in the user's file system) will be rejected. A patch that changes an existing feature would need some discussion. A patch that changes a lot of code to implement a feature of at best niche interest is unlikely to be accepted.
The technical skills are the ability to write and test Java code that works in the context of KoLmafia. A prerequisite for success is the ability to read and understand KoLmafia's code and infer its archetecture since those are not well documented in the traditional sense.
Some existing links that may bear on this are:
Note that the contents of some of these links may be out of date but perhaps an effort to use them will result in updates
Individuals with a good track record of creating and submitting patches can ask to be made a dev. The active devs who can do this are veracity0 and lostcalpolydude.
This post is a beginning in hopes that it will attract useful information and eventually become one stop documentation.
To the extent that opinions are expressed, they are all my personal opinions and I reserve the right to change them if someone thinks I am wrong
The process is actually quite simple.
- Write and test a patch.
- Post the patch file on kolmafia.us.
- Wait for a dev to submit the patch for you.
A successful submit requires social and technical skills.
The set of social skills includes the ability to get along with devs at the KoLmafia.us community. Users that have managed to alienate themselves from members of the dev team tend to have their proposed patches ignored.
The ability to determine the appropriateness of a patch and the level of support for it is extremely useful. A patch that violates the spirit of KoLmafia (for example, that allows access to non-KoLmafia directories in the user's file system) will be rejected. A patch that changes an existing feature would need some discussion. A patch that changes a lot of code to implement a feature of at best niche interest is unlikely to be accepted.
The technical skills are the ability to write and test Java code that works in the context of KoLmafia. A prerequisite for success is the ability to read and understand KoLmafia's code and infer its archetecture since those are not well documented in the traditional sense.
Some existing links that may bear on this are:
- https://kolmafia.us/showthread.php?10430-eclipse-setup-tricks-etc
- https://wiki.kolmafia.us/index.php?title=Compiling_from_Source
- https://wiki.kolmafia.us/index.php?title=Making_a_Patch
- https://wiki.kolmafia.us/index.php?title=Mafia's_Code
- http://kolmafia.sourceforge.net/
- https://sourceforge.net/projects/kolmafia/
Note that the contents of some of these links may be out of date but perhaps an effort to use them will result in updates

Individuals with a good track record of creating and submitting patches can ask to be made a dev. The active devs who can do this are veracity0 and lostcalpolydude.
This post is a beginning in hopes that it will attract useful information and eventually become one stop documentation.
To the extent that opinions are expressed, they are all my personal opinions and I reserve the right to change them if someone thinks I am wrong
