<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="51">
  <Forms>
    <CETrainer Class="TTrainerForm" Encoding="Ascii85">=U.LT6W0{ouO!R6l5Anj%Pn-GDGs/m9Aapov=.NLi0OE2+HQ;1Da}45,dE$GI=?@(Xah5uNg$6FnwCe(FlkfT6bEQZI_GzScqD-anG^H:jUSk_ZQgZE3x1rQySsW:k%$eYe@s8{Xm[vg^mwo2,[P8boisu]g;$DSc_1N(ka+u++.i=Cy7aq+Jib(h9XBNA?/Lg.V!A/09:Xc2-)-GDC^fByiww!xUPV}UJ7r1n$s%KOx{4;[x1w0CeS}pxRf-?;iR0#TVmU8VI]mN.#Y-Idbi7hd6qB5yz*MO9VAJk^/C}qbDEku9*6/D^E/!TZdxr6fPn8P[Z/+)nrOY^.!ddsH5b^2X5Ci?;9Q4}k-oYoM?mU56ACbq2[FVm7TM5xL+iQ.,qDnwbLRF%,q8d=MsJ.{@+k;nux^{G3M${f6m]v(;+}z.Jc2Y.}[7lOKiCT_pL-n8[tVXbty=^K[mY^l2r%;zg]3$tflsp7GbS}9c*T@jV1DTQR4/fm-*QMV!^IB9Sv6F3sWzRr.i0Z!wc2NDO^b/8ClgaN$GTHiNY$xhuY.L5[w,vMnA9dN)hG.*TuxH+Uc2Esy!:rR9k_S*.,2c=L=#%w,Uf4nH*8e5nl5Il0[CH[.waQMm8+y)0]Lj?,[sQq6*Is,qT=c+c8*C7ONdqL_ypwQ$Ct/)4k)K-(Y@WGEtV17A[7pw0gt*@^sR/_H?kfut)wY.nX7wppv!-pxTK(@jsIC4Crcd4tNro?+TWOv_o^Z^@WRGT:p}l_/Cz?_T]!#?$;vu2O_C1x1!{pvAqWwVgq:=Mz1AX2EPrKXU*P,8^c)otSU*FTtN/W.t*CXrfdqVdYuY(qad*{*m]2UfjcI=]71so(aQ]bb{+I]]kd;5Hbk@B){(G4)Yy3^[w^+/$A$3Cc#7Q;%,_5fF,p1%n^-;=}0y{lk@eswJ/H7nrIk:B@{@Jr]9xn6KRwoi:+%BL{%LK,(7+(XToG*oJ-x8o-IE!;}[aOn#x!E83e()^4Kjx{[EAS#f@Ffe)[!.m#=2BdvuEbQ3%F]Vh;QT.$_jI]l(dmrRK?uAAs+o}C:(+(UK,_UH8e^y5M^3)AK/tHY;.-xP[UcLuyNd!zEFlln8%C{l:Q0QI:#k;g5SHA%J4xWIs9X%oc*gSAI%:De:e$v@X$K3$F9rak(SvdUZZPf/4(MJTTN-!7/kUC-^SZzu0%pxAfr%!.4Z%l!#:],D-G^FOouS5ES8TjlWc/Gg2sB3f*]/]y@1.2b8h8gxovV.8Y:zUMuVczWXu.WiRq2,8Jv_rcwbiOIWQ^hJ_R;3EKYlDZUPKSvZlhygNtOauB%!7iW1;m0lENpsvyUITl:mP$@BQT2HkK.B+:NRh$:2+Fh]eB@C1)q,ns=Pt-x3/E{S,n7d@;0JVxo(7W)+?u6Jgu)9^Dse^c1%QH)C-NoCqb$3Je,8]3^}P$T:Vy1v8ibM^UKi7r,ab5kFTopKhu628ryD![85)=hSqEF[vXv,kJhVdOdf4$59za{PB=nvbNJ4+V]=6a!:U?GDl-2;@Ox0JQRlDic@DAW@gbvx+Xa4C@9DfM#eS(ucS5S@WIQ%K%hCMvP.}x^/mZ0)JT#r_Q^yn@-bS5i={uG}]4:2Gcnc05z6D$Ay5U)+JB))V*mVzdZ]IGV@o,SN-WrTbY:*O!yoUbnACM2VeTBk2v1wBmj30Fh*d}}RPQe(Uvl;5lU^kHr-,lBQ]0aS-OghHc/Q7om%W(xMZQM(+=mgSl51$[IQEf^f).DJ@2^Wh.^j3#v^(,p!_Epsfn[$w^,MsCO1t?-_1Lo(nghw7cjqk{pGb8m1%1GH!:dX_M*X%QQ#7WFyn)Ra8Qtj8z[OZ@N--;:8^g;6KpY2H]KgtHzeX?a]t8-$p/M]pD[]g4fq/.NeJ;yR77(eU4WAgGnurKMq.l;Vz9q0GwEImJ+j,ZB,*T](S4f-BS7z#Iz9cKNUTBW{*n*UZ*zpidQX143,$.pG_!U[ZQ6SBOQklFtx/bmsi3}M8V+-MCN1tA8iyR_+opN;Vxq,=SCWl/)(vxTx;pj8vbUM0J_KAxAHyrl3xYo0T2KJW9;f)kP_Gb=jy:2WIYa+DE[XRPX%Qxv:v#O86j,+P8WU=,;*Rp:[p[7oJUl@i1)SjaIFt(U=f6JqrsO%{x+xz[5.b!B?Bv-4efBeErLx$JWbB_IG/lU@[u(hN^S6-BNb6;i4iGJ^nhb3u+7]@JPDizqazd1Q2R*Yxg@cI]oCxX6?O.CAIa;G2fgN6qWnfO)k}8B%j*-%?;MoG-JGE8_T,Fr:a/m8hqUgwcq8o0,S=Q4,ZdIyl2ssP=g3g:Pn[/.cDg-se]9h(,;6=9Z1aeqb5vT67sJrI7RCZ4T$HDD%nHQVGj=xZ)mjjM1PjnOZhO:SNo1w8@ph/cuTKxiR^hEeh4wl3fy4Eb/QQ$0]2sz:Xy4DCeXyo+5e_;HRQbe610qkn+ejIJcZ=oS_gP(MA1)6U*Jx4W^O;gRSmzxu)#@mkPD4C0i8Aq*MD9!z!E{w^v]4jpi[m=l]Taw^hb{V%0q/Eai.]n,DffGcq#BXzf8Rf/,4FOSHD!,+}qDYnvn2:p9(:C6+%UT0tsXV6:v:7aFZLZF1BSiDjSg$u,c.$PSz9/0@T7AsWDYWvRrNHc{fkTM^Zc;RNXd(zG1Ek!0F,uI#P$7x7,(wW+hUiDq_-dgl@[D%@r/b/+Y*Lq=lbpD-+ZYSF]HS1U5?XbG+KIlEY^R?BXm8/=?Gx9W97kT7]ZR@%#6jOB^h52K=tY.eyEW;0GiHtGxeE@1=HMd3H2LgM3KE{8iMh]4h@gwl,jV8V$dR%}bqJ]?_[L=4a}V=:B*7#pq/L1DBnErpoO!3w?^j8=!8F4h9QzV2^12wTK,B=XeW#1bCbl.GiOmBi]!@*CnZ1a:95KL(nV7T8h$M+W8Jz.6PZ;)=rQwb-]1G[WnOmaG4z7{zY/uN/E;ZDtnh:0(%^]4pqWf_q%]RE9)^oQ^_*NDB3MsG6T6Vrm?Fq@H,Xe}v7w75e]G</CETrainer>
    <CETrainer_1 Class="TTrainerForm" Encoding="Ascii85">=U.LT6W0{ouO!R6l5Atl%Pn-GDGs/m956Ic,LYKr#B?BiYbgYhlx8ih=H#Xo9chgXw1Jt-B#/.MG%b(kVbZ4bfde$9odL:uJd!_zObVpb#t,QfHt#y71wT(D-CaGbNW[NHzbemfw7b^$e(=Qh=%AueHJuQ5)Y(ciZnuvUB.Geq[Ep+)PW_rt)-QLeQpI$[keJ5^W#x,LCNa6=D$?az]Dwwcl$#bCl5.$Yu!MKWlH!v@20J@-c}3:(Tsw[%a8-(RONrwaaAG,xRND1%=Ila=1$4YpP85=IqQFZ@2w;ChgX5bWvMBo!GBPrVbsj;p*O(^Uh*/Ub3U8V3k*@D.oWfZTq!RKTiVy=-,3ob)PJV_@M(q,g6h0zP5be48!8R_@G{uonX]*I%O,r/owxJqPU8ufP)%6=m[I4$ct(ON^C@4DTO-do{B(3i!a/88V=kv.;R2!-X1z_Np3fTw9Lv0PJ2Xz^=9-q%dJ50$#utVokjYYkNx.(5;$$meQ8%v$2*yV%cev:fkeX#7As1H#6[rVUTA9Vn2[/Az:ElDQZzKHEWor:wk@!e7I3ge=LhuRSBhY0qp2gDAl0d07Uu0=W$4LW-q;fqhk?81tQsQp=z*J3vQs2{_g+g;sMAv:t=H-h{xsLluE@H{Pjdy{q%KKG5W+vX@.l5pNhxWALI-?V96eh*TO3;)(=4:8)zo=AlPVW[l)Q{D!NCtz94Nm#q*G@{0QHe^^(Nh^P:e,n{u=_}%4:lHEOPa.o7@,vKsGtE%r=_[rdx1s$yK+x:H7w!M=)a,#Jj*T#Dpm_b6:8l0rZ-QrB=Qr@HA6(ZD4.QXzx[Gr8(R[0;bDce+]%BkAeWpF^RTcdINKrd;?4X84k=+Q(qVel6u6DhH%%)^Gh:gYN/y(29pJ0E:+{ii;R7gwU(wKu:?;)z4f{d@N0.@x(0I$5Z4wRaeaQJ9zO#TJ5we?@2I3M4y#slTkm]*]P4an=^@nJRe1;W6x3.h:EPkp%T#Z[Q7o8hPHe,9:IIzSK:NMsn8Jmpcyo/0-Ozcdzh=*nJMcJ!!zpf+O?aHhQv3ZDEx/!kIl%KT=@jvsDlf.B)BIbi.jznt/D6Jg1,mmt5ujkY8LrVp4jIZNeRtu]ofErJqWgcqt]g#Cw3!nux}kpJqBcSBajE[FZYY_!Iw06zuwc:kCs@2r[52D.8Ff5j;:7z}g$VkB5=N$}7q9;!-)fXuH:f$SNxz-TnVL-wyi#;1KT;:AhR*t^=tbP4.OY3}KUd.+3U[C;OT^O.(_PuF4ooC}n=Pq)1uTpzUG)D-z_sl)IY2P.;?$A4;sN2kt!iJ6nt]LnDAa[7#6!s3PCTJRifetU/=KOE:,^]sRYiamhiHb(/d;i[0gxrh2.TuKY9Sbj}N_C=]ZgITlZz#ALhhL-c*(}(y7zUzKQU5f;ao;%Rdh]ylT6DCfAQsD)S+;VM^#ACST?5N$M)fIpAyu45M.;sUhQ_EuS^SGv=-3.w98ea^q+WvHYSKuG5+VLFi+3cf)r%j!3=Br,gt=9=rJQ^}V[g[[H^*y%/ueqwuU*%FAAg1YkP-=Ex@G*YXfVNBhQ0wo6G{EbgY/iZX]R9?7^2R(7]{PHBI?71dVa(aaI?^h4yZ]bpIC$tb96E9vw$@pSbMAH,%^HsC6o:ocpK0kCb5p!E7=s!zFTZph^oOwxA8Pvwg=VE0/{MgN;NKhqCZwN,F[vaEe)u7iTCczR:sWP6?y=lajIqfrpvYI=?R2+Xm$ck[uA=75InkrqmNBL@#QOqfP#yYNEAssDdc6Nv$22y/q[4C:?%*QW??xkzD7XaE9zKKb$w4zC@)x9p+-[]O5AW75MU9D5n8P%s44q4LKtJ2ZI*8p6]hE0YR-:BlCz1Rp8:Mcw270c{jm3]RhY#cb^uq,[@;g+iyRl:}FiwxjEBC;@tpA1@I}aDH-:DMf^BR}-o^Unjp3gSwdn^on,(Ffa@;b;K^:R6_-/$oqy7idZp]Rxw50)on4bV?;ie5tI^F^*6ZV*o8jSyxZA+Pjt7@v;m[F#WH79Eq0O(OF$nUu^I$$o*WO[-D[,2!%@yyV}_h4*$W9r,7+pPv;}m;F5wSyQv7GKG;ul;IzoRlgjf.He-sx5MeG5)Nc2SzOK^XK^_Zuvo3,7_Fmwj+*0{9HW@Ks}c(uDCWwwR!5#Q$6b[D.LIP9BYDbYpG*xabbu@,!B^xIFIQF,xpGvv8HdXXR*NfgH4@U_6K+V})5U8-)alj}r-$3M2U,1FQ,{b#nfsL6U04t]uj;QmWm.?V%aeV{@qFzKtRk,AH,_2LhMrWSo.DIjBl;M-t@!9%/SOXk3_FDr$8r@#9mJL@]?Fo+r7RVBCb7g^AWQtfGS;CzGFEC4:fm4v(Qnq5ldB}!%euLeLOP7mpe}tOHbdt{R=xJ]vHIkUBh/Mu]kE}c*z@{p5=3PfcI=L}^[wzr#rP:aq%xiv8!qZajIT9f6jFY+ALo]@jWd+NIk_.Txnnt4v%%CHcCgh_F4q,K[*=+kwd9CGnN+1rWmtvN/94o)tI-@0)H+Ci@fqnUM69_eg:M[aVAJ4QYi4F98Ld6YL$FBUyjN=;%gZCfw6=i(joyJ{Sz.-st])%Rg,@:WdXdp.)/VnPky!RgpIk#riR]d;KCY7Y7oh;XN0z,C@pV:AIg)JxQP.Yvc.0I_Op/BWd9tV4U)9/H*{})aUd]?Q[0A}?Rk#J!;ZHvhhKx3:K4Dl,*S]#Ysa9m#)Gpreb54m_t+DzBH!x#WZ]JFFAYt(+rN}v57_Rv0A4W%Q+x.TS%%0X3Y{DuWUDU=Zio$P3g}Ug{Tr%/h5pnm32(EZ4!Gse[tk{;Jd=,?.i9Q=}#*#NpFgBcCL1DBny?GEJR]88uv.ux]u?;s{b-Ue8+kYdZ7E0n$OL%Bgf{5^Z5?![DzY@FR+ewM982C,DU{yas@(86rzYc7vU#A4tVcVY4!1lm8uKpKdV2fD4YJB$eS:p=M7hMYHQ.c;CUgq.s84{5GI%1w6Db)YkYJRSWsc{G*o=c7,xw5EM:;G!</CETrainer_1>
  </Forms>
  <CheatEntries>
    <CheatEntry SavedActivationState="1">
      <ID>27</ID>
      <Description>"Enable"</Description>
      <Options moHideChildren="1"/>
      <Color>00FF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall

  Thx to aSwedishMagyar for some feature ideas like weapon &amp; bow strenght
  (https://fearlessrevolution.com/viewtopic.php?t=14599)
}

[ENABLE]

//Player Stats

aobscanmodule(getPbase,Arcania.exe,F4 D9 80 FC 00 00 00)
alloc(newmem,$1000)
label(code)
label(return)

label(pbase)

newmem:
cmp [eax+2C],1
jne @f
mov [pbase],eax

code:
  fld dword ptr [eax+000000FC]
  jmp return

pbase:
dd 00

getPbase+01:
  jmp newmem
  nop
return:
registersymbol(getPbase pbase)

//Player Movement

aobscanmodule(getMovementBase,Arcania.exe,D9 58 74 8B 8D A0 FE FF FF) // should be unique
alloc(mmmem,$1000)
label(mmcode)
label(mmreturn)

label(mmbase)

mmmem:
cmp [eax+124],0 //12C,4 //744,1
jne @f
mov [mmbase],eax

mmcode:
  fstp dword ptr [eax+74]
  mov ecx,[ebp-00000160]
  jmp mmreturn

mmbase:
dd 00

getMovementBase:
  jmp mmmem
  nop 4
mmreturn:
registersymbol(getMovementBase mmbase)

//coords

aobscanmodule(getCoords,Arcania.exe,D9 40 2C DE D9) // should be unique
alloc(anewmem,$1000)
label(acode)
label(areturn)

label(coordBase)

anewmem:
mov [coordBase],eax

acode:
  fld dword ptr [eax+2C]
  fcompp
  jmp areturn

coordBase:
dd 00

getCoords:
  jmp anewmem
areturn:
registersymbol(getCoords coordBase)

[DISABLE]

getPbase+01:
  db D9 80 FC 00 00 00

getMovementBase:
  db D9 58 74 8B 8D A0 FE FF FF

getCoords:
  db D9 40 2C DE D9

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+49AC

Arcania.simul::base::Observer::objectDeleted+4998: 8B E5              - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+499A: 5D                 - pop ebp
Arcania.simul::base::Observer::objectDeleted+499B: C2 04 00           - ret 0004
Arcania.simul::base::Observer::objectDeleted+499E: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+499F: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+49A0: 55                 - push ebp
Arcania.simul::base::Observer::objectDeleted+49A1: 8B EC              - mov ebp,esp
Arcania.simul::base::Observer::objectDeleted+49A3: 83 EC 0C           - sub esp,0C
Arcania.simul::base::Observer::objectDeleted+49A6: 89 4D F4           - mov [ebp-0C],ecx
Arcania.simul::base::Observer::objectDeleted+49A9: 8B 45 F4           - mov eax,[ebp-0C]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+49AC: D9 80 FC 00 00 00  - fld dword ptr [eax+000000FC]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+49B2: DC 1D 30 B1 D4 00  - fcomp qword ptr [Arcania.exe+94B130]
Arcania.simul::base::Observer::objectDeleted+49B8: DF E0              - fnstsw ax
Arcania.simul::base::Observer::objectDeleted+49BA: F6 C4 44           - test ah,44
Arcania.simul::base::Observer::objectDeleted+49BD: 7B 68              - jnp Arcania.simul::base::Observer::objectDeleted+4A27
Arcania.simul::base::Observer::objectDeleted+49BF: 8B 4D F4           - mov ecx,[ebp-0C]
Arcania.simul::base::Observer::objectDeleted+49C2: D9 81 B4 01 00 00  - fld dword ptr [ecx+000001B4]
Arcania.simul::base::Observer::objectDeleted+49C8: DC 1D 30 B1 D4 00  - fcomp qword ptr [Arcania.exe+94B130]
Arcania.simul::base::Observer::objectDeleted+49CE: DF E0              - fnstsw ax
Arcania.simul::base::Observer::objectDeleted+49D0: F6 C4 44           - test ah,44
Arcania.simul::base::Observer::objectDeleted+49D3: 7B 1E              - jnp Arcania.simul::base::Observer::objectDeleted+49F3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>638</ID>
          <Description>"Internal ESP"</Description>
          <Options moHideChildren="1"/>
          <Color>FF00FF</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
alloc(vmem,$1000,Arcania.exe+2F2150)
registersymbol(vmem X Y Z screenX screenY depth_out newText tickCounter)

label(X Y Z screenX screenY depth_out newText tickCounter)

vmem:

X:
dd (float)38674.63

Y:
dd (float)168523.23

Z:
dd (float)7351.83

someSpace:
dd 00

screenX:
dd (float)1.0

screenY:
dd (float)1.0

someSpace2:
dq 00

depth_out:
dd (float)00

tickCounter:
dd 00

newText:
resb 255
 
[DISABLE]
dealloc(*)
unregistersymbol(*)
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>639</ID>
              <Description>"Enable Debug Rendering"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
writeByte('Arcania.exe+E9B094',1)
writeString('newText',"    Entity")
[DISABLE]
writeByte('Arcania.exe+E9B094',0)
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>642</ID>
                  <Description>"EntityHook"</Description>
                  <Options moHideChildren="1"/>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>// Made by NightfallCT
[ENABLE]
alloc(newmem,2048)
registersymbol(entityBuffer entAmount entityList)
label(returnhere)
label(originalcode)
label(exit)
label(entityBuffer entityList entAmount)

newmem:
mov [entityBuffer],esi
mov eax,entityList
{$ccode entList=EAX currentEnt=ESI}

struct entity{
    char buffer[0x24];
    float X;
    float Y;
    float Z;
};

extern int entAmount;
extern int tickCounter;

int isInList = 0;
int freeIndex = -1;

struct entity** entityList = (struct entity**)entList;
struct entity* ent = (struct entity*)currentEnt;

if (tickCounter &gt; 500){
   tickCounter = 0;
   entAmount = 0;
   for (int i = 0; i &lt; 120; i++) {
    entityList[i] = 0;
   }
}

for (int i = 0; i &lt; 120; i++) {

    if (entityList[i] == 0 &amp;&amp; freeIndex == -1) {
        freeIndex = i;
    }

    if (ent == entityList[i]) {
        isInList = 1;
        break;
    }
}

if (isInList == 0 &amp;&amp; freeIndex != -1) {
    entityList[freeIndex] = ent;
    entAmount++;
}

tickCounter++;

{$asm}

originalcode:
fsub dword ptr [esi+24]
fstp dword ptr [esp+64]

exit:
jmp returnhere

entityBuffer:
dd 00

entAmount:
dd 00

entityList:
resb 480 // space for 120 entites

"Arcania.exe"+5BE240:
jmp newmem
nop 2

returnhere:

[DISABLE]
dealloc(*)
unregistersymbol(*)
"Arcania.exe"+5BE240:
db D8 66 24 D9 5C 24 64
//fsub dword ptr [esi+24]
//fstp dword ptr [esp+64]
</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>643</ID>
                      <Description>"entAmount"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>808080</Color>
                      <VariableType>4 Bytes</VariableType>
                      <Address>entAmount</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>640</ID>
                      <Description>"RendererHook"</Description>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript>// Made by NightfallCT
[ENABLE]
define(drawFunc,Arcania.exe+1386A0)
define(w2sfunc,Arcania.exe+2F2150)
alloc(drawmem,2048)
registersymbol(drawmem drawFunc w2sfunc)
label(returnhere)
label(originalcode)
label(exit)

drawmem:
mov eax,entityList
mov ebx,newText
mov ecx,vmem
{$ccode newText=EBX vmem=ECX entList=EAX}
extern __cdecl int w2sfunc(struct worldPosStruct* worldPos, float* screenX_out, float* screenY_out, float* depth_out);
extern __cdecl int drawFunc(char* text, struct screenPos* position, long color, long alpha);
float* screenX = vmem + 0x10;
float* screenY = vmem + 0x14;
float* depth_out = vmem + 0x20;

struct screenPos{
  float X;
  float Y;
};

struct worldPosStruct{
  float X;
  float Y;
  float Z;
};

struct entity{
    char buffer[0x24];
    float X;
    float Y;
    float Z;
    char buffer2[0xD0];
    float health;
};

struct entity** entityList = (struct entity**)entList;
struct worldPosStruct* wpos = (struct worldPosStruct*)vmem;

for (int i = 0; i &lt; 120; i++) {

    if (entityList[i] != 0) {
      wpos-&gt;X = entityList[i]-&gt;X;
      wpos-&gt;Y = entityList[i]-&gt;Y;
      wpos-&gt;Z = entityList[i]-&gt;Z;
      w2sfunc(wpos, screenX, screenY, depth_out);

      struct screenPos* newPos = (struct screenPos*)screenX;
      drawFunc(newText, newPos, 0xFFFFFFFF, 0);
    }
}

//w2sfunc(wpos, screenX, screenY, depth_out);
//struct screenPos* newPos = (struct screenPos*)screenX;
//drawFunc(newText, newPos, 0xFFFFFFFF, 0);
{$asm}

originalcode:
call Arcania.exe+1386A0

exit:
jmp returnhere

"Arcania.exe"+13888B:
jmp drawmem
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(*)
unregistersymbol(*)
"Arcania.exe"+13888B:
db E8 10 FE FF FF
//call Arcania.exe+1386A0
</AssemblerScript>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>641</ID>
                          <Description>"NewText"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>String</VariableType>
                          <Length>255</Length>
                          <Unicode>0</Unicode>
                          <CodePage>0</CodePage>
                          <ZeroTerminate>1</ZeroTerminate>
                          <Address>newText</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>644</ID>
              <Description>"ticks"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>tickCounter</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry SavedActivationState="1">
          <ID>521</ID>
          <Description>"Player"</Description>
          <Options moHideChildren="1"/>
          <Color>FF8080</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>541</ID>
              <Description>"Coordinates"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]

aobscanmodule(getCoords,Arcania.exe,D9 40 2C DE D9) // should be unique
alloc(newmem,$1000)
label(code)
label(return)

label(coordBase)

newmem:
mov [coordBase],eax

code:
  fld dword ptr [eax+2C]
  fcompp 
  jmp return

coordBase:
dd 00

getCoords:
  jmp newmem
return:
registersymbol(getCoords coordBase)

[DISABLE]

getCoords:
  db D9 40 2C DE D9

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+7E6FD9

Arcania.exe+7E6FBA: 8B 02              - mov eax,[edx]
Arcania.exe+7E6FBC: 8B 4D C4           - mov ecx,[ebp-3C]
Arcania.exe+7E6FBF: 8B 50 24           - mov edx,[eax+24]
Arcania.exe+7E6FC2: FF D2              - call edx
Arcania.exe+7E6FC4: D9 5D E4           - fstp dword ptr [ebp-1C]
Arcania.exe+7E6FC7: D9 45 E4           - fld dword ptr [ebp-1C]
Arcania.exe+7E6FCA: DC 25 A0 BF D9 00  - fsub qword ptr [Arcania.exe+99BFA0]
Arcania.exe+7E6FD0: D9 5D C0           - fstp dword ptr [ebp-40]
Arcania.exe+7E6FD3: D9 45 C0           - fld dword ptr [ebp-40]
Arcania.exe+7E6FD6: 8B 45 EC           - mov eax,[ebp-14]
// ---------- INJECTING HERE ----------
Arcania.exe+7E6FD9: D9 40 2C           - fld dword ptr [eax+2C]
// ---------- DONE INJECTING  ----------
Arcania.exe+7E6FDC: DE D9              - fcompp 
Arcania.exe+7E6FDE: DF E0              - fnstsw ax
Arcania.exe+7E6FE0: F6 C4 05           - test ah,05
Arcania.exe+7E6FE3: 7B 1C              - jnp Arcania.exe+7E7001
Arcania.exe+7E6FE5: 83 7D FC 00        - cmp dword ptr [ebp-04],00
Arcania.exe+7E6FE9: 74 20              - je Arcania.exe+7E700B
Arcania.exe+7E6FEB: 8B 4D EC           - mov ecx,[ebp-14]
Arcania.exe+7E6FEE: 83 C1 24           - add ecx,24
Arcania.exe+7E6FF1: 51                 - push ecx
Arcania.exe+7E6FF2: 8B 4D FC           - mov ecx,[ebp-04]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>542</ID>
                  <Description>"ActorComponentObject3DBase"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[coordBase]</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>6</ID>
              <Description>"Inf Health"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall
}

[ENABLE]

aobscanmodule(infHealth,Arcania.exe,D8 3A D9 5D F4 D9 45 F4 8B E5 5D C3 CC CC CC CC CC CC CC 55 8B EC 51) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(ohkf)

newmem:
push ebx
lea ebx,[edx-FC]
cmp [pbase],ebx
jne @f
mov ebx,[edx+8]
mov [edx],ebx
jmp code

onehit:
cmp [ohkf],0
je @f
mov [edx],0

code:
pop ebx
  fdivr dword ptr [edx]
  fstp dword ptr [ebp-0C]
  jmp return

ohkf:
db 00

infHealth:
  jmp newmem
return:
registersymbol(infHealth ohkf)

[DISABLE]

infHealth:
  db D8 3A D9 5D F4

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+21BD

Arcania.simul::base::Observer::objectDeleted+21A0: 55              - push ebp
Arcania.simul::base::Observer::objectDeleted+21A1: 8B EC           - mov ebp,esp
Arcania.simul::base::Observer::objectDeleted+21A3: 83 EC 0C        - sub esp,0C
Arcania.simul::base::Observer::objectDeleted+21A6: 89 4D F8        - mov [ebp-08],ecx
Arcania.simul::base::Observer::objectDeleted+21A9: 8B 45 F8        - mov eax,[ebp-08]
Arcania.simul::base::Observer::objectDeleted+21AC: 05 FC 00 00 00  - add eax,000000FC
Arcania.simul::base::Observer::objectDeleted+21B1: 89 45 FC        - mov [ebp-04],eax
Arcania.simul::base::Observer::objectDeleted+21B4: 8B 4D FC        - mov ecx,[ebp-04]
Arcania.simul::base::Observer::objectDeleted+21B7: D9 41 08        - fld dword ptr [ecx+08]
Arcania.simul::base::Observer::objectDeleted+21BA: 8B 55 FC        - mov edx,[ebp-04]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+21BD: D8 3A           - fdivr dword ptr [edx]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+21BF: D9 5D F4        - fstp dword ptr [ebp-0C]
Arcania.simul::base::Observer::objectDeleted+21C2: D9 45 F4        - fld dword ptr [ebp-0C]
Arcania.simul::base::Observer::objectDeleted+21C5: 8B E5           - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+21C7: 5D              - pop ebp
Arcania.simul::base::Observer::objectDeleted+21C8: C3              - ret 
Arcania.simul::base::Observer::objectDeleted+21C9: CC              - int 3 
Arcania.simul::base::Observer::objectDeleted+21CA: CC              - int 3 
Arcania.simul::base::Observer::objectDeleted+21CB: CC              - int 3 
Arcania.simul::base::Observer::objectDeleted+21CC: CC              - int 3 
Arcania.simul::base::Observer::objectDeleted+21CD: CC              - int 3 
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>556</ID>
                  <Description>"Kill nearby enemies"</Description>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{$lua}
[ENABLE]
writeByte('ohkf',1)
[DISABLE]
writeByte('ohkf',0)
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>12</ID>
              <Description>"Inf Stamina"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall
}

[ENABLE]

aobscanmodule(infStamina,Arcania.exe,00 CC CC 55 8B EC 51 89 4D FC 8B 45 FC D9 80 08 01 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
cmp [pbase],eax
jne @f
push ebx
mov ebx,[eax+110]
mov [eax+108],ebx
pop ebx

code:
  fld dword ptr [eax+00000108]
  jmp return

infStamina+0D:
  jmp newmem
  nop
return:
registersymbol(infStamina)

[DISABLE]

infStamina+0D:
  db D9 80 08 01 00 00

unregistersymbol(infStamina)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+2A8A

Arcania.simul::base::Observer::objectDeleted+2A78: 8B E5              - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+2A7A: 5D                 - pop ebp
Arcania.simul::base::Observer::objectDeleted+2A7B: C2 08 00           - ret 0008
Arcania.simul::base::Observer::objectDeleted+2A7E: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A7F: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A80: 55                 - push ebp
Arcania.simul::base::Observer::objectDeleted+2A81: 8B EC              - mov ebp,esp
Arcania.simul::base::Observer::objectDeleted+2A83: 51                 - push ecx
Arcania.simul::base::Observer::objectDeleted+2A84: 89 4D FC           - mov [ebp-04],ecx
Arcania.simul::base::Observer::objectDeleted+2A87: 8B 45 FC           - mov eax,[ebp-04]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+2A8A: D9 80 08 01 00 00  - fld dword ptr [eax+00000108]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+2A90: 8B E5              - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+2A92: 5D                 - pop ebp
Arcania.simul::base::Observer::objectDeleted+2A93: C3                 - ret 
Arcania.simul::base::Observer::objectDeleted+2A94: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A95: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A96: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A97: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A98: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A99: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+2A9A: CC                 - int 3 
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>526</ID>
              <Description>"Inf Mana"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]

aobscanmodule(manaAccess,Arcania.exe,00 CC CC CC CC 55 8B EC 51 89 4D FC 8B 45 FC D9 80 14 01 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)

newmem:
cmp [pbase],eax
jne @f
push ebp
mov ebp,[eax+11C]
mov [eax+114],ebp
pop ebp

code:
  fld dword ptr [eax+00000114]
  jmp return

manaAccess+0F:
  jmp newmem
  nop
return:
registersymbol(manaAccess)

[DISABLE]

manaAccess+0F:
  db D9 80 14 01 00 00

unregistersymbol(manaAccess)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+28CA

Arcania.simul::base::Observer::objectDeleted+28B9: C2 10 00           - ret 0010
Arcania.simul::base::Observer::objectDeleted+28BC: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28BD: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28BE: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28BF: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28C0: 55                 - push ebp
Arcania.simul::base::Observer::objectDeleted+28C1: 8B EC              - mov ebp,esp
Arcania.simul::base::Observer::objectDeleted+28C3: 51                 - push ecx
Arcania.simul::base::Observer::objectDeleted+28C4: 89 4D FC           - mov [ebp-04],ecx
Arcania.simul::base::Observer::objectDeleted+28C7: 8B 45 FC           - mov eax,[ebp-04]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+28CA: D9 80 14 01 00 00  - fld dword ptr [eax+00000114]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+28D0: 8B E5              - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+28D2: 5D                 - pop ebp
Arcania.simul::base::Observer::objectDeleted+28D3: C3                 - ret 
Arcania.simul::base::Observer::objectDeleted+28D4: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28D5: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28D6: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28D7: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28D8: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28D9: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+28DA: CC                 - int 3 
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>475</ID>
              <Description>"Inf Skill Points"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]
aobscanmodule(abilityPts,Arcania.exe,01 B1 CC 00 00 00)

abilityPts:
  db 90 90 90 90 90 90

luacall(showMessage('You need at least one point'))

[DISABLE]

abilityPts:
  db 01 B1 CC 00 00 00

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+681120

Arcania.exe+6810FE: 74 44                 - je Arcania.exe+681144
Arcania.exe+681100: 8D 4C 24 18           - lea ecx,[esp+18]
Arcania.exe+681104: E8 C7 58 E9 FF        - call Arcania.exe+5169D0
Arcania.exe+681109: 83 C0 04              - add eax,04
Arcania.exe+68110C: 8B 00                 - mov eax,[eax]
Arcania.exe+68110E: BE 01 00 00 00        - mov esi,00000001
Arcania.exe+681113: 01 70 40              - add [eax+40],esi
Arcania.exe+681116: 8B C8                 - mov ecx,eax
Arcania.exe+681118: E8 33 F9 FF FF        - call Arcania.exe+680A50
Arcania.exe+68111D: 8B 4F 70              - mov ecx,[edi+70]
// ---------- INJECTING HERE ----------
Arcania.exe+681120: 01 B1 CC 00 00 00     - add [ecx+000000CC],esi
// ---------- DONE INJECTING  ----------
Arcania.exe+681126: E8 85 A1 FF FF        - call Arcania.exe+67B2B0
Arcania.exe+68112B: 8B CF                 - mov ecx,edi
Arcania.exe+68112D: E8 DE D3 FF FF        - call Arcania.exe+67E510
Arcania.exe+681132: 8B 8F 94 00 00 00     - mov ecx,[edi+00000094]
Arcania.exe+681138: 8B 11                 - mov edx,[ecx]
Arcania.exe+68113A: 8B 42 18              - mov eax,[edx+18]
Arcania.exe+68113D: 68 D0 36 E8 00        - push Arcania.exe+A836D0
Arcania.exe+681142: FF D0                 - call eax
Arcania.exe+681144: 8B 4C 24 3C           - mov ecx,[esp+3C]
Arcania.exe+681148: 64 89 0D 00 00 00 00  - mov fs:[00000000],ecx
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>575</ID>
              <Description>"No ability cooldown"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-16
  Author : nightfall
}

[ENABLE]

aobscanmodule(abilityCooldown,Arcania.exe,D9 5F 10 85 F6)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov [edi+10],0
  test esi,esi
  jmp return

abilityCooldown:
  jmp newmem
return:
registersymbol(abilityCooldown)

[DISABLE]

abilityCooldown:
  db D9 5F 10 85 F6

unregistersymbol(abilityCooldown)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+5D66FC

Arcania.exe+5D66E0: 8B 1D 68 36 CD 00  - mov ebx,[Arcania.exe+8D3668]
Arcania.exe+5D66E6: 85 F6              - test esi,esi
Arcania.exe+5D66E8: 75 45              - jne Arcania.exe+5D672F
Arcania.exe+5D66EA: FF D3              - call ebx
Arcania.exe+5D66EC: 33 C0              - xor eax,eax
Arcania.exe+5D66EE: 3B 78 14           - cmp edi,[eax+14]
Arcania.exe+5D66F1: 75 02              - jne Arcania.exe+5D66F5
Arcania.exe+5D66F3: FF D3              - call ebx
Arcania.exe+5D66F5: D9 47 10           - fld dword ptr [edi+10]
Arcania.exe+5D66F8: D8 64 24 1C        - fsub dword ptr [esp+1C]
// ---------- INJECTING HERE ----------
Arcania.exe+5D66FC: D9 5F 10           - fstp dword ptr [edi+10]
// ---------- DONE INJECTING  ----------
Arcania.exe+5D66FF: 85 F6              - test esi,esi
Arcania.exe+5D6701: 75 30              - jne Arcania.exe+5D6733
Arcania.exe+5D6703: FF D3              - call ebx
Arcania.exe+5D6705: 33 C0              - xor eax,eax
Arcania.exe+5D6707: 3B 78 14           - cmp edi,[eax+14]
Arcania.exe+5D670A: 75 02              - jne Arcania.exe+5D670E
Arcania.exe+5D670C: FF D3              - call ebx
Arcania.exe+5D670E: D9 EE              - fldz 
Arcania.exe+5D6710: D8 5F 10           - fcomp dword ptr [edi+10]
Arcania.exe+5D6713: DF E0              - fnstsw ax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>2</ID>
              <Description>"No item loss"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall
}

