CustomIslandsLoader
Runs custom islands - both maps that replace one of the game's five and brand new islands added out in open water. Install an island pack and play. Any map that is a bundle and a json drops straight in.
| Date uploaded | 4 days ago |
| Version | 1.6.1 |
| Download link | YoxiUI-CustomIslandsLoader-1.6.1.zip |
| Downloads | 2897 |
| Dependency string | YoxiUI-CustomIslandsLoader-1.6.1 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
CustomIslands Loader
Play custom, community-made islands in How to Fish.
An island comes with its own terrain and scenery, and the real game working on top of it: NPCs that talk and trade, working shops with price tags, the boat, creature spawns, even a casino. Built by players, played like the real thing.
Two kinds of island, one mod
Replacement islands stand in for one of the game's five. The map says which one it replaces. A map built from scratch borrows that island's NPCs, shops and progression; a map forked from the game's own island carries its own copies, and the loader makes those copies the real thing at load (see below). Either way everything on it works exactly as the original did.
Added islands are brand new places out in open water. They do not replace anything. They appear on the radar in their own colour, you sail to them like anywhere else, and they carry their own NPCs, shops and wildlife rather than borrowing.
Added islands do not touch your progression. Reaching one needs nothing unlocked, and nothing here writes to your save's island unlocks.
What the loader does to a map at load
A map cannot carry the game's items, bait cards, attachment cards or NPCs: those live inside the game, and a copy of one in a map is a different object as far as the game is concerned. So the map's json carries its paperwork: which stand sells which item, which bait card a bait stand holds, which creature a spawner spawns, and the prefab every NPC is spawned from, all written down when the map was built.
At load the loader does the one thing the game itself does: it loads those assets from the game and hands them to the map, and it stands the game's own NPCs where the map put them. Nothing is opened beside the map, nothing is matched by name, nothing is guessed. The casino, the slot machine and the grill are scene objects of the game's islands rather than loadable assets, so those alone are lifted out of the island the paperwork names and put where the map's copies stand.
Older maps have no paperwork. They keep loading the way they always did: the loader opens the original island beside them and takes what the copy could not carry.
None of this needs a setting. If something on a map still looks wrong, the log says what the loader found and what it changed.
Installing islands
An island is two files that share a name.
- Replacement:
somemap.bundleandsomemap.jsoninBepInEx/plugins/HTFMaps/ - Added:
somemap.islandandsomemap.jsoninBepInEx/plugins/HTFExtraIslands/
From Thunderstore, install the island pack with your mod manager and it lands in the right place on its own. There is nothing to configure: the json carries the island's design, including which island it replaces or where in the world it sits.
Installing this mod
With a mod manager (easiest)
- Install r2modman or the Thunderstore Mod Manager.
- Select How to Fish, search for CustomIslandsLoader, click Install. BepInEx comes automatically.
- Install an island pack, then press Start modded.
Manual
- Install BepInEx 5 x64 into the game folder, run the game once, quit.
- Copy HTFMapLoader.dll into
How to Fish/BepInEx/plugins/. - Drop island files into
BepInEx/plugins/HTFMaps/orBepInEx/plugins/HTFExtraIslands/.
Seeing where you are
This used to have a full screen chart on M. It has been dropped: the game already has a radar for direction, and a map that has to draw islands bigger than life to make them visible has to bend the sea around them to match, which is a lot of machinery to end up less accurate than a camera pointed at the ground.
Minimap is that camera. It is a separate download and it shows the world under you live, with your boat in it, on any island including custom ones.
Switching an island back to the original
No file deleting needed. The config has an on/off per island:
[Maps]
UseCustomIsland1 = true
...
UseCustomIsland5 = true
Set one to false and that island loads the ORIGINAL next launch, with
the map files left installed for later. Mod manager users can edit this
in the manager's built-in Config editor; manual installs edit
BepInEx/config/yoxi.htf.maploader.cfg.
This applies to replacement islands. Added islands are separate and are not affected.
Co-op
Everyone in a lobby needs the same mod and the same islands. The game syncs which island is loaded as a number, so a player without them either stands in different scenery than the rest of the crew, or cannot follow you to an added island at all.
Players who join a host stay in step with the wallet: the map's NPCs are registered on their side too, and an NPC the host sold to can never make a joining player drop the wallet update that travels with it.
Any map, whoever built it
A map is two files with the same name: a Unity asset bundle holding the
island scene, and a json beside it saying what the island is called, which
of the game's islands it replaces (or where it sits if it is an added one)
and, for newer maps, the paperwork above. Drop both into
BepInEx/plugins/HTFMaps and the loader takes it from there. It does not
matter which tool built them.
Skies: players running Living Skies get the full day-night cycle and storms over every island, custom ones included.
A note on testing
This build is tested, but not thoroughly, as I am only one person. There
are a lot of combinations I cannot cover on my own. If you hit an issue,
please DM me on Discord: yoxiui. Tell me what you were doing and send
your BepInEx/LogOutput.log if you can, and I will get it fixed.
Notes
- Contains no game assets. Islands and tools are all generated content.
- An island's bundle must sit beside its json, both named the same.
More from Yoxi
- Minimap - a live minimap in the corner, and the companion to this mod
- BetterIslands - an island pack: hand-built replacements for the game's islands
- MoreIslands - an island pack of brand new places out in open water
- Living Skies - day-night cycle plus storms, rain, lightning and thunder
- Better Oceans - a better sea to sail and fish in
- Torch - a torch you can carry and light the dark with
A note on AI
I used AI to help with parts of this mod, which is why it has the AI-generated tag. But let me be straight about it: AI did not make this mod, I did. Every idea in here is mine. I worked out how the game loads its islands, I built and tested every custom island this runs, I sat in the game for hours watching maps load, break and load again, and I threw out and redid anything that was not right, over and over, until it was. AI helped me write some of the code faster. There is only so much AI can do, and the rest, which is most of it, is me.
Built by Yoxi.
CHANGELOG
Changelog
1.6.1
- A map unloaded mid-setup no longer loses the rest of its setup. A join loads the map twice and drops the first copy while the loader is still fetching the game's casino from another island. Measured in a log: the next step threw on the vanished scene and everything after it (shaders, the NPC register, wiring, the boat) was skipped in silence. The loader now notices the scene has gone and lets the second load do the work, and every remaining step stands on its own, so one failing never takes the others down.
- The NPC line in the log says where each NPC was stood and which way it faces, so a placement question can be answered from the log.
- README no longer points at the Mapmaker Kit. A map is a bundle and a json, whoever built them.
1.6.0
- Maps with paperwork load without guessing. A map built with kit 1.9 or later arrives with a list of every game asset it uses (which stand sells which item, which bait card, which creature a spawner spawns) and the prefab every NPC is spawned from. The loader loads those straight from the game's own Resources and stands the game's own NPCs where the map put them. No island is opened beside the map, nothing is matched by name, nothing is repaired by hand. The casino, slot machine and grill are scene objects of the game's islands, so those alone are still taken from the island the paperwork names. Maps built with older kits keep loading the way they did.
- Every lamp lights every wall. The renderer decides which lights reach a wall by a layer mask the game leaves on its lamps, and a map's walls sat on a different layer, so a whole house stayed dark. Every lamp on a map is now opened to every layer, and the baked point lamps the game never meant to run live are given the strength they need.
- The game's text components run. The kit puts them to sleep so they do not start the game's localisation in the editor; the loader wakes them.
- The casino keeps the map's furniture. The game's roulette meshes are batched into the island and do not move with the object, so the map's own copies stay where they were placed and the game's mechanism is stood on them.
- The table lands where the map put it, even for a map whose casino was laid out against another island's arrangement.
- The traces are off unless Verbose is on. The mouth, prompt, money and casino traces from the co-op investigation wrote to the log once a second near an NPC. They stay in the mod for the next report and are applied only with Verbose set in the config.
1.5.19
- The "Talk" prompt comes back after an NPC has spoken. While the speech bubble is up the game skips the prompt but still marks the NPC as hovered; when the bubble closes on its own, the prompt stays gone until you look away and back. Measured on a joining player standing at an NPC for half a minute with no prompt. Once the bubble is closed and nothing is on the look-at line, the prompt is put back.
1.5.18
- The talk prompt is traced in the log. For the report of an NPC showing no "Talk [E]": whenever an NPC's collider is inside the player's interaction reach, the four things the prompt depends on (layer, tag, the interactable table, the dialogue box state) are written down once a second.
1.5.17
- The NPC's mouth is traced in the log. For the co-op report of a joining player's fish bouncing off the NPC and being eaten two seconds late: every gate the game checks before eating (looking elsewhere, item still held, mid-chew, can eat, who is simulating the item) is written down for every item in the mouth zone, on every machine, with the time.
1.5.16
- The first of a join's two island loads no longer crashes the setup. That scene is already unloading when the setup starts, its path reads null, and the slot lookup threw on it, which killed the setup before it cleared the borrowed-island guard. Measured on a joining player's log. A scene that is leaving is now skipped and the second load does the work.
1.5.15
- One failing patch no longer switches the others off. 1.5.14's eat message guard named its argument wrongly, Harmony refused it, and everything patched after it in the mod was silently left out. Every patch class is now applied on its own and any failure is named in the log.
- The eat message guard applies. It takes the NPC id by position.
- A join that loads the island twice no longer throws. The first map scene is already unloading when the second load starts; the loader stops moving the game's pieces into it and lets the second load do the work.
- Wallet and eat traces carry the time of day, so a delay between a sale on the host and the update on a joining player can be measured.
1.5.14
- Joining players' wallets no longer freeze. Measured on a joining player's log. Their copy of the map's NPC fell out of the game's NPC register when the copies torn down at load removed its id, and nothing on a non-host machine put it back. Every "NPC ate an item" message from the host then failed on their side, and the game throws away the rest of that network packet, which is where the new wallet total travels. The sale happened for the host, the shared wallet grew, and the joiner never heard. Three fixes: destroying a copy can no longer unregister the live NPC, the map's NPCs are registered on every machine and not only the host, and an eat message for an NPC that truly is not there is skipped instead of taking the wallet update down with it.
1.5.13
- An added island is no longer made the active scene. The game never does that for its own islands. Unity puts everything created from then on into the active scene, players who join, caught fish, dropped items, and destroys them with it the moment the island is left. Networked things destroyed that way are gone for everyone in the lobby. The active scene now stays the game's.
- Money traced in the log. For the co-op report of a client's balance freezing on join: every sale and every wallet change is logged on whichever machine this is, host or client, so the log shows whether a sale happened on the host and whether the change reached the client. No behaviour change.
1.5.12
- Running lava flows again. Measured: the material matcher's prefix rule gave a map's "LavaRunning" the crater's "Lava" material, whose vertex displacement threw the whole slope of lava apart. A prefix now only counts when what follows it is a variant number, never a different word.
- A fork's renderers take the game's own materials outright. While the game's island is open beside the map, every renderer at the same path is compared with the game's and given the exact material assets the game's renderer holds, instead of a lookup by name. The log lists every renderer still drawn differently (layer, static batching, mesh, bounds, lightmap).
1.5.11
- A fork's sculpted ground gets the game's own land material. The swap that does that lived in the wiring step, and the wiring step stops early for any map that carries its own SpawnManager, which is every fork. So a fork's ground kept the kit's plain Lit: shiny, flat, none of the game's surface detail. The full swap now runs for every map while the game's island is open, and once more after loading for maps with nothing to borrow from.
1.5.10
- The dark building. Every point lamp on the game's islands sits under a "BakingStuff" group the dev left switched off; it only had to exist while the lightmaps were baked. Woken as realtime lamps they were still inactive, so they never shone. The lamp group is lifted out to the island root, world position kept. BakingStuff itself stays off, because it also holds a baking sun and a water plane.
1.5.9
- The casino, the slot machine and the grill are the game's own. A fork carries the rip's copies of them, and a copy can be pointed at every right asset and still not behave: the roulette ball dropped instead of running the wheel, the worth text came out huge and under the island, the slot machine's screen showed nothing it should. The game's island is open while the map loads, so the loader now lifts the real CasinoHolder, SlotMachine and GrillHolder out of it, puts each where the map's copy stands, and deletes the copy. Maps that moved them keep their positions.
1.5.8
- The roulette takes bets again. Measured against the game's island 4: the forked map had lost the BettingBox, the object bets are placed in, with its trigger and its CasinoBox script. Every object of the game's island that carries game code, whose parent is still in the map but which itself is gone, is now cloned in from the game's island at the same place when the map loads.
- Purple hair, measured and fixed. The material swap could pick the player's own copy of the character material ("Character (Instance)") and put it on every NPC, colours and all. It now only ever picks the asset, and it runs a second time while the game's island is open, when all of the game's materials are loaded.
- The log now traces the table and the slot machine: what reached the slot machine's trigger and why it was refused, every roll, every bet button press with the casino's state, and every item counted in the betting box.
1.5.7
- Casino and slot machine texts that arrived without their script get a fresh one. Kits before 1.7.5 could not bind TextMeshPro, so every label on a forked island was a missing script, and the roulette and the slot machine threw on their first write to one. A stand-in label is put on the same object; rebuild the map with kit 1.7.5 or later for the real thing.
- NPCs are painted again after every material swap, not only the first. The later swap in the wiring step made fresh material instances with no colours on them, which is what brought the wrong hair back.
- The casino check line now lists every NPC's head material and skin colour, and the loader clears any island still marked as borrowed once the borrowing is over.
1.5.6
- Borrowing an island no longer destroys the map's roulette. The game's single-instance setter destroys the OLD instance and keeps the newcomer. So when the loader opened the game's island 4 to lift a shop stand out of it, that island's roulette woke, destroyed the map's, took its place and died a second later with the borrowed scene. While an island is being borrowed, every wake-up in the game's code that claims a single instance is skipped for that island's objects; anything lifted out of it is woken by hand afterwards. The slot machine, the grass manager and the surface manager were being taken over the same way.
- The casino check line now also lists what sits on the casino's text objects, for the case where they arrive without their text component.
1.5.5
- Dark shops lit. The game's shop buildings carry rendering layer 4 on their walls and every lamp sits on rendering layer 1; light layers are a second gate after the culling mask, and a lamp that shares no rendering layer with a wall does not light it. Every lamp now lights every layer.
- The slot machine is the map's own again. Its Awake fills a dozen statics (prize list, roll sizes, the arm), and the last one to wake was a borrowed island's, destroyed a moment later. Every island class that keeps a static "the one" is pointed back at the map's copy, and the slot machine is set up again with the game's own prizes.
- The asset filler explains itself. 1.5.4's filler could stop without a word when the game's island would not open; it now says so, and tries the scene by path as well as by build index.
- A casino check line three seconds after arrival: whether the roulette and slot machine are the game's current ones, what they are missing, and the state of the bet buttons and boxes.
1.5.4
Five faults on a freshly forked island, all fixed at load:
- Shops, quests and spawners point at the game's own assets. A forked island carries copies of the baits, items, quests and creatures the game's island referenced, and those copies do not load - so a stand sold nothing, a quest hand-in had no quest and the albatross spawner threw every frame, which stopped every interaction near it, the roulette table included. The loader now opens the game's own island, walks both side by side, and takes the real asset for every reference the map lost. No more guessing by name.
- Grass and plants stay. Every island opened for borrowing replaced the map's grass with its own and cleared it on the way out. The map's grass is sent to the game again once the borrowing is done.
- NPC colours stay. Putting the game's own character material back on the NPCs threw away their skin and hair colours, so every NPC wore the player's own colours. They are painted again after the swap.
- Every lamp lights every layer. The rip's lamps only lit the Level layer, which never mattered while they were baked. Realtime, it did: rooms on any other layer stayed dark. Also up to eight lamps per object now.
- The slot machine wakes again once its prizes are real, and the roulette's worth text is linked by name if it arrived unlinked.
1.5.3
- Teleporting to a custom island no longer throws you out to sea. When a map asks the loader to fetch a shop stand or a casino from one of the game's own islands, the loader opens that island for a moment to lift the pieces out. Every game island records its spawn point and its position in shared fields the instant it wakes, so the last island opened was quietly becoming "home": the loader then put you and the boat on that island's spawn point, hundreds of metres from the map, and the map looked like it had vanished. The map's own spawn point and position are now remembered before any borrowing starts and put back the moment it ends. Sailing to the island was never affected, only arriving by teleport, and the boat's drift-home point is right again in both cases.
1.5.2
Two more repairs every custom island gets at load, found auditing the Mapmaker Kit against the game's islands 4 and 5:
- Baked lights are woken. A map built from a ripped island keeps its lamps marked baked-only, and no lightmap survives a rip, so every lamp inside every building gave nothing. They are switched to realtime as the island loads. The kit does this at build time now too; this catches maps built before it did.
- Dead shaders are rescued. A material whose shader the rip could not carry ships with none and renders as the pink error material. Any such material is given the pipeline's own Lit shader, keeping its texture. Lava and characters get proper stand-ins from the kit itself.
1.5.1
Fixed: a custom island could leave you unable to quit
Loading a save that was standing on the island a map replaces could leave the island with no boat and none of your dropped world items, and both the Main Menu and Quit buttons would then do nothing at all.
An island sets itself up once, in SpawnManager.Start, and that method begins by giving up if the server is not ready yet:
if (!Server.Instance.IsServerInitialized) return;
InitializeIsland();
Nothing ever calls it again. Entering the world directly onto the island is the case that loses that race, because the island loads alongside the network starting rather than later when you sail in. So the island never spawns its boat and never loads its world items.
A missing boat is worse than it sounds, because saving reads the boat four times without checking it exists, and both Main Menu and Quit save before they do anything else. So they threw, the transition never ran, and the buttons looked dead - while nothing reached disk either, quietly losing the session.
The loader now waits for the server and, if the island still has no boat, runs the setup the game skipped. It only ever acts on an island that has already failed, so nothing is spawned twice.
Also
- The version in the assembly said 1.4.0 while the package said 1.5.0, so a log could not tell you which build was running. They match now.
1.5.0
The world map is gone, and Minimap replaces it
The chart on M has been removed. This is worth explaining rather than just announcing, because it was the whole of the last release.
The problem was never the drawing, it was the arithmetic underneath it. Islands in this game are tiny next to the sea between them, so a chart that shows the whole world shows five specks. The fix was to draw them bigger - and the moment you do that, an island takes up more room on the chart than it does in the world, so the water around it has to be stretched to make space, and your own marker has to be stretched by exactly the same amount or it is not standing where you are standing.
Every version of that was wrong in a different way: the marker jumped between islands, then it travelled backwards as you sailed away from one, then it moved at a fifth of your speed as you left. Each fix was correct and each one uncovered the next, because the real problem was that a model of the world can only ever be as good as the last thing somebody thought of.
A camera pointed at the ground has none of those problems. It is not a model, it is a picture, and it is right about things nobody thought to tell it. So the chart is out and Minimap is the answer instead: a separate download, live, and accurate everywhere because there is no arithmetic in it to get wrong.
The radar is untouched, extra islands still show on it in their own colour, and nothing about loading islands has changed.
Also
- An island you have not unlocked yet is no longer implied to be reachable. The chart used to draw it exactly like one you could sail to, so you would head out to an island the game had never opened and find nothing there. With the chart gone the radar decides, and the radar was always right about this.
- The startup survey is gone with it. Every island used to be loaded, photographed and unloaded at the main menu to have a picture to draw. Nothing needs that now.
1.4.0
A real chart, on M
The world map has been rebuilt from nothing. It was a diagram before: dots on a grid, in a style of its own, taking over the whole screen.
- The islands are drawn from the islands. Each one is photographed from directly above and that picture is what you see: its real coastline, its trees, its buildings, its paths. Nothing is hand drawn and nothing is a guess, so an island from any pack is charted as accurately as the game's own.
- Charted once, automatically. The first time you sit at the main menu, every island is loaded on its own, photographed and unloaded again. It takes a few seconds, it happens at the menu where it cannot disturb a game in progress, and the pictures are kept.
- The island you are on is live. Not a photograph but a view, redrawn every frame, so the boat moves on it while you watch.
- It looks like the game. The pause menu's dress: the game's own rounded panel art, white rules, white text and its own font, over a translucent panel rather than the whole screen.
- Zoom and pan like a map. The wheel zooms towards the pointer, drag pans, M or Escape closes. Your input is held while it is open, so panning the chart no longer walks you into the sea.
- Islands are drawn larger than scale so they can be seen, with the distances between them left true - and the exaggeration fades out as you zoom in. You and the boat are displaced with the island you are standing on, so where you are shown is where you are.
- A size slider for every island, on the chart, under "sizes". Drag it and watch the island change. Saved as you go.
Also
- The spacing slider is gone, and the chart tracks you properly because of it. It was never an independent choice: it had to match the island sizes or the marker moved at a different speed to you. Measured, over a trip from an island out to open sea, the marker used to move anywhere between five times and a third of a metre per metre sailed - a fourteen fold swing, which is the "it moves weird" everyone could feel and nobody could describe. It is now worked out from the island sizes instead, and the swing is under three. Set every island's size to its smallest and the chart becomes a single honest scale.
- An island you have not unlocked yet is greyed out on the chart. It was drawn exactly like one you can reach, so the chart would show you island four, you would sail out to it, and there would be nothing there and no explanation - because the game had never unlocked it and puts neither a radar dot nor a landing trigger in the water until it has. The chart now says so. Nothing here unlocks anything; your progression is yours.
- Your marker no longer travels backwards as you leave an island. Islands are drawn larger than life, so a marker on one sits further out than the open sea scale would put it. Sailing away used to blend between the two, which meant the drawn distance SHRANK while you were moving away and the marker slid back towards the island. The enlargement now eases off without ever reversing, so every metre you sail away from an island moves you further from it on the chart.
- The boat marker showed at the wrong island. It was reading the Boat component's transform, which never moves - the boat is driven through a physics body underneath it.
1.3.0
Added islands, not just replacements
The loader now runs BOTH kinds of island. As well as maps that stand in for one of the game's five, it runs brand new islands out in open water that replace nothing at all.
- Added islands appear on the radar in their own colour, from the start.
- You sail to them like anywhere else.
- They carry their own NPCs, shops and wildlife instead of borrowing from an island they replace.
- Save on one and you wake up there. The save itself records a normal island, so it still loads if this mod is ever removed.
- Press M for a chart of the world showing every island, its name and its true position.
Your island unlocks are never touched. Reaching an added island used to mean raising the game's unlock counter, which is a single number, so raising it far enough unlocked every island below it. Worse, the game writes that number straight into your save file, where it would have outlived the mod. Added islands now use their own way in and ask the counter nothing.
This is why MoreIslands is now an island pack with no code of its own. Extra islands used to need a separate mod; that work lives here. Both MoreIslands and BetterIslands are content only, and both need this mod installed.
Fixes
- Sailing up to an island no longer teleports you and your boat onto its spawn point. The game only places the boat when it is teleporting you somewhere, and sailing in is deliberately the case where it leaves you alone. This mod repeated the move without that check.
- Your map's own spawn points are used again when the game does bring you to an island. An earlier attempt at the above read the game's flag too late and stopped spawn points working entirely.
- NPCs and shop stands can be used up close again. The repair that tags solid ground so bullets mark it was also overwriting the tag on interact colliders, and the game discards any interactable blocked by something tagged as level geometry. Up close an NPC was being blocked by its own collider, so it only answered from further away.
- A shop stand with no bait or attachment assigned no longer throws every frame you look at it. That exception came from inside the game's interactable scan and stopped everything near it working, NPCs included. The stand is now skipped and named in the log so a mapmaker can fix it.
- The game's own crash while unloading decorations can no longer jam island loading.
For mapmakers
Everything above needs islands built with the CustomIslands Mapmaker Kit, which had a large update alongside this one: island scripts are now bound to the game automatically, so NPCs and shops arrive as working components rather than scenery, and the shop catalogue, quests, wildlife spawners and an island's own grass all come across properly.
Upgrading
If you installed MoreIslands 1.x by hand, delete MoreIslands.dll.
Left in place it runs alongside this mod and both do the same work to the
same islands.
1.2.6
- FIX: a shop stand with no bait or attachment assigned threw an exception every frame you looked at it, from inside the game's own interactable scan. That killed the scan, so nothing near it could be used - NPCs included - and the prompt was never placed. The game's Hover() guards against this; its OnStartHover() does not. Now skipped, and the stand is named in the log.
1.2.5
- FIX: your map's own boat and player spawn points are used again when you spawn into a world. 1.2.3 and 1.2.4 decided "did you sail here?" from OnlineIslandManager.TeleportPlayers, which the game only ever sets for the cheat key and the two Tp calls - entering a world does not set it. Loading a save at a custom island therefore counted as sailing, and the boat was left on the replaced island's spawn point, which on a sculpted map is dry land. Sailing in is now detected from the thing that actually means it: the island's trigger ring asking for the island. Every other arrival places you and the boat on the map's spawn points, as before.
1.2.4
- FIX: a map's own boat and player spawn points are honoured again when the game travels you to it. The 1.2.3 gate was read too late: borrowing gameplay, importing a casino and fetching goods each load an island of their own, and every one of those re-answered the question after the game had already cleared the flag. It is now read once, as the map's scene arrives, and carried down.
1.2.3
- FIX: sailing to a custom island no longer teleports you and your boat onto its spawn point. The game moves the boat and the players only when it is teleporting you to an island; sailing in is deliberately the case where it leaves you alone. This mod repeated both moves without that check, so the trigger ring around an island snatched the boat, and whoever was aboard, across the last stretch of sea.
1.0.3
- NEW: switch an island back to the original without deleting files.
The config gains
UseCustomIsland1..UseCustomIsland5- set one to false and that island loads the shipped original, with the map files kept installed. Edit via your mod manager's Config editor orBepInEx/config/yoxi.htf.maploader.cfg.
1.0.2
- FIXED: maps installed through a mod manager were not found. Mod managers flatten packages on install - the HTFMaps folder inside a map package can vanish, leaving the map files loose in the package's own folder. The loader now recognises a map by its bundle + json pair wherever it lies, so mod-manager and manual installs both just work.
1.0.1
- Clearer docs: custom islands REPLACE one of the game's five islands (only one island exists at a time - adding a sixth is not possible).
1.0.0
First release.
- Custom islands stand in for the game's own, with working NPCs, shops, price tags, boat and player spawns, creature spawns and casinos.
- Maps are two files (bundle + json); the json declares which island the map is a custom version of, and the mod enforces it.
- Multiple maps load at once, one per island.
- Maps install via mod manager or by dropping files into BepInEx/plugins/HTFMaps.
- Contains no game assets - everything is generated content.
Built by Yoxi.