Jump to content

Efficient Attachment Sync 1.0.4

   (14 reviews)

2 Screenshots

About This File

Most of the server developers (ones that don't patiently wait for *something large*, though this resource is powerful enough) use their own server-side object attachments implementation that represents some large JSON with all the object and attachment information. This resource lets you cache "static attachments" in the client-side code so thanks to efficient utilization of the shared data it just uses a small shared variable to do the attachment processing without any need to create server-side objects nor send its data.


For example, if you want to attach a specific object to specific ped bone with spefic bone offset and object rotation, this will only use a ~4-8 byte shared variable keeping it accurate. User-made implementations I have seen before usually take ~100 bytes per an object.


API: Client-side

  • mp.attachmentMngr.register(attachmentId, model, bone, offset, rotation)
  • mp.attachmentMngr.addLocal(attachmentId) (synced!)
  • mp.attachmentMngr.removeLocal(attachmentId) (synced!)


API: Server-side

  • player.addAttachment(attachmentId, remove)
  • player.hasAttachment(attachmentId)


Example Resource

There's an example resource in /client-packages/epic-attachments folder. It lets you toggle attachments (there are like 30 attachments) using a NativeUI-based menu. Thanks to root for his contributions made to the example resource.




What's New in Version 1.0.4   See changelog


Bug fix

  • Like 11

User Feedback

Create an account or sign in to leave a review

You need to be a member in order to leave a review

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


· Edited by Henning222

   2 of 2 members found this review helpful 2 / 2 members


With Ragemp 1.1 you need to make a Timeout before attaching the Item!!!

1.The setTimeout is added from me but its not in the version you can download (1.04). 

2. For Ragemp 1.1 you need to use the code from rootcause, you can find in the comment section of this ressource.

3, After you implemented rootcause code: 


is not triggered so you need to use a invervall to make it work.


	setTimeout(function () {
					(typeof(attInfo.boneName) === 'string') ? entity.getBoneIndexByName(attInfo.boneName) : entity.getBoneIndex(attInfo.boneName),
					attInfo.offset.x, attInfo.offset.y, attInfo.offset.z, 
					attInfo.rotation.x, attInfo.rotation.y, attInfo.rotation.z, 
					false, false, false, false, 2, true);

				entity.__attachmentObjects[id] = object;
				}, 500);




setInterval(checkForStreamInTe, 1000);

function checkForStreamInTe(){
   mp.objects.forEach((object) => {
      if (object.handle) {
      else {

function checkForStreamIn(object) {
   if (!mp.objects.exists(object)) return;
   object.isInStreamRange = true;
   mp.events.call('entityStreamIn', object);

function checkForStreamOut(object) {
   if (!object.isInStreamRange) return;
   object.isInStreamRange = false;
   mp.events.call('entityStreamOut', object);



Link to review

· Edited by Original

   4 of 5 members found this review helpful 4 / 5 members

C# when to make it more ok? 

Link to review

· Edited by n0minal

   1 of 2 members found this review helpful 1 / 2 members

Awesome resource, I'll use it on my server.

Link to review
Dimitri Stupakis

· Edited by Dimitri Stupakis

   0 of 2 members found this review helpful 0 / 2 members

Is there a way not only to add/remove an attachment but also just drop the attachment? like pickup a barrel, carry it to another point and drop it there.

Great work by the way!


Link to review

   0 of 2 members found this review helpful 0 / 2 members

Great resource, thanks

Link to review

   0 of 2 members found this review helpful 0 / 2 members


Link to review

   0 of 2 members found this review helpful 0 / 2 members


Link to review

   0 of 2 members found this review helpful 0 / 2 members

it's ok

Link to review

   0 of 2 members found this review helpful 0 / 2 members

It's ok

Link to review
  • Create New...