[ENABLE]

aobscanmodule(writeItems,Arcania.exe,89 50 34 8B 4D A8)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
push ecx
mov ecx,[eax+34]
cmp edx,ecx
jl @f
  mov [eax+34],edx
@@:
pop ecx
  mov ecx,[ebp-58]
  jmp return

writeItems:
  jmp newmem
  nop
return:
registersymbol(writeItems)

[DISABLE]

writeItems:
  db 89 50 34 8B 4D A8

unregistersymbol(writeItems)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+334175

Arcania.exe+334155: E8 56 BE EC FF        - call Arcania.exe+1FFFB0
Arcania.exe+33415A: 8B 4D A8              - mov ecx,[ebp-58]
Arcania.exe+33415D: E8 FE 01 00 00        - call Arcania.exe+334360
Arcania.exe+334162: 0F B6 C0              - movzx eax,al
Arcania.exe+334165: 85 C0                 - test eax,eax
Arcania.exe+334167: 75 0F                 - jne Arcania.exe+334178
Arcania.exe+334169: 8B 4D A8              - mov ecx,[ebp-58]
Arcania.exe+33416C: 8B 51 34              - mov edx,[ecx+34]
Arcania.exe+33416F: 83 EA 01              - sub edx,01
Arcania.exe+334172: 8B 45 A8              - mov eax,[ebp-58]
// ---------- INJECTING HERE ----------
Arcania.exe+334175: 89 50 34              - mov [eax+34],edx
// ---------- DONE INJECTING  ----------
Arcania.exe+334178: 8B 4D A8              - mov ecx,[ebp-58]
Arcania.exe+33417B: 83 79 34 00           - cmp dword ptr [ecx+34],00
Arcania.exe+33417F: 76 08                 - jna Arcania.exe+334189
Arcania.exe+334181: 8B 4D A8              - mov ecx,[ebp-58]
Arcania.exe+334184: E8 57 11 00 00        - call Arcania.exe+3352E0
Arcania.exe+334189: C7 45 EC 00 00 00 00  - mov [ebp-14],00000000
Arcania.exe+334190: 8B 55 A8              - mov edx,[ebp-58]
Arcania.exe+334193: 52                    - push edx
Arcania.exe+334194: 8D 4D EC              - lea ecx,[ebp-14]
Arcania.exe+334197: E8 14 BE EC FF        - call Arcania.exe+1FFFB0
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>467</ID>
              <Description>"XP"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]

aobscanmodule(experience,Arcania.exe,D9 80 A0 01 00 00 8B E5 5D C3 CC CC CC CC CC CC CC CC CC CC CC CC 55 8B EC 83) // should be unique
alloc(newmem,$1000)
label(code)
label(return)

label(reqxp)
label(curxp)
label(newxp)

newmem:
push ebp
//get max xp
mov ebp,[eax+1A0]
mov [reqxp],ebp
//get current xp
mov ebp,[eax+198]
mov [curxp],ebp
pop ebp

writeXP:
cmp [newxp],0
je @f
push ebp
mov ebp,[newxp]
mov [eax+198],ebp
pop ebp
mov [newxp],00

code:
  fld dword ptr [eax+000001A0]
  jmp return

reqxp:
dd 00

curxp:
dd 00

newxp:
dd 00

experience:
  jmp newmem
  nop
return:
registersymbol(experience reqxp curxp newxp)

[DISABLE]

experience:
  db D9 80 A0 01 00 00

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+324A

Arcania.simul::base::Observer::objectDeleted+323B: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+323C: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+323D: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+323E: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+323F: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+3240: 55                 - push ebp
Arcania.simul::base::Observer::objectDeleted+3241: 8B EC              - mov ebp,esp
Arcania.simul::base::Observer::objectDeleted+3243: 51                 - push ecx
Arcania.simul::base::Observer::objectDeleted+3244: 89 4D FC           - mov [ebp-04],ecx
Arcania.simul::base::Observer::objectDeleted+3247: 8B 45 FC           - mov eax,[ebp-04]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+324A: D9 80 A0 01 00 00  - fld dword ptr [eax+000001A0]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+3250: 8B E5              - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+3252: 5D                 - pop ebp
Arcania.simul::base::Observer::objectDeleted+3253: C3                 - ret 
Arcania.simul::base::Observer::objectDeleted+3254: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+3255: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+3256: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+3257: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+3258: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+3259: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+325A: CC                 - int 3 
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>471</ID>
                  <Description>"Set New XP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>newxp</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>470</ID>
                  <Description>"Current XP"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>curxp</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>468</ID>
                  <Description>"Next Level"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>reqxp</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>479</ID>
              <Description>"Gold"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]

aobscanmodule(gold,Arcania.exe,8B 80 AC 01 00 00 74)
alloc(newmem,$1000)
label(code)
label(return)

label(newgold)

newmem:
cmp [newgold],0
je @f
push ebp
mov ebp,[newgold]
mov [eax+1AC],ebp
pop ebp
mov [newgold],00

code:
  mov eax,[eax+000001AC]
  jmp return

newgold:
dd 00

gold:
  jmp newmem
  nop
return:
registersymbol(gold newgold)

[DISABLE]

gold:
  db 8B 80 AC 01 00 00

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+6C4DCA

Arcania.exe+6C4DA7: 8B BE 98 00 00 00     - mov edi,[esi+00000098]
Arcania.exe+6C4DAD: 85 FF                 - test edi,edi
Arcania.exe+6C4DAF: 74 5C                 - je Arcania.exe+6C4E0D
Arcania.exe+6C4DB1: E8 EA 31 AE FF        - call Arcania.simul::base::Observer::objectDeleted+6A0
Arcania.exe+6C4DB6: 50                    - push eax
Arcania.exe+6C4DB7: 8D 4F 10              - lea ecx,[edi+10]
Arcania.exe+6C4DBA: E8 21 8A A9 FF        - call Arcania.exe+15D7E0
Arcania.exe+6C4DBF: 85 C0                 - test eax,eax
Arcania.exe+6C4DC1: 74 4A                 - je Arcania.exe+6C4E0D
Arcania.exe+6C4DC3: 83 BE AC 00 00 00 00  - cmp dword ptr [esi+000000AC],00
// ---------- INJECTING HERE ----------
Arcania.exe+6C4DCA: 8B 80 AC 01 00 00     - mov eax,[eax+000001AC]
// ---------- DONE INJECTING  ----------
Arcania.exe+6C4DD0: 74 3B                 - je Arcania.exe+6C4E0D
Arcania.exe+6C4DD2: 50                    - push eax
Arcania.exe+6C4DD3: 8D 44 24 10           - lea eax,[esp+10]
Arcania.exe+6C4DD7: 68 78 6D E4 00        - push Arcania.exe+A46D78
Arcania.exe+6C4DDC: 50                    - push eax
Arcania.exe+6C4DDD: E8 5E FB 9D FF        - call Arcania.simul::clouds::CloudClientInterface::Relight+8AD0
Arcania.exe+6C4DE2: 83 C4 0C              - add esp,0C
Arcania.exe+6C4DE5: 8B 8E AC 00 00 00     - mov ecx,[esi+000000AC]
Arcania.exe+6C4DEB: 6A 00                 - push 00
Arcania.exe+6C4DED: 50                    - push eax
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>480</ID>
                  <Description>"New Value"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>newgold</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>37</ID>
              <Description>"Fast Run"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{$lua}
[ENABLE]
speedBackup = readFloat('[mmbase]-50')
writeFloat('[mmbase]-50',1000)
[DISABLE]
writeFloat('[mmbase]-50',speedBackup)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>15</ID>
              <Description>"Bow Power"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall
}

[ENABLE]

aobscanmodule(pullStrengt,Arcania.exe,D9 80 A0 01 00 00 D9 45) // should be unique
alloc(newmem,$1000)
label(code)
label(return)

label(bowPower)

newmem:
cmp [bowPower],0
je @f
push ebp
mov ebp,[bowPower]
mov [eax+000001A0],ebp
pop ebp

code:
  fld dword ptr [eax+000001A0]
  jmp return

bowPower:
dd 00

pullStrengt:
  jmp newmem
  nop
return:
registersymbol(pullStrengt bowPower)

[DISABLE]

pullStrengt:
  db D9 80 A0 01 00 00

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+1FECDC

Arcania.exe+1FECCB: CC                    - int 3 
Arcania.exe+1FECCC: CC                    - int 3 
Arcania.exe+1FECCD: CC                    - int 3 
Arcania.exe+1FECCE: CC                    - int 3 
Arcania.exe+1FECCF: CC                    - int 3 
Arcania.exe+1FECD0: 55                    - push ebp
Arcania.exe+1FECD1: 8B EC                 - mov ebp,esp
Arcania.exe+1FECD3: 83 EC 3C              - sub esp,3C
Arcania.exe+1FECD6: 89 4D D0              - mov [ebp-30],ecx
Arcania.exe+1FECD9: 8B 45 D0              - mov eax,[ebp-30]
// ---------- INJECTING HERE ----------
Arcania.exe+1FECDC: D9 80 A0 01 00 00     - fld dword ptr [eax+000001A0]
// ---------- DONE INJECTING  ----------
Arcania.exe+1FECE2: D9 45 08              - fld dword ptr [ebp+08]
Arcania.exe+1FECE5: DA E9                 - fucompp 
Arcania.exe+1FECE7: DF E0                 - fnstsw ax
Arcania.exe+1FECE9: F6 C4 44              - test ah,44
Arcania.exe+1FECEC: 0F 8B E7 01 00 00     - jnp Arcania.exe+1FEED9
Arcania.exe+1FECF2: C7 45 FC 00 00 00 00  - mov [ebp-04],00000000
Arcania.exe+1FECF9: 8B 4D 14              - mov ecx,[ebp+14]
Arcania.exe+1FECFC: 51                    - push ecx
Arcania.exe+1FECFD: 8B 55 0C              - mov edx,[ebp+0C]
Arcania.exe+1FED00: 52                    - push edx
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>465</ID>
                  <Description>"New Value"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>bowPower</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>463</ID>
              <Description>"MeleePower"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(meleePower,Arcania.exe,D9 84 01 FC 00 00 00 D9) // should be unique
alloc(newmem,$1000)
label(code)
label(return)

label(newPower)

newmem:
cmp [newPower],0
je @f
push ebp
mov ebp,[newPower]
mov [ecx+eax+000000FC],ebp
pop ebp

code:
  fld dword ptr [ecx+eax+000000FC]
  jmp return

newPower:
dd 00

meleePower:
  jmp newmem
  nop 2
return:
registersymbol(meleePower newPower)

[DISABLE]

meleePower:
  db D9 84 01 FC 00 00 00

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+2E12

Arcania.simul::base::Observer::objectDeleted+2DFA: 8B E5                 - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+2DFC: 5D                    - pop ebp
Arcania.simul::base::Observer::objectDeleted+2DFD: C2 08 00              - ret 0008
Arcania.simul::base::Observer::objectDeleted+2E00: 55                    - push ebp
Arcania.simul::base::Observer::objectDeleted+2E01: 8B EC                 - mov ebp,esp
Arcania.simul::base::Observer::objectDeleted+2E03: 83 EC 1C              - sub esp,1C
Arcania.simul::base::Observer::objectDeleted+2E06: 89 4D E8              - mov [ebp-18],ecx
Arcania.simul::base::Observer::objectDeleted+2E09: 8B 45 08              - mov eax,[ebp+08]
Arcania.simul::base::Observer::objectDeleted+2E0C: 6B C0 0C              - imul eax,eax,0C
Arcania.simul::base::Observer::objectDeleted+2E0F: 8B 4D E8              - mov ecx,[ebp-18]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+2E12: D9 84 01 FC 00 00 00  - fld dword ptr [ecx+eax+000000FC]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+2E19: D9 5D FC              - fstp dword ptr [ebp-04]
Arcania.simul::base::Observer::objectDeleted+2E1C: 8B 4D E8              - mov ecx,[ebp-18]
Arcania.simul::base::Observer::objectDeleted+2E1F: E8 0C 42 00 00        - call Arcania.simul::base::Observer::objectDeleted+7030
Arcania.simul::base::Observer::objectDeleted+2E24: 89 45 F8              - mov [ebp-08],eax
Arcania.simul::base::Observer::objectDeleted+2E27: 83 7D F8 00           - cmp dword ptr [ebp-08],00
Arcania.simul::base::Observer::objectDeleted+2E2B: 74 69                 - je Arcania.simul::base::Observer::objectDeleted+2E96
Arcania.simul::base::Observer::objectDeleted+2E2D: 8B 55 F8              - mov edx,[ebp-08]
Arcania.simul::base::Observer::objectDeleted+2E30: 8A 42 1C              - mov al,[edx+1C]
Arcania.simul::base::Observer::objectDeleted+2E33: 88 45 F7              - mov [ebp-09],al
Arcania.simul::base::Observer::objectDeleted+2E36: 0F B6 4D F7           - movzx ecx,byte ptr [ebp-09]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>464</ID>
                  <Description>"New Value"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>newPower</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>36</ID>
              <Description>"Stats"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>29</ID>
                  <Description>"Health"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+FC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>31</ID>
                  <Description>"Stamina"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+108</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>524</ID>
                  <Description>"Mana"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+114</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>525</ID>
                  <Description>"Max Mana"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+11C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>34</ID>
                  <Description>"Current Speed"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[mmbase]+74</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>30</ID>
                  <Description>"Max Health"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+104</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>32</ID>
                  <Description>"Max Stamina"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+110</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>33</ID>
                  <Description>"Max Run Speed"</Description>
                  <DropDownList>450:Default
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[mmbase]-50</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>543</ID>
                  <Description>"X"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[coordBase]+24</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>544</ID>
                  <Description>"Y"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[coordBase]+28</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>545</ID>
                  <Description>"Z"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[coordBase]+2C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>546</ID>
                  <Description>"Current Island"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>String</VariableType>
                  <Length>32</Length>
                  <Unicode>0</Unicode>
                  <CodePage>0</CodePage>
                  <ZeroTerminate>1</ZeroTerminate>
                  <Address>[coordBase]+8C</Address>
                  <Offsets>
                    <Offset>E8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>547</ID>
                  <Description>"Current Location"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>String</VariableType>
                  <Length>32</Length>
                  <Unicode>0</Unicode>
                  <CodePage>0</CodePage>
                  <ZeroTerminate>1</ZeroTerminate>
                  <Address>[coordBase]+8C</Address>
                  <Offsets>
                    <Offset>168</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>649</ID>
                  <Description>"coordbase"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[coordBase]</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>530</ID>
          <Description>"World"</Description>
          <Options moHideChildren="1"/>
          <Color>4683FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>518</ID>
              <Description>"Time of Day"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]

