C#:
---
layout: forums
title: 'Solved - Set sleeper position'
breadcrumbs:
- "Plugin Development": "/forums/plugin-development.105/"
- "Rust Development": "/forums/rust-development.4/"
---
<div class="titleBar">
<h1>
<span class="prefix prefixGreen">Solved</span> <a href="{{ '/threads/set-sleeper-position.11678/' | prepend: site.baseurl }}">Set sleeper position</a>
</h1>
<p id="pageDescription" class="muted">Discussion in '<a href="{{ '/forums/rust-development.4/' | prepend: site.baseurl }}">Rust Development</a>' started by <a class="username"
dir="auto">theconezone</a>, <a href="{{ '/threads/set-sleeper-position.11678/' | prepend: site.baseurl }}"><span class="DateTime" title="Sep 11, 2015 at 10:32 PM">Sep 11, 2015</span></a>.
</p>
</div>
<ol class="messageList" id="messageList">
<li id="post-128001" class="message" data-author="theconezone">
<div class="messageUserInfo">
<div class="messageUserBlock">
<div class="avatarHolder">
<span class="helper"></span>
<a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="theconezone" /></a>
</div>
<h3 class="userText">
<a class="username" dir="auto">theconezone</a>
</h3>
<span class="arrow"></span>
</div>
</div>
<div class="messageInfo primaryContent">
<div class="messageContent">
<article>
<blockquote class="messageText SelectQuoteContainer ugc baseHtml"> There have been a few threads on getting a sleeping player's position, but none on setting it.<br />
<br /> The following does not work for a given BasePlayer sleeper and Vector3 newPosition:<br />
<br />
<div class="bbCodeBlock bbCodeQuote">
<aside>
<blockquote class="quoteContainer">
<div class="quote">//doesn't work<br /> ForcePlayerPosition(sleeper, newPosition);<br />
<br /> //doesn't work<br /> sleeper.transform.position = newPosition;<br />
<br /> //doesn't work<br /> sleeper.MovePosition(newPosition);<br />
<br /> //doesn't work<br /> sleeper.transform.position.Set(newPosition.x, newPosition.y, newPosition.z);<br />
<br /> //doesn't work<br /> sleeper.GetEntity().transform.position = newPosition;</div>
<div class="quoteExpand">Click to expand...</div>
</blockquote>
</aside>
</div>I'm out of ideas at this point. I think maybe sleeping players are a type of container rather than a player, but even if they are I still have no idea how to move
them. <div class="messageTextEndMarker"> </div>
</blockquote>
</article>
</div>
<div class="messageMeta ToggleTriggerAnchor">
<div class="privateControls">
<span class="item muted">
<span class="authorEnd"><a class="username author" dir="auto">theconezone</a>,</span>
<a href="{{ '/threads/set-sleeper-position.11678/' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
title="Sep 11, 2015 at 10:32 PM">Sep 11, 2015</span></a>
</span>
</div>
<div class="publicControls">
<a href="{{ '/threads/set-sleeper-position.11678/' | prepend: site.baseurl }}" title="Permalink" class="item muted postNumber hashPermalink OverlayTrigger"
data-href="posts/128001/permalink">#1</a>
</div>
</div>
</div>
</li>
<li id="post-128085" class="message" data-author="Reneb">
<div class="messageUserInfo">
<div class="messageUserBlock">
<div class="avatarHolder">
<span class="helper"></span>
<a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Reneb" /></a>
</div>
<h3 class="userText">
<a class="username" dir="auto">Reneb</a>
</h3>
<span class="arrow"></span>
</div>
</div>
<div class="messageInfo primaryContent">
<div class="messageContent">
<article>
<blockquote class="messageText SelectQuoteContainer ugc baseHtml"> sleepers are players so you can forceplayerposition as if they were online players.<br /> you just have to look
in all the plugins as there is a trick now to successfully change someones position. (search for lastPosition)<br /> Event Manager, Portgun, Teleportation system, etc... you
can look in all those plugins. <div class="messageTextEndMarker"> </div>
</blockquote>
</article>
</div>
<div class="messageMeta ToggleTriggerAnchor">
<div class="privateControls">
<span class="item muted">
<span class="authorEnd"><a class="username author" dir="auto">Reneb</a>,</span>
<a href="{{ '/threads/set-sleeper-position.11678/#post-128085' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
title="Sep 12, 2015 at 8:51 AM">Sep 12, 2015</span></a>
</span>
</div>
<div class="publicControls">
<a href="{{ '/threads/set-sleeper-position.11678/#post-128085' | prepend: site.baseurl }}" title="Permalink" class="item muted postNumber hashPermalink OverlayTrigger"
data-href="posts/128085/permalink">#2</a>
</div>
</div>
</div>
</li>
<li id="post-128153" class="message" data-author="theconezone">
<div class="messageUserInfo">
<div class="messageUserBlock">
<div class="avatarHolder">
<span class="helper"></span>
<a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="theconezone" /></a>
</div>
<h3 class="userText">
<a class="username" dir="auto">theconezone</a>
</h3>
<span class="arrow"></span>
</div>
</div>
<div class="messageInfo primaryContent">
<div class="messageContent">
<article>
<blockquote class="messageText SelectQuoteContainer ugc baseHtml"> Thanks, I did search other plugins but I was searching for transform.position. Here is my resulting code for
anyone else who needs to know this later (minus error checking, works on both sleepers and players):<br />
<br />
<div class="bbCodeBlock bbCodeCode">
<div class="type">Code:</div>
{% raw %}<pre>
using System;
using System.Reflection;namespace Oxide.Plugins { [Info("ExamplePlugin", "John Example", "0.0.1")]
class ExamplePlugin : RustPlugin { private FieldInfo lastPositionValueField; protected void Loaded() { //retrieve BasePlayer.lastPositionValue for later usage
lastPositionValueField = typeof(BasePlayer).GetField("lastPositionValue", BindingFlags.NonPublic | BindingFlags.Instance); } //"fix" ForcePlayerPosition
protected new void ForcePlayerPosition(BasePlayer player, Vector3 destination) { //check if player is actively playing
if (player.IsConnected() && !player.IsReceivingSnapshot()) { //check if player is sleeping
if (!player.IsSleeping()) { //player is not sleeping, put player to sleep
player.StartSleeping(); } //Set position and send ForcePositionTo
base.ForcePlayerPosition(player, destination); //Send player into loading screen
player.SetPlayerFlag(BasePlayer.PlayerFlags.ReceivingSnapshot, true);
player.UpdateNetworkGroup();
player.SendNetworkUpdateImmediate(false);
player.ClientRPCPlayer(null, player, "StartLoading"); } else { //player is not connected, simply set the position
player.transform.position = destination; } //Update player position
lastPositionValueField.SetValue(player, destination);
player.TransformChanged(); //check if we sent the player into a loading screen
if (player.IsReceivingSnapshot()) { //Send full update to client
player.SendFullSnapshot(); //player is done loading, end loading screen
player.SetPlayerFlag(BasePlayer.PlayerFlags.ReceivingSnapshot, false);
player.ClientRPCPlayer(null, player, "FinishLoading"); } } }}
</pre>{% endraw %}
</div>
<div class="messageTextEndMarker"> </div>
</blockquote>
</article>
</div>
<div class="messageMeta ToggleTriggerAnchor">
<div class="privateControls">
<span class="item muted">
<span class="authorEnd"><a class="username author" dir="auto">theconezone</a>,</span>
<a href="{{ '/threads/set-sleeper-position.11678/#post-128153' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
title="Sep 12, 2015 at 4:38 PM">Sep 12, 2015</span></a>
</span>
</div>
<div class="publicControls">
<a href="{{ '/threads/set-sleeper-position.11678/#post-128153' | prepend: site.baseurl }}" title="Permalink" class="item muted postNumber hashPermalink OverlayTrigger"
data-href="posts/128153/permalink">#3</a>
</div>
</div>
</div>
</li>
<li id="post-390748" class="message" data-author="Devander">
<div class="messageUserInfo">
<div class="messageUserBlock">
<div class="avatarHolder">
<span class="helper"></span>
<a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Devander" /></a>
</div>
<h3 class="userText">
<a class="username" dir="auto">Devander</a>
</h3>
<span class="arrow"></span>
</div>
</div>
<div class="messageInfo primaryContent">
<div class="messageContent">
<article>
<blockquote class="messageText SelectQuoteContainer ugc baseHtml"> Does this still work? How do I go about using this code? <div class="messageTextEndMarker"> </div>
</blockquote>
</article>
</div>
<div class="messageMeta ToggleTriggerAnchor">
<div class="privateControls">
<span class="item muted">
<span class="authorEnd"><a class="username author" dir="auto">Devander</a>,</span>
<a href="{{ '/threads/set-sleeper-position.11678/#post-390748' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
title="Mar 10, 2018 at 7:43 AM">Mar 10, 2018</span></a>
</span>
</div>
<div class="publicControls">
<a href="{{ '/threads/set-sleeper-position.11678/#post-390748' | prepend: site.baseurl }}" title="Permalink" class="item muted postNumber hashPermalink OverlayTrigger"
data-href="posts/390748/permalink">#4</a>
</div>
</div>
</div>
</li>
<li id="post-392433" class="message" data-author="Devander">
<div class="messageUserInfo">
<div class="messageUserBlock">
<div class="avatarHolder">
<span class="helper"></span>
<a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Devander" /></a>
</div>
<h3 class="userText">
<a class="username" dir="auto">Devander</a>
</h3>
<span class="arrow"></span>
</div>
</div>
<div class="messageInfo primaryContent">
<div class="messageContent">
<article>
<blockquote class="messageText SelectQuoteContainer ugc baseHtml"> For anyone reading this, I'm pretty sure I ended up using NTeleportation to move sleepers instead! After
using the Finder plugin to find them. <div class="messageTextEndMarker"> </div>
</blockquote>
</article>
</div>
<div class="messageMeta ToggleTriggerAnchor">
<div class="privateControls">
<span class="item muted">
<span class="authorEnd"><a class="username author" dir="auto">Devander</a>,</span>
<a href="{{ '/threads/set-sleeper-position.11678/#post-392433' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
title="Mar 24, 2018 at 3:16 AM">Mar 24, 2018</span></a>
</span>
</div>
<div class="publicControls">
<a href="{{ '/threads/set-sleeper-position.11678/#post-392433' | prepend: site.baseurl }}" title="Permalink" class="item muted postNumber hashPermalink OverlayTrigger"
data-href="posts/392433/permalink">#5</a>
</div>
</div>
</div>
</li>
</ol>