ESI -- Actual Points In Skill

This seems like a pretty basic question and yet I have been unsuccessful in finding an answer. I am trying to find the actual skill points for a partially trained skill (to predict the remaining training time for that skill).

Using the ESI call to /characters/xxxx/skills/ all the skills are returned but it only shows what level the skills are trained to and the corresponding skill points for that level.

Take for example the Gunnery skill. To get to level 4 requires 45,255 points and to level 5 requires 256,000 points. Suppose a character has trained about halfway from level 4 to level 5 so they have about 150,000 skill points in the Gunnery skill. If I make the call to /characters/xxx/skills/ the Gunnery skill is returned and it has the correct level (4) but it shows the skill_points_in_skill as 45,255 not 150,000 (which is the actual number of points in the skill).

Can anyone point me in the right direction about how to go about finding the actual trained points in a skill so that I can calculate the remaining training time for that skill?

Again, this seems like something pretty basic and I apologize if I have missed something obvious.

I suggest u use a print_r or something to see the json/xml

Some of the fields i get in the scope
skillpoints_in_skill
active_skill_level
trained_skill_level

U need use skillpoints_in skill. Myself save in a databse, and later use a sum to get the total because i want the ready skill points, not the unassigned.

What you’re looking for is the `skillpoints_in_skill` field in the skill list returned from `GET /characters/{character_id}/skills/`.

To calculate the SP required for the level, use the formula described here https://github.com/esi/esi-issues/wiki/Useful-Formulae#skillpoints

You can get the skill rank from `GET /universe/types/{type_id}/`, I don’t remember the actual Dogma attribute ID you’re looking for, but you can probably figure that out yourself, there’s an endpoint to resolve those, too.

I my original post I point out that I am getting the skillpoints_in_skill field from the GET API call to /characters/xxx/skills/. The problem that I am having is that it is not showing me the current skill points. It is showing me the skill points for the level the character has trained. So if I have trained to level 4 and partway to level 5 it is only showing the skill points to level 4.

If you read my original post question it explains my problem pretty clearly there.

I understand but maybe the problem is in the access / esi nature.

I have now the habit to enter, stop and active the actual queue of my pilotos for the ghost training problem. Some things only update if you enter in the char in game, and in some cases, pausing. Example.

character i enter 3.900,000 (invented skill points)
pause
active
now show 3906,504 aprox for two hours of training.

I am sure i am getting the real points betwwn 45255 and 256000 but only SURE if i stop and reaasume the training characters. Myself decide not use the refresh tokens because i note this as a normal behaivor in some pilots.

If u want , put you json result.

this migth help ya “skillpoints_in_skill”

get_characters_character_id_skills_ok{
skills* get_characters_character_id_skills_skills[
maxItems: 1000
title: get_characters_character_id_skills_skills
skills array
get_characters_character_id_skills_skill{
active_skill_level* integer(\$int32)
title: get_characters_character_id_skills_active_skill_level
active_skill_level integer

skill_id* integer(\$int32)
title: get_characters_character_id_skills_skill_id
skill_id integer

skillpoints_in_skill* integer(\$int64)
title: get_characters_character_id_skills_skillpoints_in_skill
skillpoints_in_skill integer

trained_skill_level* integer(\$int32)
title: get_characters_character_id_skills_trained_skill_level
trained_skill_level integer

@Shailemar okay, I’ve done some more digging and you are absolutely right, there isn’t any way to get an accurate `skillpoints_in_skill` figure from ESI. That is mainly down to how EVE updates these numbers in the database. The `skillpoints_in_skill` only updates if the skillqueue is updated.

The most accurate number you can get is by using `GET /characters/{character_id}/skillqueue/` to get the training start time and sp and then calculate an estimate based on the characters attributes using the following formula:

$\bg_white y_{skillpointsPerMinute} = a_{primary} + {a_{secondary} \over 2}$

This can’t be relied on to be 100% accurate due to things like injectors and boosters, but it’s the closest estimate you can get to my knowledge.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.