B1SchoolEvaluationData
A single student's overall evaluation state.
* Stored as a value in FB2School::StudentEvaluationMap.
Data sections:
* 1) Weekly accumulation - DailyRecords[5]. Reset every Monday in OnWeekReset.
* The exam-preparation accumulator (ExamPreparation) has been split out into FB2CareerComponent and is managed as per-student ability data (2026-05).
* 2) Weekly result history - WeeklyHistory[]. Only keeps up to DA->MaxWeeklyHistoryCount weeks; the oldest entries are removed first when exceeded.
* 3) Persistent state - bHadCounseling, bHadExamThisCareer. Never reset.
| Property | Type | Description | Metadata |
|---|---|---|---|
| DailyRecords | TArray | Index = (EB1DayOfWeek - Monday). Fixed at 5 slots (Monday-Friday). * Guaranteed by SetNum(5) in OnPostInit/OnWeekReset. | |
| LastExamScoreMorning | int32 | This week's per-slot exam score (each 0 * Computed independently per slot; ExamScore = Morning + Afternoon (0 * Computed by RunExamSlot at the time of taking the exam; untaken slots remain 0. * Reset to 0 on week transition (OnWeekReset). * * Note: The exam-preparation accumulator (ExamPreparation) has been classified as per-student * ability data and moved to FB2CareerComponent (2026-05). RunExamSlot reads the prep value from the student's CareerComponent to compute the score. | |
| LastExamScoreAfternoon | int32 | This week's afternoon exam slot score (0~20); 0 if the slot was not taken. | |
| WeeklyHistory | TArray | Results for the most recent N weeks (per-category scores + total score + grade). Used for the UI graph/trend display and debugging. * The retention limit is DA->MaxWeeklyHistoryCount (recommended 4); when exceeded, the oldest entry is removed first via RemoveAt(0). * The first element is the oldest week, and the last element is the most recent week. * Each entry's WeekIndex is a continuous number since school enrollment (1, 2, 3, ...) - the numbering is preserved even when trimmed. | |
| CurrentGrade | EB1SchoolGrade | A cache kept in sync whenever WeeklyHistory is updated. For frequent lookups (UI/Script). | |
| PreviousGrade | EB1SchoolGrade | The grade from the prior week, cached for comparison/trend display. | |
| bHadCounseling | bool | Whether the student has ever received counseling at least once. Used as an early-graduation condition (must be false). | |
| bHadExamThisCareer | bool | True once the first weekly evaluation has been determined (either by taking an exam or by a week closing without one) or after a transferred grade is applied. A flag marking the exit from the "pre-evaluation" state. * Set by: RunExamSlot / FinalizeWeeklyEvaluation / ApplyTransferredGrade. | |
| bAttendedMorningExam | bool | Whether the exam slot was taken this week, per slot. The corresponding slot is marked true when RunExamSlot runs for it. * An untaken slot (false) keeps LastExamScore*=0 -> contributes 0 to the sum (no ExamFloorScore guarantee). * Also used to guarantee idempotency - if RunExamSlot is called again for an already-taken slot, it is skipped. * Reset to false in OnWeekReset. | |
| bAttendedAfternoonExam | bool | Whether the afternoon exam slot was taken this week; reset to false on week reset. | |
| bHasEverAttended | bool | Whether the student has ever actually attended; marked true on the first attended day. * Used as a one-time trigger to treat the first day's empty homework slot as submitted. | |
| PromPartnerVisitIds | TArray | Unique PromPartner EntityIds that successfully attended prom with this student. * Used by the VisitPromWithPartner script condition. | |
| bWeeklyFinalized | bool | Whether this week's closing has been completed. Guarantees idempotency for FinalizeWeeklyEvaluation. * Reset to false in OnWeekReset, set to true at the end of FinalizeWeeklyEvaluation. * Also used to prevent duplicate closing during batch closing on exam-day holidays. |
Back to Type FinderSearch and filter all 2203 StructGuide documents
See alsoSchool
- FB1SchoolActivityRoleActionData
- FB1SchoolActivityTableRow
- FB1SchoolClassDayActivityData
- FB1SchoolClassScheduleData
- FB1SchoolClassScheduleTableRow
- FB1SchoolClassSlotScheduleData
- FB1SchoolDailyRecord
- FB1SchoolDefaultUniform
- FB1SchoolExamConfig
- FB1SchoolExpulsionRecord
- FB1SchoolGraduationRecord
- FB1SchoolHomeworkAssignment