aobscanmodule(timeOfDay,Arcania.exe,D9 40 30 8B E5)
alloc(newmem,$1000)
label(code)
label(return)

label(newTime)
label(curTime)

newmem:
push ebp
mov ebp,[eax+30]
mov [curTime],ebp
pop ebp

setTime:
cmp [newTime],0
je @f
push ebp
mov ebp,[newTime]
mov [eax+30],ebp
pop ebp
mov [newTime],0

code:
  fld dword ptr [eax+30]
  mov esp,ebp
  jmp return

newTime:
dd 00

curTime:
dd 00

timeOfDay:
  jmp newmem
return:
registersymbol(timeOfDay newTime curTime)

[DISABLE]

timeOfDay:
  db D9 40 30 8B E5

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+25740A

Arcania.exe+2573FB: CC        - int 3 
Arcania.exe+2573FC: CC        - int 3 
Arcania.exe+2573FD: CC        - int 3 
Arcania.exe+2573FE: CC        - int 3 
Arcania.exe+2573FF: CC        - int 3 
Arcania.exe+257400: 55        - push ebp
Arcania.exe+257401: 8B EC     - mov ebp,esp
Arcania.exe+257403: 51        - push ecx
Arcania.exe+257404: 89 4D FC  - mov [ebp-04],ecx
Arcania.exe+257407: 8B 45 FC  - mov eax,[ebp-04]
// ---------- INJECTING HERE ----------
Arcania.exe+25740A: D9 40 30  - fld dword ptr [eax+30]
// ---------- DONE INJECTING  ----------
Arcania.exe+25740D: 8B E5     - mov esp,ebp
Arcania.exe+25740F: 5D        - pop ebp
Arcania.exe+257410: C3        - ret 
Arcania.exe+257411: CC        - int 3 
Arcania.exe+257412: CC        - int 3 
Arcania.exe+257413: CC        - int 3 
Arcania.exe+257414: CC        - int 3 
Arcania.exe+257415: CC        - int 3 
Arcania.exe+257416: CC        - int 3 
Arcania.exe+257417: CC        - int 3 
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>520</ID>
                  <Description>"Current Time"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>curTime</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>519</ID>
                  <Description>"New Time"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>newTime</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>528</ID>
              <Description>"World Timescale"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]

aobscanmodule(worldTimeMult,Arcania.exe,D8 49 38 8B 55 F8)
alloc(newmem,$1000)
label(code)
label(return)

label(wTime)

newmem:
push ebp
mov ebp,[wTime]
mov [ecx+38],ebp
pop ebp

code:
  fmul dword ptr [ecx+38]
  mov edx,[ebp-08]
  jmp return

wTime:
dd (float)1

worldTimeMult:
  jmp newmem
  nop
return:
registersymbol(worldTimeMult wTime)

[DISABLE]

worldTimeMult:
  db D8 49 38 8B 55 F8

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+257164

Arcania.exe+257146: 89 4D F8        - mov [ebp-08],ecx
Arcania.exe+257149: 51              - push ecx
Arcania.exe+25714A: D9 45 08        - fld dword ptr [ebp+08]
Arcania.exe+25714D: D9 1C 24        - fstp dword ptr [esp]
Arcania.exe+257150: 8B 4D F8        - mov ecx,[ebp-08]
Arcania.exe+257153: E8 A8 07 F5 FF  - call Arcania.simul::base::Observer::objectDeleted
Arcania.exe+257158: D9 45 08        - fld dword ptr [ebp+08]
Arcania.exe+25715B: 8B 45 F8        - mov eax,[ebp-08]
Arcania.exe+25715E: D8 70 34        - fdiv dword ptr [eax+34]
Arcania.exe+257161: 8B 4D F8        - mov ecx,[ebp-08]
// ---------- INJECTING HERE ----------
Arcania.exe+257164: D8 49 38        - fmul dword ptr [ecx+38]
// ---------- DONE INJECTING  ----------
Arcania.exe+257167: 8B 55 F8        - mov edx,[ebp-08]
Arcania.exe+25716A: D8 42 30        - fadd dword ptr [edx+30]
Arcania.exe+25716D: D9 5D FC        - fstp dword ptr [ebp-04]
Arcania.exe+257170: D9 45 FC        - fld dword ptr [ebp-04]
Arcania.exe+257173: D9 E8           - fld1 
Arcania.exe+257175: E8 02 CF 51 00  - call Arcania.std::_Init_locks::operator=+7B6
Arcania.exe+25717A: D9 5D F4        - fstp dword ptr [ebp-0C]
Arcania.exe+25717D: D9 45 F4        - fld dword ptr [ebp-0C]
Arcania.exe+257180: 51              - push ecx
Arcania.exe+257181: D9 1C 24        - fstp dword ptr [esp]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>529</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>wTime</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>532</ID>
          <Description>"Debug"</Description>
          <Options moHideChildren="1"/>
          <Color>0000BB</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>578</ID>
              <Description>"Open Debug Menu [^ / ~]"</Description>
              <Color>FFFF00</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
local cheatMenuFunc = getAddress('Arcania.exe+65F1B0')
executeCodeEx(1, nil, cheatMenuFunc)
[DISABLE]
local cheatMenuFunc = getAddress('Arcania.exe+65F1B0')
executeCodeEx(1, nil, cheatMenuFunc)
</AssemblerScript>
              <Hotkeys>
                <Hotkey>
                  <Action>Toggle Activation</Action>
                  <Keys>
                    <Key>220</Key>
                  </Keys>
                  <ID>0</ID>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
            <CheatEntry>
              <ID>582</ID>
              <Description>"Motion Controller Hook"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2026-02-03
  Author : nightfall
}

[ENABLE]

aobscanmodule(motionControllerHook,Arcania.exe,8B 91 EC 00 00 00 89 55 D0)
alloc(newmem,$1000,motionControllerHook)
label(code)
label(return)

label(mcon)

newmem:
mov [mcon],ecx

code:
  mov edx,[ecx+000000EC]
  jmp return

mcon:
dd 00

motionControllerHook:
  jmp newmem
  nop
return:
registersymbol(motionControllerHook mcon)

[DISABLE]

motionControllerHook:
  db 8B 91 EC 00 00 00

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+1CE651

Arcania.exe+1CE624: C6 40 3C 00        - mov byte ptr [eax+3C],00
Arcania.exe+1CE628: 8B 8D 2C FF FF FF  - mov ecx,[ebp-000000D4]
Arcania.exe+1CE62E: E8 DD 7E FF FF     - call Arcania.exe+1C6510
Arcania.exe+1CE633: 89 45 F0           - mov [ebp-10],eax
Arcania.exe+1CE636: 83 7D F0 00        - cmp dword ptr [ebp-10],00
Arcania.exe+1CE63A: 0F 84 34 04 00 00  - je Arcania.exe+1CEA74
Arcania.exe+1CE640: 8B 8D 2C FF FF FF  - mov ecx,[ebp-000000D4]
Arcania.exe+1CE646: E8 85 17 FE FF     - call Arcania.simul::base::Observer::objectDeleted+84D0
Arcania.exe+1CE64B: 89 45 CC           - mov [ebp-34],eax
Arcania.exe+1CE64E: 8B 4D F0           - mov ecx,[ebp-10]
// ---------- INJECTING HERE ----------
Arcania.exe+1CE651: 8B 91 EC 00 00 00  - mov edx,[ecx+000000EC]
// ---------- DONE INJECTING  ----------
Arcania.exe+1CE657: 89 55 D0           - mov [ebp-30],edx
Arcania.exe+1CE65A: 8B 45 CC           - mov eax,[ebp-34]
Arcania.exe+1CE65D: 83 C0 24           - add eax,24
Arcania.exe+1CE660: 89 85 40 FF FF FF  - mov [ebp-000000C0],eax
Arcania.exe+1CE666: 8B 8D 40 FF FF FF  - mov ecx,[ebp-000000C0]
Arcania.exe+1CE66C: D9 01              - fld dword ptr [ecx]
Arcania.exe+1CE66E: D9 5D DC           - fstp dword ptr [ebp-24]
Arcania.exe+1CE671: 8B 95 40 FF FF FF  - mov edx,[ebp-000000C0]
Arcania.exe+1CE677: D9 42 04           - fld dword ptr [edx+04]
Arcania.exe+1CE67A: D9 5D E0           - fstp dword ptr [ebp-20]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>583</ID>
                  <Description>"Current Speed"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+74</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>584</ID>
                  <Description>"Target Speed"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+78</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>585</ID>
                  <Description>"Rotation Mode"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+9C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>586</ID>
                  <Description>"is_enabled"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+A0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>587</ID>
                  <Description>"State"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+A4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>588</ID>
                  <Description>"collisionObjectPtr1"</Description>
                  <ShowAsHex>1</ShowAsHex>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+C0</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>589</ID>
                  <Description>"collisionObjectPtr2"</Description>
                  <ShowAsHex>1</ShowAsHex>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+C4</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>590</ID>
                  <Description>"Flight Mode"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+E8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>591</ID>
                  <Description>"Jump State"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+EC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>592</ID>
                  <Description>"Direction"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mcon]+128</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>28</ID>
          <Description>"pbase"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pbase]</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>35</ID>
          <Description>"mmbase"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[mmbase]</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>481</ID>
      <Description>"Testing"</Description>
      <Options moHideChildren="1"/>
      <Color>3F3F3F</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>38</ID>
          <Description>"startJump"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(starJump,Arcania.exe,CC CC CC CC CC 55 8B EC 83 EC 08 89 4D FC 8B 45 FC C7) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  push ebp
  mov ebp,esp
  sub esp,08
  jmp return

starJump+05:
  jmp newmem
  nop
return:
registersymbol(starJump)

[DISABLE]

starJump+05:
  db 55 8B EC 83 EC 08

unregistersymbol(starJump)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+32A670

Arcania.exe+32A666: CC                    - int 3 
Arcania.exe+32A667: CC                    - int 3 
Arcania.exe+32A668: CC                    - int 3 
Arcania.exe+32A669: CC                    - int 3 
Arcania.exe+32A66A: CC                    - int 3 
Arcania.exe+32A66B: CC                    - int 3 
Arcania.exe+32A66C: CC                    - int 3 
Arcania.exe+32A66D: CC                    - int 3 
Arcania.exe+32A66E: CC                    - int 3 
Arcania.exe+32A66F: CC                    - int 3 
// ---------- INJECTING HERE ----------
Arcania.exe+32A670: 55                    - push ebp
// ---------- DONE INJECTING  ----------
Arcania.exe+32A671: 8B EC                 - mov ebp,esp
Arcania.exe+32A673: 83 EC 08              - sub esp,08
Arcania.exe+32A676: 89 4D FC              - mov [ebp-04],ecx
Arcania.exe+32A679: 8B 45 FC              - mov eax,[ebp-04]
Arcania.exe+32A67C: C7 40 18 02 00 00 00  - mov [eax+18],00000002
Arcania.exe+32A683: 8B 4D FC              - mov ecx,[ebp-04]
Arcania.exe+32A686: 83 79 34 04           - cmp dword ptr [ecx+34],04
Arcania.exe+32A68A: 75 69                 - jne Arcania.exe+32A6F5
Arcania.exe+32A68C: 8B 55 FC              - mov edx,[ebp-04]
Arcania.exe+32A68F: 8B 42 10              - mov eax,[edx+10]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>26</ID>
          <Description>"StandaloneScripts"</Description>
          <Options moHideChildren="1"/>
          <Color>C0C0C0</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>7</ID>
              <Description>"PlayerStats"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall
}

[ENABLE]

aobscanmodule(getPbase,Arcania.exe,F4 D9 80 FC 00 00 00)
alloc(newmem,$1000)
label(code)
label(return)

label(pbase)

newmem:
cmp [eax+2C],1
jne @f
mov [pbase],eax

code:
  fld dword ptr [eax+000000FC]
  jmp return

pbase:
dd 00

getPbase+01:
  jmp newmem
  nop
return:
registersymbol(getPbase pbase)

[DISABLE]

getPbase+01:
  db D9 80 FC 00 00 00

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+49AC

Arcania.simul::base::Observer::objectDeleted+4998: 8B E5              - mov esp,ebp
Arcania.simul::base::Observer::objectDeleted+499A: 5D                 - pop ebp
Arcania.simul::base::Observer::objectDeleted+499B: C2 04 00           - ret 0004
Arcania.simul::base::Observer::objectDeleted+499E: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+499F: CC                 - int 3 
Arcania.simul::base::Observer::objectDeleted+49A0: 55                 - push ebp
Arcania.simul::base::Observer::objectDeleted+49A1: 8B EC              - mov ebp,esp
Arcania.simul::base::Observer::objectDeleted+49A3: 83 EC 0C           - sub esp,0C
Arcania.simul::base::Observer::objectDeleted+49A6: 89 4D F4           - mov [ebp-0C],ecx
Arcania.simul::base::Observer::objectDeleted+49A9: 8B 45 F4           - mov eax,[ebp-0C]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+49AC: D9 80 FC 00 00 00  - fld dword ptr [eax+000000FC]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+49B2: DC 1D 30 B1 D4 00  - fcomp qword ptr [Arcania.exe+94B130]
Arcania.simul::base::Observer::objectDeleted+49B8: DF E0              - fnstsw ax
Arcania.simul::base::Observer::objectDeleted+49BA: F6 C4 44           - test ah,44
Arcania.simul::base::Observer::objectDeleted+49BD: 7B 68              - jnp Arcania.simul::base::Observer::objectDeleted+4A27
Arcania.simul::base::Observer::objectDeleted+49BF: 8B 4D F4           - mov ecx,[ebp-0C]
Arcania.simul::base::Observer::objectDeleted+49C2: D9 81 B4 01 00 00  - fld dword ptr [ecx+000001B4]
Arcania.simul::base::Observer::objectDeleted+49C8: DC 1D 30 B1 D4 00  - fcomp qword ptr [Arcania.exe+94B130]
Arcania.simul::base::Observer::objectDeleted+49CE: DF E0              - fnstsw ax
Arcania.simul::base::Observer::objectDeleted+49D0: F6 C4 44           - test ah,44
Arcania.simul::base::Observer::objectDeleted+49D3: 7B 1E              - jnp Arcania.simul::base::Observer::objectDeleted+49F3
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>8</ID>
                  <Description>"pbase"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[pbase]</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>9</ID>
                  <Description>"Health"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+FC</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>13</ID>
                  <Description>"Max Health"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+104</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>10</ID>
                  <Description>"Stamina"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+108</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>11</ID>
                  <Description>"Max Stamina"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[pbase]+110</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>22</ID>
              <Description>"Movement"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-09
  Author : nightfall
}

[ENABLE]

aobscanmodule(getMovementBase,Arcania.exe,D9 58 74 8B 8D A0 FE FF FF) // should be unique
alloc(newmem,$1000)
label(code)
label(return)

label(mmbase)

newmem:
cmp [eax+124],0 //12C,4 //744,1
jne @f
mov [mmbase],eax

code:
  fstp dword ptr [eax+74]
  mov ecx,[ebp-00000160]
  jmp return

mmbase:
dd 00

getMovementBase:
  jmp newmem
  nop 4
return:
registersymbol(getMovementBase mmbase)

[DISABLE]

getMovementBase:
  db D9 58 74 8B 8D A0 FE FF FF

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.simul::base::Observer::objectDeleted+C70D

Arcania.simul::base::Observer::objectDeleted+C6E8: D9 41 1C           - fld dword ptr [ecx+1C]
Arcania.simul::base::Observer::objectDeleted+C6EB: DC 1D 30 B1 D4 00  - fcomp qword ptr [Arcania.exe+94B130]
Arcania.simul::base::Observer::objectDeleted+C6F1: DF E0              - fnstsw ax
Arcania.simul::base::Observer::objectDeleted+C6F3: F6 C4 41           - test ah,41
Arcania.simul::base::Observer::objectDeleted+C6F6: 7A 0C              - jp Arcania.simul::base::Observer::objectDeleted+C704
Arcania.simul::base::Observer::objectDeleted+C6F8: 8B 95 A0 FE FF FF  - mov edx,[ebp-00000160]
Arcania.simul::base::Observer::objectDeleted+C6FE: D9 42 78           - fld dword ptr [edx+78]
Arcania.simul::base::Observer::objectDeleted+C701: D9 5D C4           - fstp dword ptr [ebp-3C]
Arcania.simul::base::Observer::objectDeleted+C704: 8B 85 A0 FE FF FF  - mov eax,[ebp-00000160]
Arcania.simul::base::Observer::objectDeleted+C70A: D9 45 C4           - fld dword ptr [ebp-3C]
// ---------- INJECTING HERE ----------
Arcania.simul::base::Observer::objectDeleted+C70D: D9 58 74           - fstp dword ptr [eax+74]
// ---------- DONE INJECTING  ----------
Arcania.simul::base::Observer::objectDeleted+C710: 8B 8D A0 FE FF FF  - mov ecx,[ebp-00000160]
Arcania.simul::base::Observer::objectDeleted+C716: 83 C1 74           - add ecx,74
Arcania.simul::base::Observer::objectDeleted+C719: 51                 - push ecx
Arcania.simul::base::Observer::objectDeleted+C71A: 6A 00              - push 00
Arcania.simul::base::Observer::objectDeleted+C71C: 8B 8D A0 FE FF FF  - mov ecx,[ebp-00000160]
Arcania.simul::base::Observer::objectDeleted+C722: 83 C1 10           - add ecx,10
Arcania.simul::base::Observer::objectDeleted+C725: E8 56 A9 00 00     - call Arcania.exe+1BE980
Arcania.simul::base::Observer::objectDeleted+C72A: 8B 95 A0 FE FF FF  - mov edx,[ebp-00000160]
Arcania.simul::base::Observer::objectDeleted+C730: D9 42 74           - fld dword ptr [edx+74]
Arcania.simul::base::Observer::objectDeleted+C733: DC 1D 30 B1 D4 00  - fcomp qword ptr [Arcania.exe+94B130]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>25</ID>
                  <Description>"Max Run Speed"</Description>
                  <DropDownList>450:Default
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[mmbase]-50</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>24</ID>
                  <Description>"Current Speed"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>[mmbase]+74</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>23</ID>
                  <Description>"mmbase"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>808080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[mmbase]</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>548</ID>
              <Description>"Coordinates"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2024-11-10
  Author : nightfall
}

[ENABLE]

aobscanmodule(getCoords,Arcania.exe,D9 40 2C DE D9) // should be unique
alloc(newmem,$1000)
label(code)
label(return)

label(coordBase)

newmem:
mov [coordBase],eax

code:
  fld dword ptr [eax+2C]
  fcompp 
  jmp return

coordBase:
dd 00

getCoords:
  jmp newmem
return:
registersymbol(getCoords coordBase)

[DISABLE]

getCoords:
  db D9 40 2C DE D9

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+7E6FD9

