ICARUS • HISTORY
Version History
Evolution and improvements of the project
Talent calculation fix
- Talent and Culinex percentages now stack additively on base value instead of compounding multiplicatively
- Example: Culinex (+25%) + Vegetarian (+30%) on a 200 buff = 200 + 50 + 60 = 310 (instead of 325 multiplicative)
- Tooltip descriptions updated to reflect additive calculation
Settings Menu + Per-food Talent System
- New ⚙ Settings button in menu — replaces simple Culinex toggle with a full panel featuring 7 configurable options
- Culinex Backpack (×1.25) and Naturally Preserved (×2.0 spoil) apply to all foods
- 5 per-food assignable talents in admin: Long Lasting (×1.20), Pescatarian (×1.30), Sweet Savoury (×1.10), Carnivore (×1.30), Vegetarian (×1.30)
- All multipliers stack multiplicatively — e.g. Culinex + Pescatarian = ×1.625
- Per-food calculation applied everywhere: catalogue, food detail, builder, comparator and rankings
- Settings saved locally and restored between sessions
Tags system for foods
- Admin: new Tags system — create FR/EN labels with gallery icon in the Options tab
- Admin: assign one or more tags to each food from the edit form
Max stack and weight badges on image
- Food detail: max stack (×N) now shown as a badge on the image (bottom right)
- Food detail: weight (kg) now shown as a badge on the image (bottom left)
Favorites page fix
- Fix: the ★ button to remove a food from favorites now works on the Favorites page
Admin dashboard fix
- Fix: admin dashboard buttons (Add food, Add buff, Data Quality, etc.) are working again
Favorites, buff tooltips, breadcrumbs and dynamic OG images
- New: Favorites system — save your preferred foods with the ☆ star and find them via the ★ button in the menu
- Tooltips on buff badges: hover a buff to see its full description
- Visual breadcrumb trail on food detail pages (Catalogue › Food Name)
- Dynamic share image: when sharing a food on Discord/Reddit, the preview shows the name, stats and image
- 24h sitemap cache for optimized search engine crawling
- Admin button removed from menu (direct access only)
Navigation menu cleanup
- Admin button removed from the main menu for a cleaner interface
French translations import from game files
- French food names updated with official game translations
- French descriptions and flavor texts added for all foods that were missing them
Game data import into database
- New game_name column: each food is now linked to its internal Icarus game name
- New weight column: weight for each food imported from game files
- New decay_category column: decay category for each food (19 game categories)
- Fixed ~40 divergent spoil_time values to align with official game data
- Filled ~20 missing max_stack values
Admin: food count per option
- New column in the Options panel showing how many foods use each option
Catalogue and food detail fixes
- Fixed score sorting: foods no longer reorder when loading more
- Nutritional score is now displayed on the food detail page
- Fixed score info icon (i) showing garbled characters
- List mode: buffs now show only their icons to respect page width
- List mode: stack badge is more compact (number only in image corner)
- Food detail: buffs are now displayed under the image on large screens
SEO: Enriched Schema.org for Google
- Fixed Schema.org breadcrumb (separated from Recipe as required by Google)
- Food detail: added ingredients, crafting station, nutrition, and author to structured data
- Catalogue: top 12 foods now show enriched data for Google
SEO: Images in Google Images
- Food pages can now appear in Google Images with their image
- Catalogue shows top 12 foods with images in Google search results
Legal and privacy update
- Privacy policy updated to include Google AdSense
- Legal notices updated with third-party advertising section
- Consent banner updated to mention advertising cookies
Ad placements
- Added 4 ad placements configurable from the admin panel
- Individual control for each placement (enable/disable)
- User consent respected: ads only display after acceptance
Station icons in catalogue
- Crafting station icons now display correctly in the catalogue
Station group fixes
- Fixed option group change in admin
- Food editor now loads all 3 station groups separately
New groups: Cooking Station and Stove
- New option groups 'Cooking Station' and 'Stove' in admin
- Tier system support for both new groups
Station column fix
- Station column can now store multiple stations (extended size)
Tier system for stations
- New tier (level) system for crafting stations
- Selecting a station auto-selects all higher-tier stations
- Tier column visible in admin Options panel
SEO and performance optimization
- Default language changed from FR to EN (95% of visitors are English-speaking)
- Meta descriptions extended and enriched on all pages
- Keyword 'Icarus' added to main headings for SEO
- 5 CSS files merged into one (faster loading)
- Alt attributes fixed on all images
- www to non-www redirect for better URL canonicalization
Enhanced security (CSP nonces)
- Enhanced protection against malicious scripts (cryptographic nonces)
Multi-station and station icons
- Foods can now have multiple crafting stations
- Visual icons for each station in catalogue and food detail
- Centered images in food detail and comparator
Advertising and sharing
- Share button on each food in catalogue and detail page
- Ad placement system prepared
Improved effects and buffs
- Named effect system with description (e.g., Hearty Stew, Protein Boost)
- Effect buffs and direct buffs are merged on each food
- Effect and description displayed on food detail page
Admin improvements
- Quick edit shortcut on catalog food cards (logged-in admins)
Admin image upload fix
- Definitive fix for image upload in admin panel (file encoding issue)
Admin image upload improvement
- Better upload error diagnostics + improved webp file support
Admin image upload fix
- Fixed buff icon upload (cPanel server compatibility)
Admin adjustments
- Checkboxes repositioned next to Max Stack in the food form
- Buffs sorted by popularity in the effect creation form
Improved admin UX
- Food modal centered with internal scroll and fixed bottom buttons
- New styled checkboxes and toggle switch in admin settings
Builder, admin & UX fixes
- Builder: identical buffs are now correctly combined and summed again
- Admin: Buffs column in food list now translated based on language
- Admin: option to disable the 'under construction' banner in settings
- Consent: clicking outside the dialog = decline
Custom error pages
- Errors 404, 403, 400, 429, 500 and 503 now display a page styled with the site theme and with language auto-detected (FR/EN)
Max Stack · Improved comparator · Admin logs
- New Max Stack field: how many of the same food can be stacked — shown in catalogue, food detail and comparator
- Comparator: each buff displayed on its own row for better readability
- Comparator: best value per row highlighted (▲ gold)
- Admin: quick access to server logs from header and dashboard
Server files and directories security hardening
- Internal directories (services, partials, sql) are now protected from direct HTTP access
- Technical files (.md, .zip, .sql) are no longer publicly accessible
- Internal data JSON files (version_history, changelog) are now served through the API instead of direct access
Internal fixes — log security, admin robustness
- Server log files are now protected against public access
- The admin now displays the precise error message if loading fails
Translated buff names in admin panel
- Buff selection lists (food edit and effect edit) now show translated names based on the admin UI language
Unified buff format: name first, value after
- Buffs now display as 'Cold Resistance +20%' everywhere (admin and public pages) instead of '+20% Cold Resistance'
Admin fixes — icons, effect buffs, prefixes
- The Buffs column in the food list (admin) now shows buffs from the assigned effect
- Buff previews in the food editor now show + or - sign before numeric values
- The buff icon picker now has a 'Custom' section with already-uploaded images
- Correct display of image (non-emoji) icons in selected buff recaps
Improvements — buff icons, effect dedup, detail spacing
- The buff icon palette has been expanded with 22 new emojis
- You can now upload a custom image as a buff icon (PNG, SVG, WebP, JPEG)
- Selecting an effect on a food now auto-unchecks manual buffs already included in the effect
- Reduced spacing between description and flavor text in the food detail page
New — Food effects system
- Foods can now have a named effect (e.g., Banana Bread) that groups multiple buffs together
- New 'Effects' tab in admin to create, edit and delete effects with FR/EN translations
- The food edit form shows a dropdown to select an effect, with buff preview
- The public detail page displays the effect name and description below the flavor text
- Additional individual buffs can still be added on top of the effect
Admin improvement — duration and spoil time fields
- The Duration and Spoil Time fields now display a hint indicating the value is in seconds
- The 's' suffix is automatically appended on save if you forget it
Fix — Builder page
- Fixed a blocking PHP error that prevented the Builder page from loading
Translations — builder, comparator and version history fixes
- Builder: slot description and Suggestion / Save / Share buttons now translated
- Comparator: long description translated, Recipe A/B/C/D column headers fixed
- Admin version history panel: now displays in English when UI language is EN
Full FR/EN internationalisation
- All public pages (catalog, food detail, comparator, builder, top, craft) are now fully translated
- Admin panel fully translated (tabs, modals, error messages, import/export)
- Admin login page translated with dynamic lang attribute
- Unified JS i18n system: all pages use window.t() from i18n.js
New food buff management
- Buffs are now organized as unique types (e.g., Charge Speed) with multiple values (+10%, +15%…)
- Admin can define possible values for each buff and precisely choose the value when assigning to a food
Catalog list view — mobile optimization
- Catalog list view is now optimized for mobile
- 2-row layout: image + name + buttons on the 1st, stats on the 2nd
- Stats boxes adapt to available width instead of a fixed size
Legal Notices & Licenses — new page
- New Legal Notices page accessible from the footer
- License notice for Icarus game images (property of RocketWerkz Studios Limited)
- Trademarks, site content and disclaimer sections
- Bilingual FR/EN
Intelligent admin dashboard — complete overhaul
- 8 stat cards with icons and trend indicators (+X today)
- Quick actions bar: add food/buff, export, view suggestions, purge cache
- 4 horizontal bar chart distributions: by type, station, expansion, top 10 buffs
- Improved activity timeline: 20 entries, grouped by day, with avatars and payload tooltip
- Global quality score with colored progress bar (green/yellow/red) and 10 checks
- Suggestions widget: preview of latest 3 suggestions with counter and quick access
Culinex Backpack — additional fixes
- Spoil Time is no longer affected by Culinex Backpack
- Buffs now correctly keep their + or - prefix when Culinex is enabled
- Ranking page now displays Culinex-adjusted buff values
Culinex Backpack — fix affected data
- Culinex Backpack now only affects duration and buffs, matching the game
- Score, Food, Health and Water are no longer multiplied by Culinex — fixed on catalog, compare and ranking pages
Builder — layout improvements
- The available foods list is now scrollable (max 50% of screen) instead of stretching the entire page
- Saved combos are now displayed at the top of the page for quick access
Builder — collapsible saved combos
- The saved combos list is now collapsible — click the title to show or hide the list
- A counter (n) shows the number of saved combos
Fixes — suggestion button
- Suggestion button now visible on the Craft page
Fix — suggestion button in French
- Fixed suggestion button not working in French
Suggestion button on the site
- New floating 💬 button on the right side of all pages — lets you send us a suggestion or correction
- Choose a category (incorrect data, missing data, interface, other) and describe your suggestion
- Suggestions are visible to administrators in the admin panel
Share button on foods
- New 🔗 button next to Compare on each catalog card: copies the direct link to the food
- Same Share button on each food detail page
- The copied link does not contain the language — it works for all visitors
Food form — refined layout
- 'Not consumable' and 'Not spoilable' checkboxes are now positioned just above the Buffs list
- Image URL and Image Upload fields are now side by side on the same line
Improved food form layout
- 'Not consumable' and 'Not spoilable' checkboxes now have their own dedicated row above Spoil time — inputs are no longer truncated
- Image URL and Image Upload fields are now full width
Improved SEO, condensed admin interface
- The Top, Builder and Comparator pages now include JSON-LD structured data for better Google indexing
- The food edit form (admin) is more compact: Type, Station, Expansion, Duration, Spoil, Food, Health and Water fields are now displayed in 2 rows instead of 5
- Action buttons in each admin Settings card are now uniformly pinned to the bottom
General optimization — stability and consistency
- Unified nutrition score calculation across all pages (catalog, rankings, builder, comparator)
- The Culinex Backpack multiplier (+25%) now applies consistently everywhere
- Fixed a silent bug in the builder affecting some buff filters
- Strengthened security on several admin pages
Fixes — search, display and interface
- Catalog search now finds foods by their translated name (e.g. searching "Bread" also finds foods whose EN name contains that word)
- The Culinex Backpack checkbox is now visible on all pages
- The score info tooltip displays correctly in the catalog
- The catalog search bar has a better-proportioned width
- The privacy policy page now has an FR/EN toggle button
- New "Purge cache" button in admin settings
Internal refactoring — architecture and maintainability
- Critical bug fixes: Culinex score, GDPR consent in comparator, builder regex
- Full API security hardening: output buffering, PHP error masking, security headers on all endpoints
- JavaScript and CSS code restructured into specialized modules (no visible impact for users)
- New PHP service layer for foods, buffs, translations and options
Admin dashboard
- New admin dashboard: global stats, recent activity, and 7 data quality checks (images, translations, station, expansion, spoil time, orphan buffs, incomplete foods)
- Each issue is clickable and directly opens the edit form for the affected food or buff
Compare page improvements
- The A/B/C/D dropdowns are now pixel-perfectly aligned with the comparison table columns — same container, same grid
- Removed the redundant « RECIPE » label from the Name row
Monitoring and reliability
- Automatic JavaScript error tracking — anomalies are silently collected in the background
- Daily automatic backups of the database and files (7 days retained)
- Technical health page available at /health
- Improved admin audit log — color-coded actions and readable details
New domain, persistent language and clean URLs
- The site is now available at icarusfood.com
- The selected language is now preserved when navigating between pages
- The language button now shows the language to switch to (EN or FR)
- URLs are now readable: /home, /compare, /builder, /top, /food/food-name, /privacy, /changelog
Improved buff icons
- Fixed buffs with missing icons — new categories now auto-detected (crafting, harvesting, building, trap, wildlife, carry weight, stealth, exotic)
- Administrators can now set a custom icon (emoji) for each buff from the admin panel
Privacy, remembered Culinex and compact list view
- Full privacy policy page added — compliant with Quebec Law 25
- Culinex Backpack checkbox is now remembered and synced across all pages
- Ultra-compact list view in the catalog: more information visible per row
Customizable site identity and bilingual page titles
- Site name, description, logo and favicon are now customizable from the admin panel
- Titles and descriptions of all pages are fully translated in French and English
- Active language is carried over on every page navigation
Google Analytics with mandatory consent
- Google Analytics can now be enabled from the admin panel
- The analytics script is only loaded if the visitor has given consent
- The Settings tab in admin allows configuring the measurement ID
Mobile layout fixes
- The header now displays correctly on mobile (logo on top, hamburger menu and Culinex on the same line)
- The dropdown menu was appearing behind some panels — fixed
SEO, SVG favicon and installable app (PWA)
- New title, description, favicon and Open Graph tags on all pages
- The site is now installable as an app on mobile
- Twitter Card tags for better sharing on social media
Consent banner — Quebec Law 25
- Bilingual consent banner (FR/EN) compliant with Quebec Law 25 on personal information protection
- Detailed table of all data stored in your browser
- Accept / Decline buttons — declining removes all non-essential preferences
- Permanent button at the bottom left to view or change consent at any time
Admin — visual cards for recipes
- Ingredients now appear as visual cards with image, name and quantity in the admin panel
- The image updates automatically as you type the ingredient name
Food detail — recipe and used in
- The food detail page now shows the list of ingredients required to craft it
- A 'Used as ingredient in' section lists dishes that use this food
- Ingredients are clickable cards with image and quantity
Fandom wiki import — descriptions and recipes
- English descriptions and flavor texts imported from the community wiki
- Recipes (ingredient lists) imported automatically
- Food images fetched from the wiki
Mass data import — stats and missing foods
- Statistics updated (duration, spoil, food, health, water) for the majority of foods
- Added foods that were missing from the database
Rankings page, list view, progressive loading and score sorting
- New Rankings page — top 5 foods by score, health, stamina, food, water, duration and number of buffs
- List / Grid view toggle in the catalog
- 'Load more' button replaces classic pagination
- Sort by nutritional score available in the catalog
- Compare button added directly on the food detail page
- Informative tooltip when hovering foods in the Builder
Admin — reorganized food form
- Type, Station and Expansion in a single shared field without redundancy
- Buffs are grouped by category in the selection list
- Main image preview now functional
Food detail — duration in minutes and + sign on buffs
- Duration and spoil time now display seconds and minutes (e.g. 600s / 10 min)
- Positive buffs now show the + sign (e.g. +225 Max Health)
- Score ℹ icon correctly aligned next to the label
Catalog — expansion badge and duration in minutes
- The expansion (e.g. Prometheus) now appears as a badge next to the food name
- Duration shows seconds and minutes on cards
Builder with smart suggestions and Comparator
- The Builder automatically suggests a combination based on a goal (health, stamina, experience, etc.)
- Visual radar chart of the combination stats
- New Comparator page — compare up to 4 foods side by side
- Share a combination via URL
Unified navigation menu
- The same menu (Catalog, Compare, Builder, Top, Admin) is now on every page
- The Culinex Backpack checkbox is accessible from the menu on every page
Stabilized base
- Full rebuild on a stable base
- Food, Health and Water when Consumed stable everywhere
- Flavor text EN/FR on the food detail page
Options management system
- Types, stations and expansions are now managed in the admin panel
- Food form dropdowns use these options
Full option translations
- Types, stations and expansions displayed in the selected language (FR/EN)
- Bilingual admin for managing options
Bilingual site — French and English
- Language button added to the menu
- Food names and notes available in French and English
- The canonical database stays in English, translations are managed separately
Spoil Time
- Spoil time displayed on cards, food detail and the Builder
- Culinex Backpack applies the +25% bonus to spoil time
Buffs normalization
- The buff filter now groups effects by logical name (without numeric values)
- Search finds all foods of a buff type regardless of value or percentage
Smart buff sorting and improved Builder
- Buffs are sorted by category with visual icons (❤️ Health, ⚡ Stamina, 🗡️ Combat, etc.)
- The Builder includes a dedicated buff search
- Share a Builder combination via URL
Food and Health when Consumed stats
- Food and health when consumed values are displayed on cards, detail page and the Builder
Food when Consumed value
- Display of the food amount restored on consumption on cards and detail pages
Culinex Backpack and Extension field
- Added Culinex Backpack checkbox (+25% on displayed duration and buffs)
- Added Extension field to identify the source DLC of the food
- Version history accessible in the admin panel
Meal combination Builder
- New Builder to create combinations of 3, 4 or 5 foods based on character talents
- Local save of favorite combinations
- CSV import from a remote URL
Foundations — catalog, buffs, administration and gallery
- Food catalog in PHP / JavaScript / CSS with search and filters
- Buffs system with relational tables, filter by buff type and Icarus visual style
- Password-protected admin panel, detailed food page, image gallery, CSV and SQL import/export
- Secure admin accounts in database, audit log of admin actions