robloxmemoryapi 0.2.6__tar.gz → 0.2.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. {robloxmemoryapi-0.2.6/src/robloxmemoryapi.egg-info → robloxmemoryapi-0.2.7}/PKG-INFO +4 -2
  2. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/README.md +3 -1
  3. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/pyproject.toml +1 -1
  4. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/instance.py +124 -7
  5. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7/src/robloxmemoryapi.egg-info}/PKG-INFO +4 -2
  6. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/LICENSE.md +0 -0
  7. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/setup.cfg +0 -0
  8. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/__init__.py +0 -0
  9. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/__init__.py +0 -0
  10. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/luau/__init__.py +0 -0
  11. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/luau/parser.py +0 -0
  12. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/memory.py +0 -0
  13. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/offsets.py +0 -0
  14. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/__init__.py +0 -0
  15. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/bytecode/decryptor.py +0 -0
  16. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/bytecode/encryptor.py +0 -0
  17. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/datastructures.py +0 -0
  18. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/fflags.py +0 -0
  19. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/SOURCES.txt +0 -0
  20. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/dependency_links.txt +0 -0
  21. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/requires.txt +0 -0
  22. {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robloxmemoryapi
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: Python Library that abstracts reading and writing data from the Roblox DataModel
5
5
  Author-email: upio <notpoiu@users.noreply.github.com>, mstudio45 <mstudio45@users.noreply.github.com>, ActualMasterOogway <ActualMasterOogway@users.noreply.github.com>
6
6
  License: Copyright 2025 upio, mstudio45, master oogway
@@ -35,7 +35,9 @@ Dynamic: license-file
35
35
 
36
36
  This was made by [upio](https://github.com/notpoiu), [mstudio45](https://github.com/mstudio45), and [Master Oogway](https://github.com/ActualMasterOogway) and created for the [Dig Macro](https://github.com/mstudio45/digmacro) project (external mode and not the computer vision mode).
37
37
 
38
- Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affilated with imtheo.lol in any way.
38
+ Join our [Discord](https://discord.gg/FJcJMuze7S) for support and updates.
39
+
40
+ Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affiliated with imtheo.lol in any way.
39
41
 
40
42
  ## Installation
41
43
 
@@ -4,7 +4,9 @@
4
4
 
5
5
  This was made by [upio](https://github.com/notpoiu), [mstudio45](https://github.com/mstudio45), and [Master Oogway](https://github.com/ActualMasterOogway) and created for the [Dig Macro](https://github.com/mstudio45/digmacro) project (external mode and not the computer vision mode).
6
6
 
7
- Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affilated with imtheo.lol in any way.
7
+ Join our [Discord](https://discord.gg/FJcJMuze7S) for support and updates.
8
+
9
+ Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affiliated with imtheo.lol in any way.
8
10
 
9
11
  ## Installation
10
12
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "robloxmemoryapi"
7
- version = "0.2.6"
7
+ version = "0.2.7"
8
8
  description = "Python Library that abstracts reading and writing data from the Roblox DataModel"
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
  requires-python = ">=3.9"
@@ -29,6 +29,8 @@ charactermesh_offsets = Offsets["CharacterMesh"]
29
29
  attachment_offsets = Offsets["Attachment"]
30
30
  air_properties_offsets = Offsets["AirProperties"]
31
31
  seat_offsets = Offsets["Seat"]
32
+ meshpart_offsets = Offsets["MeshPart"]
33
+ textures_offsets = Offsets["Textures"]
32
34
 
33
35
  ROTATION_MATRIX_FLOATS = 9
34
36
 
@@ -612,6 +614,69 @@ class RBXInstance:
612
614
  bytes([r & 0xFF, g & 0xFF, b & 0xFF])
613
615
  )
614
616
 
617
+ @property
618
+ def Reflectance(self):
619
+ if "part" not in self.ClassName.lower():
620
+ return None
621
+
622
+ return self.memory_module.read_float(
623
+ self.raw_address,
624
+ basepart_offsets["Reflectance"]
625
+ )
626
+
627
+ @Reflectance.setter
628
+ def Reflectance(self, value: float):
629
+ if "part" not in self.ClassName.lower():
630
+ raise AttributeError("Reflectance is only available on BasePart-derived instances.")
631
+ self._ensure_writable()
632
+
633
+ self.memory_module.write_float(
634
+ self.raw_address + basepart_offsets["Reflectance"],
635
+ float(value)
636
+ )
637
+
638
+ @property
639
+ def Locked(self):
640
+ if "part" not in self.ClassName.lower():
641
+ return None
642
+
643
+ return self.memory_module.read_bool(
644
+ self.raw_address,
645
+ basepart_offsets["Locked"]
646
+ )
647
+
648
+ @Locked.setter
649
+ def Locked(self, value: bool):
650
+ if "part" not in self.ClassName.lower():
651
+ raise AttributeError("Locked is only available on BasePart-derived instances.")
652
+ self._ensure_writable()
653
+
654
+ self.memory_module.write_bool(
655
+ self.raw_address + basepart_offsets["Locked"],
656
+ bool(value)
657
+ )
658
+
659
+ @property
660
+ def Massless(self):
661
+ if "part" not in self.ClassName.lower():
662
+ return None
663
+
664
+ return self.memory_module.read_bool(
665
+ self.raw_address,
666
+ basepart_offsets["Massless"]
667
+ )
668
+
669
+ @Massless.setter
670
+ def Massless(self, value: bool):
671
+ if "part" not in self.ClassName.lower():
672
+ raise AttributeError("Massless is only available on BasePart-derived instances.")
673
+ self._ensure_writable()
674
+
675
+ self.memory_module.write_bool(
676
+ self.raw_address + basepart_offsets["Massless"],
677
+ bool(value)
678
+ )
679
+
615
680
  def _read_primitive_flags(self):
616
681
  data = self.memory_module.read(
617
682
  self.primitive_address + primitive_offsets["Flags"],
@@ -1132,20 +1197,72 @@ class RBXInstance:
1132
1197
 
1133
1198
  @property
1134
1199
  def TextureId(self):
1135
- if self.ClassName != "Tool":
1200
+ className = self.ClassName
1201
+ if className == "Tool":
1202
+ return self.memory_module.read_string(
1203
+ self.raw_address,
1204
+ tool_offsets["TextureId"]
1205
+ )
1206
+ elif className == "MeshPart":
1207
+ return self.memory_module.read_string(
1208
+ self.raw_address,
1209
+ meshpart_offsets["Texture"]
1210
+ )
1211
+ elif className == "Decal":
1212
+ return self.memory_module.read_string(
1213
+ self.raw_address,
1214
+ textures_offsets["Decal_Texture"]
1215
+ )
1216
+ elif className == "Texture":
1217
+ return self.memory_module.read_string(
1218
+ self.raw_address,
1219
+ textures_offsets["Texture_Texture"]
1220
+ )
1221
+ return None
1222
+
1223
+ @TextureId.setter
1224
+ def TextureId(self, value: str):
1225
+ className = self.ClassName
1226
+ self._ensure_writable()
1227
+ if className == "Tool":
1228
+ self.memory_module.write_string(
1229
+ self.raw_address + tool_offsets["TextureId"],
1230
+ str(value)
1231
+ )
1232
+ elif className == "MeshPart":
1233
+ self.memory_module.write_string(
1234
+ self.raw_address + meshpart_offsets["Texture"],
1235
+ str(value)
1236
+ )
1237
+ elif className == "Decal":
1238
+ self.memory_module.write_string(
1239
+ self.raw_address + textures_offsets["Decal_Texture"],
1240
+ str(value)
1241
+ )
1242
+ elif className == "Texture":
1243
+ self.memory_module.write_string(
1244
+ self.raw_address + textures_offsets["Texture_Texture"],
1245
+ str(value)
1246
+ )
1247
+ else:
1248
+ raise AttributeError("TextureId is only available on Tool, MeshPart, Decal, or Texture instances.")
1249
+
1250
+ @property
1251
+ def MeshId(self):
1252
+ if self.ClassName != "MeshPart":
1136
1253
  return None
1137
1254
  return self.memory_module.read_string(
1138
1255
  self.raw_address,
1139
- tool_offsets["TextureId"]
1256
+ meshpart_offsets["MeshId"]
1140
1257
  )
1141
1258
 
1142
- @TextureId.setter
1143
- def TextureId(self, value: str):
1144
- if self.ClassName != "Tool":
1145
- raise AttributeError("TextureId is only available on Tool instances.")
1259
+ @MeshId.setter
1260
+ def MeshId(self, value: str):
1261
+ if self.ClassName != "MeshPart":
1262
+ raise AttributeError("MeshId is only available on MeshPart instances.")
1146
1263
  self._ensure_writable()
1147
1264
  self.memory_module.write_string(
1148
- self.raw_address + tool_offsets["TextureId"],
1265
+ self.raw_address + meshpart_offsets["MeshId"],
1149
1266
  str(value)
1150
1267
  )
1151
1268
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robloxmemoryapi
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: Python Library that abstracts reading and writing data from the Roblox DataModel
5
5
  Author-email: upio <notpoiu@users.noreply.github.com>, mstudio45 <mstudio45@users.noreply.github.com>, ActualMasterOogway <ActualMasterOogway@users.noreply.github.com>
6
6
  License: Copyright 2025 upio, mstudio45, master oogway
@@ -35,7 +35,9 @@ Dynamic: license-file
35
35
 
36
36
  This was made by [upio](https://github.com/notpoiu), [mstudio45](https://github.com/mstudio45), and [Master Oogway](https://github.com/ActualMasterOogway) and created for the [Dig Macro](https://github.com/mstudio45/digmacro) project (external mode and not the computer vision mode).
37
37
 
38
- Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affilated with imtheo.lol in any way.
38
+ Join our [Discord](https://discord.gg/FJcJMuze7S) for support and updates.
39
+
40
+ Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affiliated with imtheo.lol in any way.
39
41
 
40
42
  ## Installation
41
43