Haven't tried it yet, but it's going to happen soon! I'll make sure to post some feedback when I get my hands on it. ^^
is the way InSim.Send changed. I had my own function to use InSim.Send within, and now I have to duplicate that.. like.. a million times. Or is there an easier way? Is there an argument type I can use to accept all packet types? (I hope my terminology is fine here, and I'm not saying some random crab)
Is there an evident difference of pro's & contra's of pyinsim vs InSim.NET?


if ((pit.Work & PitWorkFlags.PSE_NOTHING) == PitWorkFlags.PSE_NOTHING)
insim.Send(new IS_MTC { Msg = verde + "PSE_NOTHING detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_STOP) == PitWorkFlags.PSE_STOP)
insim.Send(new IS_MTC { Msg = verde + "PSE_STOP detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_FR_DAM) == PitWorkFlags.PSE_FR_DAM)
insim.Send(new IS_MTC { Msg = verde + "PSE_FR_DAM detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_FR_WHL) == PitWorkFlags.PSE_FR_WHL)
insim.Send(new IS_MTC { Msg = verde + "PSE_FR_WHL detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_LE_FR_DAM) == PitWorkFlags.PSE_LE_FR_DAM)
insim.Send(new IS_MTC { Msg = verde + "PSE_LE_FR_DAM detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_LE_FR_WHL) == PitWorkFlags.PSE_LE_FR_WHL)
insim.Send(new IS_MTC { Msg = verde + "PSE_LE_FR_WHL detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_RI_FR_DAM) == PitWorkFlags.PSE_RI_FR_DAM)
insim.Send(new IS_MTC { Msg = verde + "PSE_RI_FR_DAM detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_RI_FR_WHL) == PitWorkFlags.PSE_RI_FR_WHL)
insim.Send(new IS_MTC { Msg = verde + "PSE_RI_FR_WHL detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_LE_RE_DAM) == PitWorkFlags.PSE_LE_RE_DAM)
insim.Send(new IS_MTC { Msg = verde + "PSE_LE_RE_DAM detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_LE_RE_WHL) == PitWorkFlags.PSE_LE_RE_WHL)
insim.Send(new IS_MTC { Msg = verde + "PSE_LE_RE_WHL detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_RI_RE_DAM) == PitWorkFlags.PSE_RI_RE_DAM)
insim.Send(new IS_MTC { Msg = verde + "PSE_RI_RE_DAM detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_RI_RE_WHL) == PitWorkFlags.PSE_RI_RE_WHL)
insim.Send(new IS_MTC { Msg = verde + "PSE_RI_RE_WHL detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_SETUP) == PitWorkFlags.PSE_SETUP)
insim.Send(new IS_MTC { Msg = verde + "PSE_SETUP detectado0", PLID = pit.PLID });
if ((pit.Work & PitWorkFlags.PSE_REFUEL) == PitWorkFlags.PSE_REFUEL)
insim.Send(new IS_MTC { Msg = verde + "PSE_REFUEL detectado0", PLID = pit.PLID });
if(pit.Work.Has(PitWorkFlags.PSE_NOTHING))
insim.Send(new IS_MTC { Msg = verde + "PSE_NOTHING", PLID = pit.PLID });
if(pit.Work.Has(PitWorkFlags.PSE_STOP))
insim.Send(new IS_MTC { Msg = verde + "PSE_STOP", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_FR_DAM))
insim.Send(new IS_MTC { Msg = verde + "PSE_FR_DAM", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_FR_WHL))
insim.Send(new IS_MTC { Msg = verde + "PSE_FR_WHL", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_RI_FR_DAM))
insim.Send(new IS_MTC { Msg = verde + "PSE_RI_FR_DAM", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_RE_DAM))
insim.Send(new IS_MTC { Msg = verde + "PSE_RE_DAM", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_RE_WHL))
insim.Send(new IS_MTC { Msg = verde + "PSE_RE_WHL", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_RE_WHL))
insim.Send(new IS_MTC { Msg = verde + "PSE_RE_WHL", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_LE_RE_DAM))
insim.Send(new IS_MTC { Msg = verde + "PSE_LE_RE_DAM", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_LE_RE_WHL))
insim.Send(new IS_MTC { Msg = verde + "PSE_LE_RE_WHL", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_RI_RE_DAM))
insim.Send(new IS_MTC { Msg = verde + "PSE_RI_RE_DAM", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_RI_RE_WHL))
insim.Send(new IS_MTC { Msg = verde + "PSE_RI_RE_WHL", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_BODY_MINOR))
insim.Send(new IS_MTC { Msg = verde + "PSE_BODY_MINOR", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_BODY_MAJOR))
insim.Send(new IS_MTC { Msg = verde + "PSE_BODY_MAJOR", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_SETUP))
insim.Send(new IS_MTC { Msg = verde + "PSE_SETUP", PLID = pit.PLID });
if (pit.Work.Has(PitWorkFlags.PSE_REFUEL))
insim.Send(new IS_MTC { Msg = verde + "PSE_REFUEL", PLID = pit.PLID });
/// <summary>
/// No work done.
/// </summary>
PSE_NOTHING = 1,
/// <summary>
/// Stopped at pit-box.
/// </summary>
PSE_STOP = 2,
/// <summary>
/// Front damage.
/// </summary>
PSE_FR_DAM = 4,
/// <summary>
/// Front wheels changed.
/// </summary>
PSE_FR_WHL = 8,
/// <summary>
/// Left-front damage.
/// </summary>
PSE_LE_FR_DAM = 16,
/// <summary>
/// Left-front wheels changed.
/// </summary>
PSE_LE_FR_WHL = 32,
/// <summary>
/// Right-front damaged.
/// </summary>
PSE_RI_FR_DAM = 64,
/// <summary>
/// Right-front wheel changed.
/// </summary>
PSE_RI_FR_WHL = 128,
/// <summary>
/// Rear damage.
/// </summary>
PSE_RE_DAM = 256,
/// <summary>
/// Rear wheels changed.
/// </summary>
PSE_RE_WHL = 512,
/// <summary>
/// Left-rear damage.
/// </summary>
PSE_LE_RE_DAM = 1024,
/// <summary>
/// Left-rear wheel changed.
/// </summary>
PSE_LE_RE_WHL = 2048,
/// <summary>
/// Right-rear damage.
/// </summary>
PSE_RI_RE_DAM = 4096,
/// <summary>
/// Right-rear wheel changed.
/// </summary>
PSE_RI_RE_WHL = 8192,
/// <summary>
/// Minor body damage.
/// </summary>
PSE_BODY_MINOR = 16384,
/// <summary>
/// Major body damage.
/// </summary>
PSE_BODY_MAJOR = 32768,
/// <summary>
/// Setup changed.
/// </summary>
PSE_SETUP = 65536,
/// <summary>
/// Refuelled.
/// </summary>
PSE_REFUEL = 131072,
and whenever launch the insim on the server i wrote my pw, port on the insim but when it connects it doesn't message any packet until i disconnect and comeback to the server and thats the time all packets is going to function..