Welcome, Guest
You have to register before you can post on our site.



Search Forums

(Advanced Search)

Forum Statistics
» Members: 1,053
» Latest member: Hell-Razor
» Forum threads: 109
» Forum posts: 488

Full Statistics

Online Users
There are currently 24 online users.
» 0 Member(s) | 24 Guest(s)

Latest Threads
Simple Druid profile 1.6
Forum: Druid
Last Post: Huppy
08-22-2018, 01:23 PM
» Replies: 15
» Views: 3,260
Logitech's Releases for o...
Forum: Support
Last Post: Huppy
08-22-2018, 01:21 PM
» Replies: 101
» Views: 28,740
Hunter Tamed
Forum: Support
Last Post: Rallor
08-14-2018, 05:19 AM
» Replies: 0
» Views: 183
In-Game Radar using Draw ...
Forum: Support
Last Post: WoWnoob
08-12-2018, 02:45 AM
» Replies: 3
» Views: 1,295
Shaman 1.2b (w/ totems)
Forum: Shaman
Last Post: dailybg
08-03-2018, 12:11 PM
» Replies: 5
» Views: 1,284
Frostbite for oGasai 2.0....
Forum: Mage
Last Post: Bloodrain
07-22-2018, 03:00 PM
» Replies: 23
» Views: 11,134
Useful Methods for your s...
Forum: General
Last Post: ponponpon
07-10-2018, 01:16 AM
» Replies: 2
» Views: 3,199
Hunter won't auto shot?
Forum: Support
Last Post: KahluanMilk
04-15-2018, 04:12 PM
» Replies: 0
» Views: 500
Hidden for oGasai 2.0.17
Forum: Rogue
Last Post: Shparkz
04-14-2018, 10:35 AM
» Replies: 6
» Views: 2,840
Logitechs feral druid - i...
Forum: Druid
Last Post: SomebodyFound
03-31-2018, 06:42 PM
» Replies: 1
» Views: 1,088

Heart Hunter Tamed
Posted by: Rallor - 08-14-2018, 05:19 AM - Forum: Support - No Replies

Hi guys! Lf rotation for tamed rars pets...like lupos. Or just tame targer if use addon NPCscsn

  Hunter won't auto shot?
Posted by: KahluanMilk - 04-15-2018, 04:12 PM - Forum: Support - No Replies

I use a beast master 1.5 rotation and i use a hunter script too while of course using paths to level.

My hunter just goes to a mob and then puts a '' Hunter's Mark '' and does a raptor strike, but it never auto attacks with my bow, how do i fix this?

-Fixes, i took raptor strike off >.>

  How to edit the attack distance for mages?
Posted by: KahluanMilk - 03-23-2018, 02:30 PM - Forum: Support - Replies (3)

I'm  using 2.0.17 version ( i think it's the newest one ) and i'm also using a profile which i downloaded from this site, nothing else basically, i don't use rotation since i don't know what it is. I use a mage combat script too ( obviously ) .

But how can i edit the distance for my attacks? Since every time my mage follows that blue line and finds a mob, it goes pretty near that mob and attacks it, so i end up using 1-2 frostbolts until i get attacked, but without using the bot i could use 3-4 frostbolts before i get attacked.

How can i change this Smile? I would really appreciate for some help ^^

Also is this banable? I've had pretty low profile but i'm still worried if i use some stuff in oGasai which ends up me getting banned.

  Rotation Framework
Posted by: Schaka - 03-01-2018, 09:31 AM - Forum: Bot Base - No Replies

Hey guys,

I recently ported my rotation framework to Lua to see if I could do it. It was pretty challenging getting all the functional aspects right, since I am used to strongly typed languages where functions and their parameters are also types.

Either way, I want to share the framework with you guys, because I believe it'll make it much easier for the average joe to write a rotation and still have them be extensive and powerful. 