Arcania.exe+7E6FBA: 8B 02              - mov eax,[edx]
Arcania.exe+7E6FBC: 8B 4D C4           - mov ecx,[ebp-3C]
Arcania.exe+7E6FBF: 8B 50 24           - mov edx,[eax+24]
Arcania.exe+7E6FC2: FF D2              - call edx
Arcania.exe+7E6FC4: D9 5D E4           - fstp dword ptr [ebp-1C]
Arcania.exe+7E6FC7: D9 45 E4           - fld dword ptr [ebp-1C]
Arcania.exe+7E6FCA: DC 25 A0 BF D9 00  - fsub qword ptr [Arcania.exe+99BFA0]
Arcania.exe+7E6FD0: D9 5D C0           - fstp dword ptr [ebp-40]
Arcania.exe+7E6FD3: D9 45 C0           - fld dword ptr [ebp-40]
Arcania.exe+7E6FD6: 8B 45 EC           - mov eax,[ebp-14]
// ---------- INJECTING HERE ----------
Arcania.exe+7E6FD9: D9 40 2C           - fld dword ptr [eax+2C]
// ---------- DONE INJECTING  ----------
Arcania.exe+7E6FDC: DE D9              - fcompp 
Arcania.exe+7E6FDE: DF E0              - fnstsw ax
Arcania.exe+7E6FE0: F6 C4 05           - test ah,05
Arcania.exe+7E6FE3: 7B 1C              - jnp Arcania.exe+7E7001
Arcania.exe+7E6FE5: 83 7D FC 00        - cmp dword ptr [ebp-04],00
Arcania.exe+7E6FE9: 74 20              - je Arcania.exe+7E700B
Arcania.exe+7E6FEB: 8B 4D EC           - mov ecx,[ebp-14]
Arcania.exe+7E6FEE: 83 C1 24           - add ecx,24
Arcania.exe+7E6FF1: 51                 - push ecx
Arcania.exe+7E6FF2: 8B 4D FC           - mov ecx,[ebp-04]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>549</ID>
                  <Description>"ActorComponentObject3DBase"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[coordBase]</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>550</ID>
                  <Description>"X"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[coordBase]+24</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>551</ID>
                  <Description>"Y"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[coordBase]+28</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>552</ID>
                  <Description>"Z"</Description>
                  <VariableType>Float</VariableType>
                  <Address>[coordBase]+2C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>553</ID>
                  <Description>"Current Island"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>String</VariableType>
                  <Length>32</Length>
                  <Unicode>0</Unicode>
                  <CodePage>0</CodePage>
                  <ZeroTerminate>1</ZeroTerminate>
                  <Address>[coordBase]+8C</Address>
                  <Offsets>
                    <Offset>E8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>554</ID>
                  <Description>"Current Location"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>String</VariableType>
                  <Length>32</Length>
                  <Unicode>0</Unicode>
                  <CodePage>0</CodePage>
                  <ZeroTerminate>1</ZeroTerminate>
                  <Address>[coordBase]+8C</Address>
                  <Offsets>
                    <Offset>168</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>593</ID>
          <Description>"Hook draw 2D func (proof of concept)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2026-02-04
  Author : nightfall

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(renderHooktest,Arcania.exe,C3 CC CC CC CC CC CC 55 8B EC 6A FF 68 13) // should be unique
alloc(newmem,$1000,renderHooktest)
label(code)
label(return)

label(X Y)

newmem:
push ecx
push edx
mov ecx,[X]
mov [esp+18],ecx
lea edx,[esp+18]
add edx,4
mov ecx,[Y]
mov [edx],ecx
pop edx
pop ecx

code:
  push ebp
  mov ebp,esp
  push -01
  jmp return


X:
dd (float)10.0

Y:
dd (float)10.0


renderHooktest+07:
  jmp newmem
return:
registersymbol(renderHooktest)

[DISABLE]

renderHooktest+07:
  db 55 8B EC 6A FF

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+66F90

Arcania.exe+66F85: 59                 - pop ecx
Arcania.exe+66F86: 8B E5              - mov esp,ebp
Arcania.exe+66F88: 5D                 - pop ebp
Arcania.exe+66F89: C3                 - ret 
Arcania.exe+66F8A: CC                 - int 3 
Arcania.exe+66F8B: CC                 - int 3 
Arcania.exe+66F8C: CC                 - int 3 
Arcania.exe+66F8D: CC                 - int 3 
Arcania.exe+66F8E: CC                 - int 3 
Arcania.exe+66F8F: CC                 - int 3 
// ---------- INJECTING HERE ----------
Arcania.exe+66F90: 55                 - push ebp
// ---------- DONE INJECTING  ----------
Arcania.exe+66F91: 8B EC              - mov ebp,esp
Arcania.exe+66F93: 6A FF              - push -01
Arcania.exe+66F95: 68 13 7D C2 00     - push Arcania.simul::base::GetQualifiedInheritancePathFromCompleteObjectLocator+33B3
Arcania.exe+66F9A: 64 A1 00 00 00 00  - mov eax,fs:[00000000]
Arcania.exe+66FA0: 50                 - push eax
Arcania.exe+66FA1: 51                 - push ecx
Arcania.exe+66FA2: A1 0C CD 27 01     - mov eax,[Arcania.exe+E7CD0C]
Arcania.exe+66FA7: 33 C5              - xor eax,ebp
Arcania.exe+66FA9: 50                 - push eax
Arcania.exe+66FAA: 8D 45 F4           - lea eax,[ebp-0C]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>605</ID>
          <Description>"sbRendererProcHook"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Arcania.exe
  Version: 
  Date   : 2026-02-04
  Author : nightfall
  Hook SBRendererProcess to fix custom drawing text
}

[ENABLE]


aobscanmodule(sbRendererProcHook,Arcania.exe,8B 10 6A 01 8B C8 8B 42 14 57 FF D0 0F)
alloc(newmem,$1000,sbRendererProcHook)
label(code)
label(return)

label(sbRenderProc)

newmem:
mov [sbRenderProc],eax

code:
  mov edx,[eax]
  push 01
  mov ecx,eax
  jmp return

sbRenderProc:
dd 00

sbRendererProcHook:
  jmp newmem
  nop
return:
registersymbol(sbRendererProcHook sbRenderProc)

[DISABLE]

sbRendererProcHook:
  db 8B 10 6A 01 8B C8

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: Arcania.exe+520B83

Arcania.exe+520B5F: E8 AC 8C B4 FF                    - call Arcania.exe+69810
Arcania.exe+520B64: 8B F8                             - mov edi,eax
Arcania.exe+520B66: EB 02                             - jmp Arcania.exe+520B6A
Arcania.exe+520B68: 33 FF                             - xor edi,edi
Arcania.exe+520B6A: C7 84 24 98 01 00 00 FF FF FF FF  - mov [esp+00000198],FFFFFFFF
Arcania.exe+520B75: E8 C6 76 B6 FF                    - call Arcania.exe+88240
Arcania.exe+520B7A: 8B 10                             - mov edx,[eax]
Arcania.exe+520B7C: 8B C8                             - mov ecx,eax
Arcania.exe+520B7E: 8B 42 04                          - mov eax,[edx+04]
Arcania.exe+520B81: FF D0                             - call eax
// ---------- INJECTING HERE ----------
Arcania.exe+520B83: 8B 10                             - mov edx,[eax]
// ---------- DONE INJECTING  ----------
Arcania.exe+520B85: 6A 01                             - push 01
Arcania.exe+520B87: 8B C8                             - mov ecx,eax
Arcania.exe+520B89: 8B 42 14                          - mov eax,[edx+14]
Arcania.exe+520B8C: 57                                - push edi
Arcania.exe+520B8D: FF D0                             - call eax
Arcania.exe+520B8F: 0F 57 C0                          - xorps xmm0,xmm0
Arcania.exe+520B92: 0F B7 BE 1E 01 00 00              - movzx edi,word ptr [esi+0000011E]
Arcania.exe+520B99: F3 0F 11 84 24 18 01 00 00        - movss [esp+00000118],xmm0
Arcania.exe+520BA2: F3 0F 11 84 24 14 01 00 00        - movss [esp+00000114],xmm0
Arcania.exe+520BAB: F3 0F 11 84 24 10 01 00 00        - movss [esp+00000110],xmm0
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>606</ID>
              <Description>"sbRenderProc"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>[sbRenderProc]</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>608</ID>
              <Description>"FixRenderCrash"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
// fix renderer crash due to invalid ptr (custom call related)
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:

originalcode:
//mov edx,[ebp-4C]
mov edx,[sbRenderProc]
mov eax,[edx]

exit:
jmp returnhere

"Arcania.exe"+13878C:
jmp newmem
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"Arcania.exe"+13878C:
db 8B 55 B4 8B 02
//mov edx,[ebp-4C]
//mov eax,[edx]
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>595</ID>
          <Description>"ExecuteW2SLUA (Not working atm)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
local w2sFunc = getAddress('Arcania.exe+2F2150')
local worldPosAddr = getAddress('vmem')

local screenXAddr = getAddress('screenX')
local screenYAddr = getAddress('screenY')
local depthAddr = getAddress('depth_out')

--print(string.format('%X',worldPosAddr))
local retVal = executeCodeEx(1,nil,w2sFunc,{type=0,value=worldPosAddr}, {type=0,value=screenXAddr},{type=0,value=screenYAddr},{type=0,value=depthAddr})

print(retVal)
[DISABLE]

</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Compact UI Cheat engine"</Description>
      <Color>808080</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
luacall(function cycleFullCompact(sender,force); local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full view Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible = state; getMainForm().Panel5.Visible = state; end; function addCompactMenu(); if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))
[DISABLE]
luacall(cycleFullCompact(nil,false))
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <CheatCodes>
    <CodeEntry>
      <Description>Change of call Arcania.exe+1386A0</Description>
      <AddressString>Arcania.exe+13888B</AddressString>
      <Before>
        <Byte>70</Byte>
        <Byte>FF</Byte>
        <Byte>FF</Byte>
        <Byte>FF</Byte>
        <Byte>51</Byte>
      </Before>
      <Actual>
        <Byte>E8</Byte>
        <Byte>10</Byte>
        <Byte>FE</Byte>
        <Byte>FF</Byte>
        <Byte>FF</Byte>
      </Actual>
      <After>
        <Byte>83</Byte>
        <Byte>C4</Byte>
        <Byte>10</Byte>
        <Byte>C6</Byte>
        <Byte>45</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>PB enthook</Description>
      <AddressString>Arcania.exe+5BE240</AddressString>
      <Before>
        <Byte>00</Byte>
        <Byte>D9</Byte>
        <Byte>44</Byte>
        <Byte>24</Byte>
        <Byte>58</Byte>
      </Before>
      <Actual>
        <Byte>D8</Byte>
        <Byte>66</Byte>
        <Byte>24</Byte>
      </Actual>
      <After>
        <Byte>D9</Byte>
        <Byte>5C</Byte>
        <Byte>24</Byte>
        <Byte>64</Byte>
        <Byte>D9</Byte>
      </After>
    </CodeEntry>
  </CheatCodes>
  <UserdefinedSymbols/>
  <DisassemblerComments>
    <DisassemblerComment>
      <Address>"Arcania.exe"+138761</Address>
      <Comment>start
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"Arcania.exe"+13878F</Address>
      <Comment>crash loc
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"Arcania.exe"+138797</Address>
      <Comment>end
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"Arcania.exe"+32A8C4</Address>
      <Comment>crashOnNop
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"Arcania.exe"+32A8CE</Address>
      <Comment>crashOnNop
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"Arcania.exe"+32A8DF</Address>
      <Comment>crashOnNop
</Comment>
    </DisassemblerComment>
  </DisassemblerComments>
</CheatTable>
