Skip to content

[Anchor] Custom Models for Each Player#6179

Draft
Jameriquiah wants to merge 17 commits intoHarbourMasters:developfrom
Jameriquiah:anchormodel
Draft

[Anchor] Custom Models for Each Player#6179
Jameriquiah wants to merge 17 commits intoHarbourMasters:developfrom
Jameriquiah:anchormodel

Conversation

@Jameriquiah
Copy link
Contributor

@Jameriquiah Jameriquiah commented Jan 20, 2026

Adds a system where players can have custom models and see eachother's custom models while playing Anchor.

Here is a zip with 3 mods set up for this for testing, Salem, Amara64, and Miku by konatizer : anchor_mods_for_testing.zip

Works by mods adding a mods.json into the root of their otr/o2r which has a model id, this id gets sent to the other player's games to tell their client which model to load over your character. Modders can set whatever they want for the id, as long as its something unique that is unlikely to also be used by another mod in the future. All mod.json needs is a single line: { "id": "<modelid>" }

For models to show up for other players they need a separately packaged "anchor version". I've set this up to load these models from objects/object_anchor_models/<modelid>_child|adult/. This where modders will want to export their models to, alternatively they could also just batch rename all the file paths in their mod to point to this new folder while also moving the actual mod files into it as well. Both the normal local mod and the anchor variant both need a matching mod.json with the same id. The idea is you drop your local mod into your mods, and your friends will drop the anchor variant of your model into their mods folder, you would do the same for the anchor variant of their mod as well.

Ideally I would have preferred to have the local and anchor versions of mods to be one in the same, so anchor can just pull from vanilla asset paths which is less work for modders, and just have those mods load from entirely different mods folder as to not collide with your own game assets locally, unfortunately I could not figure out how to get this to work.

I've fixed a lot of the issues I've ran into so far but this one is stumping me, I am hoping that someone smarter than me can take a look and assist.
If your friend has a model that is sending a modelid from a mod.json but you do not have their anchor variant in your mods folder, your game will crash if you toggle mods off, and your model will turn into a broken Link model if they toggle mods off, but they won't crash at least.

I also would like to add custom voice support for each player as well but I couldn't figure out how to get that working. Issue for another day though...

anchormodels

Build Artifacts

@Jameriquiah Jameriquiah marked this pull request as draft January 20, 2026 08:20
@garrettjoecox
Copy link
Contributor

Nice work! I think this is a fine interim solution for people who want this feature, but I don’t think this is the experience we want merged into the main build. As you said the repacking situation is not ideal, and introduces a new pattern for modding that we probably want to take a step back and solve in a more elegant way, potentially in LUS

@Jepvid
Copy link
Contributor

Jepvid commented Jan 20, 2026

Ive been spitballing with Jamer on this front but its really hard to find a solution to this.

Different ideas we've had is

  • Anchor Model Repository to let anchor handle the model loading itself?
  • introduce a .apm (anchor player model) file?
  • Make ship recognize that the player model is anchor enabled and double load it into a separate folder to load the models from
  • a anchor mods folder?

Weve tried to some different ideas but just limited by lus

@Pepe20129
Copy link
Contributor

Pepe20129 commented Jan 20, 2026

Another way to do it would be my earlier attempt which is a minimal way to do it without much complexity. It does still require mods to be made to work with it but it's just exporting to a different folder (and it could be expanded to allow for custom skin switching outside of anchor too).

Imo, mod.json should be used for future mod metadata instead.

@serprex serprex requested a review from garrettjoecox January 20, 2026 13:38
@Jameriquiah
Copy link
Contributor Author

Nice work! I think this is a fine interim solution for people who want this feature, but I don’t think this is the experience we want merged into the main build. As you said the repacking situation is not ideal, and introduces a new pattern for modding that we probably want to take a step back and solve in a more elegant way, potentially in LUS

my thoughts exactly. i had a strong feeling that LUS changes were the way to go for getting the ideal solution, i was just afraid of doing something with LUS and then accidentally messing with the rest of the ports in the process. at the very least this could make a base or reference point for either myself or even someone else to implement a better way of doing this. as yea this isnt the most ideal solution for modders, and even users could potentially find it a little confusing and maybe a tad overwhelming to try and figure out what goes where between them and their friends.

@Jameriquiah
Copy link
Contributor Author

best case scenario for everybody i think is just use a second mods folder anchormods or something that users can just drop the same exact o2rs their friends are using. second mods folder only so assets from those mods dont overwrite stuff in their own game if they dont want them to

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants