Conversation
Neerti
marked this pull request as draft
September 17, 2026 05:24
Neerti
force-pushed
the
nebula_merchant_refactor
branch
5 times, most recently
from
September 17, 2026 11:09
0c3c171 to
41b3a68
Compare
Neerti
marked this pull request as ready for review
September 17, 2026 11:16
Neerti
force-pushed
the
nebula_merchant_refactor
branch
from
September 21, 2026 11:59
44d4f91 to
f5bfc5d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
After 15 months in development, hopefully it will have been worth the wait.
This project rewrites merchants more or less from scratch, with the aim of being highly configurable and modular. I rewrote the merchant system due to running into a lot of limitations while trying to make a downsteam fork that relied heavily on merchants as a replacement for things like cargo supply packs. The highly modular nature of this rewrite was done so that I can have a good foundation to place my changes on top of, without unnecessarily impacting other people who might have different ideas.
The code for the new merchants are now inside two modpacks. The first modpack, titled Merchants, holds all of the systems for the merchants features, such as base types for merchants, trade hubs, the in-game merchant computer program, the trade subsystem, etc. The second modpack, titled Standard Merchants, hold the content such as individual merchant definitions. These are separated out in order to allow for downsteam servers to use the merchant system by itself and not include merchant types they might not want to use.
Any map that wants to have a trade pad mapped in will require a dependency on at least Merchants. Tradeship has a dependency on both Merchants and Standard Merchants. The Liberia map, for playable merchants, has a dependency on Merchants.
There is a readme at the base of the Merchants modpack which gives some more information on how the systems connect together, as well as instructions on how to make new content using the system.
Description of changes
Here is a list of new functionality added by the rewrite:
Why and what will this PR improve
This will continue Neb's goal of modpacking features and becoming more modular, and the rewritten system is intended to be highly customizable. It also removes some really awful code (
/datum/trader/proc/get_possible_item()comes to mind).Authorship
Neerti
Changelog
🆑
refactor: Merchant system has been completely rewritten.
add: Merchants can be haggled with. Bad offers might offend the merchants, so beware.
add: Merchants can be asked more questions, such as how long they will stay for, or how much they would buy things for.
add: Merchant program can alert people near the console that a merchant has arrived at, or left from, a trade hub that it has access to.
add: New Smuggler merchant, who generally requires a bribe to be interactable. They seek to buy illicit goods.
add: New Damaged Ship merchant, who wants to buy construction supplies and medication, to recover from an incident.
add: New Fishmonger merchant, who buys dead fish, and sells fishing gear and some aquatic goods.
/:cl: