new subtable "0,1;1,1"

That just means there's a 50% chance to get the item, 50% not. They're basically weightings, where 1 = 100, hence 1,1, means 100% chance to get 1 item, but half the time there will be 0% chance to get the item. I think that's how it works.

Yup on the weightings in the object categories.

object category "Precious",5,100,0,0,0,0,0,0

The first number is weightings. These don't have to add up to 100 with the main subtable weightings. If I recall correctly, the next four numbers represent common, uncommon, rare, purple/orange items (depends on your level when you find epic, legendary, or divine items.) The last three numbers (always 0s) don't seem to do anything.

Big news for Scales: I'm attempting to edit the AI. Charscripts are easy to edit and don't need the editor. I think I've already made melee attackers ignore charmed entities. Unfortunately, every skill has its own targeting protocols that override this, so I need to modify every single skill.

For example, the enemy charming arrow skill has FOURTEEN conditions. This one is a bit extreme and unusual in that it already actually has a line for charmed, where I think it promotes recharming their own allies, but I think it also encourages recharming someone who's already charmed (the idea behind this I think is that enemies almost never have more than one opportunity to charm anyway).

Code
ON
	OnIterateCharacter(_Char, "CalculateTarget_WPN_Arrow_Charming_A")	
ACTIONS
	// [CALC_CHAR_TARGET_ACTIONS_PRE]
	Set(_ClassScore_WPN_Arrow_Charming_A, %ClassScore_WPN_Arrow_Charming_A)
	Set(_Score, 0.0)
	// [~CALC_CHAR_TARGET_ACTIONS_PRE]
	// [CALC_CHAR_TARGET_ACTIONS]
	IF "(!c1&!c2&!c3)&((((((c4)|c5)|c6)|c7)|c8)|c9)&(!(c10))&(c11)&(c12)&(c13)&(c14)"
	    CharacterIsDead(_Char) // c1
	    CharacterHasStatus(_Char, INVISIBLE) // c2
	    CharacterHasStatus(_Char, SNEAKING) // c3
	    CharacterHasStatus(_Char, HASTED) // c4
	    CharacterHasStatus(_Char, BLESSED) // c5
	    CharacterHasStatus(_Char, SHIELD) // c6
	    CharacterHasStatus(_Char, FORTIFIED) // c7
	    CharacterHasStatus(_Char, CHARMED) // c8
	    CharacterIsBetterOrEqualClass(_Char, %ClassScore_WPN_Arrow_Charming_A, _ClassScore_WPN_Arrow_Charming_A, 5, 2, 0, 3, 4) // c9
	    CharacterHasStatus(_Char, FEAR) // c10
	    CharacterIsEnemy(__Me, _Char) // c11
	    CharacterGetHostileCount(_HostileCount, _Char) // c12
	    CharacterGetSkillRange(_SkillRangeMin, _SkillRangeMax, __Me, %SkillID_WPN_Arrow_Charming_A) // c13
	    GetDistance(_DistanceToChar, __Me, _Char) // c14
	THEN
	    Set(%ClassScore_WPN_Arrow_Charming_A, _ClassScore_WPN_Arrow_Charming_A)
	    IF "(c1)"
	        CharacterHasStatus(_Char, HASTED) // c1
	    THEN
	        Add(_Score, 5.0)
	    ENDIF
	    IF "(c1)"
	        CharacterHasStatus(_Char, BLESSED) // c1
	    THEN
	        Add(_Score, 5.0)
	    ENDIF
	    IF "(c1)"
	        CharacterHasStatus(_Char, SHIELD) // c1
	    THEN
	        Add(_Score, 5.0)
	    ENDIF
	    IF "(c1)"
	        CharacterHasStatus(_Char, FORTIFIED) // c1
	    THEN
	        Add(_Score, 5.0)
	    ENDIF
	    IF "(c1)"
	        CharacterHasStatus(_Char, CHARMED) // c1
	    THEN
	        Add(_Score, 5.0)
	    ENDIF
	    // Hostile count score calculation
	    IF "(c1)"
	        IsGreaterThen(_HostileCount, 2) // c1
	    THEN
	        Set(_HostileScore, 10.0)
	    ENDIF
	    Add(_Score, _HostileScore)
	    
	    // Range score calculation
	    Set(_DistanceScore, _DistanceToChar)
	    IF "(c1)"
	        IsGreaterThen(_DistanceScore, _SkillRangeMax) // c1
	    THEN
	        Subtract(_DistanceScore, _SkillRangeMax)
	        Multiply(_DistanceScore, -1.0)
	    ELIF "(c1)"
	        IsLessThen(_DistanceScore, _SkillRangeMin) // c1
	    THEN
	        Subtract(_DistanceScore, _SkillRangeMin)
	        Multiply(_DistanceScore, 1.0)
	    ELSE 
	        Set(_DistanceScore, 0.0)
	    ENDIF
	    Add(_Score, _DistanceScore)
	    
	    // Can see score calculation
	    IF "!c1"
	    	CharacterCanSee(__Me, _Char)
	    THEN
	    	Add(_Score, -10.0)
	    ENDIF
	    
	    IF "c1"
	    	IsGreaterThen(_Score, %SkillTargetScore_WPN_Arrow_Charming_A)
	    THEN
	    	Set(%SkillTargetChar_WPN_Arrow_Charming_A, _Char)
	    	Set(%SkillTargetScore_WPN_Arrow_Charming_A, _Score)
	    ENDIF	
	ENDIF
	// [~CALC_CHAR_TARGET_ACTIONS]


There's a .bat file in a "generator folder" which references ruby files to generate the baseline of each script, but those ruby files don't exist in the EE files. They do in the original D:OS, and there's also this really neat excel file that lists all the priorities for skills, and if I could get that to work for the EE too, that'd be awesome, but not sure how different the base scripts are for the EE. I don't want to move backwards with the AI. So I might have to wait for the editor for this (assuming these files will come with the editor) because I don't think I want to manually inject conditions for enemies to not attack charmed enemies for every skill.

I should also probably wait for the Blind and taunt fixes before modifying too much so I have a solid base to work on, so it might be a while before I really can tackle the AI, as much as I want to.