I’m curious on what the fix to this issue was?
I’m personally facing this same problem with rotations from the client to the server with a placement system for objects
Edit: I have fixed it also myself since asking how to fix this.
It takes modifying the cframe
module; here is what I done to fix it so others can copy + paste it; possibly even get implemented to the public state of BytenetMax.
local bufferWriter = require(script.Parent.Parent.process.bufferWriter)
local types = require(script.Parent.Parent.types)
local f32NoAlloc = bufferWriter.f32NoAlloc
local alloc = bufferWriter.alloc
local cframe = {
read = function(b: buffer, cursor: number)
local x : number = buffer.readf32(b, cursor)
local y : number = buffer.readf32(b, cursor + 4)
local z : number = buffer.readf32(b, cursor + 8)
local rx : number = buffer.readf32(b, cursor + 12)
local ry : number = buffer.readf32(b, cursor + 16)
local rz : number = buffer.readf32(b, cursor + 20)
return CFrame.Angles(rx, ry, rz) + Vector3.new(x, y, z), 24
end,
write = function(value: CFrame)
local x : number, y : number, z : number = value.X, value.Y, value.Z
local axis : Vector3, angle : number = value:ToAxisAngle()
axis *= angle
local rx : number, ry : number, rz : number = axis.X, axis.Y, axis.Z
-- Math done, write it now
alloc(24)
f32NoAlloc(x)
f32NoAlloc(y)
f32NoAlloc(z)
f32NoAlloc(rx)
f32NoAlloc(ry)
f32NoAlloc(rz)
end,
}
return function(): types.dataTypeInterface<CFrame>
return cframe
end
These sorts of CFrame issues did exist within the original Bytenet as well and remain to exist as no update has resolved such issue for Bytenet itself.
I hope this helps others and the author @Lightning_Game27 for this Bytenet Fork and possibly the original Bytenet library