The attached files are a rogue rotation that can be used as a base for your fightclasses (inspired by Logitech's rogue, not fully tested).


Put rotation_framework.lua into your scripts folder, then add the following code to your coremenu.lua under Core Files.

-- Rotation Framework

The framework can execute a rotation. Each rotation consists of several steps. Each step contains the following parameters:

Quote:action - a RotationAction requiring methods Range():float and Execute():bool
priority - float, sorting order, lowest to highest
predicate - a function taking RotationAction and WoWUnit as targets, returning bool
targetFinder - a function returning a WoWUnit (can be friendly) to execute action upon - this function takes a function(WoWUnit unit):bool as an argument
force - a boolean indicating whether this can interrupt the currently casting spell
rangeCheck - a boolean indicating whether we need to check the range for this action

The interesting parameters for most rotations are the actions, which can either be created through RotationFrameWork:CreateSpell(name, [rank = optional]) or RotationFrameWork:CreateRawAction(function, range). Each step in the rotation is checked for validity and skipped automatically, if it cannot be casted/used/out of range/not in LoS, etc. The first step that can be executed stops the rotation. Each new spell you want to be casted requires another execution of the rotation. 

Each step is also evalulated against a predicate that you can define and supplies its own targeting logic. By default, this will be the target the bot selects for you. You can, however, supply another function like RotationFramework.FindPlayer (returns the player itself) or create your own function to find a target (e.g. for blind, polymorph, sap, etc).

The predicate is the most interesting part. The action itself, as well as the previously evaluated target are parsed as parameters here (s, t => spell, target). You have access to both and need to return a bool value to determine whether this action can be executed. You do NOT need to check for LoS, mana etc here, the framework will automatically check if you can cast the spell or not. 

Example code
local Me = GetLocalPlayer();
local RF = RotationFramework;

local rotation = {
    RF:CreateStep(RF:CreateSpell("Throw"), 1, function(s, t) return SchakaRogue.needsRangePull and t:GetHealthPercentage() == 100 and t:GetDistance() > 8 end),
    RF:CreateStep(RF:CreateSpell("Shoot Crossbow"), 1, function(s, t) return SchakaRogue.needsRangePull and t:GetHealthPercentage() == 100 and t:GetDistance() > 8 end),
    RF:CreateStep(RF:CreateSpell("Shoot Bow"), 1, function(s, t) return SchakaRogue.needsRangePull and t:GetHealthPercentage() == 100 and t:GetDistance() > 8 end),
    RF:CreateStep(RF:CreateSpell("Shoot Gun"), 1, function(s, t) return SchakaRogue.needsRangePull and t:GetHealthPercentage() == 100 and t:GetDistance() > 8 end),
    RF:CreateStep(RF:CreateSpell("Stealth"), 2, function(s, t) return not IsInCombat() and t:GetDistance() <= 25 end, RF.FindPlayer),
    RF:CreateStep(RF:CreateSpell("Preparation"), 3, function(s, t) return IsSpellOnCD("Evasion") and RF:GetNumberAttackingMe(10) >= 2 end, RF.FindPlayer),
    RF:CreateStep(RF:CreateSpell("Adrenaline Rush"), 4, function(s, t) return IsSpellOnCD("Evasion") and not Me:HasBuff("Evasion") and RF:GetNumberAttackingMe(10) >= 2 end, RF.FindPlayer),
    RF:CreateStep(RF:CreateSpell("Blade Flurry"), 5, function(s, t) return RF:GetNumberAttackingMe(10) >= 2 end, RF.FindPlayer),
    RF:CreateStep(RF:CreateSpell("Evasion"), 6, function(s, t) return RF:GetNumberAttackingMe(10) >= 2 end, RF.FindPlayer),
    RF:CreateStep(RF:CreateSpell("Ripose"), 7, function(s, t) return true end),
    RF:CreateStep(RF:CreateSpell("Kick"), 8, function(s, t) return t:GetMana() > 0 and t:IsCasting() end),
    RF:CreateStep(RF:CreateSpell("Hemorrhage"), 9, function(s, t) return Me:GetComboPoints() < 5 and Me:GetEnergy() >= 50 end),
    RF:CreateStep(RF:CreateSpell("Sinister Strike"), 10, function(s, t) return Me:GetComboPoints() < 5 and Me:GetEnergy() >= 50 and not HasSpell("Hemorrhage") end),
    RF:CreateStep(RF:CreateSpell("Slice and Dice"), 11, function(s, t) return Me:GetComboPoints() >= 3 and not Me:HasBuff("Slice and Dice") and (t:GetHealthPercentage() > 65 or (t:GetHealthPercentage() < 15 and Me:GetHealthPercentage() > 70 or RF:GetNumberAttackingMe() >= 2)) end),
    RF:CreateStep(RF:CreateSpell("Eviscerate"), 12, function(s, t) return (Me:GetComboPoints() > 4 and not t:HasDebuff("Cheap Shot")) or Me:GetComboPoints() >= 3 and t:GetHealthPercentage() <= 20 end),
    RF:CreateStep(RF:CreateSpell("Slice and Dice"), 13, function(s, t) return t:GetHealthPercentage() > 50 and not Me:HasBuff("Slice and Dice") and Me:GetComboPoints() >= 2 and (RF:HasMainHandEnchant() or RF:HasOffhandEnchant() or Me:HasBuff("Blade Flurry")) end),


Attached Files
.lua   rotation_framework.lua (Size: 11.02 KB / Downloads: 122)
.lua   schaka_rogue.lua (Size: 8.22 KB / Downloads: 133)

  Improved Logitech's Grinder
Posted by: fr0s4 - 02-21-2018, 12:52 AM - Forum: Support - Replies (1)

Improved Logitech's Grinder with more features

This is based on Logitech's Grinder from his post: Logitech's Releases for oGasai 2.1.x [01-15-2018]

Credits to Logitech, for his incredible work, which inspired me to write my own routines and scripts.
I have just hit level 60 on my first botted character, thanks to Logitechs scripts. 
On my journey to hit max level i've learned simple lua commands, and i have got more familiar with WoW's lua api. I have made some changes to Logitech's script along the way, which i deem to be good enough to share with this community.

Keep in mind, my contributions may not be optimized properly, as i have never done any scripting, or coding prior to my experiences with oGasai.

Added features:

  • Reworked the layout, to hide some stuff when not needed.
  • Added more types to skip pulling. (rares, mechanical, dragonkin ect.)
  • Added buttons to manually blacklist mobs.
  • Added blacklisting method based on name of the mob.
  • Added option to stop the bot from pulling mobs targeting other players. (AoE grinders ect.)
  • Added option to stop the bot from pulling mobs other players target. (don't steal mobs from other players before they pull.)
  • Added option to stop pulling stacked mobs, which is close enough to pull each other(multiple mobs on pull), this is working, but the bot runs into them which is bad.
  • Added support for dynamic pulling in combat routines. (automatic choose ranged/melee pull method, more info below.)
  • Added a function to return the targets aggro range. (script_grind:calculateAggroRadius(targetObj))
These features helped me a lot, as the bot was easier to control, and made less contact with other players than otherwise.

Dynamic pulling
"If we, the player, is standing at the targets location, will we aggro additional mobs?"
I've added the function
which will return true if it is best to use ranged, instead of melee pull.
It basically checks if we can charge a mob, without aggroing surrounding mobs. If not, then we ranged pull.
It's very useful for all melee classes. There is an example of this function in the modified rogue script, found in the attachments.

Example script
The rogue script is based on Logitech's rogue combat routine. I've modded it to use thrown, and stealth appropriate to the situation. It also utilize dynamic stealth range which matches the targets aggro range for least downtime and quickest kill. I have not yet leveled a rogue, so the numbers might need tweaking. (Check the rogue script code line 249 to 291 for example code)

  • Figure out a way to make the bot path around aggro ranges, without looking like a bot. Makes avoiding groups of mobs easier, so it wont path through them/aggro them.
  • Figure out a way to make the bot see the difference between neutral, and aggressive mobs. It can't atm, so it range pulls mobs not necessary.
It's been fun learning, and i look forward to add more features as i finish them.
If any bugs occur, feel free to make a post below about it. I'll try to figure it out to the best extend i can.

- Have fun botting!

Attached Files Thumbnail(s)

.lua   script_grind_logitech.lua (Size: 37.68 KB / Downloads: 188)
.lua   script_rogue.lua (Size: 16.06 KB / Downloads: 119)

  Set speed or lock speed function
Posted by: Onixwow - 02-07-2018, 08:41 PM - Forum: Support - Replies (6)

Hey. Bot UI hava a slider to change the speed of the character. But how to use it manually inside the script / rotation? 

I need to set the required speed using the function or lock speed for all movement events. In all of the described list of features bot I not found this information.

  Logitechs feral druid - improved
Posted by: zerger - 02-07-2018, 04:37 PM - Forum: Druid - Replies (1)

I will post all fixes and additions to logitechs feral script here

micro stutter you have after pulls when you are low lvl and dont have bear form

change line 409

if (targetObj:GetDistance() > self.meeleDistance or not targetObj:IsInLineOfSight()) then
if (targetObj:GetDistance() > self.meeleDistance or not targetObj:IsInLineOfSight()) and HasSpell("Bear Form") then

  Nav Mesh Runner for oGasai 2.1.X
Posted by: Logitech - 01-02-2018, 12:54 AM - Forum: Travel - No Replies

This little project was started by Rot (see script list on Discord)

I've changed, removed and added some stuff:

 - Added the script to be a "mode" instead of a window (uses run/stop) so we can use draw functions
 - Decreased the lines of code for adding/loading destinations
 - Added map/continent ID to destinations which are useless since the  Map ID's aren't "ordered" , need to map them some how
 - Most destinations are Horde that Rot added, so if people use this script, feel free to share the addDestination(...) line.
   e.g.: script_runner:addDestination("Razor Hill - Durator", 323.82, -4736.34, 9.80, 1, 14);

You can only walk to destinations that are usually within one "map-zone" from your current position. Otherwise you will end up with a path of 2 nodes or no path at all.

How to install:
1. Place the script_runner.lua in \\scripts\\

2. In core\\coremenu.lua inside the isSetup if-statment add:
        -- Nav Mesh Runner by Rot, Improved by Logitech
        LoadScript("Runner", "scripts\\script_runner.lua");
        AddScriptToMode("Runner", "script_runner");

2. In the same file below the isSetup if-statement add the menu:


Attached Files
.lua   script_runner.lua (Size: 9.12 KB / Downloads: 232)

  Make bot to not attack totems
Posted by: ejaboz - 12-06-2017, 07:05 PM - Forum: General - Replies (1)

Hi is there any specific script to get the character to ignore attacking totems?
I already have setPVE(1) and enemyFaction = "Horde"; -- Set to "Horde" if you play Alliance

  Cat Form grinding v0.3 (2.1.7)
Posted by: Crobeus - 12-06-2017, 11:38 AM - Forum: Druid - No Replies

preface: I've never used Lua before and didn't bother looking up documentation before copypasting this combat routine together. If you use this script and make some changes please post them here so I can see what I did wrong, it helps everyone out in the end. Also, if someone can enlighten me on how to have the bot skin mobs that would be wonderful.

With my current gear and the mobs I'm botting this setup is 100% self sufficient with 0 downtime. Most healing is done on the run with rejuv and if mana ever drops low enough it'll pop innervate which has a short 6 minute cooldown.

Current flow goes like this:

  1. Checks for and buffs Omen of Clarity/Thorns/Mark of the Wild
  2. Pops rejuv if under 80% hp, regrowth if under 65%
  3. Switches to cat if hp % is high enough or currently affected by regrowth
  4. pulls with faerie fire (feral) at 30 yards then closes distance
  5. spams claw at 40 energy or if clearcasting proccd, ferocious bite at 5 combo
  6. shifts out mid combat to regrowth if health drops under 65%, healing touch if under 40%
What I'd like to add in future versions:
  • food/drink options
  • skinning
To use cat form for movement instead of running around or mounting, make the following changes to script_grind.lua:
add the variable "isCat = true" at the top with all the others and set "use mount" to false, then find this bit of code:
        if(self.useMount and not IsMounted()) then
            self.message = "Mounting";
            if(RunMountScript()) then
            return --FIX, return not working (Could be in water, need to move)

and duplicate it right below with some modifications like so:
        if(self.isCat and not self.useMount) then
            self.message = "Going back to cat";
            if(not localObj:HasBuff('Cat Form')) then
                Cast('Cat Form', localObj);

0.1 - initial attempt
0.2 - fixed spam shifting
0.3 - combat healing implemented

Attached Files
.lua   script_cat.lua (Size: 5.35 KB / Downloads: 211)