1. Overview
Product: Treasure Ocean slot game source.
Use Case: fast reskin/rebrand and deployment for web casino portals or white-label game collections.
- 5x3 evaluation area with fixed 20 paylines.
- Wild/Scatter logic with free-spin triggering and retrigger.
- Big Win stage animation flow and mobile/desktop responsive UI.
- Multi-language text packs (JSON locales).
2. Package Contents
Top-level Directories
c3project/: full Construct 3 source package.HTML5/: exported playable build generated fromc3project.documentation/: buyer help files (HTML/CSS/JS/assets).
Inside c3project/
c3project/project.c3proj: main Construct 3 project file.c3project/layouts/: game scenes (loading, main, etc.).c3project/eventSheets/: event logic per layout.c3project/scripts/: gameplay/UI/runtime JS modules.c3project/images/,c3project/icons/,c3project/files/: art and data assets.
3. Requirements & Setup
- Construct 3 runtime project (
c3project/project.c3proj,runtime: c3,savedWithRelease: 47600). - Modern browser (Chrome/Edge/Firefox/Safari).
- Optional: local static server for final QA export check.
Project Technical Notes
- Main runtime scripts are loaded from
c3project/scripts/main.js. - Project uses built-in Construct plugins/behaviors and custom effect
skymen_BetterOutline(v2.1.0.1 in project metadata). - Spine HTML runtime helper is included under
c3project/scripts/spine/.
Export & QA Checklist
- Preview in Construct 3 and verify loading → main transition on desktop + mobile.
- Run spin tests for normal, turbo, free spin trigger, retrigger, big win sequence.
- Validate language switching via URL (
?lang=xx&social=true|false). - Export build into
HTML5/and smoke test on at least Chrome desktop + iOS/Android browser. - Check no console errors in loading, spin, and popup flows.
This documentation itself is static. Double-click documentation/index.html to open it locally.
4. Quick Start
- Open
c3project/project.c3projin Construct 3. - Run preview and verify loading → main transition.
- Test spin flow (normal/turbo, free spins, big win).
- Edit brand assets in
c3project/images/and text in locale JSON. - Export target build to
HTML5/and run final QA.
Marketplace Submission Notes
- Use listing preview images/video on the marketplace product page.
- This local documentation focuses on setup and technical usage, not media showcase.
- Keep UI text and jurisdiction wording consistent with the final submitted build.
5. Gameplay Rules
- Lines: 20 fixed paylines.
- Payout: multiplier × bet-per-line.
- Scatter: 4+ triggers 15 free spins.
- Retrigger: during free spins, 3+ scatter adds +5 free spins.
- Big Win: threshold logic based on total win / total bet multiplier.
6. Architecture Map
| File | Responsibility |
|---|---|
c3project/scripts/mechanics.js | Core reel spin, symbol generation, win evaluation, free-spin counters. |
c3project/scripts/result.js | Winning symbol focus, payline effects, free-spin loop orchestration. |
c3project/scripts/bigwin.js | Big win thresholds, staged events, skip logic. |
c3project/scripts/betoption.js | HUD, bet/autospin controls, history, i18n-based labels. |
c3project/scripts/gui.js | Responsive layer scaling, loading prompt overlay, background mode. |
7. Public API
| API | Description |
|---|---|
g_spin(turbo) | Start a spin; pass true for turbo mode. |
g_setTotalBet(value) | Set total bet amount. |
g_getTotalBet() | Get current total bet. |
g_getFreeSpins() | Read free-spin remaining count. |
g_setSymbolsScaleMode(mode) | Force responsive mode: auto/mobile/ipad/desktop. |
8. Customization
- Brand/UI: replace logo/background/symbol textures in
c3project/images/. - Localization: edit JSON files in
c3project/scripts/locales/betoption/. - Math feel: tweak symbol weights and timing in
c3project/scripts/mechanics.js. - Win thresholds: adjust big-win multipliers in
c3project/scripts/bigwin.js.
9. Jurisdiction Requirements (Social Mode)
For social-casino deployment, some jurisdictions/platforms prohibit specific gambling terms. This applies primarily to game rules text, and may also apply to UI labels, image captions, and tutorial content.
Integration rule: the RGS provides URL query parameter social=true / social=false to indicate social-casino mode. Recommended implementation is separate locale files with sweeps_<lang> prefix for compliant text substitutions.
Restricted Terms Mapping
| Restricted Phrase | Suggested Replacement Phrase |
|---|---|
| win feature | play feature |
| pay out | win / won |
| paid out | win / won |
| stake | play amount |
| pays out | won |
| betting | play / playing |
| total bet | total play / play |
| bet | play |
| bets | plays |
| cash | coins |
| payer | winner |
| pay | win |
| pays | wins |
| paid | won |
| money | coins |
| buy | play |
| bought | instantly triggered |
| purchase | play |
| at the cost of | for |
| rebet | respin |
| cost of | can be played for |
| credit | balance |
| buy bonus | get bonus |
| gamble | play |
| wager | play |
| deposit | get coins |
| withdraw | redeem |
| bonus buy | bonus / feature |
| be awarded to player’s accounts | appear in player’s accounts |
| place your bets | come and play / join in the game |
| bet/s | play/s |
| currency | token |
| fund | balance |
Compliance Checklist
- Rules popup text uses compliant terminology when
social=true. - HUD labels switch from bet wording to play wording.
- No restricted term appears in images, sprites, or banners.
- No restricted term appears in history, toasts, or debug text.
10. Language Support
The project supports standard locale files and social-compliant locale files:
- Standard:
<lang>.json - Social mode:
sweeps_<lang>.json - Selection: query params
lang/localeandsocial=true|false
Example URLs
?lang=en&social=false
?lang=en&social=true
?locale=vi&social=true
?lang=ja&social=false
11. JS Setup Guide (Slot Configuration)
Most game behavior is controlled from JavaScript files in c3project/scripts/. Change only these config blocks to avoid breaking flow logic.
This section is focused on practical buyer customizations: symbol spacing, spin speed, UI theme colors, bet levels, free-spin rules, and language output.
Most Requested Customizations (with exact file targets)
| Customization Goal | Edit In | Main Variables |
|---|---|---|
| Increase/decrease gap between symbols | c3project/scripts/mechanics.js | CONFIG.hSpacing, CONFIG.vSpacing, CONFIG.startX, CONFIG.startY |
| Change symbol size | c3project/scripts/mechanics.js | CONFIG.symbolSize |
| Make spin faster/slower | c3project/scripts/mechanics.js | MAX_SPEED, ACCEL_MS, NORMAL_COL_DELAY, TURBO_MIN_LOOP_SPEED |
| Adjust payout/RTP feel | c3project/scripts/mechanics.js | WEIGHTS_WITH_WILD, WEIGHTS_NO_WILD, PAYOUT |
| Change free-spin trigger and count | c3project/scripts/mechanics.js | SCATTER_THRESHOLD, SCATTER_FREE_SPINS |
| Change default bet ladder | c3project/scripts/betoption.js | BET_UI.betOptions, BET_UI.autoOptions |
| Change main UI accent/theme color | c3project/scripts/betoption.js | --slot-accent, --slot-accent-strong, --slot-panel-* CSS variables in HUD style block |
| Change loading prompt text/language | c3project/scripts/gui.js | resolveLoadingPromptMessage(), g_setLoadingPromptLocale(), g_setLoadingPromptText() |
| Change mobile/tablet/desktop scale | c3project/scripts/gui.js | GUI_SCALE.profiles, g_setSymbolsScaleProfile() |
| Tune Big Win pacing | c3project/scripts/bigwin.js | BIGWIN_FX.stageMs, maxTotalMs, endDelayMs, thresholds |
| Tune payline highlight cycle speed | c3project/scripts/result.js | RESULT_FX.linePhaseMs |
Quick Examples (Copy/Paste Style)
1) Wider symbol spacing + slightly larger symbols (c3project/scripts/mechanics.js)
const CONFIG = {
startX: 320,
startY: 55,
hSpacing: 170, // was 160
vSpacing: 170, // was 160
symbolSize: 156, // was 150
...
};
2) Faster normal spin but controlled turbo (c3project/scripts/mechanics.js)
const MAX_SPEED = 3600; // faster reel speed
const ACCEL_MS = 60; // faster acceleration
const NORMAL_COL_DELAY = 80; // shorter column stagger
const TURBO_MIN_LOOP_SPEED = 4600; // turbo still clearly faster than normal
3) Re-theme HUD to blue (c3project/scripts/betoption.js in #slot-hud style variables)
--slot-accent:#38bdf8;
--slot-accent-strong:#0284c7;
--slot-panel-border:rgba(56,189,248,.45);
--slot-panel-tile-border:rgba(56,189,248,.35);
4) Runtime theme override without editing CSS block (call from your integration script)
const hud = document.getElementById("slot-hud");
if (hud) {
hud.style.setProperty("--slot-accent", "#22c55e");
hud.style.setProperty("--slot-accent-strong", "#15803d");
globalThis.g_refreshResultFxTheme?.(); // sync payline/result accent
}
5) Change default bet/autoplay options (c3project/scripts/betoption.js)
betOptions: [0.1, 0.2, 0.5, 1, 2, 5, 10, 20],
autoOptions: ["inf", 25, 50, 100, 250],
6) Change free-spin trigger rule (c3project/scripts/mechanics.js)
const SCATTER_THRESHOLD = 3; // trigger at 3 scatters
const SCATTER_FREE_SPINS = 12; // award 12 free spins
7) Loading prompt language by URL (already supported)
?lang=en&social=false
?lang=vi&social=false
?lang=de&social=true
Or force at runtime:
globalThis.g_setLoadingPromptLocale?.("ja");
globalThis.g_setLoadingPromptText?.("Touch to Start");
c3project/scripts/mechanics.js (Core Math + Reel Runtime)
| Variable | What It Controls |
|---|---|
CONFIG | Grid geometry and symbol placement: startX/startY, hSpacing/vSpacing, symbolSize, cols/rows, target layoutName and layerName. |
EVAL_ROWS | Rows used for win evaluation. Default is 3 middle rows in a 5-row runtime grid. |
WILD_COLS | Which reels can generate Wild symbols. |
WEIGHTS_WITH_WILD, WEIGHTS_NO_WILD | Symbol probability weights for each column type. Main RTP/volatility feel tuning point. |
PAYLINES | Full 20-line payline map (left to right evaluation paths). |
PAYOUT | Multiplier table per symbol and match count (3/4/5 of a kind). |
SCATTER_THRESHOLD | Minimum scatter count to trigger free spins. |
SCATTER_FREE_SPINS | Number of free spins awarded at trigger. |
totalBet | Default initial total bet on startup. |
MAX_SPEED, ACCEL_MS, ALIGN_MS | Spin acceleration, maximum reel speed, and final alignment timing. |
NORMAL_COL_DELAY, NORMAL_MIN_LOOP_SPEED | Normal spin pacing and stagger delay between columns. |
TURBO_MIN_LOOP_SPEED, TURBO_PRE_WAIT_MS | Turbo spin behavior and stop timing. |
REEL_BLUR_EFFECT | Name of blur effect used while reels are spinning. |
Public hooks: g_spin, g_setTotalBet, g_getTotalBet, g_getBetPerLine, g_getFreeSpins, g_addFreeSpins, g_forceFreespin.
c3project/scripts/betoption.js (HUD + Betting + Locale)
| Variable | What It Controls |
|---|---|
BET_UI.balance | Initial player balance shown on UI. |
BET_UI.betOptions | Allowed bet values in the bet menu. |
BET_UI.autoOptions | Autoplay preset counts ("inf" = infinite). |
LINE_COUNT | Line count used in UI/rule calculations (keep synced with mechanics paylines). |
PAYOUT_MULT | Payout table shown in info/history UI. |
PAYLINES_20 | Payline order shown in help/history overlays. |
BET_I18N_LANGS | Supported language codes for query-driven locale selection. |
BET_I18N_EN, BET_I18N_VI | Embedded fallback dictionaries when JSON files are unavailable. |
Locale behavior: URL params lang/locale and social=true|false select file <lang>.json or sweeps_<lang>.json.
c3project/scripts/gui.js (Responsive + Loading Prompt)
| Variable | What It Controls |
|---|---|
GUI_SCALE.mode | Device mode strategy: auto, mobile, ipad, desktop. |
GUI_SCALE.layersToScale | Which Construct layers are scaled responsively. |
GUI_SCALE.profiles | Scale value per device class (mobile/ipad/desktop). |
GUI_SCALE.backgroundMode | Background theme state (game or freespin). |
LOADING_PROMPT.message | Text shown after loading reaches 100%. |
resolveLoadingPromptMessage() map | Per-language text translations for "Touch anywhere to continue". |
Public hooks: g_setSymbolsScaleMode, g_setSymbolsScaleProfile, g_setScaleLayers, g_setBackgroundMode, g_setLoadingPromptLocale, g_setLoadingPromptText.
c3project/scripts/bigwin.js (Big Win Sequence)
| Variable | What It Controls |
|---|---|
BIGWIN_FX.stageMs | Time spacing between big-win stage milestones. |
BIGWIN_FX.maxTotalMs | Maximum total counting duration cap. |
BIGWIN_FX.endDelayMs | Delay before closing big-win presentation. |
BIGWIN_FX.thresholds | Multiplier thresholds that trigger bigwin, megawin, supermegawin, epicwin. |
c3project/scripts/result.js (Line FX + Free Spin Flow)
| Variable | What It Controls |
|---|---|
RESULT_FX.linePhaseMs | Duration of each highlighted payline phase when cycling win lines. |
RESULT_FX.accentColor | Stroke/highlight color used by line rendering layer. |
Safe Editing Checklist
- Keep
mechanics.jsandbetoption.jspayout/line tables consistent. - After changing symbol weights or payout, test 200+ spins in normal and turbo.
- After changing responsive scale, verify portrait mobile + desktop wide + tablet.
- After adding language, add both
<lang>.jsonandsweeps_<lang>.json. - After changing HUD accent color variables, call
g_refreshResultFxTheme()so line/result FX matches HUD theme.
12. Performance Notes
- Prefer testing on both desktop and low/mid mobile hardware.
- Avoid oversized textures beyond required device target.
- Keep animation overlays and post effects within budget.
- Re-run QA after any reel timing or animation changes.
13. License & Usage Scope
This item is intended for sale under CodeCanyon Standard Licenses. License terms below summarize the official pages and should be treated as practical guidance for buyers.
Reference: CodeCanyon Standard License (Regular/Extended). Always follow the latest terms on the official license page.
Standard License Selection
| License Type | Use Case | Core Rule |
|---|---|---|
| Regular | End product is distributed for free to end users. | 1 license = 1 single end product (single application). |
| Extended | End product is sold, licensed, or charged to end users. | Still 1 license = 1 single end product (not multi-use). |
What Buyers Can Do
- Create one end product for self or one client.
- Modify the source code and assets to build a customized final game.
- Distribute copies of that same end product according to the selected license type.
- Freelancers/agencies may charge service fees for implementation work for one client.
What Buyers Cannot Do
- Reuse one purchase for multiple different end products, clients, or separate jobs.
- Redistribute/resell the source item as stock, template, tool, or source package.
- Offer this source in “build-your-own / on-demand” systems without separate license per final customized product.
- Claim ownership of the original source item itself (author retains item ownership).
Seller Notes For Marketplace Compliance
- State clearly that this package is sold under Envato Standard License terms (Regular/Extended).
- Do not promise multi-client, developer-wide, or unlimited-project rights from a single purchase.
- Include a support policy separate from license rights (support is not a license extension).
Package Usage Scope
This package is delivered for practical production use with source code and bundled game graphics as part of one licensed end product.
- Usable deliverables include game source code and bundled visual content in this package.
- Support and update obligations are scoped to the delivered source package.
- For license interpretation, always follow the active CodeCanyon Standard License terms.
14. Support Policy
This support policy is designed for marketplace delivery and follows a clear boundary between bug-fix support and customization requests.
Support Scope
- Included: bug fixes related to the original delivered source (runtime errors, broken game flow, incorrect documented behavior).
- Not included: feature development, reskin work, math model redesign, UI restyling, third-party integration, platform migration, or custom game logic changes.
- Customization requests: available as separate paid work. Contact first to confirm feasibility, quote, and delivery timeline.
Support Window
- Standard support period is 6 months from the purchase date.
- Support can be extended by purchasing a support extension on CodeCanyon.
- After support expiration, new requests are handled only after support renewal or under a separate paid agreement.
Response SLA
- Primary contact channel: slotgen@gmail.com.
- Telegram support: @SlotgenSupport.
- Initial response target: within 1-2 business days (excluding weekends and public holidays).
- Fix delivery time depends on issue complexity and reproducibility.
- To speed up handling, include purchase code, game version, browser/device, reproduction steps, and screenshots/video.
Support Workflow
- Submit issue details by email.
- Issue is validated against delivered source and documentation scope.
- If confirmed as a product bug, fix is scheduled and delivered in an update patch.
- If request is customization, a separate estimate and timeline is provided.
15. Troubleshooting & FAQ
Common Issues
| Issue | Likely Cause | Recommended Fix |
|---|---|---|
| Language does not change | Missing locale file or wrong URL parameter. | Verify ?lang=xx / ?locale=xx and confirm file exists in c3project/scripts/locales/betoption/. |
| Social wording not applied | social query flag not passed. | Load with ?social=true and provide matching sweeps_<lang>.json file. |
| Payline color not matching HUD theme | Result FX accent cache not refreshed. | After changing HUD accent CSS vars, call globalThis.g_refreshResultFxTheme?.(). |
| Text/UI too small on mobile | Responsive profiles not tuned for target viewport. | Adjust GUI_SCALE.profiles.mobile or set runtime scale via g_setSymbolsScaleProfile("mobile", value). |
| Spin feels too slow/fast | Timing constants mismatch. | Tune MAX_SPEED, ACCEL_MS, NORMAL_COL_DELAY, then re-test normal and turbo. |
| Free spin flow not as expected | Trigger thresholds modified without rebalancing. | Review SCATTER_THRESHOLD, SCATTER_FREE_SPINS, and run regression tests for trigger/retrigger/end state. |
Buyer FAQ
- Can I use one purchase for multiple games? No. One CodeCanyon license covers one end product.
- Can I request custom features under support? Default support covers bug fixes only; customization is separate paid work.
- Where to change betting limits quickly? Edit
BET_UI.betOptionsinc3project/scripts/betoption.js. - Where to change symbol math? Use
WEIGHTS_*andPAYOUTinc3project/scripts/mechanics.js. - How to switch language from integration? Pass
lang/localein URL or provide your own locale JSON files.
16. Changelog
## v1.1.0 (2026-03-11)
- Expanded buyer documentation with JS setup guide and practical tuning examples.
- Added social-mode terminology compliance section.
- Added language support reference with standard and sweeps locale strategy.
- Updated support policy and CodeCanyon Standard License guidance.
- Added troubleshooting/FAQ workflow.
## v1.0.0 (Initial Release)
- Initial game source package (Construct 3 project + runtime scripts).
- Core slot flow: spin, turbo, paylines, free spins, and big win stages.
- Responsive UI and loading flow with multilingual support foundation.