{"id":687,"date":"2026-09-07T21:28:33","date_gmt":"2026-09-07T21:28:33","guid":{"rendered":"https:\/\/x.sheep-mine.ts.net\/index.php\/multitile-actors-revisited\/"},"modified":"2026-09-07T21:28:33","modified_gmt":"2026-09-07T21:28:33","slug":"multitile-actors-revisited","status":"publish","type":"post","link":"https:\/\/x.sheep-mine.ts.net\/index.php\/multitile-actors-revisited\/","title":{"rendered":"Multitile Actors, Revisited &#8211; Cogmind \/Grid Sage Games"},"content":{"rendered":"<p><br \/>\n<\/p>\n<div>\n<p>Ever since my original forays into ASCII-based development with <a rel=\"nofollow\" target=\"_blank\" href=\"http:\/\/xcomrl.blogspot.com\">X@COM<\/a>, I was both forced into and remained interested in working with actors that occupy multiple spaces on the map. The implications, the representations, the benefits, the drawbacks\u2026 all very fun issues to tackle in order to bring physically larger creatures to life, and give them the visible bulkiness they deserve.<\/p>\n<p>Years back I wrote a <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.gridsagegames.com\/blog\/2020\/04\/developing-multitile-creatures-roguelikes\/\">lengthy primer on the topic<\/a>, covering examples from different roguelikes, their appearances, related mechanics and design, and more. Now with Cogmind\u2019s most recent <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.gridsagegames.com\/forums\/index.php?topic=1763.0\">Beta 14 release<\/a> I\u2019ve revisited this subject in my own work, so it\u2019s about time to extend my original article with yet more information!<\/p>\n<p>Some of these features were already covered on Patreon <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.patreon.com\/posts\/103787410\/\">earlier this year<\/a>, but here I\u2019ll go into a little more detail, including a few of the eventual surprises I had not yet announced at the time.<\/p>\n<h2>Environmental Obstacles<\/h2>\n<p>One of the biggest obstacles to taking full advantage of multitile actors is the environment, since cramped spaces will naturally limit their movement options, preventing them from effectively chasing down smaller prey.<\/p>\n<p>To an extent this can offer some interesting tactical choices&#8211;do I make a stand in this open area guarded by a large opponent, or run for it given the knowledge that even if I\u2019m spotted I can probably get away mostly unscathed? But by extension it also limits how scary these large creatures can really be, which is rather unfortunate. Unless a majority of the surroundings are relatively open, it can be easy to slip through smaller spaces and not have to worry about being pursued.<\/p>\n<p>One simpler way I addressed this issue from the beginning was to at least given these big fellows behavior that causes them to aggressively attack through walls and machines, with weapons usually powerful enough to punch right through and as a result create more open space, new pathways, and additional sight lines.<\/p>\n<p>This approach definitely led (and still leads) to some scary moments marked by a feeling of gradual impending doom as walls are peeled away in your general direction as you try to make your escape. (Here we\u2019re ignoring the players who face down such opponents with prejudice :P)<\/p>\n<p>But I\u2019ve always felt like they should be scarier, in a truer reflection of their size. Time to get smashing!<\/p>\n<h3>Smashing Terrain<\/h3>\n<p>I always wanted to have wall smashing in Cogmind, the ability for at least some robots to plow through walls as if they\u2019re open terrain. As I demonstrated <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.gridsagegames.com\/blog\/2020\/04\/developing-multitile-creatures-roguelikes\/\">last time<\/a>, this was already a feature in Cogmind\u2019s predecessor, X@COM, so technically I <em>removed<\/em> it when I started building Cogmind, mainly because I wasn\u2019t sure what the long-term implications of such a feature would be in this particular game, so better to wait on it. Many years later, the time had come to use it as one piece of a solution for significantly improving the multitile actor experience in Cogmind.<\/p>\n<div id=\"attachment_5364\" style=\"width: 571px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" aria-describedby=\"caption-attachment-5364\" class=\"wp-image-5364 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_wall_smashing.gif\" alt=\"cogmind_multitile_entity_wall_smashing\" width=\"561\" height=\"462\" \/><\/p>\n<p id=\"caption-attachment-5364\" class=\"wp-caption-text\">\u201cHaha stupid Behemoth can\u2019t get in h&#8211;aaaaaaahh\u2026\u201d<\/p>\n<\/div>\n<p>These guys will only smash through walls, not machines, though they\u2019re still happy to shoot through both those and walls where applicable.<\/p>\n<p>At the same time, this doesn\u2019t mean they go around smashing walls willy-nilly simply because they want to move. By design these bots are usually stationary in the first place, only moving if they need to engage in combat, but even then the \u201cmovement cost\u201d to smash a wall is higher, thus they\u2019re less likely to do so if there\u2019s another reasonable option, even if the other option will technically take longer.<\/p>\n<div id=\"attachment_5365\" style=\"width: 406px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5365\" class=\"wp-image-5365 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_not_smashing_wall.gif\" alt=\"cogmind_multitile_entity_not_smashing_wall\" width=\"396\" height=\"487\" \/><\/p>\n<p id=\"caption-attachment-5365\" class=\"wp-caption-text\">\u201cWhy yes I <em>could<\/em> go through the wall, but I choose not to!\u201d<\/p>\n<\/div>\n<p>Note these actors are only able to smash <em>walls<\/em> specifically, not just any solid\/earth cells, so they\u2019re not out there carving their own paths just anywhere they want across the entire map. That would be getting pretty ridiculous, so they\u2019re still limited by the general shape of the architecture. They just need some extra room to maneuver that they can\u2019t otherwise have in constricted areas, and enabling access to wall spaces is plenty, since that gets large robots down long narrow corridors, and into rooms adjacent to corridors.<\/p>\n<p>In my earlier article I shared <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2020\/04\/cogmind_factory_map_halls_marked_potential_behemoths.png\">an image showing the more open areas<\/a> where large defenders might be placed. While that aspect remains unchanged today, in the past they would not be able to venture far from those areas, or at least limited in terms of available directions, whereas now their potential range of movement practically stretches across the entire map, at least insofar as pursuing targets.<\/p>\n<div id=\"attachment_5380\" style=\"width: 535px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5380\" class=\"wp-image-5380 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_behemoth_guard_accessible_area_beta13vs14.png\" alt=\"cogmind_multitile_behemoth_guard_accessible_area_beta13vs14\" width=\"525\" height=\"500\" \/><\/p>\n<p id=\"caption-attachment-5380\" class=\"wp-caption-text\">Research map highlighting the area where large guards have non-smashing movement access (red) from locations where they\u2019re initially placed (white dots), compared to the areas they can reach via smashing (dark purple). As you can see, even single-tile corridors, being lined with walls, are suddenly at least three tiles wide, and pretty much the entire map becomes accessible!<\/p>\n<\/div>\n<p>Remember this doesn\u2019t mean they will actually chase targets for that long&#8211;Cogmind includes the same old mechanics for losing pursuers, which in this case become that much more relevant since using the terrain against large pursuers may not always be the go-to option it was before.<\/p>\n<p>In terms of implementation, smashing behavior was built in a generic manner so even smaller robots can be given the capability, and all smash-capable bots have an adjustable willingness to do so, though for now this ability is only found on the large actors it was meant to support, except for one special NPC in particular \ud83d\ude09<\/p>\n<p>One potential mechanical collision I had to account for is Engineer repairs. Anyone who plays Cogmind is familiar with the zealousness with which those guys are out there repairing any damage to the Complex, so you can imagine their consternation whenever some large friend of theirs is ripping out the walls just to get around. To prevent this from becoming an issue, walls destroyed specifically via smashing are put on a looser repair schedule. If not for this delay, you could easily have a swarm of Engineers following one of these large bots around to make instant repairs, generally getting in the way.<\/p>\n<h3>Pushing and Crushing<\/h3>\n<p>So that\u2019s static obstacles taken care of, but we have another prevalent issue when it comes to ensuring convenient fluid movement of large actors: other actors!<\/p>\n<p>The normal way to handle actor blocking, especially if it\u2019s between allies, is to simply allow them to swap places, but we can\u2019t reasonably do that when one is regular sized while the other occupies at least four times as much space\u2026<\/p>\n<p>What we can do is allow <em>pushing! <\/em>This is way better than trying to find another way around (which probably doesn\u2019t exist anyway), plus it\u2019s cool and makes a lot of sense that a large actor could push around smaller ones.<\/p>\n<p>Fortunately I already pioneered this feature for Polymind, having completed half the work involved by developing the mechanical side of how to properly push robots out of the way. Sure pushing one robot is easy enough, but when you have a chain of robots and more complex scenarios, it can take a bit of doing\u2026 (I described that a bit in <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.gridsagegames.com\/blog\/2023\/01\/special-mode-design-polymind-part-1-architecture-features-and-balance\/\">Part 1 of my Polymind articles<\/a>) With that done, I\u2019d just have to borrow the code and teach the AI how to actually use this as well, since I\u2019d previously only needed to consider player control.<\/p>\n<div id=\"attachment_5366\" style=\"width: 545px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5366\" class=\"wp-image-5366 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_pushing.gif\" alt=\"cogmind_multitile_entity_pushing\" width=\"535\" height=\"267\" \/><\/p>\n<p id=\"caption-attachment-5366\" class=\"wp-caption-text\">\u201cComing through!\u201d<\/p>\n<\/div>\n<p>We also have another related option in an actor-blocking scenario, not required but definitely cool and fun: <em>crushing! <\/em>Not for friendlies, of course, but if the blocker isn\u2019t an ally and we\u2019re big and buff, crushing them to pieces seems like a reasonably desirable outcome. So that can happen, too.<\/p>\n<div id=\"attachment_5367\" style=\"width: 379px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5367\" class=\"wp-image-5367 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_crushing.gif\" alt=\"cogmind_multitile_entity_crushing\" width=\"369\" height=\"450\" \/><\/p>\n<p id=\"caption-attachment-5367\" class=\"wp-caption-text\">\u201cComing through\u2026 you!\u201d<\/p>\n<\/div>\n<p>Only single-tiled actors may be pushed\/crushed, so multiple large actors moving around near each other will be limited as before, though this doesn\u2019t often come into play except with Cogmind allies, and they are equipped with some great new supporting features\u2026<\/p>\n<h2>Multitile Allies<\/h2>\n<p>The biggest driver for improvements to multitile actor behavior has always been their performance as allies. Since players spend more time with allies, up close and personal, that also means more opportunities for frustration when your big friend just won\u2019t get the hell out of the way, or can\u2019t follow you to a new area without you hacking away at the terrain yourself.<\/p>\n<p>For quite a number of versions now I\u2019ve wanted to include solutions to these and other problems, but despite always putting it on the near-term TODO list, it always bubbled to the top shortly before release and I\u2019d run out of time to complete it, this being a decent-sized project on its own. Well with Beta 14 I said enough of that, it\u2019s going at the top, and did it right at the beginning. HA, take that \ud83d\ude00<\/p>\n<p>The smashing and pushing capabilities described above are a good start, and inherent in the new movement behaviors of large actors so we don\u2019t have to worry about any special treatment there, but there\u2019s definitely plenty more we can do which is specific to allies.<\/p>\n<p>For one we can solve the problem of entering a new map that simply doesn\u2019t have enough room for big friends. As a backstop for players with big armies tagging along, I did already increase the maximum distance at which they can spawn into a new map, though this can only go so far, and isn\u2019t ideal as they get spawned further and further away, or large actors take up chunks of room that could be used for other allies, maybe even preventing others from spawning at all.<\/p>\n<p>Easy enough. Now that we know large actors can smash walls, let\u2019s just allow them to do that upon entering new maps.<\/p>\n<div id=\"attachment_5368\" style=\"width: 557px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5368\" class=\"wp-image-5368 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entities_smash_entrance.png\" alt=\"cogmind_multitile_entities_smash_entrance\" width=\"547\" height=\"449\" \/><\/p>\n<p id=\"caption-attachment-5368\" class=\"wp-caption-text\">\u201cWe\u2019re heeeeeeeere!\u201d<\/p>\n<\/div>\n<p>That\u2019s overall a minor issue compared to behaviors that start getting in the way while traveling with large allies over the long term. For that we\u2019re going to need some more complex solutions.<\/p>\n<h3>Avoidance<\/h3>\n<p>Well at least your multitile allies can push you just fine, so you and your normal-sized friends are generally not an obstacle as far as they\u2019re concerned. But what about the other way around&#8211;you\u2019re certainly not pushing them, and that\u2019s the bigger problem.<\/p>\n<p>First of all their ability to push other actors <em>and<\/em> smash walls if necessary means they\u2019re much less likely to get stuck doing their own movement, say for example if they\u2019re ahead of you trying to reach some target further ahead.<\/p>\n<p>That much is great, but they might still get in your way, and we\u2019ve got some new helpful behaviors to manage this.<\/p>\n<p>The simplest is the STAY order, which when given to a large ally causes them to always attempt to maintain some distance between you and them. They\u2019ll even back up into a wall if they have to, since the top priority is just get out of the way, and they might very well be in a narrow corridor or corner scenario where a little smashing is the only solution.<\/p>\n<div id=\"attachment_5369\" style=\"width: 424px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5369\" class=\"wp-image-5369 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_back_away.gif\" alt=\"cogmind_multitile_entity_back_away\" width=\"414\" height=\"395\" \/><\/p>\n<p id=\"caption-attachment-5369\" class=\"wp-caption-text\">A large ally with the STAY order trying to avoid blocking Cogmind, whatever it takes. This can technically also be used to get them to \u201cback up\u201d in front of you as you advance.<\/p>\n<\/div>\n<h3>Caravans<\/h3>\n<p>Another important change we need to focus on is preventing large allies from bunching up to begin with, especially considering their inability to swap with or push one another. We need them to spread out\u2026<\/p>\n<p>In the beginning <em>all<\/em> Cogmind allies tended to just move around you in a shifting cloud. This is fine if you have a few combat allies, but has become a problem before, like you probably don\u2019t want your Mechanic hanging out on the front line of a hostile encounter. So back in 2020 I modified non-combat AI follower behavior to \u201chang back\u201d more, even retreating ahead of you if you decide to retreat along or near your original path.<\/p>\n<div id=\"attachment_5370\" style=\"width: 406px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5370\" class=\"wp-image-5370 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_noncombat_follower_hang_back.gif\" alt=\"cogmind_noncombat_follower_hang_back\" width=\"396\" height=\"529\" \/><\/p>\n<p id=\"caption-attachment-5370\" class=\"wp-caption-text\">An Operator buddy generally staying back a little, rather than circling Cogmind\u2019s position like a combat robot can. This feature has worked out pretty well since it was added, increasing their survivability in hostile situations.<\/p>\n<\/div>\n<p>This is a pretty big improvement over getting your defenseless friends shot up while just traveling around.<\/p>\n<p>We can borrow this same system to keep large allies out of the way as well, although since they\u2019re chunkier we probably don\u2019t want them getting in the way of other smaller allies, including those already hanging back, suggesting we want large allies even further behind everyone else.<\/p>\n<div id=\"attachment_5372\" style=\"width: 574px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5372\" class=\"wp-image-5372 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_allies_mixed_group_formation_labeled.png\" alt=\"cogmind_allies_mixed_group_formation_labeled\" width=\"564\" height=\"385\" \/><\/p>\n<p id=\"caption-attachment-5372\" class=\"wp-caption-text\">A typical controllable mixed ally layout when all are following Cogmind, heading west.<\/p>\n<\/div>\n<p>Having a nice point a little further back for our big chonker is great and all, but what if we are fortunate enough to be supported by a whole collection of chonkers at once? All of them trying to hang back at the same point is just not going to work, not to mention the resulting cluster will hinder the movement of other bots.<\/p>\n<p>More spacing is needed, and each large ally is like their own cluster of bots after all, so let\u2019s just extend the following system further, as far as it needs to go, adding a new point for each subsequent ally.<\/p>\n<div id=\"attachment_5373\" style=\"width: 562px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5373\" class=\"wp-image-5373 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_caravan.gif\" alt=\"cogmind_multitile_entity_caravan\" width=\"552\" height=\"421\" \/><\/p>\n<p id=\"caption-attachment-5373\" class=\"wp-caption-text\">Multiple multitile allies following Cogmind in a chain.<\/p>\n<\/div>\n<p>Backing up will also cause the entire \u201ccaravan\u201d to reverse direction and back up in the same order, at least for a little while until it\u2019s maybe time to swing everyone around and return to following behind you.<\/p>\n<h2>Vision<\/h2>\n<p>In my other article I discussed targeting origins and AOE effects, but I didn\u2019t cover another aspect technically not given any special attention in Cogmind at the time: line-of-sight. Although less of a true problem or even a factor that more than a few players noticed, line-of-sight for multitile actors had some quirks and it was about time to do something about them.<\/p>\n<div id=\"attachment_5374\" style=\"width: 569px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5374\" class=\"wp-image-5374 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_FOV_beta13_old.png\" alt=\"cogmind_multitile_entity_FOV_beta13_old\" width=\"559\" height=\"447\" \/><\/p>\n<p id=\"caption-attachment-5374\" class=\"wp-caption-text\">Simulated FOV of a Behemoth in a guard position prior to Beta 14. (\u201cSimulated\u201d because AIs in Cogmind, aside from drones, don\u2019t technically calculate actual FOV in the normal sense.) Talk about tunnel vision!<\/p>\n<\/div>\n<p>You\u2019d think FOV from such a position would look symmetrical, but it\u2019s clearly not. It\u2019s actually calculated as it is for any other actor using its base position, which for large actors is their top-left corner. You can see this in action by observing the shape of the FOV in the above image, and imagine that the shapes are equally odd (but in a different way) for other orientations and scenarios where a large actor is blocked by something immediately adjacent to them.<\/p>\n<p>For those aware of this discrepancy, it could impact tactical decisions by suggesting an optimal direction of approach in some scenarios, which of course doesn\u2019t make sense.<\/p>\n<p>The original method was used simply because it was easier and involved fewer calculations or special cases, something that\u2019s always nice to be able to iron out after working on the same game for, oh\u2026 over a decade, which is completely normal I promise.<\/p>\n<div id=\"attachment_5375\" style=\"width: 569px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5375\" class=\"wp-image-5375 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_multitile_entity_FOV_beta14.png\" alt=\"cogmind_multitile_entity_FOV_beta14\" width=\"559\" height=\"447\" \/><\/p>\n<p id=\"caption-attachment-5375\" class=\"wp-caption-text\">The expanded Beta 14 FOV of the same Behemoth in a guard position shown earlier. Now they not only smash through walls, they even have much improved (normal\u2026) vision!<\/p>\n<\/div>\n<p>The same situation technically applied to AIs attempting to <em>spot<\/em> large targets, only caring about their top-left corner, but that has been addressed in a similar manner for greater accuracy.<\/p>\n<p>I\u2019m altogether very happy to have all these new features in the game now, which are definitely contributing to a better play experience around large actors&#8211;scary when a hostile one\u2019s spotted you, and not so annoying when they\u2019re on your side. Can\u2019t wait to do the type of run that is more likely to have large allies, or even more than one! Also looking forward to seeing more player stories or streams featuring fearsome Behemoth chases \ud83d\ude42<\/p>\n<div id=\"attachment_5377\" style=\"width: 372px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5377\" class=\"wp-image-5377 size-full\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2024\/09\/cogmind_doshdoshington_RIF_army.png\" alt=\"cogmind_doshdoshington_RIF_army\" width=\"362\" height=\"223\" \/><\/p>\n<p id=\"caption-attachment-5377\" class=\"wp-caption-text\"><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/watch?v=3b11EA6XW3w\">DoshDoshington<\/a>\u2018s love for bothacking has already seen him doing runs in which he gathers quite impressive armies, like in the above screenshot, and large allies can play helpful roles now rather than being roadblocks most people want to murder or ditch ASAP. (He\u2019s shared some even better shots on Discord, but big spoilers so I won\u2019t share those here\u2026)<\/p>\n<\/div><\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/www.gridsagegames.com\/blog\/2024\/09\/multitile-actors-revisited\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ever since my original forays into ASCII-based development with X@COM, I was both forced into&#8230;<\/p>\n","protected":false},"author":1,"featured_media":688,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[715,777,1506,1507],"tags":[],"class_list":["post-687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cogmind","category-design","category-multi-tile","category-pathfinding"],"_links":{"self":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/comments?post=687"}],"version-history":[{"count":0,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/687\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/media\/688"}],"wp:attachment":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/media?parent=687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/categories?post=687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/tags?post=687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}