<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[PTR Changelog 2018-11-01: Creep.pull()]]></title><description><![CDATA[<p><em>This post describes changes on the <a href="http://docs.screeps.com/ptr.html" rel="nofollow">Public Test Realm</a>.</em></p>
<p>Introduced new mechanic <a href="https://ptr-docs.screeps.com/api/#Creep.pull" rel="nofollow"><code>Creep.pull</code></a>. It allows one creep to pull another creep helping it to follow:</p>
<p><img src="/forum/assets/uploads/files/1541077010606-2018-11-01_15-05-46.gif" alt="0_1541077008415_2018-11-01_15-05-46.gif" class="img-responsive img-markdown" /></p>
<pre><code>creep1.pull(creep2); // first creep requests pulling
creep2.move(creep1); // second creep accepts it

creep1.move(RIGHT); // actual move
</code></pre>
<p>Here <code>creep1</code> will gain fatigue for both creeps. <code>creep2</code> may not even have any <code>MOVE</code> body parts. Creeps may belong to different players. <code>Creep.pull</code> can be called recursively by multiple creeps in series. Thus, a fully XZHO2-boosted <code>50xMOVE</code> &quot;train&quot; can pull several <code>50xCARRY</code> creeps just on its own.</p>
<p><em><a href="https://ptr-docs.screeps.com/api/#Creep.pull" rel="nofollow">PTR Documentation</a></em></p>
<p><em>Commit <a href="https://github.com/screeps/engine/commit/4d377173c123dcbadecdc0bde56fb9cd51ad06d3" rel="nofollow">engine#4d37717</a></em></p>
<h2>Other unrelated changes</h2>
<ul>
<li>Containers now can be built next to exit tiles (<a href="https://github.com/screeps/engine/commit/a44e238077b33c1ff57378aa4d469524615cb6fd" rel="nofollow">engine#a44e238</a>).</li>
<li>Hostile creeps don't block building in safe moded rooms (<a href="https://github.com/screeps/engine/commit/3d21e7c1b69dfe50d7241b0531d5b61ae308a03a" rel="nofollow">engine#3d21e7c</a>).</li>
<li>Various fixes.</li>
</ul>
]]></description><link>http://screeps.com/forum/topic/2437/ptr-changelog-2018-11-01-creep-pull</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 20:38:07 GMT</lastBuildDate><atom:link href="http://screeps.com/forum/topic/2437.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Nov 2018 12:57:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Mon, 05 Nov 2018 11:32:05 GMT]]></title><description><![CDATA[<p><em>This post describes changes on the <a href="http://docs.screeps.com/ptr.html" rel="nofollow">Public Test Realm</a>.</em></p>
<p>Introduced new mechanic <a href="https://ptr-docs.screeps.com/api/#Creep.pull" rel="nofollow"><code>Creep.pull</code></a>. It allows one creep to pull another creep helping it to follow:</p>
<p><img src="/forum/assets/uploads/files/1541077010606-2018-11-01_15-05-46.gif" alt="0_1541077008415_2018-11-01_15-05-46.gif" class="img-responsive img-markdown" /></p>
<pre><code>creep1.pull(creep2); // first creep requests pulling
creep2.move(creep1); // second creep accepts it

creep1.move(RIGHT); // actual move
</code></pre>
<p>Here <code>creep1</code> will gain fatigue for both creeps. <code>creep2</code> may not even have any <code>MOVE</code> body parts. Creeps may belong to different players. <code>Creep.pull</code> can be called recursively by multiple creeps in series. Thus, a fully XZHO2-boosted <code>50xMOVE</code> &quot;train&quot; can pull several <code>50xCARRY</code> creeps just on its own.</p>
<p><em><a href="https://ptr-docs.screeps.com/api/#Creep.pull" rel="nofollow">PTR Documentation</a></em></p>
<p><em>Commit <a href="https://github.com/screeps/engine/commit/4d377173c123dcbadecdc0bde56fb9cd51ad06d3" rel="nofollow">engine#4d37717</a></em></p>
<h2>Other unrelated changes</h2>
<ul>
<li>Containers now can be built next to exit tiles (<a href="https://github.com/screeps/engine/commit/a44e238077b33c1ff57378aa4d469524615cb6fd" rel="nofollow">engine#a44e238</a>).</li>
<li>Hostile creeps don't block building in safe moded rooms (<a href="https://github.com/screeps/engine/commit/3d21e7c1b69dfe50d7241b0531d5b61ae308a03a" rel="nofollow">engine#3d21e7c</a>).</li>
<li>Various fixes.</li>
</ul>
]]></description><link>http://screeps.com/forum/post/11888</link><guid isPermaLink="true">http://screeps.com/forum/post/11888</guid><dc:creator><![CDATA[artch]]></dc:creator><pubDate>Mon, 05 Nov 2018 11:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Thu, 01 Nov 2018 13:53:03 GMT]]></title><description><![CDATA[<p>Interesting, but isn't this only viable for harvesters that just want to sit at the source all day? There's no practical reason to have a 50 move and a 50 carry creep over just having 2 creeps with 25 move and 25 carry, since this is not only harder to code, but also requires 3 const calls to pull the cargo creep. Even for harvesters it might be a bit impractical due to both difficulties in coding and the fact that it triples the CPU cost to move the harvester in exchange for a minor savings of having less WORK on your harvester.</p>
<p>IMO, this feature should result in only the lead creep being charged for a single const CPU call, allowing it to be useful to save CPU for long cargo trains with boosts (as a 50 boosted move engine could haul 200 boosted carry parts with 200 capacity each, for 40000 total carry capacity).</p>
]]></description><link>http://screeps.com/forum/post/11889</link><guid isPermaLink="true">http://screeps.com/forum/post/11889</guid><dc:creator><![CDATA[Crusher48]]></dc:creator><pubDate>Thu, 01 Nov 2018 13:53:03 GMT</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Thu, 01 Nov 2018 13:53:11 GMT]]></title><description><![CDATA[<p>I believe players will find many applications (both economical and combat) to the new mechanics.</p>
<blockquote>
<p>3 const calls</p>
</blockquote>
<p><code>.pull()</code> is free.</p>
]]></description><link>http://screeps.com/forum/post/11890</link><guid isPermaLink="true">http://screeps.com/forum/post/11890</guid><dc:creator><![CDATA[o4kapuk]]></dc:creator><pubDate>Thu, 01 Nov 2018 13:53:11 GMT</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>Ah, that makes this better. Although it's still 2 CPU calls to pull a creep compared to 1 for just having the creep move itself, it's now a tradeoff of CPU vs saving energy on harvesters.</p>
]]></description><link>http://screeps.com/forum/post/11891</link><guid isPermaLink="true">http://screeps.com/forum/post/11891</guid><dc:creator><![CDATA[Crusher48]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>There are many less obvious applications. For example, low-level rooms could add couple more WORK on their upgraders.</p>
]]></description><link>http://screeps.com/forum/post/11892</link><guid isPermaLink="true">http://screeps.com/forum/post/11892</guid><dc:creator><![CDATA[o4kapuk]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>Can I ask why this is not <code>creep.pull(target); creep.move(destination)</code>  or <code>creep.pull(target,direction)</code>?</p>
<p>Those seem much more useful and interesting.</p>
]]></description><link>http://screeps.com/forum/post/11895</link><guid isPermaLink="true">http://screeps.com/forum/post/11895</guid><dc:creator><![CDATA[NihilRex]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/344">@nihilrex</a> said in <a href="/forum/post/11895">PTR Changelog 2018-11-01: Creep.pull()</a>:</p>
<blockquote>
<p>Can I ask why this is not <code>creep.pull(target); creep.move(destination)</code>  or <code>creep.pull(target,direction)</code>?</p>
<p>Those seem much more useful and interesting.</p>
</blockquote>
<p>Did you miss the part about it being usable on other players creeps, and them having to accept it? Or am I missing where you included that in your post?</p>
]]></description><link>http://screeps.com/forum/post/11896</link><guid isPermaLink="true">http://screeps.com/forum/post/11896</guid><dc:creator><![CDATA[Maxion]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/210">@maxion</a> Why should they have to accept it?  If playercreep pulls enemycreep left, and enemycreep moves right, both should just stay still.  Adding in logic so that if player creep pulls downleft and enemycreep moves downright, they both move straight down would just be a bonus.</p>
]]></description><link>http://screeps.com/forum/post/11897</link><guid isPermaLink="true">http://screeps.com/forum/post/11897</guid><dc:creator><![CDATA[NihilRex]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>Question: Is this equivalent to an engine? If one engine (move) is more powerful do you overwhelm the other creeps move? That could make for a super interesting aspect to combat.</p>
<ol>
<li>You have more move than them. If you try force (unwilling) them with pull, you move them but get fatigue equal to your net move advantage (your move - their move). AKA if you had 20 move they had 10, you get to move them, but get fatigue as if you only had 10 move parts.</li>
<li>You have less move than them. Can't pull unwillingly, could maybe slow them down at cost of your fatigue?</li>
<li>You have more or less move than them, and they accept it willingly. You move them.</li>
</ol>
]]></description><link>http://screeps.com/forum/post/11898</link><guid isPermaLink="true">http://screeps.com/forum/post/11898</guid><dc:creator><![CDATA[Davaned]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>Honestly I don't think this should be usable on other player creeps, but has a lot of interesting prospects for use on your own.</p>
]]></description><link>http://screeps.com/forum/post/11900</link><guid isPermaLink="true">http://screeps.com/forum/post/11900</guid><dc:creator><![CDATA[Shibdib]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>Can we also get <code>Creep.push()</code>? I wanna have boosted healers pushing <code>50xATTACK</code> creeps into battle while being safe behind them <img
      src="http://screeps.com/forum/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=a1k070tfs06"
      class="not-responsive emoji emoji-android emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>http://screeps.com/forum/post/11902</link><guid isPermaLink="true">http://screeps.com/forum/post/11902</guid><dc:creator><![CDATA[Orlet]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>Will pull mechanics guarantee that pulled creep will take position of pulling creep when multiple creeps try to move into the same spot? (Think attacker - healer pair being separated by enemy creep)</p>
]]></description><link>http://screeps.com/forum/post/11905</link><guid isPermaLink="true">http://screeps.com/forum/post/11905</guid><dc:creator><![CDATA[Zyzyzyryxy]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>Would this make it impossible to get between the creeps? If both creeps are synced intent wise, then an enemy creep couldn't jump the first one and prevent the second from following. This would give an advantage to block move attacks.</p>
]]></description><link>http://screeps.com/forum/post/11907</link><guid isPermaLink="true">http://screeps.com/forum/post/11907</guid><dc:creator><![CDATA[Smokeman]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Thu, 01 Nov 2018 23:32:54 GMT]]></title><description><![CDATA[<p>I cant wait to implement a 50 heal part creep station being carried around by my attackers or just drop a 50 work part creep at someones walls. Ultimate siege strats</p>
<p>What happens to the fatigue gain of the pulling creep when the pulled creep has move parts? Do they contribute to reducing fatigue gain?</p>
]]></description><link>http://screeps.com/forum/post/11910</link><guid isPermaLink="true">http://screeps.com/forum/post/11910</guid><dc:creator><![CDATA[ObamaLlama]]></dc:creator><pubDate>Thu, 01 Nov 2018 23:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Fri, 02 Nov 2018 04:30:24 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/1006">@zyzyzyryxy</a> not guaranteed, just most likely.</p>
<p><a href="https://github.com/screeps/engine/blob/ptr/spec/engine/processor/intents/movementSpec.js#L173" rel="nofollow">When several creeps trying to move onto the same tile</a>, the priorities are: <a href="https://github.com/screeps/engine/blob/ptr/spec/engine/processor/intents/movementSpec.js#L194" rel="nofollow">creep having follower</a>, <a href="https://github.com/screeps/engine/blob/ptr/spec/engine/processor/intents/movementSpec.js#L218" rel="nofollow">creep that being pulled</a>, <a href="https://github.com/screeps/engine/blob/ptr/spec/engine/processor/intents/movementSpec.js#L205" rel="nofollow">creep that pulls someone</a>, <a href="https://github.com/screeps/engine/blob/ptr/spec/engine/processor/intents/movementSpec.js#L184" rel="nofollow">creep with best moves/weight ratio</a></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/44">@davaned</a> That may be interesting, but the current implementation is not supposed to be used unwillingly.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/2006">@smokeman</a> <a href="https://github.com/screeps/engine/blob/ptr/spec/engine/processor/intents/movementSpec.js#L218" rel="nofollow">When several creeps trying to move onto the same tile creep that being pulled takes priority</a>.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/2048">@obamallama</a> No, <a href="https://github.com/screeps/engine/blob/ptr/spec/engine/processor/intents/movementSpec.js#L252" rel="nofollow">creep pulling another creep receives another creep's fatigue</a>.
Pulled creeps, however, can use his <code>MOVE</code> parts to reduce the fatigue he already has.</p>
]]></description><link>http://screeps.com/forum/post/11916</link><guid isPermaLink="true">http://screeps.com/forum/post/11916</guid><dc:creator><![CDATA[o4kapuk]]></dc:creator><pubDate>Fri, 02 Nov 2018 04:30:24 GMT</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/183">@o4kapuk</a> Can you pull someone that has fatigue remaining?</p>
]]></description><link>http://screeps.com/forum/post/11919</link><guid isPermaLink="true">http://screeps.com/forum/post/11919</guid><dc:creator><![CDATA[ObamaLlama]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/2048">@obamallama</a> Yes, because <a href="https://ptr-docs.screeps.com/api/#Creep.move" rel="nofollow">if you call move on a creep nearby, the ERR_TIRED and the ERR_NO_BODYPART checks will be bypassed</a>. Also, the fatigue of the pulled creep will be decreased as usual according to the pulled creep's <code>MOVE</code> parts.</p>
]]></description><link>http://screeps.com/forum/post/11921</link><guid isPermaLink="true">http://screeps.com/forum/post/11921</guid><dc:creator><![CDATA[o4kapuk]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>That's really cool.</p>
<p>How does it handle switching rooms? I can imagine the train creep being knocked into the next room while the pulled creep is still 1 tile in front of the exit <img
      src="http://screeps.com/forum/plugins/nodebb-plugin-emoji/emoji/android/1f914.png?v=a1k070tfs06"
      class="not-responsive emoji emoji-android emoji--thinking_face"
      title=":thinking_face:"
      alt="🤔"
    /></p>
]]></description><link>http://screeps.com/forum/post/11925</link><guid isPermaLink="true">http://screeps.com/forum/post/11925</guid><dc:creator><![CDATA[keenathar]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/1815">@keenathar</a> this is for players to handle. I have a couple of implementations (so I know it's possible), but I'd not spoil it because players should have their own wonderful discoveries.</p>
]]></description><link>http://screeps.com/forum/post/11928</link><guid isPermaLink="true">http://screeps.com/forum/post/11928</guid><dc:creator><![CDATA[o4kapuk]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/183">@o4kapuk</a> said in <a href="/forum/post/11916">PTR Changelog 2018-11-01: Creep.pull()</a>:</p>
<blockquote>
<p>When several creeps trying to move onto the same tile, the priorities are: creep having follower, creep that being pulled, creep that pulls someone, creep with best moves/weight ratio</p>
</blockquote>
<p>Does this mean we can use <code>Creep.pull()</code> to prevent other creeps from squeezing in-between attacker-healer pair creeps? Assuming attacker <code>pull()</code>s the healer along?</p>
]]></description><link>http://screeps.com/forum/post/11930</link><guid isPermaLink="true">http://screeps.com/forum/post/11930</guid><dc:creator><![CDATA[Orlet]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/2415">@orlet</a> not guaranteed, just most likely.</p>
]]></description><link>http://screeps.com/forum/post/11947</link><guid isPermaLink="true">http://screeps.com/forum/post/11947</guid><dc:creator><![CDATA[o4kapuk]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/2415">@orlet</a> You would still be able to move past them diagonally if they were next to each other diagonally but you could probably make them create a solid line but it would slow down how fast you can get to places</p>
]]></description><link>http://screeps.com/forum/post/11949</link><guid isPermaLink="true">http://screeps.com/forum/post/11949</guid><dc:creator><![CDATA[ObamaLlama]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to PTR Changelog 2018-11-01: Creep.pull() on Invalid Date]]></title><description><![CDATA[<p>I see. Well, that's still useful and something to consider. Might actually implement a trio train squads, melee-healer-ranger mini choo choo train <img
      src="http://screeps.com/forum/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=a1k070tfs06"
      class="not-responsive emoji emoji-android emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>http://screeps.com/forum/post/11956</link><guid isPermaLink="true">http://screeps.com/forum/post/11956</guid><dc:creator><![CDATA[Orlet]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>